Prof Darren Wilkinson Professor of Stochastic Modelling
School of Mathematics, Statistics and Physics
Newcastle University

Software / SBML-shorthand

mod2sbml.py and sbml2mod.py

This page describes a "shorthand" version of SBML that is much easier to read and write by hand than real SBML, together with a software tool that translates the shorthand model description to real SBML.

It isn't really meant as a complete alternative to GUI model-building tools. It is just a useful tool for rapid building of essential model structure. Once the basics are defined, you can translate to SBML and load up in the GUI tool of your choice.

Example

The following is a complete description of a simple enzyme-kinetics model using the shorthand notation.
@model:2.3.1=MichaelisMentenKinetics "Michaelis-Menten Kinetics"
@compartments
 cell=1
@species
 cell:Substrate=1000
 cell:Enzyme=100
 cell:Complex=0
 cell:Product=0
@parameters
 k1=1
 k1r=2
@reactions
@rr=SubstrateEnzymeBinding "Substrate-enzyme binding"
 Substrate+Enzyme -> Complex
 k1*Substrate*Enzyme-k1r*Complex
@r=Conversion
 Complex -> Product + Enzyme
 k2*Complex : k2=3
You can download this example: mm.mod. Using the translation tool below, this model translates to this SBML.

Latest SBML-shorthand specification

All previous versions are available.

mod2sbml.py model translation tool

Note that this translator is written in Python, so you need a working Python environment including libSBML version >= 4.1.0 (and < 5.0.0) and the libSBML Python bindings. N.B. This is for libSBML version 4.1.x! The libSBML API is currently undergoing a period of rapid change, and so the version of libSBML you have really matters. If you are still using libSBML version 3.x.x, you will need a previous version of the code.

sbml2mod.py

Obviously, as the shorthand specification does not contain all SBML features, there is likely to be loss involved. However, there should be no semantic loss in the round-trip SBML-sh -> SBML -> SBML-sh. ie. doing a mod2sbml.py conversion followed by a sbml2mod.py conversion should get back to a shorthand file that is semantically equivalent to the original. sbml2mod.py works very similarly to mod2sbml.py, so no separate documentation should be necessary.

Darren J Wilkinson Book: Stochastic Modelling for
	      Systems Biology darren.wilkinson@ncl.ac.uk
http://www.staff.ncl.ac.uk/d.j.wilkinson/
tinyurl.com/darrenjw

Site design and content Copyright © 2008-2017, Darren Wilkinson