Skip to main page content
U.S. flag

An official website of the United States government

Dot gov

The .gov means it’s official.
Federal government websites often end in .gov or .mil. Before sharing sensitive information, make sure you’re on a federal government site.

Https

The site is secure.
The https:// ensures that you are connecting to the official website and that any information you provide is encrypted and transmitted securely.

Access keys NCBI Homepage MyNCBI Homepage Main Content Main Navigation
Guideline
. 2015 Sep 4;12(2):271.
doi: 10.2390/biecoll-jib-2015-271.

Systems Biology Markup Language (SBML) Level 2 Version 5: Structures and Facilities for Model Definitions

Guideline

Systems Biology Markup Language (SBML) Level 2 Version 5: Structures and Facilities for Model Definitions

Michael Hucka et al. J Integr Bioinform. .

Abstract

Computational models can help researchers to interpret data, understand biological function, and make quantitative predictions. The Systems Biology Markup Language (SBML) is a file format for representing computational models in a declarative form that can be exchanged between different software systems. SBML is oriented towards describing biological processes of the sort common in research on a number of topics, including metabolic pathways, cell signaling pathways, and many others. By supporting SBML as an input/output format, different tools can all operate on an identical representation of a model, removing opportunities for translation errors and assuring a common starting point for analyses and simulations. This document provides the specification for Version 5 of SBML Level 2. The specification defines the data structures prescribed by SBML as well as their encoding in XML, the eXtensible Markup Language. This specification also defines validation rules that determine the validity of an SBML document, and provides many examples of models in SBML form. Other materials and software are available from the SBML project web site, http://sbml.org.

PubMed Disclaimer

Figures

Figure 1
Figure 1
(Left) The general form of a UML class diagram. (Right) Example of a class diagram of the sort seen in SBML. SBML classes never use operators, so SBML class diagrams only show the top two parts.
Figure 2
Figure 2
Example illustrating composite aggregation: the definition of one class of objects employing another class of objects in a part-whole relationship. In this particular example, an instance of a Whole class object must contain exactly one instance of a Part class object, and the symbol referring to the Part class object is inside. In XML, this symbol becomes the name of a subelement and the content of the subelement follows the definition of Part.
Figure 3
Figure 3
Inheritance.
Figure 4
Figure 4
A more complex example definition drawing on the concepts introduced so far in this section. Both Sbml and Model are derived from SBase; further, Sbml contains a single Model object named model. Note the constraints on the values of the attributes in Sbml; they are enclosed in braces and written in XML Schema language. The particular constraints here state that both the level and version attributes must be present, and that the values are fixed as indicated.
Figure 5
Figure 5
Type ID expressed in the variant of BNF used by the XML 1.0 specification (Bray et al., 2004). The characters (and ) are used for grouping, the character * indicates “zero or more times”, and the character | indicates “or”. The production letter consists of the basic upper and lower case alphabetic characters of the Latin alphabet along with a large number of related characters defined by Unicode 2.0; similarly, the production digit consists of the numerals 0..9 along with related Unicode 2.0 characters. The CombiningChar production is a list of characters that add such things as accents to the preceding character. (For example, the Unicode character #x030A when combined with ‘a’ produces ‘å’.) The Extender production is a list of characters that extend the shape of the preceding character. Please consult the XML 1.0 specification (Bray et al., 2004) for the complete definitions of letter, digit, CombiningChar, and Extender.
Figure 6
Figure 6
The definition of the type SId. (Please see the caption of Figure 5 for an explanation of the notation.)
Figure 7
Figure 7
The definition of SBOTerm. The SBOTerm type consists of strings beginning with SBO: and followed by seven decimal digits. (Please see the caption of Figure 5 for an explanation of the notation.)
Figure 8
Figure 8
The definition of SBase. Please refer to Section 1.4 for a summary of the UML notation used here. Note that the order of appearance of subelements notes and annotation is significant in instances of objects derived from SBase: notes must always come before annotation. (This requirement arises from XML Schema 1.0.)
Figure 9
Figure 9
The definition of Sbml for SBML Level 2 Version 5. The class Model is defined in Section 4.2. Note that both Sbml and Model are subclasses of SBase, and therefore inherit the attributes of that abstract class.
Figure 10
Figure 10
The definition of Model and the many helper classes ListOfFunctionDefinitions, ListOfUnitDefinitions, ListOfCompartmentTypes, ListOfSpeciesTypes, ListOfCompartments, ListOfSpecies, ListOfParameters, ListOfInitialAssignments, ListOfRules, ListOfConstraints, ListOfReactions, and ListOfEvents.
Figure 11
Figure 11
The definition of class FunctionDefinition. The contents of the Lambda class is a single MathML lambda expression (or a lambda surrounded by a semantics element). A function definition must contain exactly one math element defined by the Lambda class; note also that Lambda is not derived from SBase, which means that the attributes defined on SBase are not available on the math element. A sequence of one or more instances of FunctionDefinition objects can be located in an instance of ListOfFunctionDefinitions in Model, as shown in Figure 10.
Figure 12
Figure 12
The definition of classes UnitDefinition and Unit. A sequence of one or more instances of UnitDefinition can be located in an instance of ListOfUnitDefinitions in Model (Figure 10). ListOfUnits has no attributes (beyond those it inherits from class SBase); it merely acts as a container for one or more instances of Unit objects. Note that the only permitted values of kind on Unit are the reserved words in Table 1 on page 38, but these symbols are excluded from the permitted values of UnitDefinition’s id because SBML’s unit system does not allow redefining the base units.
Figure 13
Figure 13
The definition of class CompartmentType. A sequence of one or more instances of CompartmentType objects can be located in an instance of ListOfCompartmentTypes in Model, as shown in Figure 10.
Figure 14
Figure 14
The definition of class SpeciesType. A sequence of one or more instances of SpeciesType objects can be located in an instance of ListOfSpeciesTypes in Model, as shown in Figure 10.
Figure 15
Figure 15
The definition of class Compartment. A sequence of one or more instances of Compartment objects can be located in an instance of ListOfCompartments in Model, as shown in Figure 10.
Figure 16
Figure 16
The definition of class Species. A sequence of one or more instances of Species objects can be located in an instance of ListOfSpecies in Model, as shown in Figure 10.
Figure 17
Figure 17
The definition of class Parameter. A sequence of one or more instances of Parameter objects can be located in an instance of ListOfParameters in Model, as shown in Figure 10.
Figure 18
Figure 18
The definition of class InitialAssignment. The contents of the Math class can be any MathML permitted in SBML; see Section 3.4.1. A sequence of one or more instances of InitialAssignment objects can be located in an instance of ListOfInitialAssignments in Model, as shown in Figure 10.
Figure 19
Figure 19
The definition of Rule and derived types AlgebraicRule, AssignmentRule and RateRule.
Figure 20
Figure 20
The definition of class Constraint. The contents of the Math class can be any MathML permitted in SBML, but it must return a boolean value. As shown above, an instance of Constraint can also contain zero or one instances of Message; this element is simply a wrapper (in the XML form, within <message> ... </message> tags) for XHTML content. The same guidelines for XHTML content as explained in Section 3.2.3 for notes on SBase also apply to the XHTML within messages in a Constraint. A sequence of one or more instances of Constraint objects can be located in an instance of ListOfConstraints in Model, as shown in Figure 10.
Figure 21
Figure 21
The definitions of classes Reaction, KineticLaw, SpeciesReference, ModifierSpeciesReference, as well as the container classes ListOfReactions, ListOfReactions, ListOfReactions, and ListOfParameters. Note that SimpleSpeciesReference is an abstract class used only to provide some common attributes to its derived classes. The class Parameter is defined in Section 4.9.
Figure 22
Figure 22
The definitions of Event, Trigger, Delay and EventAssignment, and the container class ListOfEventAssignment.
Figure 23
Figure 23
The seven controlled vocabularies (CVs) that make up the main branches of SBO. (Based on the October, 2014, version of SBO.)
Figure 24
Figure 24
Partial expansion of some of the terms in the entity branch of SBO.
Figure 25
Figure 25
Partial expansion of some of the terms in the participant role branch of SBO.
Figure 26
Figure 26
Partial expansion of some of the terms in the quantitative parameter branch.
Figure 27
Figure 27
Partial expansion of some of the terms in the modeling framework branch.
Figure 28
Figure 28
Partial expansion of some of the terms in the mathematical expression branch.
Figure 29
Figure 29
Partial expansion of some of the terms in the occurring entity representation branch.
Figure 30
Figure 30
Current expansion of the terms in the annotation branch of SBO.
Figure 31
Figure 31
A example multi-compartmental model.

References

    1. Abbott A. Alliance of US labs plans to build map of cell signalling pathways. Nature. 1999;402:219–200. - PubMed
    1. Abramowitz M, Stegun IA, editors. Mathematical Functions: With Formulas, Graphs, and Mathematical Tables. Dover Publications Inc; 1977.
    1. Ausbrooks R, Buswell S, Carlisle D, Dalmas S, Devitt S, Diaz A, Froumentin M, Hunter R, Ion P, Kohlhase M, Miner R, Poppelier N, Smith B, Soiffer N, Sutor R, Watt S. Mathematical Markup Language (MathML) Version 2.0 (second edition): W3C Recommendation 21 October 2003. 2003 Available via the World Wide Web at http://www.w3.org/TR/2003/REC-MathML2-20031021/
    1. Biron PV, Malhotra A. XML Schema part 2: Datatypes (W3C candidate recommendation 24 October 2000) 2000 Available via the World Wide Web at http://www.w3.org/TR/xmlschema-2/
    1. Bosak J, Bray T. XML and the second-generation Web. Scientific American. 1999;280(5):89–93.

Publication types