Download Links

Simulate 3D | SBW (Win32) | Bifurcation Discovery | FluxBalance

Friday, December 23, 2011

LibSBML 5.3.0 Released & SBML Render Package

Just in time for Christmas we have just released LibSBML 5.3.0. The essentials are:

like for the 5.2.0 release we again provided an alternative source archive that contains updated snapshots of all currently available SBML Level 3 Packages:

SBML Rendering Package

The newest addition is a port of Ralph Gauges libSBML 4 implementation patch to the libSBML 5 package API. It supports both serialization as SBML Level 3 package and Level 2 annotation. However, there were some minor changes along the way:

  • Most changes involve the plugin API, instead of directly accessing the render information from the Layout objects, you use the plugin API:

      Model* model = doc->getModel();

    LayoutModelPlugin *plugin = (LayoutModelPlugin*) model->getPlugin ("layout");

    if (plugin == NULL || plugin->getNumLayouts() == 0)
    cerr << "The loaded model contains no layout information, please add these first." << endl;
    return 3;

    RenderListOfLayoutsPlugin *lolPlugin = (RenderListOfLayoutsPlugin*) plugin->getListOfLayouts()->getPlugin("render");
    if (lolPlugin != NULL && lolPlugin->getNumGlobalRenderInformationObjects() > 0)
    cout << "The loaded model contains global Render information. " << endl;

    the the plugin classes then have all the elements you would need. The Render Extension extends three classes:

    • ListOfLayouts: Entry point for the ListOfGlobalRenderInformation

    • Layout: Entry point for the ListOfRenderInformation

    • GraphicalObject: allows to set the role of a graphical object in order to pin a specific render style to it.

  • There also is a minor change with the way that the XML is written out. Each attribute defined in the Render specification, is written out as belonging to the “render” namespace. With one exception, while reading through the Render specification I could not find one different between the BoundingBox defined in the Layout extension and the one used by the Render LineEndings. So rather than re-implementing another BoundingBox in a different namespace, I made the LineEndings reuse the layout bounding box.

Let me know how the extension is working for you.

Sunday, December 11, 2011

SBW goes Portable

Portable Applications, are applications that you can easily take with you on your USB stick. This allows to use your applications on all Windows machines by simply plugging in the stick. I’m pleased to announce a first prototype that will make the Systems Biology Workbench available for the framework. Here the download:

To install, simply launch portable apps, and then click on “Install a new App”:


It will install the following applications:


While the launcher only exposes: JDesigner,Jarnac, JarnacLite, the Simulation Tool,  SBML Translator, SBML Layout Viewer, AutoLayout and the C# Inspector, the full SBW installation is available.

If you need custom launchers for more applications, let me know (Possible candidates: BioModels Importer, Jacobian Viewer, Convert SBML, Shutdown SBW).

Please let me know whether this is working for you.


Unfortunately we won’t be able to have SBW be part of the Portable Apps dictionary since some SBW components use .NET and portable apps do not consider .NET widely enough spread. (Even though it appears that it was on 90% of  Windows machines in 2010, and is now part of windows update, and thus *everyone* updating their machine is likely to have it installed.) But there goes me rambling …

Sunday, November 13, 2011

New SBML Translator Application online!

As second application I’m glad to announce the new SBML Translator application:

The application is a major redesign from the basic version.  Its features:

  • multiple file upload (with drag & drop for chrome and firefox)
  • translation of files via URL
  • pasting of SBML
  • Syntax Highlighting of the result
  • downloading of translation with proper mime-type / extension

The translators have been updated to ensure that assignment rules  are sorted correctly in the translation (an issue that seems to have caused problems in the past). As soon as the SBFC project comes along I plan to include their translators as well. As always a screencast says more than words:

Unable to display content. Adobe Flash is required.

As always I’d love to hear any feedback that you have!

Saturday, November 12, 2011

libSBML 5.2.0 released

This morning Sarah sent the announcement that a new version of libSBML is available for download from: 
New this time around is that we also provide binaries for all the SBML Level 3 Extension packages. So if you are interested in providing software support for:
  • FBC
  • COMP
  • REQ
you can simply download your favorite binaries (including language bindings) from the experimental directory.

New Features

There are two new features I want to bring to your attention, that is the facility for custom validators and converters. By inheriting form SBMLConverter or SBMLValidator it is now possible for your application to quickly check for specific aspects of documents that is important to you.
Here just one example on how you could check that your SBML model does not contain Algebraic Rules or Fast reactions if your application does not support them.
   1: /** 
2: * Declares a custom validator to be called. This allows you to validate
3: * any aspect of an SBML Model that you want to be notified about. You could
4: * use this to notify your application that a model contains an unsupported
5: * feature of SBML (either as warning).
6: *
7: * In this example the validator will go through the model and test for the
8: * presence of 'fast' reactions and algebraic rules. If either is used a
9: * warning will be added to the error log.
10: */
11: class MyCustomValidator : public SBMLValidator
12: {
13: public:
14: MyCustomValidator() : SBMLValidator() {}
15: MyCustomValidator(const MyCustomValidator& orig) : SBMLValidator(orig) {
17: }
18: virtual ~MyCustomValidator() {}
20: virtual SBMLValidator* clone() const { return new MyCustomValidator(*this); }
22: virtual unsigned int validate() {
23: // if we don't have a model we don't apply this validator.
24: if (getDocument() == NULL || getModel() == NULL)
25: return 0;
27: // if we have no rules and reactions we don't apply this validator either
28: if (getModel()->getNumReactions() == 0 && getModel()->getNumRules() == 0)
29: return 0;
31: unsigned int numErrors = 0;
32: // test for algebraic rules
33: for (unsigned int i = 0; i < getModel()->getNumRules(); i++)
34: {
35: if (getModel()->getRule(i)->getTypeCode() == SBML_ALGEBRAIC_RULE) {
37: getErrorLog()->add(SBMLError(99999, 3, 1,
38: "This model uses algebraic rules, however this application does not support them.",
39: 0, 0,
40: LIBSBML_SEV_WARNING, // or LIBSBML_SEV_ERROR if you want to stop
41: LIBSBML_CAT_SBML // or whatever category you prefer
42: ));
44: numErrors++;
45: }
46: }
48: // test for fast reactions
49: for (unsigned int i = 0; i < getModel()->getNumReactions(); i++)
50: {
51: // test whether value is set, and true
52: if (getModel()->getReaction(i)->isSetFast() &&
53: getModel()->getReaction(i)->getFast()) {
55: getErrorLog()->add(SBMLError(99999, 3, 1,
56: "This model uses fast reactions, however this application does not support them.",
57: 0, 0,
58: LIBSBML_SEV_WARNING, // or LIBSBML_SEV_ERROR if you want to stop
59: LIBSBML_CAT_SBML // or whatever category you prefer
60: ));
62: numErrors++;
64: }
65: }
67: return numErrors;
68: }
71: };
74: int
75: main (int argc, char *argv[])
76: {
77: if (argc != 2)
78: {
79: cout << endl << "Usage: addCustomValidator filename" << endl << endl;
80: return 1;
81: }
83: const char* filename = argv[1];
85: // read the file name
86: SBMLDocument* document = readSBML(filename);
88: // add a custom validator
89: document->addValidator(new MyCustomValidator());
91: // check consistency like before
92: int numErrors = document->checkConsistency();
94: // print errors and warnings
95: document->printErrors();
97: // return number of errors
98: return numErrors;
100: }

Linux Packages

For this release we provide again DEB and RPM files with binaries compiled on CentOS 4.6 and Ubuntu 8. This means they use a libc version that is reasonably old and will not cause problems on newer distributions.

Listening to feedback from our users the default install prefix has been changed to /usr. And we also include language bindings in them.

The plan was to use the OpenBuildService (OBS),  but unfortunately I was not yet able to create binaries with language bindings for all different distributions. I hope we can sort this out for the next release.

Saturday, November 5, 2011

Introducing sysbioapps/Layout

Ever since the SBW applications have been pulled from and are only available via IP I am working on a new version for each of these applications. Today I’ve made the new version of my Layout web application available: 

See it live:

Unable to display content. Adobe Flash is required.


The new application has the same basic features as the old one:

  • upload of an SBML file
  • displaying SBML Layout / SBML Render Format
  • displaying JDesigner / JDesigner 2 / CellDesigner annotation
  • generating a layout
  • exporting images / SVG / PDF

New in this version:

  • multiple file support
  • Chrome / Firefox: upload multiple files
  • Chrome / Firefox: drag and drop files onto the web site to upload
  • support for SBGN-ML


The new version has been implemented using ASP.NET MVC3  and JQuery / JQueryUI. The actual heavy lifting is performed by the SBML Layout Library. The PDF export is made possible through sbml2tikz, followed by a compilation by pdflatex.

As always any feedback is welcome.

Saturday, October 8, 2011

SED-ML Web Tools & KISAO

SED-ML uses KISAO to annotate simulation algorithms with information of what kind of simulation should be performed. Until today the SED-ML Web Tools only displayed the term identifier. This has changed, now the terms will be resolved and displayed:


To make this work I’ve modified LibSedML to resolve all KISAO terms found. This is now part of the Algorithm object, and can be accessed through the Term property.

Unfortunately KISAO is now only available in OWL format. This means people have to ‘reason’ over the document in order to find out even the most basic things. While the EBI provides a ‘libKISAO’, this library is only available for Java. 

In the end I’ve decided to convert the OWL file periodically in a more readable format:

 <term id='KISAO:0000377' 
name='one-step method'>
<definition> <![CDATA[A numerical method
for differential equations which uses one
starting value at each step.]]>




I will update that file periodically and have it compiled into libSedML, if you would like to have a look at it, you can access it here:


Friday, October 7, 2011 web applications down

The web site of the Saurolab was moved to a different machine the domain has been transferred to that machine. As a result, all applications that previously ran on are no longer available via their old URLs. The old server is still available via its IP:

That web site also still hosts the web applications:

In the coming weeks I will update these applications and move them over to

SBW Logo (short)-transparent

Monday, September 5, 2011

LibSBML 5.1.0 (beta) Language Bindings with Packages

COMBIN2011 is in full swing, a great meeting! I have heard from several people that they would like to play with the language bindings in different programming languages. With CMAKE it really is easy to create those bindings, so the archive below includes the Windows 32 bit bindings for:

  • Java
  • C#
  • Python (2.7)

Of the following beta packages:

  • comp
  • fbc
  • groups
  • layout
  • req
  • spatial

For more information of these packages please see the SBML Community wiki.

The bindings are build with libxml2 and compression libraries statically linked in, and the static MSVC bindings, so they won’t need any further dependencies. So without further ado, here the link: 

Please let me know about any problems with these bindings.

SBML logo

Thursday, August 25, 2011

SBGN-ML Render Comparison

SBGN-ML, the markup language developed as part of the libSBGN project, is nearing it’s Milestone 2 release. The SBML Layout library currently fully implements the Process Diagram notation of SBGN-ML. (Work on implementing Activity Flow / Entity Relationship diagrams has started but is not anywhere close to ready.)

This is to announce a new online application:

This is how the page looks:


The site displays all current SBGN files from ProcessDiagram, ActivityFlow and EntityRelationship. Only the SBMLLayout column will be rendered every time. Information from PathVisio and SBGN-ED are cached and updated periodically.

You can change the directory, that is being displayed by selecting the Customize button on the top of the page, these options are available:


Where a different URL can be chosen (you could for example display the examples from Milestone 1 or the general examples). You also can display or hide individual columns.

As last option you can directly upload or point to any URL of an SBGN file that should be rendered.


More at COMBINE …

Release of libSBML 5.1.0 (b0)

And another release done in time for ICSB and COMBINE. This latest release of libSBML not only contains a number of bug fixes and general improvements, such as:

  • the ability to obtain elements via getElementBySId() and getElementByMetaId()
  • a better way to build Matlab bindings

But also a new Conversion API.

Conversion API

So what is so special about it, and how would you use it? Previously we had a number of additional functions such as:

  • setLevelAndVersion
  • expandFunctionDefinitions
  • expandInitialAssignments

on the SBMLDocument. This meant that the document had to know how to do all these operations. Now we went ahead and introduced just one more level of abstraction:

  • SBMLDocument::convert(ConversionOptions options)

When called this function will look through a registry and find the best converter that matches the options (uhm … or none, if that might be the case, in which case the conversion would fail). Then that converter runs on the document to change it. And reports the status.

We have created converters for the tasks mentioned above: setLevelAndVersion, expandFunctionsDefinitions, expandInitialAssignments and also stripPackage (which removes a specific SBML L3 package from the current document).


The biggest advantage of course is that all these converters are available from a registry, that means:

  • it is possible to replace existing converters
  • and to add new ones!

I have started with a first flattening converter (not complete yet) for the COMP package. So this might be something that package writers might want to consider, perhaps they would like their package to serialize to a Level 2 annotation or some such thing!

More on this at COMBINE, I hope to see you there.

SBML logo

Tuesday, August 23, 2011

SBW 2.8.3 Released

Just before the ICSB, here a new release of the Systems Biology Workbench. Exciting for me, lots of updates on the standard support:

  • improved support for SBGN-ML
  • improved support for SED-ML
  • (some fixes for SBRML)

There also is a brand new JDesigner and Jarnac available, with lots of goodies. So please grab the new version from SourceForge before it gets cold:

SBW 2.8.3

Some of you might wonder what happened to the Linux and OSX release. I’m afraid it did not get done in time. Even though all modules and code has been updated to compile fine on 32 bit and 64bit Linux. So where is the holdup? As it turns out the latest distro’s don’t come with Mono 2.10, so I figured I wait a bit longer to make that release.

If someone needs those binaries sooner let me know and I upload them.

SBW Logo (short)-transparent

Wednesday, August 10, 2011

Release of the new SBML Online Validator

I’m pleased to announce that the new SBML online validator is now available for use:

The new validator has a number of new features, the most prominent:

  • it allows to queue longer running validations
  • it allows SBML models to be directly pasted
  • it also looks better thanks to JQuery / JQueryUI


Of course it is still possible to use the validator remotely. For this we provide a REST API as before:

and additionally it is also possible to use the service via a W3C web service. Here the link to the WSDL:

Sunday, July 31, 2011

SBML Software Index on

I’ve spend the weekend to update the sysbioapps website. It does provide a bit more information now and I’ve also fixed a minor issue with testing the SED-ML web services. Most notably however, I have placed the SBML Software Index online:


The Software Index provides the information from the SBML Software Survey (that collects information about available software that supports SBML) using the PivotViewer. This makes it possible to ask specific questions about the software and find the information much faster than it would be possible with the static matrix / summary information that was available until now.

I am well aware of the fact that many in the Systems Biology community do not consider Silverlight to be a viable platform: I have been told to rewrite the solution in Flash or JavaScript to make it possible to run it on more devices. However, I lack the time to do so at this moment, and so provide this information in the hopes that it will be of use to some.

How to use the Index

On the left hand side you will find a panel with the available categories:


Where you can simply search for specific information, or select options from the categories (in the screenshot above: Category, Dependencies, … SBML Import/Export) you are interested in. Each category contains several options (above we see Import and Export listed for the SBML Import / Export category). According to the pivot guidelines options within a category are supposed to be orthogonal. Unfortunately that is not the case for SBML software (as there are packages that support Import and Export for example). I still chose to place them together into one category (otherwise the number of categories would have become unwieldy). The consequence of this is that when you select both checkboxes, queries will be of the form:


rather than


With this in mind I believe it is still possible to query the data easily (although I’m aware of at least 2 people that would disagree with this statement). I will revisit this as soon as Silverlight 5 is released this promises a modification of that behavior.

I also would like to attract your attention to the controls on the top of the control:


this allows to configure how the information is displayed. You can choose to display the information either tiled to see all selected tools at a glance:


Or as a bar graph, which makes it easy to compare specific aspects of the tools (such as which tools are available on which platform):


I will continue to update the index whenever new entries are submitted.


Unfortunately at the time of this writing it was not possible to run the site using Moonlight. I know that the mono team is working tirelessly and so hope that this will be resolved in due time. Until then the index is only available on OSX and Windows. I’m sorry for the inconvenience.

Saturday, July 23, 2011

SED-ML Web Service

With the latest version of the SED-ML Web Services I also released a first version of a web service. It is online here:

For the WSDL use:

Current functionality includes converting between SED-ML and SED-ML script, validating SED-ML and to generate SED-ML from scratch.


You can access the methods using SOAP as well as REST (HTTP GET / HTTP POST) requests.

Updated SED-ML Web Tools (now with editing of SED-ML descriptions)

I’ve just released a new version of the SED-ML Web Tools they as always available from: Web Tools/Home/

The new version allows to edit the loaded model either by directly manipulating the XML, or by altering the model using the SED-ML Script Language.

Here a simple tutorial of creating a new SED-ML description from an SBML model and then modifying it using SED-ML Script.

Unable to display content. Adobe Flash is required.

As always I look forward to your feedback. To make it easier to collect I’ve signed up with idea informer, so there is now an orange feedback button right there on the page. That makes it easy to request your feature requests:


Sunday, July 3, 2011

Creating SED-ML for SBML models

I have just released a new version of the SED-ML Web Tools. This version creates SED-ML models for SBML files. Have a look here:

All that is needed is to fill out this form:


After that the SED-ML description can be executed, or downloaded. More advanced options (such as creating SED-ML descriptions for CellML models) is available in the SED-ML Script Editor:

Sunday, June 26, 2011

SED-ML Web Tools, SED-ML Script Editor & CellML Simulation Support

I’ve just upgraded the SED-ML Web Tools to a newer version.

This version includes several bug fixes, as well as an experimental version of CellML simulation support. The CellML simulation support is thanks to an executable based on the CellML API provided by David Nickerson.

To accommodate this there have been several changes to the LibSedML API, where previously the API would have properties like .SBML or functions like GetSBMLId(), now these functions are hidden behind a native interface IModelingLanguage that will be populated based on the Model source URN as provided in the SED-ML file. This should make it easy to provide support for other languages such as NeuroML and VCellML as well.

I have also released a new version of the SED-ML Script editor. It now allows to open SBML or CellML files directly, for which then a rudimentary SED-ML file will be generated. Later it can be modified for more complex experiments. It also provides SED-ML validation capabilities. This time it is a windows only release (since I only have the CellML simulator as windows binary). It is available from SourceForge:


Sunday, June 12, 2011

Introducing the SED-ML Web Tools

I’ve spend the weekend working on a new set of tools for simulating and Validating SED-ML files. They are online now under:

Let us first take a brief tour around the site:

Unable to display content. Adobe Flash is required.

Let me point just a couple of things.


The current implementation will only simulate SBML files, using RoadRunner. As soon as I find time to update it I will add additional simulators. Currently 3D plots won’t work either. And of course simulation will only work if the model files are either:

  • accessible via URNs
  • accessible via WEB
  • included in the archive.

Simulation already implements the Nested Simulation Proposal.


The new thing about the validation is that it also provides an option to fix common errors. This feature can be used to upgrade SED-ML files that were created before SED-ML L1V1 was released! Simply click on ‘Fix common errors’, and then download the file again.


Stay tuned for further updates, the next steps will be to Create and Edit simulation experiment descriptions. Also planned are web services that make it easy to create SED-ML files!

Wednesday, April 20, 2011

Flux Balance Constraints for libSBML 5.0.0

In time for todays session on SBML at HARMONY 2011 below a set of windows binaries that include libSBML 5.0.0 with the first beta version of the Flux Balance Constraints package. This time the package is implemented using the libSBML 5 extension API, which allows easy interaction with SBML Level 3 extensions.

For more information about the Flux Balance Constraints package, please have a look at the proposal page. On that page you find a detailed description about the current proposal, as well as links to examples.

Below you find full installers (including C#, Java, Perl and Python bindings) as well as python bindings for specific versions of Python.

If you don’t use Windows and still would like to try out the FBC package on your platform, I have a source package. In order to use this, download the libSBML 5 source distribution, as well as the fbc-package, then extract the fbc-package into the libsbml 5 source tree. Next, use CMake to configure the program to your needs, ensuring to set ENABLE_FBC=ON (or in the UI check the ENABLE_FBC option).

  1. libSBML 5.0.0 source release
  2. fbc-package-beta-1

Please let me know how the package is working for you.

Friday, March 18, 2011

Support for SBGN-ML

The recent release of SBW 2.8.2 adds support for SBGN-ML to the Systems Biology Workbench. This has been implemented using the SBML Layout Library, a .NET library that reads layout and rendering information from SBML models. This library is available separately and is used in many projects for example:

Of course it can also be used directly in any .NET application. The easiest way to get started is this:

  • install SBW (this will install the latest version of the layout lib)
  • start Visual Studio
  • add a reference to the SBMLExtension.dll as can be found in C:\Program Files (x86)\KGI\SBW\Layout to a new project (any .net language can be used).

Before we get started let us make sure we have some SBGN-ML files available, so at this point you would download a couple .sbgn files from the SBGN-ML repository.

The SBML Layout library converts all layout annotation it understands into the SBML Layout and Rendering Annotations. This is done by using:

var layout = Util.readLayoutFromFile(@”path/filename”);

where the  filename could be an SBML file with layout annotations (JDesigner / JDesigner 2 annotations, SBML Layout / SBML Rendering information, CellDesigner annotations (experimental)) or an SBGN-ML file.

So if you wanted to convert SBGN-ML to a PNG file all you would need is a bit of code like this:

var layout = Util.readLayoutFromFile(filename);
var name = Path.GetFileNameWithoutExtension(filename);
var outname = Path.Combine(outDir, name + ".png");


At this point the library does not allow to write out SBGN-ML, if that is a feature that is important to you, please let me know.

Systems Biology Workbench (SBW) 2.8.2 Released

We are pleased to announce the a release of the Systems Biology Workbench 2.8.2, available from:

The Systems Biology Workbench (SBW), is a software framework that allows heterogeneous application components-written in diverse programming languages and running on different platforms - to communicate and use each other's capabilities via a fast binary encoded-message system. Our goal was to create a simple, high performance, open-source software infrastructure which is easy to implement and understand. SBW enables applications (potentially running on separate, distributed computers) to communicate via a simple network protocol.

The interfaces to the system are encapsulated in client-side libraries that we provide for different programming languages.

Major changes in this release:

  • Updated JDesigner
  • Improved event support in RoadRunner,
  • Support of SBGN-ML (from SBML Layout)
  • Support of SED-ML L1V1 (from the Simulation Tool)

For a full list of changes see:

As always we appreciate any feedback from users send to:


- Frank