| | | | |
| | | | | | | | | | | | Author: Warren Hedley (Bioengineering Institute, University of Auckland) Contributors: Dean Bottino (Physiome Sciences Inc.) David Bullivant (Bioengineering Institute, University of Auckland) Carolyn Cho (Physiome Sciences Inc.) Melanie Nelson (Physiome Sciences Inc.) Poul Nielsen (Bioengineering Institute, University of Auckland) Prasad Ramakrishna (Physiome Sciences Inc.)
This document is an attempt to sum up the current state of thinking from the Auckland team on reaction modelling. It is intended to provoke further discussion both within the Auckland team, amongst the modellers and developers at Physiome Sciences, and anyone else interested.
A teleconference had been organised between Prasad at Physiome Sciences and Melanie and Warren at The University of Auckland. Carolyn and Dean sat in at the Physiome end, and Poul and David failed to sit in at the Auckland end. In preparation for the teleconference Warren had written down some of the key issues he saw in the specification of pathway models. These are re-produced below, with some additional justification text forming his view (not necessarily the official Auckland view):
We want to be able to get the useful pathway information (e.g., "A + 2B <-> C + D ") out of CellML without too much trouble.
CellML won't be much use to anyone for pathway modelling unless you can obtain alternative representations of the model out of it. In particular we need to be able to form pathway diagrams and simple stoichiometry equations. Although some members of the Auckland team were convinced that this could be obtained from analysis of the math, it seemed reasonable to introduce the <reaction> element on the basis of the specification of the qualitative models. The use of the <reaction> element alongside math (allowing potential duplication and thus inconsistencies) was allowed provided that the spec defined some rules like "math takes precedence in simulation, software can decide what it renders." Note that this requirement justifies the existence of the <reaction> element because it is impossible, for instance, to easily differentiate an enzyme from an inhibitor from analysis of the math, yet this is critical information for rendering of a pathway diagram.
We want to have a complete mathematical description of the model in MathML.
This is perhaps the most contentious point. After a quick perusal of the problem, an observer might suggest that a large portion of the math simply be omitted altogether since all of the useful information seems to be specified in the <reaction> element. In fact, CellML is really aimed at computation and simulation, and as such it would be nice to be able to run simulations in purely numerical software such as Mathematica or Matlab. It would be a simple transformation (Warren reckons he could do it in XSLT) to resolve variable references and produce a single MathML file containing the entire model description suitable for processing by these packages. The other issue is one of robustness. If CellML is widely adopted for the specification of many types of problem, we can be reasonably confident that MathML will be able to specify the underlying mathematics of the problem. If we were to use some simpler scheme inside the <reaction> element, we might be required to keep adding and modifying to that data model.
We want to have the complete description of a reaction in one component only.
To ensure that the CellML descriptions of reactions can be re-used, we need all of the information associated with a reaction to be stored within a single component. This squashes the idea of reaction components just exporting a rate which is then pre-multiplied by the appropriate stoichometric coefficients in the conservation of concentration equations in the species components. Note that it doesn't veto the idea of calculating the reaction rate in an encapsulated component, from which it is passed into the parent component where the <reaction> element and the stoichometric coefficients are. (This last scheme could provide a way to re-use common kinetic expressions. For instance, you could retrieve a generic "Michaelis-Menten" component from a database, pass it the necessary rate constants and concentrations, and have it pass back the rate.)
We want to minimise the duplication of information that might lead to inconsistencies.
Pretty obvious really — we want to avoid confusing software, modellers and programmers as much as possible.
A couple of requirements for the CellML specification of pathway models were raised by the Physiome modelling team during the 18 January 2001 teleconference. These require examples to demonstrate properly what is needed. Briefly the issues are:
-
Stoichiometry may not be unique, i.e., the stoichiometry of a reaction may not be apparent from a given rate expression. (I think this is actually handled by the calculation of the delta variables.)
-
We might want to specify both the fast and slow versions of a reaction. This one is a bit of a problem because you essentially have two different models. And the components aren't really allowed to know about the integration process, so they can't base their behaviour on the timestep used in simulation, for instance.
Some more issues / requirements have been brought up with regard to pathway models (that are not handled in the current mechanism). The problems and some comments on their solution are:
-
We need to be able to indicate that reactions are reversible / bi-directional.
-
We need to be able to indicate numerous roles for a species in a reaction, such as catalyst and reactant in autophosphorylation. This was brought up by Robert Phair from BioInformatics Services. This is easily solved by allowing several
<variable_ref> elements inside a single <reaction> element to reference the same variable, with different role attributes. We probably need to specify some constraints on this however: for instance, you can't have roles of product and reactant on the same variable.
-
Do we need to worry about re-usability of chemical species components? Kam Jim from Physiome Sciences brought this up. The quick answer is "No!". The long answer is: it's going to be impossible to make both reactions and species components easily re-usable, and we leaned towards reactions, because they are much more complex. It should be simple to add a species into a pathway model — as far as the Auckland team is concerned, a template species component contains a single concentration variable.
Just for comparison, here is a specification of the reaction "X0 -> S1 " in SBML (taken from the December 21 2000 spec):
<reaction name=" reaction_1 " reversible=" false " >
<listOfReactants >
<specieReference specie=" X0 " stoichiometry=" 1 " />
</listOfReactants>
<listOfProducts >
<specieReference specie=" S1 " stoichiometry=" 1 " />
</listOfProducts>
<kineticLaw formula=" k1 * X0 " >
<listOfParameters >
<parameter name=" k1 " value=" 0 " />
</listOfParameters>
</kineticLaw>
</reaction>
| | | | | |