CellML
From Wikipedia, the free encyclopedia
CellML is an XML based markup language for describing mathematical models. Although it could theoretically describe any mathematical model, it was originally created with the Physiome Project in mind, and hence used primarily to describe models relevant to the field of biology. CellML is growing in popularity as a portable description format for computational models, and groups throughout the world are using CellML for modelling or developing software tools based around CellML. CellML is similar to Systems Biology Markup Language SBML but provides greater scope for model modularity and reuse, and is not specific to descriptions of biochemistry.
Contents |
[edit] The structure of a CellML model
A CellML model consists of a number of components, each described in their own component element. A component can be an entirely conceptual entity created for modelling convenience, or it can have some real physical interpretation(for example, it could represent the cell membrane).
Each component contains a number of variables, which must be declared by placing a variable element inside the component. For example, a component representing a cell membrane may have a variable called V representing the potential difference(voltage) across the cell membrane.
Mathematical relationships between variables are expressed within components, using MathML. MathML is used to make declarative expressions(as opposed to procedural statements as in a computer programming language). However, most CellML processing software will only accept a limit of range of mathematics(for example, at least some processing software requires equations with a single variable on one side of an equality). The choice of MathML makes CellML particularly suited for describing models containing differential equations. There is no mechanism for the expression of stochastic models or any other form of randomness.
Components can be connected in other components using a connection element, which describes the name of two components to be connected, and the variables in the first component which are mapped to variables in the second component. Such connections are a statement that the variable in one component is equivalent to another variable in another component.
CellML models also allow relationships between components to be expressed. The CellML specification defines two types of relationship, encapsulation and containment, however more can be defined by the user. The containment relationship is used to express that one component is physically within another. The encapsulation relationship is special because it is the only relationship that affects the interpretation of the rest of the model. The effect of encapsulation is that components encapsulated beneath other components are private and cannot be accessed except by the component directly above in the encapsulation tree. The modeller is free to use encapsulation as a conceptual tool, and it does not necessarily have any physical interpretation.
[edit] Units
CellML has a mechanism for describing units. All variables and constants must define units.
[edit] CellML 1.0
CellML 1.0 was the first final specification, and is used to describe many of the models in the CellML Model Repository available at cellml.org.
CellML 1.0 has some biochemistry specific elements for describing the role of variables in a reaction model.
[edit] CellML 1.1
CellML 1.1 introduced the ability to import components and units. It removed all biochemistry specific elements and so marks up only mathematics. However, the CellML Metadata Specification is used to describe metadata which can be used to express subject information about the model.
[edit] CellML.org
CellML.org aims to provide a focal point for the CellML community. Members can submit, review, update, and models and receive feedback and help from the community. A CellML discussion mailing list can be found at CellML-discussion mailing list. The scope of this mailing list includes everything related to the development and use of CellML.
A repository of several hundred biological models encoded into CellML can be found on the CellML community website at CellML Repository. These models are actively undergoing a curation process aiming to provide annotations with biological ontologies such as Gene Ontology and to validate the models against standards of unit balance and biophysical constrains such as conservation of mass, charge, energy etc.
[edit] External links
- CellML homepage
- IUPS Physiome Project
- Interactive cell models Java versions of many of CellmL cardiac models.