|
Another simple example:
S + E --r> E:S --> E + P
2 I + E --r> E:I2
The enzyme is only inhibited when there are two inhibitor molecules. Not
one. Two.
Using a continuous time Monte Carlo method (Kinetic MC, Gillespie,
<insert favorite name here>), if there is only one inhibitor molecule then
the waiting time for the next inhibition reaction is infinity (ie. it'll
never happen). If you're using ODEs, the rate can still be positive.
The stoichiometry of the modifier then becomes important.
Stefan Hoops wrote:
>My impression is that people try to automatically assign a rate law
>based on the stoichiometry of substrate, products and modifiers. Since
>SBML supports rate laws explicitly their exists no need to support any
>such automatism of a particular software. This software could just read
>the kinetic law.
>
>Thanks,
>Stefan
>
>
My code is Fortran95 and needs to be fast. Really fast. It's not
straightforward to quickly read in an XML parsed CellML or whatever
kinetic rate law and evaluate it.
Now if everyone can agree on an unique identifier for each form of a
rate law, that'd be useful. Otherwise, it's not worth my time or effort
to figure out which rate law the SBML is encoding and match it to some
unique internal representation. Want an example? How about:
SBML encodes: r = k1 * (X2 * X1^2 + 2*X1*X2*X3 + X2*X3^2 + X4*X1^2 +
2*X1*X3*X4 + X4*X3^2) / k2 / (X1 + X3)
which also simplifies to r = k1 * (X1 + X3) * (X2 + X4) / k2
So which is it? They're algebraically equivalent, but I'd want to store
and evaluate the latter one. Try to think of a way, in code, to simplify
the one rate law to the other. Now generalize it for any algebraic
equation. Now do that for every rate law encoded in SBML. For a big
reaction network. Can you say sloooow? And the internal representation
must be able to be quickly evaluated. Even Matlab's simplify function
sometimes has problems.
I'd rather have SBML encode a unique integer for every rate law form and
then a simulation program can simply look it up from a table and
evaluate. The programmer of the tool explicitly knows the form of the
rate law so there's no surprises. From the user's perspective, the GUI
can display a lot of information about the rate law and its meaning.
Those are my two bits.
-Howard Salis
>On Tue, 26 Apr 2005 12:27:37 -0500
>Howard Salis <salis@cems.umn.edu> wrote:
>
>
>
>>I will give you an example of vague. This example is located in most
>>classic textbooks on enzyme kinetics.
>>
>>There is a substrate S, an enzyme E, an inhibitor I, and a product P.
>>
>>Consider the three classic types of inhibition: competitive,
>>non-competitive, and uncompetitive.
>>
>>Competitive:
>>E + S --r> E:S --> E + P
>>E + I --r> E:I
>>
>>Uncompetitive:
>>E + S --r> E:S --> E + P
>>E:S + I --r> E:S:I
>>
>>Non-competitive:
>>E + S --r> E:S --> E + P
>>E + I --r> E:I
>>E:S + I --r> E:S:I
>>
>>If you want to use the steady state approximation on these reactions,
>>the total balance is S --> P with some rate law (Michaelis Menten
>>like). In your definition of modifier, for the total balance on these
>>reactions (which is S --> P), the inhibitor and enzyme are both
>>modifiers. However, the rate laws of all three of these types of
>>inhibition are different. They all depend on the numbers of molecules
>>of inhibitor and enzyme differently. To correctly calculate the rates
>>of these reactions, you then need to know how the modifier affects the
>>rate. The information for the reaction then needs data for not only
>>the reactants and products, but also for the 'modifiers'.
>>
>>This is the simplest of examples. What happens when something more
>>realistic comes along?
>>
>>Also, the rate law I gave as a power law is dependent on only the
>>reactants of the reaction and rightly does not distinguish between
>>reactants whose stoichiometry is zero or non-zero. Species whose
>>stoichiometries may be zero for the total balance of the reaction may
>>still be a variable within the rate law. And that is why the term
>>'modifier' is vague: it doesn't say how the numbers of molecules of
>>the species affects the rate of the reaction.
>>
>>-Howard Salis
>>
>>Pedro Mendes wrote:
>>
>>
>>
>>>On Monday 25 April 2005 10:14 pm, Howard Salis wrote:
>>>
>>>
>>>
>>>
>>>>I think the idea of 'modifiers' is too vague to be useful.
>>>>
>>>>
>>>>
>>>>
>>>I think the discussions in this list are starting to convince me that
>>>anyone who wants to be doing any modeling of biochemical systems
>>>should first have to pass an "Enzyme Kinetics" course. The concept of
>>>modifier is not vague at all, it is quite well defined. It seems to
>>>me that there are a number of people out there that want to define
>>>this concept according to whatever their software thinks a modifier
>>>is.
>>>
>>>Power-law models do not distinguish between substrates, products or
>>>modifiers. For power laws everything is an effector (hey, there's
>>>another word that I expect will have a long discussion too).
>>>
>>>As someone else already stated in this thread, a modifier is not
>>>changed by the reaction therefore the only number that could be
>>>attributed to its stoichiometry is zero.
>>>
>>>Also, reactions do not need any modifier (eg activator) to proceed.
>>>If you put NADH in contact with oxygen, it is only a matter of time
>>>that you end up with NADP+ and water - no enzymes required.
>>>
>>>Anyway, I am one of the defenders that software should be
>>>sufficiently user-friendly to allow non-speciallists to carry out
>>>simulation. But this has always meant to me that they do not need to
>>>be speciallists in mathematics, numerical analysis, or software
>>>engineering. They DO need to know biochemistry if they want to model
>>>biochemical systems - I'm sorry for this lengthy rant, but I am
>>>strongly opposed that we should bastardize terms that are objective
>>>and quite specific (and old) just because some software happens to
>>>use them in some wrong way.
>>>
>>>
>>>
>>>
>>
>>
>
>
>
>
|