Non-ohmic Ca current and Ca accumulation
Posted: Tue May 16, 2006 6:44 pm
Folks,
I had a couple of questions about the implementation of a simple
calcium-buffering mechanism in NEURON/NMODL, and would be very grateful
for any help.
I'm implementing a model with a Ca channel and a KCa channel, in which
aspects of the activation/inactivation of both channels depend on the
internal Ca concentration. I've implemented this a certain way, and
wanted to make sure that this was the "standard" way (or one standard
way), and ask a few questions about implementation and performance using
this scheme.
I implemented this using three separate mod files:
ca.mod
kca.mod
caint.mod
Predictably, ca.mod implements the Ca channel, kca.mod implements the
KCa channel, and caint.mod implements the internal Ca accumulation. In
this model, Ca channel activation is voltage-dependent, and Ca channel
inactivation is a function of internal Ca concentration (i.e. h_ca is
not a state variable, it's a function of cai). The KCa channel in the
model has voltage- and calcium-dependent activation, and calcium-
dependent inactivation (m_kca and h_kca are both state variables). The
Ca accumulation model (contained in caint.mod) is very simplified -- the
equation for it is given by:
cai' = (cai_base-cai)/tau_ca - 1/(z_ca*q_e*N_A*d)*ica
where cai_base is the steady-state level of cai in the absence of Ca
current, tau_ca is the time constant of Ca buffering, d is the depth of
the shell into which incoming calcium enters (and instantaneously
mixes), z_ca is the valence of Ca (+2), q_e is the elementary charge,
and N_A is Avogadro's number.
There are other currents in my model, but only the one Ca current, and
none of the other currents are Ca-dependent.
I use the GHK current equation for calculating ica (in ca.mod).
I use the cnexp method for all my SOLVE statements in NMODL, since in
each case the time-derivatives of the state variables are linear
functions of the state variables themselves.
I'm using the reverse Euler integration method, with a largish time step
of 0.1 ms.
So, my questions are:
1) Does everything I've described above sound reasonable? Is this the
"normal" way to implement the mechanisms I've described?
2) Is it appropriate to use the cnexp method for all the solve
statements? For some reason, I have some lingering unease about
this, given that by Ca current is not ohmic. But that's silly, isn't
it?
3) How does neuron deal with non-ohmic currents (like my Ca current)
when integrating the voltage? The descriptions I've read of the
Hines scheme for integrating the membrane potential all assume ohmic
currents. Does NEURON linearize the current using the present values
of cai, cao, and v, and then proceed as normal? Can I speed things
up at all by somehow providing an analytical form for this
linearization?
4) I've tried to use the TABLE statement in all my NMODL files, to make
the simulations run faster. But the steady-state activation of my
KCa current is a function of both voltage and internal Ca, so I don't
think I can use TABLE. Is this right? I know there's a way to do a
2D lookup table for a current in HOC, but if there's a way to do that
inside the .mod file, I think I'd prefer that.
Okay, I think that's about it. My deepest thanks to anyone who is
willing to help with any of these questions!
Best,
Adam Taylor
Brandeis University
I had a couple of questions about the implementation of a simple
calcium-buffering mechanism in NEURON/NMODL, and would be very grateful
for any help.
I'm implementing a model with a Ca channel and a KCa channel, in which
aspects of the activation/inactivation of both channels depend on the
internal Ca concentration. I've implemented this a certain way, and
wanted to make sure that this was the "standard" way (or one standard
way), and ask a few questions about implementation and performance using
this scheme.
I implemented this using three separate mod files:
ca.mod
kca.mod
caint.mod
Predictably, ca.mod implements the Ca channel, kca.mod implements the
KCa channel, and caint.mod implements the internal Ca accumulation. In
this model, Ca channel activation is voltage-dependent, and Ca channel
inactivation is a function of internal Ca concentration (i.e. h_ca is
not a state variable, it's a function of cai). The KCa channel in the
model has voltage- and calcium-dependent activation, and calcium-
dependent inactivation (m_kca and h_kca are both state variables). The
Ca accumulation model (contained in caint.mod) is very simplified -- the
equation for it is given by:
cai' = (cai_base-cai)/tau_ca - 1/(z_ca*q_e*N_A*d)*ica
where cai_base is the steady-state level of cai in the absence of Ca
current, tau_ca is the time constant of Ca buffering, d is the depth of
the shell into which incoming calcium enters (and instantaneously
mixes), z_ca is the valence of Ca (+2), q_e is the elementary charge,
and N_A is Avogadro's number.
There are other currents in my model, but only the one Ca current, and
none of the other currents are Ca-dependent.
I use the GHK current equation for calculating ica (in ca.mod).
I use the cnexp method for all my SOLVE statements in NMODL, since in
each case the time-derivatives of the state variables are linear
functions of the state variables themselves.
I'm using the reverse Euler integration method, with a largish time step
of 0.1 ms.
So, my questions are:
1) Does everything I've described above sound reasonable? Is this the
"normal" way to implement the mechanisms I've described?
2) Is it appropriate to use the cnexp method for all the solve
statements? For some reason, I have some lingering unease about
this, given that by Ca current is not ohmic. But that's silly, isn't
it?
3) How does neuron deal with non-ohmic currents (like my Ca current)
when integrating the voltage? The descriptions I've read of the
Hines scheme for integrating the membrane potential all assume ohmic
currents. Does NEURON linearize the current using the present values
of cai, cao, and v, and then proceed as normal? Can I speed things
up at all by somehow providing an analytical form for this
linearization?
4) I've tried to use the TABLE statement in all my NMODL files, to make
the simulations run faster. But the steady-state activation of my
KCa current is a function of both voltage and internal Ca, so I don't
think I can use TABLE. Is this right? I know there's a way to do a
2D lookup table for a current in HOC, but if there's a way to do that
inside the .mod file, I think I'd prefer that.
Okay, I think that's about it. My deepest thanks to anyone who is
willing to help with any of these questions!
Best,
Adam Taylor
Brandeis University