SBML - Systems Biology Markup Language

SBML is an exchange language for biochemical network models. It has various levels, each an elaboration of the previous; they are intended to complement and extend one another rather than outright replacing each other, although it seems level 2 is significantly superior to level 1.

Both levels 1 and 2 are nonspatial, although level 3, currently under development, does incorporate some spatial properties. Level 2 uses MathML! Level 2 seems like a pretty standard DSL-style evolution of level 1 — refinements in order to make the language fit the domain better, addition of more language-like properties etc etc.

The reaction networks described by SBML are made up of compartments, species and reactions. The compartments are "well-stirred volumes" (how exactly are they nonspatial?). Species have to be redefined in each compartment, even if they're notionally the same species — this seems similar to local channel names in ambients.

At level 3, some of the planned features include model composition, spatial features, diagrams (not meaningful though — just metadata hooks for GUIs to store their hand-edited layout information), and stochastic reactions. Level 2 was limited by combinatorial explosions, since species are per-compartment unique and can't be shared; also, no record can be made of the constitution of intermediate complexes: they're just blobs like everything else. They aren't even marked up to be recognisable as complexes, unless some non-standard extra-systemic convention is layered on top.

Another feature being considered for level 3 is generalised reactions, where for instance you might generalize over a species' various phosphorylation states.

There are two planned ways of composing models at level 3: by providing intermodel reactions, or by identifying species within the interlinked models. Level 3 composed models can be flattened to level 2 monolithic models.


  • SBML can build ODE models without using the subset of the language for reaction networks.
  • What units are used for measuring compartment size?
  • The language supports units — compound SI units! This made me think of the occasional LTU threads (1, 2) on the topic...
  • Does the SBML definition of "species" fit our "alternative" model?
  • He mentioned CellML as a related system.
  • The planned generalised reactions are kind-of tree transformers! They only move subunits around; wildcards and backreferences would be used to leave some parts of the species untouched.
  • It looks like the libSBML interop APIs might be generated by SWIG...
  • libSBML has test suites and a SBML model repository available, with over 90% of the CellML repository converted to SBML.
  • The next SBML forum will be 14-15 October, 2004, following ICSB 2004.
  • Apparently "continuous mathematical modelling" is an interesting related topic?
  • Are PDEs spatial (compared to ODEs)?