Re: SBML L2v2 specification vote #4: References to controlled vocabularies
16 Dec '05 10:56
>But if it is in the list of modifiers, I would expect the sboTerm of the
>species reference there to say that it is an inhibitor? I just want to
>know what a program reading those sboTerms is supposed to do if it finds
>something like that. Is this supposed to be OK, generate a warning, or
>is it to be considered an error?
It should not have to say about being a modifier in the
listOfProducts, because it should mention this in listOfModifiers. So, yes
you should expect that it may be an error and generate a warning.
>So programs would have to evaluate both the formula and the sboTerm. I
>could imagine that there are some programs out there that will just read
>the sboTerm because this is simpler and on the other hand there are
>programs that will read the formulas but that don't have code to check
>wether the formula is consistent with what the sboTerm says. So in such
>a case, the program that just reads the sboTerm will simulate a
>different model than the program that just reads the formula. And both
>will do so without issuing a warning. So in essence the specification
>either has to say that programs will have to have code to check the
>consistency of sboTerm and formula which is a lot of work, or it has to
>state wether the formula or the sboTerm is to be taken for creating the
>kinetics. I guess that in this case the formula is to be taken, but if I
>have to parse the formula in any case, what advantage does having the
>sboTerm in the kinetic law bring?
My own view is that the formula should be the correct one and that
programs should not rely on the sboTerm (which is not backwards
compatible). But, if a program does check that they are equivalent, it
should give a warning that they don't match. The specification does not
have to state which is correct because everyone who uses SBML will make
sure they have got the equation type right, won't they?
I can't find it in the spec at the moment, but I think the sboTerm may be
1) Otherwise how can you create a new type of rate law for a
particular model before changing the SBO to add the law?
2) For backward compatibility.
The advantages of having the sboTerm in the kinetic law have been given as
speed of compilation, but I can't see why one can't compile a model once
and then merely alter parameters in (a copy of) the compiled model before
running, rather than automatically recompile thousands of times. Knowing
that I could do it that way in an object-oriented language, I failed to
follow the argument for doing the longer process in a loop as being more
>Maybe I am missing something here but I don't think you can expect every
>program to make those consistency checks!
Neither do I.
GSK Scientific Computing and Mathematical Modelling
Medicines Research Centre
Gunnels Wood Road