— the global portal for all things SBML


The current document defines the package multi Version 1 of SBML Level 3 Version 1.

Graphical and typographical conventions

We use the following typographical conventions to distinguish objects and data types from other entities:

Class Names of classes begin with a capital letter and are printed in a bold, sans-serif typeface.
attribute Names of attributes begin with a lowercase letter and are printed in a bold, italic, sans-serif typeface.
value CDATA (character data (see, that is the textual content of an element or the value of an attribute, is printed in an italic, sans-serif typeface.
Examples of XML code are surrounded by a boxes and have a different background color than the rest of the text.

Some SpeciesTypes can represent binding sites. Those binding sites can be linked to other binding sites. In this document, a binding site can be represented in four different contexts:

A binding site declared as explicitly unbound is represented with a

white background.

A binding site declared as either bound or unbound is represented

with a grey background.

A binding site declared as bound to another undefined binding site

is represented with a black background.

A binding site bound declared as bound to a defined binding site is represented with a black background and a black edge linking it to the other binding site.

Throughout the text, the American spelling is used rather than the British one.


This package multi addresses two different — though related — problems, commonly encountered when trying to model biological processes:

  • The representation of entities that can exist under different states affecting their behaviours (multi-state entities). Those entities carry state features, sometimes many of them, each able to take different values. This may result in a combinatorial explosion of alternative states taken by the entities.
  • The creation and behaviour of complexes made up of different components (multi-component entities). The rules of assembly may lead to an unbounded list of species, with the number of components and their topology impossible to precise before the simulation.

As a simple example of multi-state multi-component entity, let’s consider a ligand-gated ion channel with only one feature, the pore, that can adopt three different values, closed , opened and desensitized . In addition to this state feature, the channel can be bound to a scaffold through an anchor.

Example of a molecular entity carrying a multi-valued variable and containing another entity.
Example of a molecular entity carrying a multi-valued variable and containing another entity.

Taking into account the different values for the state feature, plus the status of the anchoring site (bound or not), this receptor can exist under six different states:

  1. free, closed
  2. free, open
  3. free, desensitized
  4. anchored, closed
  5. anchored, open
  6. anchored, desensitized

With the SBML core, any reaction involving the receptor, such as binding to a ligand, will have to be written six times. However, some of the state features and/or bonds may not affect the binding of the ligand, but the reactions have to be enumerated nevertheless, if we want to keep track of all the populations. Writing all the possibilities can be in the best case just exhausting, and in the worst case plainly impossible due to the combinatorial explosion. If an entity possesses 4 bivalued features and 2 tri-valued features, the number of possible state is 24x32. A dodecamer of CaMKII with 5 different characteristics taking two values (e.g. activity, binding to calmodulin and to ATP, phosphorylations on threonin 286 and 306) exhibits 60 state features, and consequently a billion of billion possible states. Writing such a model by enumerating all possible states and reactions is plainly impossible, and one needs a way to describe only the relevant states of this species rather than all the possible ones.

Another problem addressed by the package multi is the unbounded list of multi-component entities. Let's imagine a situation where we would like to model the growth of microtubules from dimers of tubulin. We cannot possibly enumerate all the possible microtubules of different lengths. Furthermore, the length of a microtubule does not affect the rate with which a new dimer of tubulin is incorporated. The only thing we need to encode is the binding between a tubulin dimer incorporated in a microtubule and a free tubulin dimer.

Example of a reaction involving entities with undefined binding status.
Example of a reaction involving entities with undefined binding status.

In the schema above, the grey binding site is either bound or unbound, and it can be bound to another tubulin dimer or a microtubule containing 100 tubulin dimers.

To handle the problems described above a field of modeling was developed, called rule-based modeling [1]. The main idea of rule-based modeling is to write down the rules that reactions must obey rather than the reactions themselves. And example of language used to describe rule-based models in biology is BioNetGen [2]. Another approach to avoid the combinatorial explosion of possible cases, is to use multi-agent modeling, where one represent all the interacting entities individually rather than pools. It the number of possible cases exceeds the number of entities, this method, otherwise verbose, become parsimonious. Example of multi-agent software used in biology are StochSim [3, 4] and Simmune [5, 6].

The graphical equivalent of the package multi Version 1 of SBML Level 3 Version 1 is the SBGN Entity Relationship language.

Finally, the package multi permit to encode entities that are made of components belonging to different compartments. Those entities cannot be species, since a species is attached to a single compartment, and the compartments in SBML Level 3 Version 1 are not overlapping. In multi, speciesTypes representing species attached to different compartments can be linked.

Past work on this problem or similar topics

Proposals for supporting multistates and multicomponent species have a long history in SBML. Here is a reconstruction in chronological order:

  • In March 2004, before the 2nd SBML hackathon, Andrew Finney published an updated proposal to encode complex species made up of several components. Planed as an extension for SBML Level 3, the document also described SpeciesTypes that would later be incorporated to SBML Level 2, from version 2 onward.
  • In October 2004, Michael Blinov published, together with Jim Fader, Byron Goldstein, Andrew Finney and Bill Hlavacek, an alternative proposal for encoding multi-component species, that also contained some possibilities of encoding multistate features.
  • Anika Oellrich started to implement a new SBML L2 support for StochSim in spring 2007, storing multistate information in proprietary annotations. This led in June 2007 to a proposal for Level 3 by Le Nov&egravere and Oellrich, meant to work in conjunction with 2004 Finney's multicomponents proposal. The proposal was presented at the 12th SBML forum meeting. A light correction was published in December 2007.

Back to start page

Please use our issue tracking system for any questions or suggestions about this website. This page was last modified 11:49, 20 July 2010.