Systems Biology Format Converter (SBFC)
The Systems Biology Format Converter (SBFC) aims to provide a generic framework to convert a Systems Biology model format into another. Interoperability between formats is a recurring issue in Systems Biology. Although there are several tools available to convert models from one format to another, most of them have been independently developed and/or cannot be easily combined. The framework is written in Java and can be used as a standalone executable or as web service. The SBFC framework currently supports conversion from SBML to BioPAX Level 2 and Level3, Matlab, Octave, XPP, Dot, or APM. It is also planned to add conversions from SBML to SBGN-ML, and from SBGN-ML to an SBGN enriched graphical representation designed for use in a web browser.
SBFC is a collaborative project and we hope that developers will provide support for more formats by creating new converter modules.
For general discussion about SBFC, please use the forum:
sbfc-forum [at] googlegroups.com.
A mailing-list is also available for developers at:
sbfc-devel [at] googlegroups.com.
The following sections present the SBFC Roadmap, the list of currently available converters and the modes to execute SBFC. A separate Developer Guide can be found here.
The definition of a roadmap for the future development of SBFC is currently in progress. A preliminary document is here.
You can download the last version of SBFC including all the converters here: sbfc-1.3.5.zip.
The next section provides the user with all the links to the single converters.
You can also download all the converters as a package or separately from the SBFC SourceForge Web Site.
In case you discover a bug within SBFC or request new features, please let us know. There are two dedicated trackers: bug reports or feature requests. If you need further help or support you can contact the team using the following e-mail address:
sbfc-devel [at] googlegroups.com .
For general discussion about SBFC, please use the forum:
sbfc-forum [at] googlegroups.com .
How to use SBFC
This section explains how to use the software SBFC, providing the user with some use case.
Conversion using a console
When unpacking the file sbfc-1.3.5.zip, you will find several shell script files (.sh). Those are the files you will need to run in order to launch conversion jobs. To test the correct installation of SBFC, a set of model examples is available in the folder examples:
- example\_SBML.xml : is a very simple model in SBML
- example\_BioPAX.owl : is a very simple model in BioPAX
To retrieve the list of currently supported converters (Java Class names), run the command:
./sbfModelList.sh # Example of output APMModel BioPaxModel DotModel OctaveModel SBGNMLStringModel SBGNModel SBMLModel XPPModel
To retrieve the list of the currently supported input models (Java Class names), run the command:
./sbfModelList.sh # Example of output Miriam registry file = Miriam.xml SBML2APM SBML2BioPAX SBML2BioPAX_l2 SBML2BioPAX_l3 SBML2Dot SBML2Matlab SBML2Octave SBML2SBGNML SBML2SBML SBML2XPP URL2URN URN2URL
For a detailed description of the available converters, please see following Section.
To convert a model file (or the models in a folder), run the command:
./sbfConverter.sh [InputModelClassName] [ConverterClassName] [modelFile | modelsFolder]
For instance, to convert an SBML model (e.g. SBML.xml) to an Octave model the command will be:
./sbfConverter.sh SBMLModel SBML2Octave examples/example/SBML.xml
A script file is also present for certain converters to simplify the command. To do the previous conversion, a user can also type the following command:
Conversion using Java
To convert using Java directly, you can:
- run the Converter class located in /org/sbfc/converter/ . In this case the general syntax is:
java Converter [InputModelClassName] [ConverterClassName] [ModelFile]
java Converter SBMLModel SBML2Octave examples/example/SBML.xml
- Alternatively, invoke one of the two following methods in the Converter class from your code directly:
/* Input model given as a string */ public static String ConvertFromString([InputModelClassName] [ConverterClassName] [ModelString]) /* Input model given as a file */ public static void ConvertFromFile([InputModelClassName] [ConverterClassName] [FilePath])
This section introduces the converters currently supported. For a more detailed description, click on the converter name.
- SBML to SBML
- A list of scripts for converting between SBML levels and versions. Scripts for converting SBML model annotation from Miriam (urn) to identifiers.org (url) and viceversa are also provided.
- SBML to BioPax
- The main objective of the BioPAX initiative is to develop a data exchange format for biological pathways that is flexible, extensible, optionally encapsulated and compatible with other standards and can be widely adopted in a timely manner.
- SBML to SBGN-ML
- The mission of the SBGN-ML project is to develop high quality, standard graphical languages for representing biological processes and interactions. [IN PROGRESS]
- SBML to Matlab
- Matlab is a high-level language, primarily intended for numerical computations. It provides a convenient GUI and command line interface for solving linear and nonlinear problems numerically, and for performing other numerical experiments.
- SBML to Octave
- GNU Octave is a high-level language, primarily intended for numerical computations. It provides a convenient command line interface for solving linear and nonlinear problems numerically, and for performing other numerical experiments using a language that is mostly compatible with Matlab.
- SBML to XPP
- XPP-Aut is a numerical analysis software. It permits to solve differential equations, difference equations, delay equations, functional equations, boundary value problems, and stochastic equations.
- SBML to Dot
- GraphViz is an open source graph visualization software. The language used to encode the graphics processed by GraphViz is called DOT. Note that a "dot" file can be used with other graphical software and you have the possibility to convert them to PNG, SVG, ..)
- SBML to APM
- APM (APMonitor Modeling Language) is an optimization software for mixed-integer and differential algebraic equations. It is coupled with large-scale solvers for linear, quadratic, nonlinear, and mixed integer programming (LP, QP, NLP, MILP, MINLP). Modes of operation include data reconciliation, real-time optimization, dynamic simulation, and nonlinear predictive control. It is freely available through MATLAB, Python, or from a web browser interface.
Currently, the Systems Biology community has been working on additional converters among which are MDL2SBML, GPML2BioPAX, and BioPAX2GPML. These converters will provide translation from MDL, a language for the software Monte Carlo Cell (MCell) to SBML, and mutual conversion between Gaussian Processes for Machine Learning (GPML) and BioPAX.
SBFC as web service
Conversion jobs can be very demanding in term of CPU and memory, if you have large models or a large number of models to convert. Systems biology models can also be converted online using SBFC web service. This uses the SBFC in the background so only the converters already integrated in SBFC are available. We implemented two modes to convert models within SBFC web service:
- via a web browser. In this case the conversion uses the cluster of computer machines at the EBI (European Bioinformatics Institute). Please, visit the web page: http://www.ebi.ac.uk/biomodels/tools/converters/. The user must specify the input and output model formats. Models can be converted via three input methods: multiple file upload, URL pointing, copy/paste. Once the conversion jobs are started, the results can be downloaded for 72 hours after the conversion finished. It is worth noting that neither the original nor the converted models are kept on the servers for a period longer than 72 hours for privacy purposes. As the web service uses SBFC in the background, only the converters already integrated in SBFC are available. The web service works with the latest versions of Firefox (Linux only) and Google Chrome (Linux + Windows), whereas the support for Internet Explorer 8 (Windows) is still limited.
- via the Java class ConverterLink. This class allows the user to run conversion job and get the converted model directly as the return value of a method. This is convenient if SBFC is integrated in an existing application. A UML class diagram for the class ConverterLink and how to use it is shown in the attached Figure. Depending on user requirements, two types of methods for submitting conversion jobs can be selected within the class ConverterLink:
- blocking calls: the methods submitAndGetResultFromURL() and submitAndGetResultFromString() start a conversion job and wait until the model is converted and returned from the web server. For big models the conversion process can take several minutes.
- non blocking calls: the methods submitJobFromURL() and submitJobFromString() start a conversion job and immediately return a ConversionId object. The status of the conversion can be check later on with the getJobStatus() method.
For using SBFC with libsbml, the user must configure the environment variable LD_LIBRARY_PATH to include the path to your installed copy of libsbml. For Unix/Linux users, this environment variable is declared in the following files:
For Windows users, please consider the same files but with extension .bat instead of .sh .
SBFC can notify the user with three potential error messages to highlight problems during the conversion process or when reading / writing a model format. These error messages are thrown via the following SBFC exceptions:
- ConversionException: The conversion between two model formats was not successful;
- ReadModelException: The input model was not imported correctly;
- WriteModelException: The output model was not exported correctly.
Here is a list of converters that are not yet integrated with SBFC because they are either in an early stage of development or no longer maintained. Due to time limits we focused our work on the converters listed above. Detailed descriptions for each of these converters can be found by clicking on the converter name.
- MDL to SBML: this converter is depending on the SBML L3 spatial package and it is still in development
- SBML to XPP: outdated XSL version
- SBML to Dot: outdated XSL version
- SBML to BioPax: outdated XSL version
- SBML to Scilab: outdated XSL version
- SBML to CellML: outdated XSL version
- CellML to SBML: outdated XSL version
A Developer Guide about how to develop with SBFC can be found here.