title: An overview of the CellML API and its implementation.
abstract: BACKGROUND
  CellML is an XML based language for representing mathematical models, in a machine-independent form which is suitable for their exchange between different authors, and for archival in a model repository. Allowing for the exchange and archival of models in a computer readable form is a key strategic goal in bioinformatics, because of the associated improvements in scientific record accuracy, the faster iterative process of scientific development, and the ability to combine models into large integrative models.However, for CellML models to be useful, tools which can process them correctly are needed. Due to some of the more complex features present in CellML models, such as imports, developing code ab initio to correctly process models can be an onerous task. For this reason, there is a clear and pressing need for an application programming interface (API), and a good implementation of that API, upon which tools can base their support for CellML.
  
  
  RESULTS
  We developed an API which allows the information in CellML models to be retrieved and/or modified. We also developed a series of optional extension APIs, for tasks such as simplifying the handling of connections between variables, dealing with physical units, validating models, and translating models into different procedural languages.We have also provided a Free/Open Source implementation of this application programming interface, optimised to achieve good performance.
  
  
  CONCLUSIONS
  Tools have been developed using the API which are mature enough for widespread use. The API has the potential to accelerate the development of additional tools capable of processing CellML, and ultimately lead to an increased level of sharing of mathematical model descriptions.
authors.affiliation: Auckland Bioengineering Institute, The University of Auckland, Auckland, NZ. ak.miller@auckland.ac.nz
authors.forename: Andrew K
authors.initials: AK
authors.lastname: Miller
authors.forename: Justin
authors.initials: J
authors.lastname: Marsh
authors.forename: Adam
authors.initials: A
authors.lastname: Reeve
authors.forename: Alan
authors.initials: A
authors.lastname: Garny
authors.forename: Randall
authors.initials: R
authors.lastname: Britten
authors.forename: Matt
authors.initials: M
authors.lastname: Halstead
authors.forename: Jonathan
authors.initials: J
authors.lastname: Cooper
authors.forename: David P
authors.initials: DP
authors.lastname: Nickerson
authors.forename: Poul F
authors.initials: PF
authors.lastname: Nielsen
mesh_terms: D000465:Algorithms; D019295:Computational Biology / Q000379:methods*; D016208:Databases, Factual; D016247:Information Storage and Retrieval; D008962:Models, Theoretical; D012984:Software