29 Apr '05 01:37
In order to build the first two releases of BioModels database, we
went through about 50 models directly expressed in SBML Level2, or
converted from SBML Level1. One problem we almost systematically
encountered was the inaccuracy of units. Basically, the units are not
defined, or redefined. This results in values such as 0.45 millimole
per hour directly printed as such, and therefore converted by an SBML
reader into 0.45 mole per second.
Could-I suggest as a best practise for SBML software developers the
following solutions, by order of preference:
Convert all the values in default built-in units before writing the
SBML. You'll find the default built-in units at:
No unitDefinition needed.
Redefine the built-in units. The following block change the default
"substance" from mole to millimole and the default "time" to hour.
<unitDefinition id="substance" name="millimole">
<unit kind="mole" scale="-3"/>
<unitDefinition id="time" name="heure (new default)">
<unit kind="second" multiplier="3600"/>
No extra unitDefinition are needed if units are consistent all over
(3) Define correct units, and use them consistently all over the
model. It is handy if all the amounts are expressed in the same unit,
as all the time and all the spaces.
Name Possible Scalable Units Default Units
volume litre, cubic metre litre
area square metre square metre
length metre metre
Why not changing the default volume from litre to cubic metre?
Why do we need all those units? Could-we imagine a situation where
SBML files would be expressed only in SI units, and the software would
do the necessary conversions into the biologist loved units?
Nicolas LE NOVÈRE, Computational Neurobiology,
EMBL-EBI, Wellcome-Trust Genome Campus, Hinxton, Cambridge, CB10 1SD, UK
Tel: +44(0)1223 494 521, Fax: +44(0)1223 494 468, Mob: +33(0)689218676
http://www.ebi.ac.uk/~lenov AIM screen name: nlenovere