Rahul Sharma (Editor)

JSBML

Updated on
Edit
Like
Comment
Share on FacebookTweet on TwitterShare on LinkedInShare on Reddit
Developer(s)
  
The JSBML Team

Operating system
  
platform independent

License
  
LGPL License v2.1

Written in
  
Java™

Type
  
XML parser library

JSBML

Initial release
  
February 1, 2011; 6 years ago (2011-02-01)

JSBML (Java Systems Biology Markup Language) is an open-source Java™ (API) for the SBML (Systems Biology Markup Language ) format. Its API strives to attain a strong similarity to the Java binding of the corresponding library libSBML, but is entirely implemented in Java and therefore platform independent. JSBML provides an elaborated abstract type hierarchy, whose data types implement or extend many interfaces and abstract classes from the standard Java library. In this way, JSBML integrates smoothly into existing Java projects, and provides methods to read, write, evaluate, and manipulate the content of SBML documents.

Contents

Development

In May 2009 the SBML team conducted a community survey for requests of potential further software development. It turned out that, even though the library libSBML provides a generated binding for the programming language Java™, its internal C code makes it difficult to implement platform independent or Web Start applications.

Around that time, several groups from multiple institutes had already implemented small Java versions of libSBML, each being a customized library covering the needs of the particular research project. In order to avoid unnecessary duplications of work and to unify existing development, the international community project JSBML was launched in September 2009, mainly by groups from EBI, Caltech, and the University of Tuebingen.

Since JSBML has been implemented considerably later than the first version of libSBML, it could therefore benefit from the existence of the specifications of SBML in the Levels 1-3. Hence, JSBML has not just been developed by porting existing C code from the libSBML project into a new Java™. Instead, the developers used this as a chance to completely redesign the class and API structure. This is why JSBML provides a much richer abstract type hierarchy compared to libSBML. Furthermore, the development of JSBML enabled making design decisions that are not possible in libSBML because no backward compatibility had to be considered at this time.

The first stable release version 0.8 of JSBML was made publicly available for download in February 2011. Since then, support for multiple SBML extension packages is being implemented and will be included with the release of JSBML 1.0.

Aims

The development of JSBML is driven by three aims:

  1. Provide a pure Java API without any native dependency.
  2. Achieve the highest possible compatibility to libSBML but at the same time make the library behave like other native Java libraries, i.e., as expected by experienced Java developers.
  3. Support for all level/version combinations and extension packages of SBML

Usage

The following example assumes that a JAR file of JSBML has been included into the class path and that a local installation of a Java Virtual Machine is available on the platform where the code is executed.

References

JSBML Wikipedia