Comparison of CellML and SBML
| Features | CellML | SBML |
| Structure (model components/elements) | import, units, component, group, connection | listOfFunctionDefinitions, listOfUnitDefinitions, listOfCompartmentTypes, listOfSpeciesTypes, listOfCompartments, listOfSpecies, listOfParameters, listOfInitialAssignments, listOfRules, listOfConstraints, listOfReaction, listOfEvents |
| Application | CellML framework is generic. Currently it is used for multiscale biological modelling , systems biology, synthetic biology and modelling variety of engineering problems. SBML is targeting biological modelling, particularly systems biology (metabolism, cell-signaling and biochemical reaction networks). | |
| Order components/ Elements | In SBML components order is significant (as given in structure part), while in CellML elements can be any order but recommended best practice is to define elements in order (as described in structure part). | |
| Mathematical expressions | Both uses subset of MathML 2.0 elements. MathML elements used in SBML Level 2 is similar to that used by CellML. Mathematical expressions in SBML are more constrained than what is permitted in CellML’s subset of MathML. SBML also incorporates lambda element which is used to construct a user-defined functions. | |
| Modularity and model composition | CellML models are based on a modular structure, which enable creating new and/or large model using reuse of existing models. CellML express the modularity using import element which allows nested model reuse. SBML currently lacks this feature, but this capability (model composition) may be added in SBML level 3 and beyond. | |
| Units | Unit elements in both languages have essentially the same attributes, and use the same set of basic (SI) units. CellML permits nested use of units elements, while the approach to defining units in SBML is compositional. | |
| Compartments or physical containment | CellML express physical containment (as well as logical) using its nested group structure, while SBML uses its compartment element and outside attribute. | |
| Events | SBML events are explicit, instantaneous, discontinuous state changes that are triggered as a result of changing conditions within a model. Events specify a trigger, which is the condition that causes the event to occur. Any transition of a trigger expression from “false” to “true” will cause an event to fire. CellML structure currently lack this kind of mechanism. | |
| Kinetic modelling | CellML and SBML both support kinetic modelling or ODE modelling. | |
| Rule based modelling | Neither CellML nor SBML have support for rule based modelling in their current versions. SBML level 3 may support rule-based modeling . | |
| PDE modelling | Both CellML as well as SBML don’t support the PDE modelling. In future CellML together with FieldML can describe spatially and temporally varying field/gradient information. | |
| Time Delay | SBML support delayed variables using delay function which is useful for representing biological processes having a delayed response. CellML currently lack this feature. | |
| Metadata and annotation | In SBML biological information and model history is embedded in the language elements using annotation element. It refers controlled vocabulary terms and database identifiers which define and describe biological and biochemical entities. SBML uses restricted form of Dublin Core and and BioModels qualifier elements embedded in RDF. In CellML document, the model structure and mathematics is described using CellML language elements, everything else is metadata such as biological information, model history, and goes into RDF part of document. CellML metadata employs Dublin Core, BQS and vCard data models. Biological entity metadata is defined using a CellML-specific element, bio_entity. | |
| API | libSBML understands all Levels and Versions of SBML, it used to read, write, manipulate, translate, and validate SBML files. It’s written in ISO C and C++ but can be used with Java, Python, Perl, Lisp, Matlab, Ruby and C#. libSBML allows access to SBML annotation elements as XML objects. CellML API is implemented in C++. It can be accessed from any language for which a CORBA language mapping is available such as C, C++, Java, Python, Ada, COBOL, Lisp and many more. CellML API does not stipulate any RDF interface. | |
| Layout and Render information | SBML layout extension tries to cover the inclusion of layout information of biological networks in sbml files. Although officially it will be included in SBML level 3 already there are several implementations for it and some programs already use it to exchange layout information. For now CellML has no such utility. | |
| Database | BioModels database currently provide access to 208 published, peer-reviewed, quantitative models of biochemical and cellular systems. Models are well annotated and linked to relevant data resources such as controlled vocabularies and biological databases. CellML Model Repository provides free access to over 381 unique curated models . These models are derived from peer-reviewed publications covering a diverse coverage, ranging from systems physiology to systems biology. | |
| Ontology | Systems Biology Ontology (SBO) is designed keeping SBML components in mind. SBML elements can be annotated with SBO terms using sboTerm which adds additional semantic information. CellML framework is not associated with any particular domain ontology and it can be used with variety of ontologies including SBO, BioPAX and others using its metadata framework. | |
| Interoperability | CellML can be easily converted to other formats including SBML. Most of modelling frameworks have interoperability with SBML such as Process calculi or Pi Calculas (BIOSPI, SPIM, Beta-binders), Petri nets. There are many con
verters to map SBML to other formats including CellML and BioPAX. |
|
| Third party support | It has less third-party support | SBML is widely accepted and implemented format. |
| Proposed Features | 1. Provision for secondary specifications 2. A new typing system (typed lambda calculus system) 3. Custom subset , simulation and graphing metadata | 1. Diagram storage layout extension 2. Multistate and complex species 3. Model composition 4. Arrays and/or sets of components 5. Spatial geometry 6. Rule based modelling |



















Comparison of CellML and SBML: Features CellML SBML Structure (model components/ elements) import, units, compon.. http://tinyurl.com/cyq5b5
Comparison of CellML and SBML: Features CellML SBML Structure (model components/ elements) import, units, compon.. http://tinyurl.com/cyq5b5
Very fair and detailed survey, well done.
Just a comment about the repositories. The 208 models you mentions for BioModels DB correspond to the “curated branch”. The total is higher than that (293 today). Conversely, not all the 381 models of CellML repository are curated (2 or 3 stars).
ya I agree with the stats you mentioned -but it is the quality and not the quantity that matters. Also you can not map CellML 1 stars to non-curated branch of Biomodels, as both have different rules. I forgot to add Events
Don’t like the possibility that the CellML java API could be working, but no support for RDF! http://tinyurl.com/cyq5b5