BioPAX - Biological Pathway Exchange
Paxtools is a Java library specially designed for accessing and manipulating data in BioPAX[1] format.
Contents |
Paxtools Features
- A complete and consistent implementation of BioPAX specification: BioPAX elements in Paxtools are plain Java beans which provide methods to access the properties described in BioPAX, and a model, acting as a container for all BioPAX elements, provides querying facilities for them. Users can either read a BioPAX model from a file or create an empty one from the scratch. Methods to add new elements to a model and to remove elements from a model are also provided.
- Support for OWL properties and additional inverse links: Owl properties can be symmetric, transient or subtyped into other properties. These semantics can not be represented directly in an object oriented programming language. Paxtools implements these additional semantics and automatically update the fields of objects. For example, since property “standardName” is a subproperty of “name”, updating the standardName of a protein will also update its list of names. Similarly since “component” is a transient property, a query for the components of a complex will not only list its immediate components but also the components of the subcomplexes inside this complex. In the BioPAX specification properties are unidirectional for brevity. For example, “participant” property links interactions to physical entities. Paxtools provides additional “inverse” links that allows efficient navigation from a physical entity to the all interactions that it participates.
- Syntactic validation: Each operation that modifies the model is internally validated by Paxtools to comply with BioPAX syntax, including RDF well-formedness, domain and range restrictions, bidirectional links, and redundancies.(BioPAX Validator project provides a much more detailed validation and also checks for best practices.)
- Seamless handling of different BioPAX levels: Recently released BioPAX Level 3 introduced significant improvements to the naming and structure of the BioPAX at some cost of backwards compatibility. Paxtools supports all three BioPAX levels and provides facilities for upgrading older BioPAX models to Level 3, reducing the burden of working with different BioPAX levels for developers.
- Converting to and from different formats: Paxtools can convert PSI-MI models to BioPAX Level 3. In addition, BioPAX models can be exported back to OWL and several other useful formats, including SIF (Simple Interaction Format) and GSEA gene sets.
- Efficient traversal and editing via reflection: Paxtools implements the Property Editor design pattern to allow tools to manipulate BioPAX models without actually hard coding property and class names. This pattern considerably simplifies development of BioPAX exporters and other tools and makes it easier to extend and update them to support future changes in the BioPAX specification.
- Modular and lightweight structure: Paxtools is currently distributed as a Maven project in a modular structure which allows developers to easily select just the parts of PaxTools they need in their application.
- A platform for development of BioPAX software infrastructure: Some projects built on top of Paxtools include: a state-of-the-art persistence system using Java Persistence API integrated with the querying facilities, an advanced validator that allows checking complex rules and the best practices using an extensible framework, an integrator that detects and merges interactions that are equivalent based on their participants, and a graph theoretic query engine for finding biologically relevant connections and subnetworks. These software tools are available as a part of Pathway Commons project. Software that uses Paxtools can natively interact with these tools.
Downloading Paxtools
Downloading the JAR file
The latest official release of Paxtools is v4.1.1. It is distributed as a single JAR file (with dependencies included) through the project's Sourceforge.net web page: https://sourceforge.net/projects/biopax/ (Watch for the recent posts in this topic for future releases!)
You can also use one of the following direct download links:
Downloading the latest source code
If you want to utilize the features that are currently under development, you can always get a local copy of the latest source code from our Mercurial repository [2]
hg clone http://biopax.hg.sourceforge.net:8000/hgroot/biopax/paxtools
Using Paxtools
Paxtools provides, beyond the API, a console application (paxtools-console modules) that can execute several commands. If you have downloaded one of the JAR distribution files, you can access to this console interface with the following command:
java -jar paxtools-4.1.1.jar
Available operations:
merge file1 file2 output merges file2 into file1 and writes it into output
toSif file1 output converts model to the simple interaction format
toSifnx file1 outEdges outNodes node-prop1,node-prop2,.. edge-prop1,edge-prop2,...
converts model to the extendent simple interaction format
validate path out [xml|html|biopax] [auto-fix] [normalize] [only-errors] [maxerrors=n]
validates the BioPAX file (or all the files in the directory);
writes the html report, xml report (including fixed xml-escaped
biopax), or the biopax (fixed/normalized) only; see also:
http://www.biopax.org/biopax-validator/ws.html
integrate file1 file2 output integrates file2 into file1 and writes it into output (experimental)
toLevel3 file1 output converts level 1 or 2 to the level 3 file
fromPsimi level file1 output converts PSI-MI Level 2.5 to biopax level 2 or 3 file
toGSEA file1 output database crossSpeciesCheck
converts level 1 or 2 or 3 to GSEA output. Searches database for
participant id or uses biopax rdf id if database is "NONE".
Cross species check ensures participant protein is from same
species as pathway (set to true or false).
fetch file1 id1,id2,.. output extracts a sub-model from file1 and writes BioPAX to output
getNeighbors file1 id1,id2,.. output
nearest neighborhood graph query (id1,id2 - of Entity sub-class only)
help prints this screen and exits
Resources on Paxtools
- Documentation (Generated by Maven site, incl. Javadoc)
- Public Maven2 repositories (contain compiled Paxtools's and other BioPAX related modules as well as pom.xml files):
- http://biopax.sourceforge.net/m2repo/snapshots/ - BioPAX snapshots m2 repository
- http://biopax.sourceforge.net/m2repo/releases/ - BioPAX releases m2 repository
- Use Mercurial (SCM) as explained here: http://sourceforge.net/projects/biopax/develop (replace '/hgroot/biopax/biopax' with '/hgroot/biopax/paxtools')
- Browse source code: http://biopax.hg.sourceforge.net/hgweb/biopax/paxtools/file
- Download binary JARs with build-in dependencies: http://sourceforge.net/projects/biopax/files/ (go to 'paxtools' folder there)
- Developer's documentation:
About Paxtools
Paxtools is developed at Computational Biology Center at MSKCC [3]; the persistency layer has been initially developed by INOH group [4]; Bader Lab (BBMDR, TDCCBR, University of Toronto) [5] is an active contributer.