Skip Navigation


Bioinformatics Advance Access originally published online on February 5, 2008
Bioinformatics 2008 24(6):880-881; doi:10.1093/bioinformatics/btn051
This Article
Right arrow Abstract Freely available
Right arrow FREE Full Text (Print PDF) Freely available
Right arrow All Versions of this Article:
24/6/880    most recent
btn051v1
Right arrow Comments: Submit a response
Right arrow Alert me when this article is cited
Right arrow Alert me when Comments are posted
Right arrow Alert me if a correction is posted
Services
Right arrow Email this article to a friend
Right arrow Similar articles in this journal
Right arrow Similar articles in ISI Web of Science
Right arrow Similar articles in PubMed
Right arrow Alert me to new issues of the journal
Right arrow Add to My Personal Archive
Right arrow Download to citation manager
Right arrow Search for citing articles in:
ISI Web of Science (17)
Right arrowRequest Permissions
Google Scholar
Right arrow Articles by Bornstein, B. J.
Right arrow Articles by Hucka, M.
Right arrow Search for Related Content
PubMed
Right arrow PubMed Citation
Right arrow Articles by Bornstein, B. J.
Right arrow Articles by Hucka, M.
Social Bookmarking
 Add to CiteULike   Add to Connotea   Add to Del.icio.us  
What's this?

© The Author 2008. Published by Oxford University Press. All rights reserved. For Permissions, please email: journals.permissions@oxfordjournals.org

LibSBML: an API Library for SBML

Benjamin J. Bornstein 1,{dagger}, Sarah M. Keating 2,*,{dagger}, Akiya Jouraku 3 and Michael Hucka 2

1NASA Jet Propulsion Laboratory, 2Biological Network Modeling Center, California Institute of Technology, Pasadena, CA, USA and 3School of Fundamental Science and Technology, Keio University, Yokohama, Japan

*To whom correspondence should be addressed.


    ABSTRACT
 TOP
 ABSTRACT
 1 INTRODUCTION
 2 LIBSBML FEATURES
 3 IMPLEMENTATION AND...
 ACKNOWLEDGEMENTS
 REFERENCES
 

Summary: LibSBML is an application programming interface library for reading, writing, manipulating and validating content expressed in the Systems Biology Markup Language (SBML) format. It is written in ISO C and C++, provides language bindings for Common Lisp, Java, Python, Perl, MATLAB and Octave, and includes many features that facilitate adoption and use of both SBML and the library. Developers can embed libSBML in their applications, saving themselves the work of implementing their own SBML parsing, manipulation and validation software.

Availability: LibSBML 3 was released in August 2007. Source code, binaries and documentation are freely available under LGPL open-source terms from http://sbml.org/software/libsbml.

Contact: sbml-team{at}caltech.edu


    1 INTRODUCTION
 TOP
 ABSTRACT
 1 INTRODUCTION
 2 LIBSBML FEATURES
 3 IMPLEMENTATION AND...
 ACKNOWLEDGEMENTS
 REFERENCES
 
The Systems Biology Markup Language (SBML) is an XML-based format for encoding computational models of biochemical reaction networks (Finney et al., 2006; Hucka et al., 2003). It is today the de facto standard for exchanging and storing biological/biochemical models, allowing for easier systematic reuse of such models in systems biology research.

Since SBML is based on XML, software developers can potentially support SBML using off-the-shelf XML parser libraries. Nevertheless, it is more convenient and efficient for developers to start with a higher-level API tailored specifically to SBML and its distinctive features. We developed libSBML to address this need.

The availability of an application programming interface (API) library such as libSBML, presents an opportunity to go beyond simply providing support for reading, writing and manipulating SBML objects: many additional capabilities can be provided, such as checking the consistency and validity of models. Building these features directly into a popular and free API library helps to uniformly improve the quality of models being produced by the majority of SBML-using software.


    2 LIBSBML FEATURES
 TOP
 ABSTRACT
 1 INTRODUCTION
 2 LIBSBML FEATURES
 3 IMPLEMENTATION AND...
 ACKNOWLEDGEMENTS
 REFERENCES
 
LibSBML 3 is a mature software library providing a wealth of features and capabilities. We summarize some of them in the following paragraphs.

  1. Seamless support for different SBML levels and versions. With the continued evolution of SBML has come multiple SBML Levels and Versions within the Levels (Finney et al., 2006), with models ‘in the wild’ existing in all variants. LibSBML provides a uniform API that seamlessly covers all SBML Levels and Versions, making it significantly easier for software developers to support the different definitions in their applications.
  2. Support for multiple ways of handling SBML. LibSBML can read and write an SBML model to/from a file or string; create a model de novo; manipulate an existing model and (where possible) convert models between Levels and Versions of SBML.
  3. Object-oriented model structure. SBML model components are represented as an object hierarchy in libSBML mirroring SBML's structure. Each object class defines the member variables and methods applicable to that kind of SBML model component. For example, the Compartment object has member variables for the size, number of spatial dimensions and other attributes of an SBML compartment, and getter and setter methods provide the means of accessing, setting and unsetting the attributes’ values. An SBML model in libBSBML consists of an overall SBMLDocument object instance containing instances of ListOfComparments, ListOfSpecies, etc., each of which in turn contains lists of instances of the relevant objects.
  4. Support for all SBML constructs, including notes and annotations. SBML specifies that notes (for humans) and annotations (for software) can be attached to individual SBML components within a model. LibSBML provides two interchangeable approaches to handle the contents of notes and annotations: as text strings and as XML objects. This provides flexibility for calling applications and transparently addresses differences in the format of notes and annotations that arose over the course of SBML's evolution.
  5. Support for MathML and text-string mathematical formulas. Mathematical expressions are encoded using simple infix text strings in SBML Level 1 and using a subset of MathML (Ausbrooks et al., 2001) in SBML Level 2. LibSBML provides a uniform interface to both forms. It stores formulas internally using Abstract Syntax Trees (AST) and provides methods for reading and writing either text-string or MathML forms. LibSBML can also translate expressions between these two forms—a feature that application software developers find convenient.
  6. Validation of SBML. LibSBML uses the Visitor Pattern (Gamma et al., 1995) to provide a means of traversing the hierarchical object structure and applying validation and constraint tests to model components. This is used to validate an SBML model according to the Level and Version of SBML declared by the model. Validation checks include identifier consistency (e.g., making sure that all parameters are actually defined in the model), MathML consistency, unit consistency (see below) and many others. LibSBML 3 implements all the validation rules defined by the SBML Level 2 Version 3 specification (Hucka et al., 2007). Failures are reported using libSBML's uniform error reporting facility, which logs errors and warnings in the top-level SBMLDocument object. Finally, libSBML provides the scaffolding permitting user applications to define their own additional validators using the same framework employed internally by libSBML.
  7. Verification of unit consistency. LibSBML implements rules for performing unit and dimensional analysis to help ensure that a model's various components and mathematical formulae are self-consistent. The rules use the underlying validation and error reporting framework described above. Applications can opt to disable these checks if they prefer.
  8. Support for MIRIAM annotations. The Minimum Information Requested in the Annotation of biochemical Models (MIRIAM; Le Novère et al., 2005) defines guidelines for encoding and annotating quantitative models. LibSBML provides methods for creating and manipulating MIRIAM-compliant annotations. Relevant information can be specified using API methods and libSBML will generate the appropriate MIRIAM-compliant RDF annotations.
  9. Support for SBO. The Systems Biology Ontology (SBO; Le Novère et al., 2007) is a machine-readable ontology tailored for computational modeling in systems biology. Annotating a model with SBO terms adds semantic information that can permit better software interpretation of the model's mathematical structure and (potentially) the ability to translate a model between different mathematical frameworks. LibSBML provides API methods for adding and working with SBO terms in SBML models.

In addition to these features, LibSBML provides many other capabilites. Interested readers are invited to visit the libSBML website (http://sbml.org/software/libsbml) to learn more.


    3 IMPLEMENTATION AND DISTRIBUTION
 TOP
 ABSTRACT
 1 INTRODUCTION
 2 LIBSBML FEATURES
 3 IMPLEMENTATION AND...
 ACKNOWLEDGEMENTS
 REFERENCES
 
LibSBML is written in ISO C and C++, and currently provides language bindings for Common Lisp, Java, Python, Perl, MATLAB and Octave. It requires installing an underlying XML parser library and can be used with libXML (http://xmlsoft.org/), Expat (http://expat.sourceforge.net/) or Xerces (http://xerces.apache.org/). The library is supported on Linux, Windows and MacOS X, and is distributed in both source-code form and as precompiled dynamic libraries for Windows. Extensive user documentation is provided; it is generated with Doxygen (van Heesch, 2007) and available both online and for downloading.

LibSBML is distributed under the Lesser GNU Public License (LGPL), which among other benefits, allows the software to be used in proprietary application software.


    ACKNOWLEDGEMENTS
 TOP
 ABSTRACT
 1 INTRODUCTION
 2 LIBSBML FEATURES
 3 IMPLEMENTATION AND...
 ACKNOWLEDGEMENTS
 REFERENCES
 
We warmly thank the following individuals for code contributions and bug fixes: Frank Bergmann, Bill Denney (Octave language bindings), Andrew Finney, Christoph Flamm (Perl language bindings), Ralph Gauges (SBML Layout extension support), Martin Ginkel (Lisp bindings), Damon Hachmeister, Johan Hattne, Stefan Hoops (first interface to the Expat XML parser), Ben Kovitz, Konstantin Kozlov, Michael Lawrence, Rainer Machné, and Jacek Puchalka. We also thank all other people who used, tested, reported, and otherwise contributed to the development of libSBML over the years. The development of libSBML has been supported by the following organizations: the National Institutes of Health (USA) under grants R01 GM070923 and R01 GM077671; the International Joint Research Program of NEDO (Japan); the JST ERATO-SORST Program (Japan); the Japanese Ministry of Agriculture; the Japanese Ministry of Education, Culture, Sports, Science and Technology; the BBSRC e-Science Initiative (UK); the DARPA IPTO Bio-Computation Program (USA); the Army Research Office's Institute for Collaborative Biotechnologies (USA); the Air Force Office of Scientific Research (USA); the California Institute of Technology (USA); the University of Hertfordshire (UK); the Molecular Sciences Institute (USA); the Systems Biology Institute (Japan); and Keio University (Japan).

Conflict of Interest: none declared.


    FOOTNOTES
 
Associate Editor: Olga Troyanskaya

{dagger}The first two authors should be regarded as First Author. Back

Received on January 13, 2008; revised on January 13, 2008; accepted on January 31, 2008

    REFERENCES
 TOP
 ABSTRACT
 1 INTRODUCTION
 2 LIBSBML FEATURES
 3 IMPLEMENTATION AND...
 ACKNOWLEDGEMENTS
 REFERENCES
 

    Ausbrooks R, et al. Mathematical Markup Language (MathML) Version 2.0. (2001) 2nd edn. W3C Recommendation October 21, 2003.

    Finney A, et al. Software Infrastructure for effective communication and reuse of computational models. In: System Modeling in Cell Biology: From Concepts to Nuts and Bolts.—Szallasi Z, Stelling J, Periwal V, eds. (2006) Cambridge, MA: MIT Press. 357–378.

    Gamma E, et al. Design Patterns: Elements of Reusable Object-Oriented Software. (1995) Boston: Addison Wesley.

    Hucka M, et al. The systems biology markup language (SBML): a medium for representation and exchange of biochemical network models. Bioinformatics (2003) 19:524–531.[Abstract/Free Full Text]

    Hucka M, et al. Systems Biology Markup Language (SBML) Level 2: Structures and Facilities for Model Definitions. (2007) Available from Nature Precedings. http://hdl.nature.com/10101/npre.2007.58.2.

    Le Novère N, et al. Minimum information requested in the annotation of biochemical models (MIRIAM). Nat. Biotechnol (2005) 23:1509–1515.[CrossRef][Web of Science][Medline]

    Le Novère N, et al. Adding semantics in kinetics models of biochemical pathways. In: 2nd International ESCEC Workshop on Experimental Standard Conditions on Enzyme Characterizations.—Kettner C, Hicks MG, eds. (2007) Rüdesheim, Germany: Beilstein Institut.

    van Heesch D. Doxygen. (2007) Available via the World Wide Web at http://www.stack.nl/~dimitri/doxygen/index.html.


Add to CiteULike CiteULike   Add to Connotea Connotea   Add to Del.icio.us Del.icio.us    What's this?


This article has been cited by other articles:


Home page
BioinformaticsHome page
A. L. Lister, M. Pocock, M. Taschuk, and A. Wipat
Saint: a lightweight integration environment for model annotation
Bioinformatics, November 15, 2009; 25(22): 3026 - 3027.
[Abstract] [Full Text] [PDF]


Home page
Brief BioinformHome page
G. Alterovitz, T. Muso, and M. F. Ramoni
The challenges of informatics in synthetic biology: from biomolecular networks to artificial organisms
Brief Bioinform, November 11, 2009; (2009) bbp054v1.
[Abstract] [Full Text] [PDF]


Home page
BioinformaticsHome page
C. J. Myers, N. Barker, K. Jones, H. Kuwahara, C. Madsen, and N.-P. D. Nguyen
iBioSim: a tool for the analysis and design of genetic circuits
Bioinformatics, November 1, 2009; 25(21): 2848 - 2849.
[Abstract] [Full Text] [PDF]


Home page
BioinformaticsHome page
T.-S. Jung, H. C. Yeo, S. G. Reddy, W.-S. Cho, and D.-Y. Lee
WEbcoli: an interactive and asynchronous web application for in silico design and analysis of genome-scale E.coli model
Bioinformatics, November 1, 2009; 25(21): 2850 - 2852.
[Abstract] [Full Text] [PDF]


Home page
BioinformaticsHome page
N. Soranzo and C. Altafini
ERNEST: a toolbox for chemical reaction network theory
Bioinformatics, November 1, 2009; 25(21): 2853 - 2854.
[Abstract] [Full Text] [PDF]


Home page
BioinformaticsHome page
L. P. Smith, F. T. Bergmann, D. Chandran, and H. M. Sauro
Antimony: a modular model definition language
Bioinformatics, September 15, 2009; 25(18): 2452 - 2454.
[Abstract] [Full Text] [PDF]


Home page
BioinformaticsHome page
N. Swainston and P. Mendes
libAnnotationSBML: a library for exploiting SBML annotations
Bioinformatics, September 1, 2009; 25(17): 2292 - 2293.
[Abstract] [Full Text] [PDF]


Home page
J R Soc InterfaceHome page
L. Endler, N. Rodriguez, N. Juty, V. Chelliah, C. Laibe, C. Li, and N. Le Novere
Designing and encoding models for synthetic biology
J R Soc Interface, August 6, 2009; 6(Suppl_4): S405 - S417.
[Abstract] [Full Text] [PDF]


Home page
J R Soc InterfaceHome page
M. Pedersen and A. Phillips
Towards programming languages for genetic engineering of living cells
J R Soc Interface, August 6, 2009; 6(Suppl_4): S437 - S450.
[Abstract] [Full Text] [PDF]


Home page
BioinformaticsHome page
A. Drager, H. Planatscher, D. Motsou Wouamba, A. Schroder, M. Hucka, L. Endler, M. Golebiewski, W. Muller, and A. Zell
SBML2LATEX: Conversion of SBML files into human-readable reports
Bioinformatics, June 1, 2009; 25(11): 1455 - 1456.
[Abstract] [Full Text] [PDF]


Home page
Nucleic Acids ResHome page
P. Kumar, B. C. Han, Z. Shi, J. Jia, Y. P. Wang, Y. T. Zhang, L. Liang, Q. F. Liu, Z. L. Ji, and Y. Z. Chen
Update of KDBI: Kinetic Data of Bio-molecular Interaction database
Nucleic Acids Res., January 1, 2009; 37(suppl_1): D636 - D641.
[Abstract] [Full Text] [PDF]


Home page
BioinformaticsHome page
X. Zhou and Z. Su
tCal: transcriptional probability calculator using thermodynamic model
Bioinformatics, November 15, 2008; 24(22): 2639 - 2640.
[Abstract] [Full Text] [PDF]


Home page
BioinformaticsHome page
A. D. Hill, J. R. Tomshine, E. M. B. Weeding, V. Sotiropoulos, and Y. N. Kaznessis
SynBioSS: the synthetic biology modeling suite
Bioinformatics, November 1, 2008; 24(21): 2551 - 2553.
[Abstract] [Full Text] [PDF]


This Article
Right arrow Abstract Freely available
Right arrow FREE Full Text (Print PDF) Freely available
Right arrow All Versions of this Article:
24/6/880    most recent
btn051v1
Right arrow Comments: Submit a response
Right arrow Alert me when this article is cited
Right arrow Alert me when Comments are posted
Right arrow Alert me if a correction is posted
Services
Right arrow Email this article to a friend
Right arrow Similar articles in this journal
Right arrow Similar articles in ISI Web of Science
Right arrow Similar articles in PubMed
Right arrow Alert me to new issues of the journal
Right arrow Add to My Personal Archive
Right arrow Download to citation manager
Right arrow Search for citing articles in:
ISI Web of Science (17)
Right arrowRequest Permissions
Google Scholar
Right arrow Articles by Bornstein, B. J.
Right arrow Articles by Hucka, M.
Right arrow Search for Related Content
PubMed
Right arrow PubMed Citation
Right arrow Articles by Bornstein, B. J.
Right arrow Articles by Hucka, M.
Social Bookmarking
 Add to CiteULike   Add to Connotea   Add to Del.icio.us  
What's this?