Download Links

Simulate 3D | SBW (Win32) | Bifurcation Discovery

Sunday, February 12, 2012

Systems Biology Workbench - 2.9.0

I’m pleased to announce the release of SBW 2.9.0. This release is available for the following platforms:

  • Windows
  • Linux x86 / x64
  • OS X
  • portable Apps

This release improves support for the exchange standards: SBGN-ML, SED-ML (including the nested proposal v2), and of course SBML. RoadRunner simulates a wider range of SBML models. You can get the new release from Sourceforge:

And the portable installer from:

Screenshots

image

image

image

Linux

Thanks to bitrock, we are finally able to provide a new range of linux installers (as well as 32bit and 64bit RPMs and DEB packages). When installing as root, SBW will be installed into /opt/sbw-2.9.0. Otherwise it will be available in the users home directory. In these directories you will find shortcuts to all available programs.

Dependencies: most SBW applications require Mono 2.10 to be installed (we recommend to install mono-complete). If you try to run SBW on an older linux distribution that does not include mono 2.10 in its repository here are some installation scripts for fedora and ubuntu that will help you to get it running, it should be easy enough to adapt them to centos when needed. Here the example for ubuntu:

mkdir mono-2.10
cd mono-2.10
wget --no-check-certificate https://github.com/nathanb/iws-snippets/raw/master/mono-install-scripts/ubuntu/install_mono-2.10.sh
chmod 755 install_mono-2.10.sh
./install_mono-2.10.sh

If this still seems to adventurous for you, I’ve created a 32bit and a 64bit virtual machine that runs SBW 2.9.0. It includes Live CDs, Virtual Machines and hard drive images. Simply start the machine and find the SBW shortcuts in the start menu. (They simply use the SBW rpm installer!).

OS X

We’ve listened to all your feedback about SBW being difficult to install. So this time around we don’t use any installation. Simply drag the SBW folder into your Applications folder and you are good to go.

As always, we recommend installing XQuartz and Mono prior to running SBW. The current Mono release 2.10.8 (and the 2.10.9 beta) unfortunately have a regression that causes the some application to stop working. The last known working release is 2.10.5 as available from:  http://download.mono-project.com/archive/2.10.5/download/

As for XQuartz, I’m using: http://xquartz.macosforge.org/trac/wiki/X112.7.0

Full Change Log

Feb 2012
Changes in Version 2.9.0
===========================

SBML Layout:
  - Reading Support for SBML Layout Extension (for SBML L3)
  - (at the moment the library only writes annotations though)
  - Stability and performance improvements for Layout Viewer.
  - SBGN upgrade
  - Bug Fix: Global Render Information were not correctly read
  - Stability: Now works even independently of SBW
   
SED-ML:
  - Support for Kisao Terms (full lookup and browsing of the
    hierarchy).
  - Bug Fixes for error correction facility

RoadRunner:
  - BugFix: non integral stoichiometry for L1 models
  - BugFix: model refused to load when non-L3 model used ids in speciesreferences
  - BugFix: L1 model with local parameters refused to load
  - BugFix: L1 model with non-integral stoichiometry was incorrect
  - BugFix: hasOnlySubstanceUnits was ignored in some places

NOM:
  - added methods:
    reorderRules : string reorderRules(string)
    inlineFunctionDefinitions : string inlineFunctionDefinitions(string)
  - (rules are automatically reordered by loadSBML, this will allow other modules
    to work correctly without code change)
  - fix: promote local to global parameters works for L1 models
   
Translators:
  - sort assignment rules
  - added command line option -f <sbmlfile> to translate the SBML file
    and write the file to stdout, so they can be used from the command line.
 
Portable:
  - we also have a version of SBW that you can install on a flash drive
    using portable apps.
 
All modules:
  - updated to use libSBML 5.4.0

JDesigner:
  - Fixed Chinese characters appearing when assignment rule was selected for editing.

Wednesday, January 18, 2012

SED-ML Nested Simulation Proposal v2

With the start of the new year it is time to get the Nested Simulation Proposal for SED-ML ready for wide-spread adoption. I believe nested simulations are vital for SED-ML so that we can cover a much larger variety of simulation experiments. I think it is especially important NOT to create a new simulation class for every single different simulation we perform on a model. By just defining two simulation classes:

  • One Step: which brings the model to the next desired output step.
  • Nested Simulation: which allows running over another simulation task, while changing multiple models parameters with computed values from ranges.

it is possible to construct a large number of simulations that are currently carried out.  I’ve taken these past weeks to fully flesh out all the details and the document is now available from Nature Proceedings:

http://precedings.nature.com/documents/4257/version/2

The new version describes in detail all attributes and elements and features a number of examples (see below)

All features have been implemented in libSedML. The major change is that internally libSedMLRunner no longer produces a simple 2d array of data, but a NuML result set.

NOTE: This proposal only covers the generation of the data, not the visualization. In other words this proposal allows to generate n-dimensional data sets, while currently our DataGenerators can not access the values. I believe the two issues should be handled in different proposals.

Examples

Just a brief overview of the examples:

Steady state scan image
Pulsing a parameter during a simulation image
Multiple Stochastic Traces image
Timecourse scan image
2D Steady State scan image

 

Availability

As indicated above, the proposal is implemented in libSedML, a also released a new version of the SED-ML Web Tools, that can simulate all of the above examples.

Just for completeness sake: here the link to the old version:

Doc:            http://precedings.nature.com/documents/4257/version/1
Examples:   http://frank-fbergmann.blogspot.com/2010/03/nested-simulation-experiments.html

FBC Package & SBMLToolbox 4.1.0 Getting Started

Today the SBML Team released version 4.1.0 of the SBML Toolbox. The news? It can be used with the SBML Level 3 Flux package. So what do you need to get it set up?

  1. Grab the beta FBC package for your system from:
  2. Grab SBML Toolbox 4.1.0: http://sourceforge.net/projects/sbml/files/SBMLToolbox/4.1.0/
  3. unzip / start Matlab / change into the toolbox directory, run the ‘install’ command.
  4. run the tests to be sure all is working fine for you:
    cd Test
    RunTest




Please let us know how things are going for you!

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 portableapps.com framework. Here the download:

http://sourceforge.net/projects/sbw/files/sbw/portable/

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

image

It will install the following applications:

image

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.

BAD NEWS:

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:

http://sysbioapps.dyndns.org/Translator

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:
http://sf.net/projects/sbml/files/libsbml/5.2.0/ 
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
  • LAYOUT
  • GROUPS
  • REQ
  • SPATIAL
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) {
16: 
17: }
18: virtual ~MyCustomValidator() {}
19: 
20: virtual SBMLValidator* clone() const { return new MyCustomValidator(*this); }
21: 
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;
26: 
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;
30: 
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) {
36:
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: ));
43:
44: numErrors++;
45: }
46: }
47: 
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()) {
54: 
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: ));
61: 
62: numErrors++;
63: 
64: }
65: }
66: 
67: return numErrors;
68: }
69: 
70:
71: };
72: 
73: 
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: }
82:
83: const char* filename = argv[1];
84: 
85: // read the file name
86: SBMLDocument* document = readSBML(filename);
87: 
88: // add a custom validator
89: document->addValidator(new MyCustomValidator());
90: 
91: // check consistency like before
92: int numErrors = document->checkConsistency();
93: 
94: // print errors and warnings
95: document->printErrors();
96: 
97: // return number of errors
98: return numErrors;
99: 
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.