Download Links

Simulate 3D | SBW (Win32) | Bifurcation Discovery | FluxBalance
Showing posts with label sed-ml. Show all posts
Showing posts with label sed-ml. Show all posts

Tuesday, April 15, 2014

Release of libSEDML 0.3.0

Just in time for HARMONY 2014 I am pleased to announce the release of libSEDML 0.3.0, the source of which is available for download from:

https://github.com/fbergmann/libSEDML/releases/tag/v0.3.0

New Features:

  • Support for SED-ML L1V2
  • Support for Notes / Annotations in both versions
  • Support for AddXML / ChangeXML

Bug fixes:

  • sorted issues in supporting both versions and their namespaces
  • numerous improvements

Thanks of course to Sarah Keating, without whom the project would not have been possible, to Bertrand Moreau for helping to improve the CMake build and the Python Bindings.

Please report any issues with libSEDML to:

https://github.com/fbergmann/libSEDML/issues

or directly to me.

Examples for the use of each of the API is available online. If you prefer there to be binaries available for any specific binding language / platform, please let me know.

logoSEDML_567

Wednesday, October 16, 2013

Applying the Scientific Method to Simulation Experiments …

I’ve just finished a one hour Rosa & Co webinar, and thought to post the slides below. You might also be interested in their other webinars, you can find the webinar archive here.

Monday, September 16, 2013

SED-ML Level 1 Version 2–Release Candidate

The COMBINE meeting has just started, and we finally made the release candidate for the SED-ML Level 1 Version 2 specification available. SED-ML L1V2 finally extends the simulation experiments covered by SED-ML to include any kind of repeat and perturbation experiment. Apart from that it also includes the possibility to fully parameterize simulations, by specifying algorithm specific parameters like relative and absolute tolerances of integrators. The specification is available online from:

http://tinyurl.com/sed-ml-l1v2-rc

On my end I’ve updated the libSedML, and the SED-ML Script editor and of course SBW to be able to simulate L1V2. Another major change has been applied to the SED-ML Web Tools that now also support L1V2, and are now also capable of simulating the repeatedTask concept with CellML additionally to SBML.

As always any feedback is appreciated.

SED-ML Logo 5

Wednesday, April 10, 2013

SED-ML Web Tools & COMBINE archive

A couple of days I've published the COMBINE archive project to github. Today, I'm proud to let you know, that you can now upload / download COMBINE archive also to the SED-ML web tools:

  http://sysbioapps.dyndns.org/SED-ML_Web_Tools/

If you rather try it offline on your Windows box, try the SED-ML Script editor:

  SetupSedML-win32-1.11.exe


Sunday, June 10, 2012

SED-ML Nested Proposal V3

A new version of the nested proposal is available immediately from:

http://identifiers.org/combine.specifications/sed-ml.proposal.nested-simulations.FB.version-3

The new version rephrases the Nested Simulation Class as Repeated Task, and addresses comments made by the community over the past couple of months (and of course the discussions at HARMONY 2012). As far as the scope is concerned, the current proposal is capable of describing all experiments possible with the previous version. Additionally through a new listOfSubTasks additional experiments can be run.

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

 

Of course there also is an implementation available in the SED-ML Web Tools, where all examples can be run directly.

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

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:

SED-ML-Web

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.]]>
</definition>

<similarTo>KISAO:0000020</similarTo>
...
<similarTo>KISAO:0000031</similarTo>




<ancestor>KISAO:0000000</ancestor>

<descendent>KISAO:0000261</descendent>
<descendent>KISAO:0000380</descendent>
<descendent>KISAO:0000064</descendent>
<descendent>KISAO:0000286</descendent>
</term>


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:



kisao.xml

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

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:

http://sysbioapps.dyndns.org/SED-ML%20Web%20Tools/Services/SedMLService.asmx

For the WSDL use:

http://sysbioapps.dyndns.org/SED-ML%20Web%20Tools/Services/SedMLService.asmx?WSDL

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

image

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:

http://sysbioapps.dyndns.org/SED-ML 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:

image

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:

http://sysbioapps.dyndns.org/SED-ML%20Web%20Tools/Home/Create

All that is needed is to fill out this form:

image

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:

sf.net/projects/libsedml/files/

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.

http://sysbioapps.dyndns.org/SED-ML%20Web%20Tools/Home/

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:

sf.net/projects/libsedml/files/

EditSED-ML

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.

Simulation

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.

Validation

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.

FixCommonErrors

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!

Friday, March 18, 2011

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:

http://sys-bio.org

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:

http://sys-bio.org/changelog.

As always we appreciate any feedback from users send to:

sbwteam@gmail.com

Enjoy

- Frank

Monday, March 8, 2010

Nested Simulation Experiments

A couple of days ago, I posted a proposal for a Nested Simulation Experiment for SED-ML. There I proposed that instead of defining a new Simulation class for each experiment you’d like to run, it would be better for implementers and modelers alike to be able to compose simulation experiments out of primitives. That is instead of defining:

  • a TimeCourse Simulation experiment like this:

    <timeCourse id="s1" name="time course definition" algorithm="KiSAO:0000019">
    <uniformRange start="0" end="100" numberOfPoints="10" />
    </timeCourse>
  • and next like this:

    <timeCourse id="s1" name="time course definition" algorithm="KiSAO:0000019">
    <vectorRange>
    <value> 1 </value>
    <value> 4 </value>
    <value> 10 </value>
    <value> 23 </value>
    <value> 42 </value>
    </vectorRange>
    </timeCourse>

one could compose these same experiments with primitives. (Just as an aside, note that in the cases above a simulator supporting the simulation experiment would have to implement a different set of operations).

The Primitives

I would envision three primitives:

  • OneStep: this calculates one further output step for the model from its current state. Note that this does NOT have to mean one integration step. The simulator is allowed to take as many steps as needed, all that has to be fulfilled with this simulation class, is that, at the end, the desired output time is reached.
  • SteadyState: This brings the model from its current state to a steady state. This simulation class will also just provide one output row for attached data generators, the state of the model at steady state.
  • SetValue: This is not a simulation class, but rather a convenience function, to change a model variable/parameter. In this way it is akin to ChangeMath / ChangeAttribute / ChangeXML we would have to discuss the actual syntax of it.

These primitives then are used in a nested simulation experiment to describe virtually any simulation experiment. Through the nested class construct. This construct allows to refer to:

  • A task object, which defines the model and simulation experiment to be called repeatedly,
  • A range object, which defines how often the simulation task above is to be called,
  • A SetValue construct describing how model variables are to be changed. Note:that the SetValue construct will have to be able to refer to the ranges current value.

Additionally, flags would indicate, whether the model is supposed to be reset after each run or not.

Examples

So far the proposal, so how would this look in an example. Lets go through each one and make up some examples as we go along.

  • OneStep: This is a simulation class, causing the model time variable to be adapted from the current time with a given step (that determines where the desired output point is):

    <listOfSimulations>
    <oneStep id="s1" algorithm="KiSAO:0000019" step="0.1"/>
    </listOfSimulations>

    when used in a task, this simulation task simulates the model from 0 to 0.1. The data generators are supposed to be calculated to yield the desired outputs for time point 0.1.
  • SteadyState: This is another simulation class, so we would define it as such. Unfortunately KISAO does not currently describe any steady state solvers and instead mostly integrators. So suppose in the following that:

    KISAO:0000099 = steady state solver (it would probably somewhere below KISAO:0000018)

    <listOfSimulations>
    <steadyState id="s2" algorithm="KiSAO:0000099" />
    </listOfSimulations>

    when used in a task, this simulation task brings the model to steady state. Once finished the data generators are supposed to be calculated to yield the desired output points for the model variables at steady state.
  • NestedSimulation: So how would this now look in a nested simulation experiment:
  • <listOfSimulations>
        <nestedSimulation id="s3" algorithm="KiSAO:0000019"
                             resetModel="false" originalTask="task1">
        <vectorRange>
             <value> 1 </value>
            <value> 4 </value>
            <value> 10 </value>
        </vectorRange>
        <setValue target="/sbml/model/listOfParameters/parameter[@id='w']">
         <listOfVariables>
             <variable id="current" name="current range value" target="#current" />
         <listOfVariables/>
         <math>
             <ci>current</ci>
         </math>
        </setValue>
       </nestedSimulation>
    </listOfSimulations>

    The nested simulation above, would carry out task1 3 times. Each time the value of a model parameter ‘w’ is varied by applying one of the three values.  If task1 specifies a steady state primitive, then this snippet produces the steady state values for w=1, w=4 and w=10.

    Or we could have used a uniform range to sweep the parameter. Or a functional range, to vary the parameter in logScale for example.

    If task1 would refer to a uniformTimeCourse Simulation then this would actually perform a simulation, where a parameter is changed in steps. After each time we would see how the model reacts to this discrete parameter change.

Note that you could even define a uniform time course simulation using this approach. Here task1 refers to a ‘oneStep’ simulation task. We would just vary the models time each time:

<listOfSimulations>
    <nestedSimulation id="s3" algorithm="KiSAO:0000019"
                         resetModel="false" originalTask="task1">
    <uniformRange start="0" end="100" numberOfPoints="10" />
    <setValue target="#time">
     <listOfVariables>
         <variable id="current" name="current range value" target="#current" />
     <listOfVariables/>
     <math>
         <ci>current</ci>
     </math>
    </setValue>
   </nestedSimulation>
</listOfSimulations>

You could even think about nesting the nestedSimulation experiments in order to for example perform 2D parameter scans or what have you.

Conclusions

Defining simulation experiments through these primitives will open up SED-ML and make it really useful. These primitives are easy to implement. In fact they are already implemented in available simulators. They are what is needed to implement the proposed Range construct anyway.

So let us not be shackled by having to each time define a new simulation class. The nested approach here will be what is needed to define most simulation experiments. By adding new primitives later on it can be easily extended.

I’m perfectly happy to open it up further. What one could envision would be multiple <setValue> elements to change multiple parameters. or even multiple ranges, though then each would have to have an id, to be used in the SetValue constructs. But I’m sure it could be sorted out.