Literature DB >> 21697129

JSBML: a flexible Java library for working with SBML.

Andreas Dräger1, Nicolas Rodriguez, Marine Dumousseau, Alexander Dörr, Clemens Wrzodek, Nicolas Le Novère, Andreas Zell, Michael Hucka.   

Abstract

SUMMARY: The specifications of the Systems Biology Markup Language (SBML) define standards for storing and exchanging computer models of biological processes in text files. In order to perform model simulations, graphical visualizations and other software manipulations, an in-memory representation of SBML is required. We developed JSBML for this purpose. In contrast to prior implementations of SBML APIs, JSBML has been designed from the ground up for the Java programming language, and can therefore be used on all platforms supported by a Java Runtime Environment. This offers important benefits for Java users, including the ability to distribute software as Java Web Start applications. JSBML supports all SBML Levels and Versions through Level 3 Version 1, and we have strived to maintain the highest possible degree of compatibility with the popular library libSBML. JSBML also supports modules that can facilitate the development of plugins for end user applications, as well as ease migration from a libSBML-based backend. AVAILABILITY: Source code, binaries and documentation for JSBML can be freely obtained under the terms of the LGPL 2.1 from the website http://sbml.org/Software/JSBML.

Entities:  

Mesh:

Year:  2011        PMID: 21697129      PMCID: PMC3137227          DOI: 10.1093/bioinformatics/btr361

Source DB:  PubMed          Journal:  Bioinformatics        ISSN: 1367-4803            Impact factor:   6.937


1 INTRODUCTION

The XML-based Systems Biology Markup Language (SBML, (Hucka )) is the de facto standard file format for the storage and exchange of quantitative computational models in systems biology, supported by more than 210 software packages to date (March 2011). Much of this success is due to its clearly defined specifications and the availability of libSBML (Bornstein ), a portable, robust, full-featured and easy-to-use library. LibSBML provides many methods for the manipulation and validation of SBML files through its Application Programming Interface (API). Primarily written in C and C++, libSBML also provides automatically generated language bindings for Java™, among other programming languages. However, the full platform independence brought by the use of Java is limited in libSBML because the binding is only a wrapper around the C/C++ core, implemented using the Java Native Interface (JNI). As a consequence, some software developers experience difficulties deploying portable libSBML-based Java applications. Several groups in the SBML community thus began to develop their own Java libraries for SBML. To avoid needless duplication, some of these groups recently pooled their efforts and created JSBML, an open-source project to develop a pure Java library for SBML. The primary aim of the project is to provide an API that maps all SBML elements to a flexible and extended Java type hierarchy. Where possible, JSBML strives for 100% compatibility with libSBML's Java API, to ease the transition from one library to the other. There are currently no plans to re-implement the more complex functionalities of libSBML, such as model consistency checking, SBML validation and conversion between different SBML Levels and Versions; separate community efforts are under way to provide such libSBML facilities via web services. The software produced by the project is freely available from http://sbml.org/Software/JSBML.

2 IMPLEMENTATION

A key achievement of the JSBML project is the development of an extended type hierarchy, designed from scratch based on the SBML specifications, but still following the naming conventions of methods and classes in libSBML. For each element defined in at least one SBML Level/Version combination, JSBML provides a corresponding class reflecting all its properties. SBML elements or attributes not part of higher SBML Levels (removed or made obsolete) are marked as deprecated. JSBML defines superclasses or interfaces for elements that share common properties. For instance, the interface NamedSBase does not directly correspond to a data type in one of the SBML specifications, but serves as the superclass of all SBase-derived classes that can be addressed by an identifier and a name. Similarly, all classes that may contain a mathematical expression implement the interface MathContainer. A full overview of this type hierarchy can be found in the Supplementary Material associated with this article. JSBML also supports SBML notes in XHTML format, as well as SBML annotations, including MIRIAM identifiers (Le Novère ) and SBO terms (Le Novère ). When building JSBML, the latest SBO OBO export can directly be downloaded and parsed (Holland ). The Model class provides several methods, all beginning with the name find*, for querying SBML elements. Filters enable users to search lists for elements that possess specific properties. All ListOf* elements in JSBML implement Java's List interface, making iteration and the use of generic Java types possible. Figure 1 demonstrates how the hierarchically structured content of an SBML file can be easily visualized in the form of a tree.
Fig. 1.

(a) The SBML parser in JSBML understands the hierarchical data structure of SBML; (b) Example for SBML test case 26. Using JSBML for reading and visualizing an SBML file. The type SBase extends the Java interfaces Serializable for saving JSBML objects in binary form or sending them over a network connection, Cloneable for creating deep object copies and TreeNode. The last interface allows callers to apply any recursive operation, such as using JTree for display [see (b) for an example].

(a) The SBML parser in JSBML understands the hierarchical data structure of SBML; (b) Example for SBML test case 26. Using JSBML for reading and visualizing an SBML file. The type SBase extends the Java interfaces Serializable for saving JSBML objects in binary form or sending them over a network connection, Cloneable for creating deep object copies and TreeNode. The last interface allows callers to apply any recursive operation, such as using JTree for display [see (b) for an example]. JSBML includes parsers that read mathematical formulas in both MathML format and an infix formula syntax. Internally, it converts formulas into an abstract syntax tree representation; it can write out the trees in MathML, infix and formula notations. In addition, although JSBML does not implement full-featured consistency checking of SBML models, it does throw Java exceptions in some situations to prevent users from creating invalid content. It implements a check for overdetermined models using the algorithm of (Hopcroft and Karp, 1973); this is also used to identify variables in algebraic rules. Further, JSBML can automatically derive the units of a mathematical expression. Whenever a property of some SBase is altered, an SBaseChangeEvent is fired that notifies dedicated listeners. As one possible application, graphical user interfaces could automatically react when the model is changed. Using modules, JSBML capabilities can be further extended; it can therefore be used as a communication layer between an application and libSBML or CellDesigner (Funahashi )—this also facilitates turning an existing application into a plugin for CellDesigner.

3 CONCLUSION

JSBML is an ongoing project that provides comprehensive and entirely Java-based data structures to read, write and manipulate SBML files. Its layered architecture allows for the creation of Java Web Start applications and CellDesigner plugins based on stand-alone programs with very little effort. New versions of SBMLsqueezer (Dräger ) and Biomodels Database (Li ) have already been released using JSBML. Many other projects are planned. Funding: National Institute of General Medical Sciences (NIGMS, USA); funds from EMBL-EBI (Germany, UK); Federal Ministry of Education and Research (BMBF, Germany) in the projects Virtual Liver and Spher4Sys (grant numbers 0315756 and 0315384C). The grant number for the NIH grant that was, among others, used for the JSBML article reads 2R01GM070923. Conflict of Interest: none declared.
  6 in total

1.  The systems biology markup language (SBML): a medium for representation and exchange of biochemical network models.

Authors:  M Hucka; A Finney; H M Sauro; H Bolouri; J C Doyle; H Kitano; A P Arkin; B J Bornstein; D Bray; A Cornish-Bowden; A A Cuellar; S Dronov; E D Gilles; M Ginkel; V Gor; I I Goryanin; W J Hedley; T C Hodgman; J-H Hofmeyr; P J Hunter; N S Juty; J L Kasberger; A Kremling; U Kummer; N Le Novère; L M Loew; D Lucio; P Mendes; E Minch; E D Mjolsness; Y Nakayama; M R Nelson; P F Nielsen; T Sakurada; J C Schaff; B E Shapiro; T S Shimizu; H D Spence; J Stelling; K Takahashi; M Tomita; J Wagner; J Wang
Journal:  Bioinformatics       Date:  2003-03-01       Impact factor: 6.937

2.  Minimum information requested in the annotation of biochemical models (MIRIAM).

Authors:  Nicolas Le Novère; Andrew Finney; Michael Hucka; Upinder S Bhalla; Fabien Campagne; Julio Collado-Vides; Edmund J Crampin; Matt Halstead; Edda Klipp; Pedro Mendes; Poul Nielsen; Herbert Sauro; Bruce Shapiro; Jacky L Snoep; Hugh D Spence; Barry L Wanner
Journal:  Nat Biotechnol       Date:  2005-12       Impact factor: 54.908

3.  LibSBML: an API library for SBML.

Authors:  Benjamin J Bornstein; Sarah M Keating; Akiya Jouraku; Michael Hucka
Journal:  Bioinformatics       Date:  2008-02-05       Impact factor: 6.937

4.  BioModels Database: An enhanced, curated and annotated resource for published quantitative kinetic models.

Authors:  Chen Li; Marco Donizelli; Nicolas Rodriguez; Harish Dharuri; Lukas Endler; Vijayalakshmi Chelliah; Lu Li; Enuo He; Arnaud Henry; Melanie I Stefan; Jacky L Snoep; Michael Hucka; Nicolas Le Novère; Camille Laibe
Journal:  BMC Syst Biol       Date:  2010-06-29

5.  BioJava: an open-source framework for bioinformatics.

Authors:  R C G Holland; T A Down; M Pocock; A Prlić; D Huen; K James; S Foisy; A Dräger; A Yates; M Heuer; M J Schreiber
Journal:  Bioinformatics       Date:  2008-08-08       Impact factor: 6.937

6.  SBMLsqueezer: a CellDesigner plug-in to generate kinetic rate equations for biochemical networks.

Authors:  Andreas Dräger; Nadine Hassis; Jochen Supper; Adrian Schröder; Andreas Zell
Journal:  BMC Syst Biol       Date:  2008-04-30
  6 in total
  31 in total

1.  Reconstructing genome-scale metabolic models with merlin.

Authors:  Oscar Dias; Miguel Rocha; Eugénio C Ferreira; Isabel Rocha
Journal:  Nucleic Acids Res       Date:  2015-04-06       Impact factor: 16.971

2.  The Units Ontology: a tool for integrating units of measurement in science.

Authors:  Georgios V Gkoutos; Paul N Schofield; Robert Hoehndorf
Journal:  Database (Oxford)       Date:  2012-10-10       Impact factor: 3.451

3.  libsbmljs-Enabling web-based SBML tools.

Authors:  J Kyle Medley; Joseph Hellerstein; Herbert M Sauro
Journal:  Biosystems       Date:  2020-04-24       Impact factor: 1.973

4.  Dysregulated signaling hubs of liver lipid metabolism reveal hepatocellular carcinoma pathogenesis.

Authors:  Sunjae Lee; Adil Mardinoglu; Cheng Zhang; Doheon Lee; Jens Nielsen
Journal:  Nucleic Acids Res       Date:  2016-05-23       Impact factor: 16.971

5.  Qualitative translation of relations from BioPAX to SBML qual.

Authors:  Finja Büchel; Clemens Wrzodek; Florian Mittag; Andreas Dräger; Johannes Eichner; Nicolas Rodriguez; Nicolas Le Novère; Andreas Zell
Journal:  Bioinformatics       Date:  2012-08-24       Impact factor: 6.937

6.  Tav4SB: integrating tools for analysis of kinetic models of biological systems.

Authors:  Mikołaj Rybiński; Michał Lula; Paweł Banasik; Sławomir Lasota; Anna Gambin
Journal:  BMC Syst Biol       Date:  2012-04-05

7.  Precise generation of systems biology models from KEGG pathways.

Authors:  Clemens Wrzodek; Finja Büchel; Manuel Ruff; Andreas Dräger; Andreas Zell
Journal:  BMC Syst Biol       Date:  2013-02-21

8.  KEGGtranslator: visualizing and converting the KEGG PATHWAY database to various formats.

Authors:  Clemens Wrzodek; Andreas Dräger; Andreas Zell
Journal:  Bioinformatics       Date:  2011-06-23       Impact factor: 6.937

9.  Controlled vocabularies and semantics in systems biology.

Authors:  Mélanie Courtot; Nick Juty; Christian Knüpfer; Dagmar Waltemath; Anna Zhukova; Andreas Dräger; Michel Dumontier; Andrew Finney; Martin Golebiewski; Janna Hastings; Stefan Hoops; Sarah Keating; Douglas B Kell; Samuel Kerrien; James Lawson; Allyson Lister; James Lu; Rainer Machne; Pedro Mendes; Matthew Pocock; Nicolas Rodriguez; Alice Villeger; Darren J Wilkinson; Sarala Wimalaratne; Camille Laibe; Michael Hucka; Nicolas Le Novère
Journal:  Mol Syst Biol       Date:  2011-10-25       Impact factor: 11.429

10.  Software support for SBGN maps: SBGN-ML and LibSBGN.

Authors:  Martijn P van Iersel; Alice C Villéger; Tobias Czauderna; Sarah E Boyd; Frank T Bergmann; Augustin Luna; Emek Demir; Anatoly Sorokin; Ugur Dogrusoz; Yukiko Matsuoka; Akira Funahashi; Mirit I Aladjem; Huaiyu Mi; Stuart L Moodie; Hiroaki Kitano; Nicolas Le Novère; Falk Schreiber
Journal:  Bioinformatics       Date:  2012-05-10       Impact factor: 6.937

View more

北京卡尤迪生物科技股份有限公司 © 2022-2023.