Questions tagged [sbml]

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.

SBML is an official IETF MIME type, specified by RFC 3823.

38 questions
0
votes
1 answer

Loading an executable .jar file in Windows 10 Powershell

I am trying to execute some published java code that converts an SBML (Systems Biology Markup Language) file to three text files. Running libSBML code requires linking to a jar file "libsbmlj.jar". The code works in Eclipse, but I would like to…
Laura
  • 89
  • 8
0
votes
0 answers

SBML .xml file failure to load in SBMLR (Bioconductor)

I have downloaded the file BIOMD0000000175.xml from here https://www.ebi.ac.uk/biomodels-main/BIOMD0000000175. I try to load it into SBMLR with library(SBMLR) mapk <- readSBML("BIOMD0000000175.xml") > summary(mapk) Error in x$law(S0[c(x$reactants,…
slabofguinness
  • 773
  • 1
  • 9
  • 19
0
votes
1 answer

How do I install libSBML using Cygwin on a Windows machine?

I want to install libSBML using a Cygwin terminal on my Windows machine in order to run a bespoke statistical package in Python. The libSBML installation instructions have enabled me to successfully execute the following: ./configure…
0
votes
0 answers

How to execute a dynamically generated R command

I have a SBML file which contains details of series of biochemical reactions. Each reaction has a set of reactants (metabolites). My goal is to get a list of reactants for each of the reactions. I can manually access the list of reactants as…
SriniShine
  • 1,089
  • 5
  • 26
  • 46
0
votes
0 answers

Unable to read an SBML file in SBMLR

I'm trying to read a SBML file (Test.xml) using the R package SBMLR. Below is the code I executed. library(SBMLR) file <- system.file("models","Test.xml",package = "SBMLR") doc <- readSBML(file) When I execute the 3rd line I get an error message…
SriniShine
  • 1,089
  • 5
  • 26
  • 46
0
votes
0 answers

checking for Python.h... no Why does this happen when I know where Python.h is?

I am running Python through Cygwin on my windows machine. I need to install libSBML in order to use a statistical program (abc-sysbio). The program instructions say: Download and install libSBML…
0
votes
1 answer

preserving brackets in mathml

I'm using SBML which is an XML format for capturing numerical simulations. This uses MathML to capture equations that relate the amounts of the different things in the simulation. When I write the equations down by hand, I add some brackets that are…
drdozer
  • 329
  • 1
  • 3
  • 10
-1
votes
2 answers

How to get "specific id XML Data" with Java

I want to output like id = C00001 name = H2O id = C00002 name = ATP And input like ids = {"C00001","C00002"...} names = {"H2O", "ATP"...} How to code? I can read like H2O But I cant read like:
zunda
  • 1
1 2
3