I "understand" the concept that if we have the reaction
A <> B
With the forward rate Kf and the backwards rate Kb, then we can say
dA/dt = Kf . A + Kb . B
From that, I understand, when it comes to HH kinetics, we could say, in the DERIVATIVE block
n' = alpha(v)*(1n)  beta(v)*n
However, I very rarely see NMODL coded in that form. It is normally in the form...
n' = (n_inf  n) / tau_n
which is calculated from
tau_n = 1 / (alpha(v) + beta(v))
n_inf = alpha(v) / (alpha(v) + beta(v))
This, I do not understand. I assume these later "alpha" and "beta" functions are not identical to the former ones, if the mechanism was to produce an identical current? How do I think about these alphas and betas... are they still foward and backward rate constants? Why do people not use the first form that seems more intuitive? It seems hard to believe it is for a computation advantage. Finally, and most importantly, how do I adjust said alpha and beta functions to adjust the kinetics in terms an electrophysiologist would understand, i.e. the V50, the activation kinetics etc?
For reference sake, here is the alpha and beta from the mechanism I am looking at
alpha = 0.032 * (15v2) / ( exp((15v2)/5)  1)
beta = 0.5 * exp((10v2)/40)
Different maths for dealing with the gating particle???

 Posts: 85
 Joined: Thu May 22, 2008 11:54 pm
 Location: Australian National University

 Site Admin
 Posts: 5170
 Joined: Wed May 18, 2005 4:50 pm
 Location: Yale University School of Medicine
 Contact:
Re: Different maths for dealing with the gating particle???
Take conservation into account and you'll see the equivalence between the ODE and kinetic scheme formulations.
Start with
A <> B with forward and backward rates a and b (I hate typing)
and impose the assumption that A+B = 1 (makes sense if A and B are the fractions of "gating particles" that are in the "closed" and "open" states, respectively)
dB/dt = aA  bB = a(1  B)  bB = a  (a + b)B
My claim is that this is equivalent to
dB/dt = (Binf  B)/tauB = Binf/tauB  B/tauB
If x = y and x = z then y = z, so
a  (a + b)B = Binf/tauB  B/tauB
The first term on the left hand side is a (a constant), and the second term is the product of (a + b) (another constant) times B (a state variable).
The first term on the right hand side is Binf/taub (a constant), and the second term is B (a state variable) divided by tauB (a constant).
The equality
a  (a + b)B = Binf/tauB  B/tauB
demands that the constant terms on the right and left hand sides equal each other,
and that the statevariableinvolved terms on the right and left hand sides equal each other.
In other words, we have these two new equations
a = Binf/tauB
and
(a + b)B = B/tauB
and we can solve these two new equations for tauB and Binf to get
tauB = 1/(a + b)
and
Binf = a tauB = a/(a + b)
Start with
A <> B with forward and backward rates a and b (I hate typing)
and impose the assumption that A+B = 1 (makes sense if A and B are the fractions of "gating particles" that are in the "closed" and "open" states, respectively)
dB/dt = aA  bB = a(1  B)  bB = a  (a + b)B
My claim is that this is equivalent to
dB/dt = (Binf  B)/tauB = Binf/tauB  B/tauB
If x = y and x = z then y = z, so
a  (a + b)B = Binf/tauB  B/tauB
The first term on the left hand side is a (a constant), and the second term is the product of (a + b) (another constant) times B (a state variable).
The first term on the right hand side is Binf/taub (a constant), and the second term is B (a state variable) divided by tauB (a constant).
The equality
a  (a + b)B = Binf/tauB  B/tauB
demands that the constant terms on the right and left hand sides equal each other,
and that the statevariableinvolved terms on the right and left hand sides equal each other.
In other words, we have these two new equations
a = Binf/tauB
and
(a + b)B = B/tauB
and we can solve these two new equations for tauB and Binf to get
tauB = 1/(a + b)
and
Binf = a tauB = a/(a + b)

 Posts: 85
 Joined: Thu May 22, 2008 11:54 pm
 Location: Australian National University
Re: Different maths for dealing with the gating particle???
Very interesting...
So then is there any computation reason why someone would essentially insert a few more lines of code that convert alpha and beta into tau and inf, and then essentially convert it back later on? I assume it is for some conceptual reason?
So then is there any computation reason why someone would essentially insert a few more lines of code that convert alpha and beta into tau and inf, and then essentially convert it back later on? I assume it is for some conceptual reason?

 Site Admin
 Posts: 5170
 Joined: Wed May 18, 2005 4:50 pm
 Location: Yale University School of Medicine
 Contact:
Re: Different maths for dealing with the gating particle???
Many voltagegated channels use an ODEbased idiom similar toinstead of the kinetic scheme alternative. Probably the most common reason is the long chain of precedence starting with Hodgkin & Huxley. For NEURON users, practical justifications for using ODEs are that the cnexp method is fast and, if secondorder is set to 1 or 2, generates second order correct solutions (v error is proportional to dt^2). Kinetic schemes require the sparse method, which is slower than cnexp and produces first order correct solutions (v error proportional to dt)see Integration methods for SOLVE statements in the Forum's Hot tips area. That said, some voltage and/or ligandgated channel models are expressed as Markov modelsmultiple states coupled by transitions with v or concentrationdependent probabilitiesespecially in the pharmacology and channel biophysics literature. Those are most easily implemented with a KINETIC scheme, i.e. a family of "reactions". Yes, there are some published examples of code whose authors have laboriously translated a Markov model to a family of ODEs, but the resulting code is long and difficult to read, debug, and maintain; it might run a bit faster than if expressed as family of reactions, but programmer's time is generally far more valuable than computer time.
Code: Select all
BREAKPOINT {
SOLVE states METHOD cnexp
gk = gkbar*n*n*n*n
ik = gk*(v  ek)
}
INITIAL {
rates(v)
n = ninf
}
DERIVATIVE states {
rates(v)
n' = (ninfn)/ntau
}
PROCEDURE rates(v(mV)) {
LOCAL alpha, beta
alpha = something
beta = somethingelse
ntau = 1/(alpha + beta)
ninf = alpha*ntau
}