Page 1 of 1

Modeling Calcium Accumulation and Diffusion

Posted: Thu Sep 15, 2011 11:33 am
by jjnaylor
I'm trying to model preBötzinger neurons and one of the key features is a calcium-activated nonspecific current. As the model is written, internal calcium increases after synaptic events (with some delay to account for the 2nd messenger pathways), which are coded in with a state variable s. My main issue is that I want the calcium to accumulate only in specific spots and then diffuse along the dendrites. This should lead to a traveling wave of calcium and also a wave of depolarization. However, the neuron seems to depolarize and change internal calcium uniformly across the whole cell.

Here is my Neuron block

Code: Select all

NEURON {
	SUFFIX jjn	
	USEION ca READ cai WRITE cai
	NONSPECIFIC_CURRENT i
	RANGE gcan, gsyn, Ens, Ca, k_ip
}
Parameter and state blocks

Code: Select all

PARAMETER {
	gsyn = 0.0000555555556 (mho/cm2) <0,1e9>
	gcan = 0.0000888888889 (mho/cm2) <0,1e9>
	Ens = 0 (mV)
	sig_can = -0.05 (uM)
	sig_s = -3 (mV)
	theta_s = 15 (mV)
	Ca = 0.05 (uM)
	k_can = 0.9 (uM)
	k_ca = 22.5 (/ms)
	k_ip = 1200 (uM/ms)	<0,1e9>
	k_s = 1
	eps_ca = 0.0007
	tau_s = 15 (ms)
}
STATE {
	s cai
}
Assigned and Initial blocks

Code: Select all

ASSIGNED {
	v (mV)
	i (mA/cm2)
	inf_s
}
INITIAL {
	rates(v)
	s = inf_s
	cai = Ca
}
Breakpoint and derivative blocks

Code: Select all

BREAKPOINT {
	i = gcan*(v-Ens)/(1 + exp((cai-k_can)/sig_can)) + gsyn*s*(v-Ens)
}
DERIVATIVE states {
        rates(v)
	cai' = eps_ca*(k_ip*s - k_ca*(cai-Ca))
	s' = ((1-s)*inf_s - k_s*s)/tau_s
}
I also define the procedure rates to calculate inf_s as a function of voltage: inf_s = 1/(1+exp((v-theta_s)/sig_s)).

My question is how does neuron handle ions? Is diffusion between compartments already handled (ie. if I make k_ip=gsyn=0 at all places besides the synapses will calcium only accumulate in those compartments and then diffuse with neuron's built-in mechanisms)? or do I need to code for that in an nmodl file?

Re: Modeling Calcium Accumulation and Diffusion

Posted: Thu Sep 15, 2011 3:11 pm
by ted
jjnaylor wrote:I want the calcium to accumulate only in specific spots and then diffuse along the dendrites. This should lead to a traveling wave of calcium and also a wave of depolarization. However, the neuron seems to depolarize and change internal calcium uniformly across the whole cell.
. . .
how does neuron handle ions? Is diffusion between compartments already handled (ie. if I make k_ip=gsyn=0 at all places besides the synapses will calcium only accumulate in those compartments and then diffuse with neuron's built-in mechanisms)? or do I need to code for that in an nmodl file?
All you get for free is the cable equation, and the total transmembrane current for each ionic species. If you need ion accumulation, buffering, pumps, diffusion, you have to add the equations yourself. Chapter 9 of the NEURON Book contains several examples of intra- and extracellular ion accumulation, some with buffering, some with radial diffusion, one with longitudinal diffusion. Similar examples are provided in the gzipped source code for NEURON--look in share/examples/nrniv/nmodl

Initialization of models that involve ion accumulation is important, and for calcium it can be a particular challenge. Chapter 8 goes into some detail about initialization.

Your implementation strategy should exploit modularity. Each variety of channel that generates a transmembrane current should have its own mod file. Each ionic species (e.g. ca, na, k, whatever) whose accumulation must be simulated should also have its own mod file which WRITEs the intra- and/or extracellular concentration adjacent to the membrane, e.g. cai, cao. This file will eventually contain statements that compute dcai/dt from ica, and specify all processes that are directly involved in accumulation, such as buffering, exchangers, pumps, radial and longitudinal diffusion, uptake into and release from internal stores. But make this latter file simple to start with, e.g. just the contribution of ica to cai, and add complications one by one, testing after each change to make sure everything is working properly.

The spatial grid will be important. The easiest diffusional architecture to specify in NEURON is longitudinal, but you will have to make sure that nseg of all relevant sections is large enough for good spatial accuracy. Radial diffusion between adjacent cylindrical shells isn't too hard to set up; you'll see examples in the places to which I referred you.

You might find it useful to examine the code for the NEURON implementation of the model by Fink et al. (2000) of calcium waves in neuroblastoma cells--see ModelDB accession # 125745
http://senselab.med.yale.edu/modeldb/Sh ... del=125745

Ion accumulation mechanisms are best implemented with density mechanisms, but synaptic interactions are best implemented with point processes. Second-messenger-mediated synaptic effects on density mechanisms can be implemented with POINTERs; see for example the way dopaminergic synaptic modulation of L current and inward rectifier via a messenger was treated in the NEURON implementation of the spiny neuron model of Gruber et al. 2003--ModelDB accession # 39949
http://senselab.med.yale.edu/modeldb/Sh ... odel=39949

I expect you'll have some more questions.

Re: Modeling Calcium Accumulation and Diffusion

Posted: Tue Oct 04, 2011 10:38 am
by jjnaylor
Quick question: can I put the Longitudinal diffusion statement into non-kinetic blocks? Lets just say I want to model the calcium fluxes directly with differential equations. Could I implement it in a DERIVATIVE or BREAKPOINT block? My issue is that I'm don't want radial diffusion, but all the kinetic terms in the KINETIC blocks include radial diffusion and none are explicitly longitudinal (I'm assuming that the LONGITUDINAL_DIFFUSION statement is compact as per what I gleaned from the neuron book) so when I take out radial terms, the compiler says that there are no kinetic statements in the block.

Thanks for your help.

Re: Modeling Calcium Accumulation and Diffusion

Posted: Tue Oct 04, 2011 10:07 pm
by ted
jjnaylor wrote:can I put the Longitudinal diffusion statement into non-kinetic blocks?
. . . when I take out radial terms, the compiler says that there are no kinetic statements in the block.
A LONGITUDINAL_DIFFUSION statement sets up solute exchange with compartments in adjacent segments. Since the effect of solute flux on concentration depends on compartment volumes, and DERIVATIVE blocks provide no syntax for specifying compartment volumes, LONGITUDINAL_DIFFUSION statements won't work in a DERIVATIVE block.

Unless there is something quite peculiar about the DEs you use to describe ion accumulation, it should be possible to come up with an equivalent set of kinetic schemes. If you need help with this, you might post the equations here or, if you prefer, email them to ted dot carnevale at yale dot edu