JSBML | |
Logo Size: | 150px |
Developer: | The JSBML Team |
Genre: | XML parser library |
Programming Language: | Java |
Operating System: | platform independent |
License: | LGPL License v2.1 |
Website: | sbml.org |
JSBML[1] [2] (Java Systems Biology Markup Language) is an open-source Java (API) for the SBML (Systems Biology Markup Language [3] [4] [5]) 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.
__TOC__
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 a team of students at the University of Tübingen led by Andreas Dräger.
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.
The development of JSBML is driven by three aims:
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.
The following coding example shows how an SBML file can be parsed and its content can be displayed in form of a tree in a window.The result can look, e.g., as the image on the right. It can be seen that the actual parsing of SBML is done in a single line, by calling a static method in the class SBMLReader. The creation of the tree for the display is also trivial, because the entire data structure in JSBML is organized as a tree. /** Displays the content of an SBML file in a */public class JSBMLvisualizer extends JFrame |