ABI CellML meeting minutes 2010-03-31

Present: Dougal Cowan, Randall Britten, Andrew Miller, Catherine Lloyd, David "Andre" Nickerson, Justin Marsh, Geoff Nunns, Tommy Yu

Apologies: Poul Nielsen, Peter Hunter

Last week's action items:

1) Someone to contact Saint developers with the offer of a Java shim

  • There was a discussion about how to provide assistance to the Saint developers; API changes or the Java shim code.
  • Randall said that metadata editing should be a top priority.
  • There was a discussion about priorities for OpenCell 0.8 and the API. This included some discussion about the re-engineering of OpenCell using a different platform (Qt or Java).

Action item 1) Andrew to get in touch with the Saint developers and offer them the Java shim.

This week's agenda:

1) CellML core specs - update   1. CellML 1.2

  • Andre reported that the CellML 1.1 best practice meetings have come up with some guidelines, which Andre and Mike Cooling will now test.

   2. ModML

  • Andrew has been working on a scheme for supporting reactions in ModML. Reactions are implemented as part of a library included in ModML models. In order to support reactions (and other biological processes), the design is as follows:
    • There is a database of Entities. And Entity can correspond to a chemical species / enzyme in a particular state, for example.
    • The modeller declares which Compartments exist. A compartment can be part of a cell. 
    • There is a database of Processes. Processes describe the kinetics by which entities are converted into other entities. Processes occur as a consequence of the entities present, so can be declared as happening in any compartment, and will only actually affect the model if there is a route for the synthesis of all pre-requisite entites. For example, even though a process might be defined as being possible the extracellular space, it might never actually happen in models because the requisite enzyme is absent. In addition, processes can be defined as happening between explicitly specified entity compartment combinations, or in terms of the containing and contained compartments. 
    • The modeller needs to declare the containment relationships of Compartments for Processes to be used properly. 
    • EntityInstances describe how an entity / compartment pair fits in the model - for example, allowing access to fluxes, or requesting that the reaction network library handle the variable for the amount of the entity for them and add up the fluxes itself. Clamping to external variables is also possible.
  • Randall asked how metadata is handled. Andrew noted that metadata is described as three string, subject, predicate, and object, similarly to RDF. It is possible to convert objects like Entities and Processes to a string so they can be annotated. Andrew noted that annotations can be computed, rather than just specified, in libraries, making metadata a lot less hassle than in CellML where annotations on library components are static.

2) Metadata specifications (general, citations, graphing, simulation, other) - update

  • Catherine reported that Lukas has said that the annotation methods Catherine is currently using need to go back into a spec, so that they can be employed consistently.
  • Catherine noted that there is nobody currently working on these specs.
  • Randall said the annotation needs to be tested by trying it out at the tasks for which it is intended; model building from components, and searching.
  • There was a discussion of how often a model can be reproduced directly from a paper with no additional information. According to Catherine: very rarely.

3) cellml.org - update

  • Catherine met briefly with Gareth. There is very little happening to the site. Catherine continues to update the news items, and has recently done quite a lot of work with the workshop pages - otherwise the site content is quite static.
  • Justin has created a news item for the OpenCell and API release.

Action item 2) Dougal to put PDF versions of the OpenCell documentation up somewhere, linked to from the site.

4) Repository contributions - update

  • Catherine has finished exposing the summer students' models.
  • Mike Cooling sent Catherine a 1.1 model to annotate the processes and entities. Catherine had to select another model - a glycolysis pathway model - which in turn has led to her and Geoff curating existing glycolysis models (Bakker et al. 2000) and translating new glycolysis models (including Albert et al. 2005 which Geoff has almost completed).
  • Lucian has pulled all the models from the repository and has run them through his translator. Several models "failed" to be read by the API. Lucian provided Catherine with a list of these models and she is currently working her way through them.
  • Geoff reported that he is going through the existing endocrine models and is curating them.
  • Also the Grandi et al. 2010 cardiac model is complete and Andre is going to show Geoff how to use embedded workspaces in PMR2 (since it is a 1.1 model).

5) OpenCell development - update

  • Justin has fixed tracker item 2477.
  • There was a discussion of code styles, languages and development platforms for the possible re-engineering of OpenCell.
  • Justin reported that he has been working on a Scala JVM mockup to compare with the Qt C++ mockup that Alan has been working on.
  • Andrew noted that he was most concerned about the ability to embed an HTML browser into a Java environment, which is needed for sessions. He tried out a browser called Lobo, which uses an embeddable component called Cobra; his perception was that it kept deadlocking on many sites on the Internet. However, this may be because they used more complex Javascript libraries than anything we are likely to use.

6) CellML API - update

  • Andrew reported that the API paper has been accepted in principle, and is very close to publication.
  • Andrew has been continuing to work on IDA support. For the initial value solver to work, it is necessary to declare which variables have constraints on their derivatives; Andrew has implemented support for this over the last week. He has also changed the interfaces for the CellML Integration Service to allow for IDA style solvers to be used. However, these interfaces still need to be fully implemented before they can be used to run simulations with IDA.
  • Andre asked if it is currently possible to generate and run code.
  • There was a discussion about IDA and solvers.
  • Randall said that work on IDA support can be put on hold without losing any progress.
  • There was a discussion about priorities; Java code for the Saint developers vs. IDA support.
  • A decision was made to delay IDA support and provide some Java code to the Saint developers to enable them to support CellML. Randall said that this decision can be reviewed in a week or two, depending on progress on this Java shim.
  • Justin fixed tracker item 2448 on the trunk API, and asked if Andrew could check the changeset for problems.

7) PMR2 development - update

  • Tommy discussed an experimental solution to the long exposure URLs, where the first 10 characters of the 32 character ID are used.
  • Tommy has started work on exposure profiles, which will provide different views for different model file types such as CellML or FieldML.
  • There was an extensive discussion about shortening the exposure URLs or making friendly aliases of them.
  • It was decided that a shorter exposure URL scheme should be part of PMR2 0.3, using a base-64 system, with the length reduced to around 8 characters (or whatever is sufficient to avoid collisions). This will require a feature to be added that checks a newly generated ID for collisions.
  • There was a discussion about tagging and listing of FieldML, CellML, and mixed workspaces and their exposures.