SBML (Systems Biology Markup Language) is a free and open XML-based interchange format for computer models of biological processes.
SBML
SBML (the Systems Biology Markup Language) is an XML-based format for communicating and storing representations of biological processes. Put more simply: SBML is a machine-readable format for representing models in biology. It is suitable for models commonly found in research on a number of topics, including cell signaling pathways, metabolic pathways, biochemical reactions, gene regulation, and many others.
SBML is not designed to be a universal language for representing quantitative models. It would be impossible to achieve a one-size-fits-all universal language. A more realistic alternative is to acknowledge the diversity of approaches and methods being explored in systems biology, and seek a common intermediate format—a lingua franca—enabling communication of the most essential aspects of the models. SBML is such a lingua franca. Today, SBML is used by many different software tools.
Summary of the structure and features of SBML
The core of SBML is focused on encoding models in which entities are located in containers and are acted upon by processes that modify, create or destroy entities. The containers do not need to correspond to physical structures; they can be conceptual or abstract. Additional constructs allow parameters, initial conditions, other variables, and other mathematical relationships to be defined. In the most common type of model, the "entities" are biochemical substances, the "containers" are well-mixed and spatially homogeneous, and the "processes" are biochemical reactions happening within or between the containers. This originally led to the SBML constructs being named (literally) species, compartments, and reactions, respectively, but these names are historical artifacts and belie the generality of the underlying scheme. Software applications can map the names to other concepts to better suit their purposes. For instance, species could be mapped to populations of molecules, cells, or even organisms.
Values of model variables and their changes over time may be fixed or determined by mathematical expressions, either before or during simulation, continuously or in response to discrete events, with or without time delays. Units of measurement can be specified for all entities and values; in addition to adding a layer of essential physical knowledge, information about units can be used to verify the relationships expressed in a model. Units also facilitate reuse of models and components, interconnection of models, conversion of models between different frameworks, and integration of data with models.
Any element of an SBML model can be elaborated using machine-readable metadata (known as annotations in SBML) as well as human-readable notes. These can be used to express relationships between the entities in a given model and entities in external resources such as databases. Software tools can also use annotations to encode tool-specific data in their own formats, thus providing a way to capture data that might otherwise be lost.
SBML Level 3 introduced an extensible modular architecture consisting of a central set of fixed features (known as SBML Level 3 Core) , and a scheme for adding packages that can augment the Core by extending existing elements, adding new elements, and adjusting the meaning or scope of elements. SBML Packages offer support for such things as hierarchically-structured models (e.g., models containing submodels), qualitative models, flux balance constraints models, and more. A model declares which packages it uses in order to guide its interpretation by software applications. If a software tool detects the presence of packages that it does not support, it may inform users if it cannot work with the model.
Using SBML
A software tool can read an SBML model description and translate it into its own internal format for model analysis. For example, a tool might provide the ability to simulate the model by constructing a system of differential equations and then performing numerical time integration on the equations to explore the model's dynamic behavior. Or, alternatively, a tool might construct a discrete stochastic representation of the model and use a Monte Carlo simulation method such as the Gillespie algorithm.
Resources
More information about SBML and its specifications can be found on SBML.org.
In addition to the SBML-related questions posed on Stack Overflow, the Bioinformatics and Computational Science stack exchange sites also see discussions about SBML and computational modeling in biology.