KINETIC block for enzymatic reaction

NMODL and the Channel Builder.
Post Reply
Posts: 4
Joined: Fri Jan 18, 2019 10:58 am

KINETIC block for enzymatic reaction

Post by simonvhardy »


We have been building a model coupling electrophysiology and signal transduction using expanded NEURON. In our debugging process, we decided to validate the modeling of the chemical reactions with another simulator. Simulation results with NEURON are wrong as soon as we introduce enzymatic reactions with KINETIC blocks.

We read this thread viewtopic.php?p=1667 where numerical instability is mentioned in the last message. This doesn't seem to be our problem. We do however use variables in the rate constants. This is an example in which variables are used to compute a dynamic rate parameter based on Michaelis-Menten:

Code: Select all

tempRaf = ((kcat_raf * RasGTPi)/(Rafi + km_raf))
tempRafP = (kcat_rafP * RafPhosphatase)/(RafPi + km_rafP)
~ Rafi <-> RafPi (tempRaf, tempRafP)
In this example, RasGTPi and RafPhosphatase are enzymes involved in opposite reactions phosphorylating and dephosphorylating Raf.

What is wrong with this?
Site Admin
Posts: 1619
Joined: Wed May 18, 2005 3:32 pm

Re: KINETIC block for enzymatic reaction

Post by hines »

I suspect that the solver has been tricked into thinking the system is linear and can be solved in a single iteration. Ie the changes in
Rafi and RafPi are computed with constant rates (for that time step) that will be computed based on the entry values of Rafi and RafPi.
Unfortunately, my experience is that iterative (Newton) methods to find a fixed point of the equations can have a hard time when states are
in the denominator. e.g x = 1 can be solved but 1/x = 1 cannot be solved by newton iteration. A good way of avoiding the problem is to
explicitly specify the enzyme reactions using the style
~ S + E <-> E* (k1, k2)
~ E* <-> R + E (k3, k4)
for each enzyme.
Post Reply