University Home
Manchester Centre for Integrative Systems Biology

Use of libSBML in Taverna workflows

Its possible to use the classes and methods within the Java binding of libSBML in Taverna workflows for automating the creation and manipulation of SBML models. The subset of classes and methods from libSBML that can be used during the construction of workflows is specified by an XML API file which is generated using the API consumer application.

User guide

The following information is available for using libsbml in Taverna workflows:

Installation of libsbml for use in Taverna

The use of libsbml 2.3.4 has been tested to work with the latest version of taverna 1.6.2. To enact SBML workflows, Taverna needs access to the Java binding of libSBML as well as to the underlying native library generated from the C and C++ source code for libsbml. Platform specific versions of libsbml 2.3.4 are available as zip files below. libSBML version 3.0 libraries will be made available in November 2007.

Installation of the libsbml libraries and configuration of Taverna varies according to your PC platform.

Windows XP

Extract the zip file in the lib directory of your taverna.home folder in Documents and Settings\username\Application Data\Taverna-1.6.2. This is followed by making the following changes highlighted in bold in the runme.bat file in your Taverna installation directory:

@echo off set ARGS=-Xmx300m set ARGS=%ARGS% set ARGS=%ARGS% set ARGS=%ARGS% "-Dtaverna.dotlocation=%~dp0\bin\win32i386\dot.exe" REM NB: Proxy configuration settings have now been reverted to being in conf/ REM Required for dependencies on libsbml set LIB_PATH=%APPDATA%\Taverna-1.6.2\lib set PATH=%PATH%;%LIB_PATH% set ARGS=%ARGS% "-Djava.library.path=%LIB_PATH%" java %ARGS% -jar "%~dp0\taverna-bootstrap-" %*


For Linux, its zip file should be extracted into your $HOME/.taverna-1.6.2/lib folder. Your Taverna script should then be edited with the text highlighted in bold as follows:

(..) # Load customised properties if they exist if [ -f "$TAVERNA_HOME/" ] ; then source "$TAVERNA_HOME/" fi #Set to $TAVERNA_HOME/lib for shared installation LIB_PATH="$HOME/.taverna-1.6.2/lib" LD_LIBRARY_PATH="$LIB_PATH" export LD_LIBRARY_PATH ARGS="-Djava.library.path=$LIB_PATH" java $ARGS -jar "$TAVERNA_HOME/taverna-bootstrap-" $@


For those people using MacOS X, the libsbml native libraries should be placed in the same directory where your Taverna application bundle resides. So for example, if your Taverna application bundle is in /Applications/Taverna-1.6.2/ then the libxerces-c.27.dylib, libsbml.dylib and libsbmlj.jnilib files should be placed there. In constrast, the libsbml jar file should be placed in Taverna's lib folder which is found at /Users/username/Library/Application Support/Taverna-1.6.2/lib.

Automated installation of libsbml for Taverna

Installers for semi-automated installation of the libsbml java and native libraries for Windows, Linux and MacOS X are available below. These installers will also make the necessary changes to the runme.* taverna startup script where required. To use these installers, download the file relevant to your platform, and run the executable file following its extraction if required. You will need to inform the installer where your Taverna application has been installed on your filesystem.

libsbml XML API configuration file - libsbml2.3.4-taverna-api.xml

The XML API configuration file for libsbml can be downloaded from the link below. This file specifies those classes and methods from libsbml which can be used for the construction of workflows. To import the API consumer definition file into Taverna, right click on Available Processors in the Scavenger panel. Select Add new API Consumer and select the above libsbml definition file. A new branch labelled libsbml-2.3.4 will then be added to the scavenger panel, showing the libsbml class names and methods for use in SBML workflows.

These libsbml methods can then be used as workflow processors by right-clicking on them and adding them to your workflow model.

Example SBML workflow - libsbml-workflow.xml

This example workflow uses the classes and methods from libsbml version 2.3.4. The workflow superimposes microarray data from the study performed by Castrillo et al.,(2007) onto a SBML model of glycolysis to provide an insight into how the transcriptome measurements change from the perspective of a metabolic pathway.

The use of libSBML is captured in two nested processors, 'extractGeneNames' and 'writeSBML'. When these processors are expanded for viewing, the specific libSBML methods are shown in the sub-workflow. In the extractGeneNames subworkflow (see right) , libSBML classes and methods are being used in API consumer processors to get hold of a list of species in the SBML model prepared using Cell Designer . A beanshell processor called extractGeneNames is then used to parse the gene names of those species which are metabolic enzymes. These gene names are then used for querying the maxd database retrieving their correspondng gene expression levels.

In the second sub workflow (see right), API consumer processors are using libsbml classes and methods to pull out the annotations from the protein species nodes in the SBML model. A beanshell processor is then used to generate new annotations containing information on how the enzyme nodes should be coloured according to gene expression levels retrieved from the maxd database. libsbml API consumers are then used to generate a new SBML model containing these new annotated protein colours.

The final output of the workflow is an image of the new SBML model which has been rendered using the CellDesignerViz web service. Enzyme nodes in the metabolic pathway are coloured according to gene expression level such that the dark shades of green reflects low levels of gene expression whilst lighter shades of green denotes higher gene expression levels.


The installers were created using the InstallBuilder software with an open source licence kindly provided by BitRock.

We thank Hiroaki Kitano and Akira Funabashi for helpful discussions relating to the use of Cell Designer.