Personal tools
You are here: Home Tools
 
Document Actions

CellML Tools

Overview of tools relating to CellML.

The CellML team is committed to providing freely available tools for creating, editing, and using CellML models. Within this part of the cellml.org site we provide information regarding tools we are developing internally and links to external projects developing tools which utiliise the CellML format. The cellml-discussion mailing list is used for discussion of tools being developed for the CellML language and we welcome additions and corrections to the tools listed below. Please also let us know of any open source CellML tools looking for a home on the internet.

API Specifications and Implementations

We have defined an official CellML Application Programming Interface. This API provides an interface that applications can use to manipulate and process CellML documents. The interfaces are designed to be independent of any programming language, platform, or vendor, and are expressed in the OMG Interface Definition Language (IDL). It addresses both CellML 1.0 and CellML 1.1. We have also produced an implementation of this specification in C++. This API can be accessed either directly from your C++ program, or from any language for which a CORBA language mapping is available (C, C++, Java, Python, Ada, COBOL, Lisp, PL I, Smalltalk, Tcl, Eiffel, Ruby, and probably more).

Model Databases

The Physiome Model Repository

The Physiome Model Repository, or PMR, is a Plone product designed to facilitate model upload, storage, curation, and download. It allows information about models to be viewed, and the original model to be downloaded. The Physiome Model Repository software is used to run the official CellML Model Repository.

BioModels.net

For computational modeling to become more widely used in biological research, researchers must be able to exchange and share their results. The development and broad acceptance of common model representation formats is a crucial step in that direction, allowing researchers to exchange and build upon each other’s work with greater ease and accuracy.

The BioModels.net project is another step: an international effort to (1) define agreed-upon standards for model curation, (2) define agreed-upon vocabularies for annotating models with connections to biological data resources, and (3) provide a free, centralized, publicly-accessible database of annotated, computational models in structured formats.

Complete CellML Environments

These are tools which provide a "full service" in regard to CellML model editing and use. They will typically include at least model editing and simulation capabilities and will possibly include such extras as model validation, creation, visualisation tools.

Physiome CellML Environment (PCEnv)

PCEnv is an open source tool environment being developed at the Auckland Bioengineering Institute. It makes use of the CellML DOM API and the CellML Context in order to tie everything together (and allow it to work with other tools that are not solely targeted at PCEnv). One extension will allow integration and replace mozCellML. PCEnv is built on top of the Mozilla platform. PCEnv v0.2 has recently been released and supports model editing, simulation and results visualisation.

Cellular Open Resource (COR)

COR is a Microsoft Windows™ environment for cellular modelling that is built around CellML (except for reactions and metadata which are not supported).

COR is currently being developed and maintained by Dr Alan Garny in the Mechano-Electric Feedback lab at the University of Oxford.

Other Modelling Environments

Modelling environments differ from the CellML environments above in that they are not based entirely on CellML but rather offer various levels of support for utilising CellML. These environments provide tools for the support of general mathematical modelling as well as interfaces specific for certain areas of biological modelling.

JSim

JSim is a Java-based simulation system for building quantitative numeric models and analyzing them with respect to experimental reference data. JSim's primary focus is in physiology and biomedicine, however its computational engine is quite general and applicable to a wide range of scientific domains. JSim models may intermix ODEs, PDEs, implicit equations, integrals, summations, discrete events and procedural code as appropriate. JSim's model compiler can automatically insert conversion factors for compatible physical units as well as detect and reject unit unbalanced equations. JSim also imports the SBML and CellML model archival formats.

JSim is developed by the National Simulation Resource for Transport, Metabolism and Reaction at the University of Washington.

Virtual Cell

The Virtual Cell is developed at the National Resource for Cell Analysis and Modeling (NRCAM) located at the University of Connecticut Health Center. It is a tool to build models and run simulations of cellular processes, including the modelling of reactions, diffusion, membrane transport, flow, and electrical potential & currents. VCell has the facilities for compartmental and spatial simulations (1-, 2-, and 3-dimensional) on analytical or image-based geometries. It provides a collaborative working environment via a shared database and interoperability through the use of various data formats (including SBML and CellML).

insilicoIDE

The insilicoIDE is developed at the Center for Advanced Medical Engineering and Informatics at Osaka University. It is a tool to browse, build and run simulation models of physiological dynamics. It can import models in CellML format for exploring hierarchical structure of the models, editing, modifying, networking the models, and for simulating dynamics of the models.

Validation Tools

These tools focus on the validation of CellML model documents and the models they describe.

XML validation

Standard XML validation of CellML documents provides a good first stop in model validation. There are several choices here:

  • CellML 1.0 DTD (written by Warren Hedley, Auckland Bioengineering Institute)

  • CellML 1.0 XML Schema (written by Autumn Cuellar, Auckland Bioengineering Institute) — This is the simplest version of a CellML Schema possible. It completely leaves out all elements outside the CellML namespace. This is made available only for those who are used to validating XML against an XML Schema.

  • CellML 1.1 XML Schema (written by Andrew Miller, Auckland Bioengineering Institute) — This is a CellML 1.1 Schema. It imports additional W3C defined schema definitions for content MathML and XLink. A Java program which loads the schema and validates a list of documents is also available. This is made available only for those who are used to validating XML against an XML Schema.

  • RELAX NG schema for CellML 1.0 (written by Jonathan Cooper, University of Oxford) — also requires the MathML RELAX NG schema. Jonathan developed these as part of his validation tool suite, PyCml.

PyCml

As part of the Integrative Biology project, Jonathan Cooper has been working on a validator tool suite for CellML 1.0. It is written in Python, and uses the RELAX NG and Schematron validation languages where appropriate. PyCml can be obtained and there is a web-based validation service available under the CellML page for the eDiaMoND project.

Simulation Tools

In addition to the simulation abilities of the above tool suites there are also some simulation specific tools available.

API Generator for ODE Solution (AGOS)

AGOS is a tool developed at FISIOCOMP, Universidade Federal de Juiz de Fora, Brazil. It provides an on-line tool that automatically builds up an object-oriented C++ class library that allows its users to manipulate and numerically solve Initial Value Problems based on ODE systems described by the CellML and MathML standards. Further information about AGOS can be found in this article.

CellMLSimulator

This is a tool built on top of the C Code Generation Service (CCGS) from the CellML API implementation. It uses the CellML simulation and graphing metadata to decide what simulations need to be performed using the models specified in the metadata and then (optionally) produces the described plots. CellMLSimulator is an open source application developed by David Nickerson and is available from SourceForge.net.

Cell Electrophysiology Simulation Environment (CESE)

CESE is a Java framework for performing computational electrophysiological simulations. See the CESE website for notes on status of CellML support.

Miscelaneous Utilities

Various tools that fit none of the above categories.

CellML2Dot

CellML2Dot is a tool developed by David Nickerson which reads CellML models (1.0 and 1.1) and writes out various configurable parts of the model as dot files suitable for use with the Graphviz (and compatible) graph visualization software. It is an application built on top of the CellML API implementation and was initially developed as a debugging tool for complex CellML 1.1 model hierarchies.

XSLT

MathML display helper A set of files that gets you started if you want to display some MathML in a web page.

MathML Renderer (written by Autumn Cuellar, Auckland Bioengineering Institute) — an XSLT transform that converts the CellML subset of MathML to a LaTeX file. Save the file to your local harddrive and run with any XSLT processor. You'll also need to download a second file to the same directory. The second file is imported to escape the necessary characters in LaTeX. Further instructions are here.

Equation Extractor for Viewing MathML (written by Warren Hedley, Auckland Bioengineering Institute) — an XSLT transform that extracts the MathML from a CellML document and formats it in semi-Presentation MathML. Was originally intended for IBM's techexplorer plug-in, but may also one day work for Mozilla with a little tweaking. Save the file to your local harddrive and run with any XSLT processor.

Scripts

MatLab2CellML (written by Steven Niederer, Auckland Bioengineering Institute) — a perl package containing Eqn2Cellml which generates CellML code from an eqaution written in a single line Matlab format. Eqn2CellML requires a single string input and returns a single string output.