## Modeling Calcium Accumulation and Diffusion

NMODL and the Channel Builder.
jjnaylor

### Modeling Calcium Accumulation and Diffusion

I want to model a single dendrite with a synapse that has a voltage dependent calcium current and the whole dendrite to have pumps.

My current model sets up a point process on the dendrite with a calcium current and a synaptic current that uses a net receive gating variable s. The external calcium is held fixed at cao0.

Code: Select all

``````BREAKPOINT {
SOLVE states METHOD cnexp
rates(v)

ica = gca*inf_m*(v-RT/(2F)*log(cao0/cai))
i = gsyn*s*(v - Esyn)
}
DERIVATIVE states {
s' = -s/tau_s
}
NET_RECEIVE (weight (microsiemens)) {
s=1
}
PROCEDURE rates(v (mV)) {
inf_m = (1/2)*(1+tanh((v-theta_m)/sig_m))
}``````
I then set up a kinetic scheme for calcium diffusion with the following code:

Code: Select all

``````BREAKPOINT {
x=pump(cai)
SOLVE state METHOD sparse
}
KINETIC state {
COMPARTMENT diam*diam {cai}
LONGITUDINAL_DIFFUSION DCa*PI*diam*diam/4 {cai}
}
FUNCTION pump(x (mM)) {
:The calcium pump current
pump = vca*(cai^2/(cai^2+kca^2)-caeq^2/(caeq^2+kca^2))
}``````
I realize that my ica is a point process (and so the ica*PI*diam/(2*FARADY) is likely flawed), but I was unsure how to convert that into a calcium flux. The vca is a rate constant for the pump, currently set to 10 /s and caeq is set to 50 nM. At rest I expect the dendrite to reach an equilibrium where the majority of the pipe has calcium concentrations close to or at 50 nM and at and around the site of the synapse the calcium concentrations are slightly elevated. However this is not the case when I run the simulation. The calcium continues accumulated and never seems to stop. I usually stop simulations after 100 seconds (10^5 ms) when the internal calcium becomes absurdly high (in the molar range).

Should I convert the synaptic calcium current to a distributed mechanism or current density? Do you have any ideas why the pump isn't able to equilibrate the synaptic calcium current? Thanks!
ted
Posts: 5819
Joined: Wed May 18, 2005 4:50 pm
Location: Yale University School of Medicine
Contact:

### Re: Modeling Calcium Accumulation and Diffusion

Code: Select all

``````BREAKPOINT {
SOLVE states METHOD cnexp
rates(v)

ica = gca*inf_m*(v-RT/(2F)*log(cao0/cai))
i = gsyn*s*(v - Esyn)
}
DERIVATIVE states {
s' = -s/tau_s
}
NET_RECEIVE (weight (microsiemens)) {
s=1
}
PROCEDURE rates(v (mV)) {
inf_m = (1/2)*(1+tanh((v-theta_m)/sig_m))
}``````
I'm having some difficulty understanding how this mechanism relates to anything that might be interesting to model. inf_m is an instantaneous function of membrane potential, and so is ica. There is also some other i that is governed by a conductance that is forced to the value gsyn whenever an input event arrives, regardless of the weight of that event, and then decays monoexponentially back toward 0. These are the features that you want?
I then set up a kinetic scheme for calcium diffusion with the following code:
You're using a different mechanism for this, right? A density mechanism, not a point process, right?
I realize that my ica is a point process (and so the ica*PI*diam/(2*FARADY) is likely flawed)
Why would it be? Presumably this mechanism has a
USEION ca READ cai, ica WRITE cai
statement in its NEURON block, and declares
ica (mA/cm2)
in its ASSIGNED block. In any section that has a mechanism with a USEION ca statement, NEURON automatically creates a ca_ion mechanism that takes care of gathering all calcium currents, whether written by density mechanisms or point processes, and reconciling their units. So you really shouldn't have to do anything special about the fact that one mechanism is a point process and the other is a density mechanism.
At rest I expect the dendrite to reach an equilibrium where the majority of the pipe has calcium concentrations close to or at 50 nM and at and around the site of the synapse the calcium concentrations are slightly elevated. However this is not the case when I run the simulation. The calcium continues accumulated and never seems to stop. I usually stop simulations after 100 seconds (10^5 ms) when the internal calcium becomes absurdly high (in the molar range).
The first thing to do is to debug your calcium accumulation mechanism. Put it into a section all by itself, with no other mechanisms that WRITE ica, and see what happens when you run a simulation.
jjnaylor

### Re: Modeling Calcium Accumulation and Diffusion

The inf_m is supposed to be a gating variable with fast kinetics for the calcium current. Instead of making a gating variable m, we just assume it goes to steady state, which is voltage dependent.

With regards to the nonspecific current, I forgot that I could use the weight of an alpha synapse (the one that comes with Neuron) and to vary the input instead of simply an exponential decay of a fixed conductance. In that case I just removed the derivative block and just set the conductance to the weight, which I can vary in the input (be it alpha synapse or something else).

I set up different mechanisms for the point process (synaptic nonspecific and synaptic calcium currents) and the kinetic scheme (longitudinal diffusion and pump). In the point process, the calcium current is assigned/declared as
ica (mA)
while the kinetic scheme mechanism assigns it as
ica (mA/cm2)
Are you saying that Neuron automatically takes this synaptic calcium current and reconciles it (and the units) with all other calcium currents?

Thanks for your help!
ted
Posts: 5819
Joined: Wed May 18, 2005 4:50 pm
Location: Yale University School of Medicine
Contact:

### Re: Modeling Calcium Accumulation and Diffusion

Thanks for explaining your implementation strategy.
In the point process, the calcium current is assigned/declared as
ica (mA)
while the kinetic scheme mechanism assigns it as
ica (mA/cm2)
Are you saying that Neuron automatically takes this synaptic calcium current and reconciles it (and the units) with all other calcium currents?
NEURON automatically takes care of charge balance and mass balance as long as currents generated by density mechanisms are in mA/cm2 and currents generated by point processes are in nA. If you have a mechanism that WRITEs ica but you declare ica's units to be mA, both charge and mass balance will be incorrect.

"Oh, but I really want to think of the current produced by my FooSyn mechanism in terms of mA."

Fine, but the way to do that without breaking anything is like this:

In the NEURON block insert

Code: Select all

``RANGE i``
In the ASSIGNED block insert

Code: Select all

``i (mA)``
In the BREAKPOINT block, change the statement

Code: Select all

``ica = gsyn*(v-eca)``
, where I presume that your gsyn is in S (it has to be, if the product gsyn*(v-eca) is to be in units of mA), to

Code: Select all

``````i = gsyn*(v-eca)
ica = i*(1e6)``````
Now charge and mass balance will be OK, and your synaptic mechanism's current in mA will be known to hoc as syn.i (assuming that you created an instance of your synaptic mechanism with statements like this:

Code: Select all

``````objref syn
somesection syn = new FooSyn(0.5)``````
)

By the way, have you checked your mechanisms for consistency of units with modlunit?