The SBML Java™ library. Concept of JSBML Compromise: –High compatibility to libSBML –Java-like...

Preview:

Citation preview

The SBML Java™ library

Concept of JSBML

• Compromise:– High compatibility to libSBML– Java-like library

• Main developers – Nicolas Rodriguez and Andreas Dräger– Both available during the meeting any time to

answer JSBML-related questions

How to get started?

Obtaining JSBML

• https://sourceforge.net/projects/jsbml/files/jsbml/0.8-b2/

• Download the file jsbml-0.8-b2-with-dependencies.jar.

• Once you have added it to the Java CLASSPATH, you can start working with JSBML.

Visualizing the content of an SBML file

Creating a new model

Listening to changes

public void sbaseAdded(SBase sb) { System.out.println("[ADD] " + sb);}

public void sbaseRemoved(SBase sb) { System.out.println("[RMV] " + sb);}

public void stateChanged(SBaseChangedEvent ev) {

System.out.println("[CHG] " + ev);}

Data types

Type hierarchy

Closer look at the interface SBase

Representation of mathematical equations as ASTNode

Closer look at the interface MathContainer

The relationship between instances of the interface Variable

Package structure

Modules

Download of modules

• LibSBML input/output:svn co "https://jsbml.svn.sourceforge.net/svnroot/jsbml/modules/libSBMLio/"

libSBMLio

• CellDesigner bridge:

svn co

"https://jsbml.svn.sourceforge.net/svnroot/jsbml/modules/cellDesigner" cellDesigner

• LibSBML compatibility module for switching between libSBML and JSBML still under development

LibSBML module

CellDesigner module

• Turning an existing application into a plugin for CellDesigner

• Only implementation of two abstract classes required

PluginAction

CellDesignerPlugin

CellDesigner

Loads on start

Declares

Invokes

Calls

CellDesigner module: Example for a PluginAction

CellDesigner module: Example for a CellDesignerPlugin

Some more details

XML parsing

/jsbml-trunk/resources/org/sbml/jsbml/resources/cfg/PackageParserNamespaces.xml

/jsbml-trunk/resources/org/sbml/jsbml/resources/cfg/SBMLCoreElements.xml

• Then each SBase has a readAttributes and writeAttributes methods that take care of reading and writing the attributes of the element.

• The parsing is done in:– org.sbml.jsbml.xml.stax: main entry point of the parsing, using Stax.– org.sbml.jsbml.xml.parsers: parser independent of the underlying XML

parsing library used.

How to contributeCreating a patch:• Checkout the sources from sourceforge

svn co “https://jsbml.svn.sourceforge.net/svnroot/jsbml/trunk jsbml“ JSBML

• Do your modifications, then create a patch file:svn diff > jsbml-patch.txt

• Attach it to a tracker item or send it through the development list.

Bug tracker: http://sourceforge.net/tracker/?group_id=279608&atid=1186776

Mailing lists: • jsbml-development@caltech.edu: public list with discussion about the

development of JSBML and support for users.• jsbml-team@caltech.edu: private list for the JSBML team were anybody can

send mails for support or bugs reports.

Thankshttp://sbml.org/Software/JSBML

1Center for Bioinformatics at the University of Tuebingen (ZBIT), Germany2European Bioinformatics Institute (EBI), Hinxton, United Kingdom3California Institute of Technology, Pasadena, California, United States

Publication under review:Andreas Dräger1, Nicolas Rodriguez2, Marine Dumousseau2, Alexander Dörr1, Clemens Wrzodek1, Nicolas Le Novère2, Andreas Zell1, and Michael Hucka3. JSBML: a flexible Java library for working with SBML. Submitted to Bioinformatics, March 2011.

All examples in this presentation will be made accessible on the web site.

Recommended