Forums

F.A.Q. F.A.Q.    Register Register    Login Login    Home Home
Search Search
SBML Discussions » sbml-discuss » SBML L2v2 specification vote #4: References to controlled vocabularies
Show: Today's Posts  :: Message Navigator
| Subscribe to topic 
Return to the default flat view Create a new topic Submit Reply
AuthorTopic
Howard


Posts: 102
Registered:
August 2004
Re: SBML L2v2 specification vote #4: References to controlled vocabularies 21 Dec '05 10:29 Go to previous messageGo to previous message

Hello all,

Hopefully I'm not presuming too much, but (in my mind) a way to
handle sboTerms might go something like this:

There's two major tasks that use sboTerms: reading & writing SBML files
(ok duh). Each task involves the conversion to or from the SBML to some
internal representation.
Here, we will assume that we have an internal database of SBO terms for
rate laws, species, and kinetic parameters which we may match against.

The database of SBO terms might look like (I'll omit the URL for brevity):

#SBO:000001 1st order mass action reaction
#SBO:000002 2nd order mass action reaction -- bimolecular
#SBO:000003 2nd order mass action reaction -- monomolecular
#SBO:000004 Michaelis Menten reaction
#SBO:000005 Michaelis Menten + Inhibition reaction
#SBO:100001 1st Reactant species
#SBO:100002 2nd Reactant Species
#SBO:100003 1st Product species
#SBO:100004 2nd Product species
#SBO:100005 Enzyme Catalyst #1
#SBO:100006 Inhibitor #1
#SBO:200001 Mass action kinetic constant (x units)
#SBO:200002 Kcat (x units)
#SBO:200003 Km (x units)

'x units' are the units of the parameters.

Using a GUI and a drop down menu, one can add the reaction 'A --> B'
with 1st order mass action kinetics, where 'A' is the '1st Reactant
Species' and 'B' is the '1st Product Species'.
The GUI then writes the following SBML (excuse any errors, but you'll
get the gist):

<listOfReactions>
<reaction id = "Example Reaction"
<kineticLaw>
<sboTerm = #SBO:000001/>
</kineticLaw>
<listOfReactants>
<speciesReference species = "A" stoichiometry = "1" sboTerm
= #SBO:100001 />
<listOfReactants/>
<listOfProducts>
<speciesReference species = "B" stoichiometry = "1" sboTerm
= #SBO:100003/>
<listOfProducts/>
<listOfParameters>
<parameter id = "k1" sboTerm = #SBO:200001/>
</listOfParameters>
</reaction>
</listOfReactions>

This labels 'A' as the 1st reactant species, 'B' as the 1st product
species, identifies the reaction rate law as '1st order mass action',
and signifies the kinetic constant as the mass action kinetic constant
(with a particular set of units).

When reading the above SBML and converting it into an internal
representation in the program, one might do:
-look up the sboTerm for the kineticLaw and find the matching rate
law in the internal list (hard coded for compiled languages)
-match the species in the rate law by creating an index by
identifying where species in the listOfReactants, listOfModifiers, and
listOfProducts belong in the rate law
-convert the units of the parameters to whatever necessary ones
(also using the SBO term of the kinetic parameter to know what the
original units are) and create an index by identifying where each
kinetic parameter belongs in the rate law.

So the rate law for this reaction is r = k * X1. Convert 'k1' to 1/sec,
identify it as the 1st kinetic parameter in the rate law, and identify
'A' as X1. Create indexes to very quickly substitute values of 'A' into
the variable 'X1'.

Ok, now for a Michaelis Menten reaction:

Now, setting the reaction to 'A --> B' but now with the Michaelis Menten
rate law (with an enzyme 'Catalyst' as catalyst), would look like:
<listOfReactions>
<reaction id = "Example Reaction Michaelis Menten"
<kineticLaw>
<sboTerm = #SBO:000004/>
</kineticLaw>
<listOfReactants>
<speciesReference species = "A" stoichiometry = "1" sboTerm
= #SBO:00001 />
<listOfReactants/>
<listOfModifiers>
<speciesReference species = "Catalyst" stoichiometry = "1"
sboTerm = #SBO:10005 />
<listOfModifiers>
<listOfProducts>
<speciesReference species = "B" stoichiometry = "1" sboTerm
= #SBO:00003/>
<listOfProducts/>
<listOfParameters>
<parameter id = "kcat" sboTerm = #SBO:200002 />
<parameter id = "Km" sboTerm = #SBO:200003 />
</listOfParameters>
</reaction>
</listOfReactions>

The rate law for Michaelis Menten is r = kcat*E*S / (Km + S). So,
reading the above SBML and converting it to the internal representation,
might go like:
--Identify reaction as using Michaelis Menten rate law.
--Convert kcat, Km to appropriate units (using sboTerm to denote the
original units).
--Identify the substrate, product, and enzyme species using sboTerms and
create indexes to quickly substitute values.

So 'A' --> 'S' , 'B' --> 'P' , 'Catalyst' --> 'E'.
Note that 'B' is only in the stoichiometry and not in the rate law while
'Catalyst' is only in the rate law and not in the stoichiometry. 'A' is
in both.

Using the sboTerms, it is straightforward to write out the
standard/simplest MathML expression for the kineticLaw. However, _it is
not straightforward to do that in reverse without the sboTerms_.
An example:

Consider the algebraic expression r = E*S / (Km / kcat + S / kcat). Is
this the Michaelis Menten rate law? It is (multiply the top and bottom
by kcat). It is algebraically equivalent. In fact, one can write out an
_infinite_ number of algebraically identical expressions for the
Michaelis Menten rate law. There is no easy way to 'match' an arbitrary
algebraic expression to a hard coded list. That is one major reason why
sboTerms are so needed.

I hope this gives some examples for an informed discussion of the usage
of sboTerms, their necessary, advantages, disadvantages, alternatives, etc.

-Howard Salis

Michael Hucka wrote:

> bshapiro> Its not just the reaction that needs to have the
> bshapiro> correct SBO term: don't all of the appropriate
> bshapiro> parameter values also need to have corresponding
> bshapiro> (correct) SBO Terms (or some equivalent
> bshapiro> information) for the kinetic law to be fully
> bshapiro> specified independent of the math fields?
>
>But, won't a parameter declared as (e.g.) "rate constant for
>first-order mass action" remain the same no matter if the
>kinetic law itself is changed? Or (e.g.) "Michaelis
>constant"?
>
> bshapiro> So we can't just ignore the kineticLaw if
> bshapiro> there is an SBO term, we have to read the
> bshapiro> parameter values and figure out where the go in
> bshapiro> the reaction specified by the SBO term.
>
>I thought of this when I was writing my other message, but
>decided it seemed like the meanings of the quantities and
>other elements of a model would stay the same despite that a
>change in a formula may change how they are *used*. This
>assumption may be incorrect. I'd like to see a case example
>if so.
>
>MH
>
>

      

SubjectPosterDate
Read Message   SBML L2v2 specification vote #4: References to con... Mike Hucka13 Dec '05 14:21
Read Message   Re: SBML L2v2 specification vote #4: References t... Ralph.Gauges15 Dec '05 06:57
Read Message   Re: SBML L2v2 specification vote #4: References to... hugh.d.spence15 Dec '05 10:02
Read Message   Re: SBML L2v2 specification vote #4: References to... Ralph.Gauges16 Dec '05 00:27
Read Message   Re: SBML L2v2 specification vote #4: References to... Nicolas Le Novere16 Dec '05 10:11
Read Message   Re: SBML L2v2 specification vote #4: References to... Sven Sahle19 Dec '05 04:53
Read Message   Re: SBML L2v2 specification vote #4: References to... hugh.d.spence16 Dec '05 10:56
Read Message   Re: SBML L2v2 specification vote #4: References to... Howard16 Dec '05 11:43
Read Message   Re: SBML L2v2 specification vote #4: References to... hugh.d.spence19 Dec '05 04:00
Read Message   Re: SBML L2v2 specification vote #4: References to... Howard19 Dec '05 09:19
Read Message   Re: SBML L2v2 specification vote #4: References to... Martin Ginkel21 Dec '05 12:26
Read Message   Re: SBML L2v2 specification vote #4: References to... Howard21 Dec '05 15:30
Read Message   Re: SBML L2v2 specification vote #4: References t... Nicolas Le Novere16 Dec '05 01:27
Read Message   Re: SBML L2v2 specification vote #4: References t... Mike Hucka20 Dec '05 11:31
Read Message   Re: SBML L2v2 specification vote #4: References t... Nicolas Le Novere20 Dec '05 16:05
Read Message   Re: SBML L2v2 specification vote #4: References t... Mike Hucka20 Dec '05 19:42
Read Message   Re: SBML L2v2 specification vote #4: References t... bshapiro15 Dec '05 12:15
Read Message   Re: SBML L2v2 specification vote #4: References t... Mike Hucka20 Dec '05 19:50
Read Message   Re: SBML L2v2 specification vote #4: References t... Ben Bornstein21 Dec '05 09:25
Read Message   RE: SBML L2v2 specification vote #4: References to... Ralph.Gauges17 Dec '05 09:11
Read Message   RE: SBML L2v2 specification vote #4: References to... Nicolas Le Novere19 Dec '05 08:52
Read Message   RE: SBML L2v2 specification vote #4: References to... Mike Hucka20 Dec '05 15:11
Read Message   Re: SBML L2v2 specification vote #4: References to... Ralph.Gauges21 Dec '05 02:04
Read Message   Re: SBML L2v2 specification vote #4: References to... Mike Hucka02 Jan '06 23:33
Read Message   Re: SBML L2v2 specification vote #4: References to... Nicolas Le Novere03 Jan '06 00:21
Read Message   Re: SBML L2v2 specification vote #4: References to... Mike Hucka03 Jan '06 15:30
Read Message   Re: SBML L2v2 specification vote #4: References to... Nicolas Le Novere04 Jan '06 03:08
Read Message   Re: SBML L2v2 specification vote #4: References to... Nicolas Le Novere06 Jan '06 10:37
Read Message   Re: SBML L2v2 specification vote #4: References to... Martin Ginkel05 Jan '06 01:44
Read Message   Re: SBML L2v2 specification vote #4: References to... Nicolas Le Novere03 Jan '06 00:50
Read Message   Re: SBML L2v2 specification vote #4: References to... hugh.d.spence05 Jan '06 05:29
Read Message   Re: SBML L2v2 specification vote #4: References to... Nicolas Le Novere05 Jan '06 11:01
Read Message   Re: SBML L2v2 specification vote #4: References to... hugh.d.spence06 Jan '06 02:48
Read Message   Re: SBML L2v2 specification vote #4: References to... Nicolas Le Novere06 Jan '06 10:32
Read Message   Re: SBML L2v2 specification vote #4: References to... hugh.d.spence03 Jan '06 04:30
Read Message   Re: SBML L2v2 specification vote #4: References to... Mike Hucka03 Jan '06 20:55
Read Message   Re: SBML L2v2 specification vote #4: References to... bshapiro03 Jan '06 12:52
Read Message   Re: SBML L2v2 specification vote #4: References to... Stefan Hoops03 Jan '06 14:16
Read Message   Re: SBML L2v2 specification vote #4: References to... Mike Hucka03 Jan '06 15:39
Read Message   Re: SBML L2v2 specification vote #4: References to... Nicolas Le Novere04 Jan '06 03:02
Read Message   Re: SBML L2v2 specification vote #4: References to... Stefan Hoops04 Jan '06 09:46
Read Message   Re: SBML L2v2 specification vote #4: References to... Mike Hucka03 Jan '06 14:24
Read Message   Re: SBML L2v2 specification vote #4: References to... Nicolas Le Novere04 Jan '06 02:55
Read Message   Re: SBML L2v2 specification vote #4: References to... Howard19 Dec '05 09:22
Read Message   Re: SBML L2v2 specification vote #4: References to... Ralph.Gauges20 Dec '05 01:48
Read Message   Re: SBML L2v2 specification vote #4: References to... Howard20 Dec '05 11:13
Read Message   RE: SBML L2v2 specification vote #4: References to... Mike Hucka20 Dec '05 19:56
Read Message   Re: SBML L2v2 specification vote #4: References to... bshapiro20 Dec '05 20:18
Read Message   Re: SBML L2v2 specification vote #4: References to... Mike Hucka20 Dec '05 23:55
Read Message   Re: SBML L2v2 specification vote #4: References to... hugh.d.spence21 Dec '05 02:18
Read Message   Re: SBML L2v2 specification vote #4: References to... Mike Hucka21 Dec '05 05:48
Read Message   Re: SBML L2v2 specification vote #4: References to... bshapiro21 Dec '05 11:35
Read Message   Re: SBML L2v2 specification vote #4: References to... Howard21 Dec '05 15:44
Read Message   Re: SBML L2v2 specification vote #4: References to... Stefan Hoops22 Dec '05 07:30
Read Message   Re: SBML L2v2 specification vote #4: References to... Howard22 Dec '05 09:22
Read Message   Re: SBML L2v2 specification vote #4: References to... Stefan Hoops22 Dec '05 10:12
Read Message   Re: SBML L2v2 specification vote #4: References to... Pedro Mendes22 Dec '05 10:23
Read Message   Re: SBML L2v2 specification vote #4: References to... Howard22 Dec '05 11:18
Read Message   Re: SBML L2v2 specification vote #4: References to... zucker22 Dec '05 11:54
Read Message   Re: SBML L2v2 specification vote #4: References to... Howard22 Dec '05 12:13
Read Message   Re: SBML L2v2 specification vote #4: References to... Ralph.Gauges23 Dec '05 01:02
Read Message   Re: SBML L2v2 specification vote #4: References to... Mike Hucka02 Jan '06 20:49
Read Message   Partial compliance [was] SBML L2v2 specification ... Nicolas Le Novere03 Jan '06 00:08
Read Message   Re: SBML L2v2 specification vote #4: References to... bshapiro22 Dec '05 12:05
Read Message   Re: SBML L2v2 specification vote #4: References to... Howard22 Dec '05 12:21
Read Message   Re: SBML L2v2 specification vote #4: References to... Mike Hucka23 Dec '05 09:07
Read Message   Re: SBML L2v2 specification vote #4: References to... Howard23 Dec '05 10:07
Read Message   Re: SBML L2v2 specification vote #4: References to... Nicolas Le Novere22 Dec '05 05:23
Read Message   Re: SBML L2v2 specification vote #4: References to... Stefan Hoops22 Dec '05 08:25
Read Message   Re: SBML L2v2 specification vote #4: References to... Nicolas Le Novere22 Dec '05 10:19
Read Message   Re: SBML L2v2 specification vote #4: References to... Stefan Hoops22 Dec '05 10:31
Read Message   Re: SBML L2v2 specification vote #4: References to... bshapiro22 Dec '05 10:58
Read Message   Re: SBML L2v2 specification vote #4: References to... Mike Hucka22 Dec '05 12:29
Read Message   Re: SBML L2v2 specification vote #4: References to... Darren J Wilkinson23 Dec '05 12:12
Read Message   Re: SBML L2v2 specification vote #4: References to... Mike Hucka23 Dec '05 15:46
Read Message   Re: SBML L2v2 specification vote #4: References to... Hiroyuki Kuwahara24 Dec '05 22:01
Read Message   Re: SBML L2v2 specification vote #4: References to... Mike Hucka03 Jan '06 00:33
Read Message   Re: SBML L2v2 specification vote #4: References to... Hiroyuki Kuwahara04 Jan '06 10:27
Read Message   Re: SBML L2v2 specification vote #4: References to... Mike Hucka04 Jan '06 11:49
Read Message   Re: SBML L2v2 specification vote #4: References to... Mike Hucka02 Jan '06 22:23
Read Message   Re: SBML L2v2 specification vote #4: References to... Mike Hucka02 Jan '06 20:20
Read Message   Re: SBML L2v2 specification vote #4: References to...  Howard21 Dec '05 10:29
Read Message   Re: SBML L2v2 specification vote #4: References to... Sven Sahle22 Dec '05 01:56
Read Message   RE: SBML L2v2 specification vote #4: References to... Nicolas Le Novere21 Dec '05 10:08
Read Message   RE: SBML L2v2 specification vote #4: References to... zucker21 Dec '05 11:02
Read Message   Re: SBML L2v2 specification vote #4: References to... Ralph.Gauges22 Dec '05 02:53
Read Message   Re: SBML L2v2 specification vote #4: References to... Ralph.Gauges22 Dec '05 02:57
Read Message   Re: SBML L2v2 specification vote #4: References to... Stefan Hoops22 Dec '05 08:10
Read Message   RE: SBML L2v2 specification vote #4: References to... Herbert Sauro22 Dec '05 13:08
Read Message   Re: SBML L2v2 specification vote #4: References to... zucker23 Dec '05 22:28
Read Message   Re: SBML L2v2 specification vote #4: References to... Mike Hucka26 Dec '05 09:11
Read Message   Results of SBML L2v2 specification survey vote #4 Mike Hucka04 Jan '06 23:37
Previous Topic:voting process
Next Topic:Voting status & upcoming deadlines
Go to forum:
-=] Back to Top [=-

Powered by FUDforum. (Copyright Advanced Internet Designs Inc.)

Please use our issue tracking system for any questions or suggestions about this website.