Units in mod file-ca2+ dependent K+ channel

Post Reply
Bob02
Posts: 11
Joined: Sun Feb 19, 2017 6:23 pm

Units in mod file-ca2+ dependent K+ channel

Post by Bob02 » Tue Apr 25, 2017 2:44 pm

Hi,

How can I define the unit of parameter "alpha" in mod file, which converts the total calcium current to Ca2+ concentration?
Its unit is "mM/mC/cm2" (mC is "milli Coulomb" and mM is "milli molar").
Is this statement correct?

Code: Select all

UNITS {
	(mA) = (milliamp)
	(mV) = (millivolt)
	(molar) = (1/liter)
	(mM-cm2/mC) = (millimolar-cm2/millicoulomb)
}
Thanks,

ted
Site Admin
Posts: 5091
Joined: Wed May 18, 2005 4:50 pm
Location: Yale University School of Medicine
Contact:

Re: Units in mod file-ca2+ dependent K+ channel

Post by ted » Wed Apr 26, 2017 5:07 pm

Suggest you do this:
In the UNITS block declare
F = (faraday) (coulombs)
Then if your region of calcium accumulation is a shell with thickness specified by
depth (nm)
just inside the cell membrane, and nm means nanometers, you'll need to declare
cai (mM)
in the STATE block, and you'll want a DERIVATIVE block that contains this equation:
cai' = -ica/depth/F/2 * (1e7)

If you assume that cai in the shell decays monoexponentially toward the concentration cai0 with time constant tau, you'll want to declare something like
cai0 = 50e-6 (mM)
tau = 1000 (ms)
in the PARAMETER block, and change the ODE in the DERIVATIVE block to
cai' = -ica/depth/F/2 * (1e7) + (cai0 - cai)/tau

If you assume that cai is initialized to cai0 at t=0, you'll need this statement
cai = cai0
in the INITIAL block

Bob02
Posts: 11
Joined: Sun Feb 19, 2017 6:23 pm

Re: Units in mod file-ca2+ dependent K+ channel

Post by Bob02 » Thu Apr 27, 2017 12:16 pm

Thank you for your reply.

Actually, the DERIVATIVE block contain this equation:

cai' = f * ( -alpha * ica - kca * cai)

where, f is the percentage of free to bound Ca+2 (set to 0.01 based on report from Helmchen et al. 1996). The parameter alpha (mM/mC/cm2) converts the total ica to Ca+2 concentration. kca (1/msec) is the Ca+2 removal rate. The unit of ica is mA/cm2.

I have one mod file for both ica and ikca as:

Code: Select all


NEURON {
	SUFFIX CaSTest4ed


	NONSPECIFIC_CURRENT ikca
	NONSPECIFIC_CURRENT ican
	
	RANGE gkcabar, gcanbar, eca
	RANGE gkca, gcan
	RANGE mn_inf, hn_inf
	RANGE tau_mn, tau_hn
}


UNITS {
	(mA) = (milliamp)
	(mV) = (millivolt)
	(molar) = (1/liter)
	(mM) = (millimolar)

	FARADAY	= (faraday) (coulomb)
}

PARAMETER {

	: Calcium N-type channels
	gcanbar = 0.01  (mho/cm2)	
	tmn	= 15	    (ms)
	thn	= 50	    (ms)
	
	gkcabar = 0.02   (mho/cm2)	                    
	kd	= 0.0005

	cao	= 2	    (mM)
	caio	= .0001     (mM)
	f	= 0.01
	alpha	= 1
	kca	= 8 		(1/ms)

	celsius = 36       
	ek= -80             (mV)
}

STATE {
	mn hn ml cai
}

ASSIGNED {
	dt      (ms)
	v       (mV)
	eca	(mV)
	
	ican	(mA/cm2)
	ikca	(mA/cm2)

	gkca	(mho/cm2)
	gcan	(mho/cm2)

	
	mn_inf
	hn_inf

	
	tau_mn	(ms)
	tau_hn	(ms)

}

BREAKPOINT {
	SOLVE states METHOD runge

	eca = ((1000 * 8.31441 * (celsius + 273.15)) / (2 * 96485.309)) * log(cao/cai)

	gcan = gcanbar * mn*mn*hn
	ican = gcan * (v - eca)

	gkca = gkcabar * ( cai / (cai+kd) )
	ikca = gkca * (v - ek)
}

DERIVATIVE states {   : exact Hodgkin-Huxley equations

        evaluate_fct(v)

	mn' = (mn_inf - mn) / tmn
	hn' = (hn_inf - hn) / thn

	cai' = f*(-(alpha*(ican))-(kca*cai))
}

UNITSOFF
INITIAL {

	cai = caio

	evaluate_fct(v)

	mn = mn_inf
	hn = hn_inf

}

PROCEDURE evaluate_fct(v(mV)) { LOCAL v2
	
	mn_inf = 1/(1+exp(-(v+32)/5))
	hn_inf = 1/(1+exp((v+50)/5))
	

}

I know the unit of cai equation is wrong because I ignored the unit of "alpha". I am wondering, how can I fix the unit problem in my code.


Thanks.

ted
Site Admin
Posts: 5091
Joined: Wed May 18, 2005 4:50 pm
Location: Yale University School of Medicine
Contact:

Re: Units in mod file-ca2+ dependent K+ channel

Post by ted » Fri Apr 28, 2017 12:21 am

What does modlunit tell you?

Bob02
Posts: 11
Joined: Sun Feb 19, 2017 6:23 pm

Re: Units in mod file-ca2+ dependent K+ channel

Post by Bob02 » Fri Apr 28, 2017 10:25 am

ted wrote:What does modlunit tell you?
For,
cai' [mM/ms] = f*(-(alpha*ican [mA/cm2] )-(kca [1/ms] *cai [mM] ))

"f" is constant. I know "alpha" have to be mM/mC/cm2 because by substituting [mC/cm2] with [mA/cm2] * [ms] (Q = I * t), we have [mM/ms] = -[mM/mA/cm2] * [mA/cm2]- [mM/ms].
But, I ignored the "alpha" unit (I know it is wrong) and consider it as a constant because I couldn't define mM/mC/cm2 in modfile.

Bob02
Posts: 11
Joined: Sun Feb 19, 2017 6:23 pm

Re: Units in mod file-ca2+ dependent K+ channel

Post by Bob02 » Fri Apr 28, 2017 1:17 pm

Sorry, I forgot to mention that modlunit says:

units: 1000 /m3-sec

units: 10 coul/m2-sec

I also modified the code as:

Code: Select all


TITLE Motoneuron Soma channels
: Calcium channels + Calcium Dynamics - Soma


NEURON {
	SUFFIX CaSTest4ed

	NONSPECIFIC_CURRENT ikca
	NONSPECIFIC_CURRENT ican
	
	RANGE gkcabar, gcanbar, eca
	RANGE gkca, gcan
	RANGE mn_inf, hn_inf
	RANGE tau_mn, tau_hn
}


UNITS {
	(mA) = (milliamp)
	(mV) = (millivolt)
	(molar) = (1/liter)
	(mM) = (millimolar)

	FARADAY	= (faraday) (coulomb)
	R	= (k-mole) (joule/degC)
}

PARAMETER {

	: Calcium N-type channels
	gcanbar = 0.01  (mho/cm2)	
	tmn	= 15	    (ms)
	thn	= 50	    (ms)
	
	: Calcium-activated Potassium Channels
	gkcabar = 0.02   (mho/cm2)	                    
	kd	= 0.0005	(mM)

	: Calcium Dynamics
	cao	= 2	    (mM)
	caio	= .0001     (mM)
	f	= 0.01
	alpha	= 1
	kca	= 8 		(1/ms)

	: General
	celsius = 36        (degC)
	ek= -80             (mV)
	
}

STATE {
	mn hn ml 
	cai (mM)
}

ASSIGNED {
	dt      (ms)
	v       (mV)
	eca 	(mV)
	
	ican	(mA/cm2)
	ikca	(mA/cm2)

	gkca	(mho/cm2)
	gcan	(mho/cm2)

	
	mn_inf
	hn_inf

	
	tau_mn	(ms)
	tau_hn	(ms)
	
	

}

BREAKPOINT {
	SOLVE states METHOD runge

	eca = (((1000) * R * (celsius + 273.15)) / (2 * FARADAY)) * log(cao/cai)

	gcan = gcanbar * mn*mn*hn
	ican = gcan * (v - eca)

	gkca = gkcabar * ( cai / (cai+kd) )
	ikca = gkca * (v - ek)
}

DERIVATIVE states {   : exact Hodgkin-Huxley equations

        evaluate_fct(v)

	mn' = (mn_inf - mn) / tmn
	hn' = (hn_inf - hn) / thn

	
	cai' = f*(-(alpha*(ican))-(kca*cai))
	
}


INITIAL {

	cai = caio

	evaluate_fct(v)

	mn = mn_inf
	hn = hn_inf

}

PROCEDURE evaluate_fct(v(mV)) { LOCAL v2
	
	mn_inf = 1/(1+exp(-(v+32)/5))
	hn_inf = 1/(1+exp((v+50)/5))
	

}



ted
Site Admin
Posts: 5091
Joined: Wed May 18, 2005 4:50 pm
Location: Yale University School of Medicine
Contact:

Re: Units in mod file-ca2+ dependent K+ channel

Post by ted » Sun Apr 30, 2017 9:46 am

Interesting code. Is it based on some other model implemented for NEURON, or what?

Bob02
Posts: 11
Joined: Sun Feb 19, 2017 6:23 pm

Re: Units in mod file-ca2+ dependent K+ channel

Post by Bob02 » Mon May 01, 2017 9:38 am

ted wrote:Interesting code. Is it based on some other model implemented for NEURON, or what?
model or mod file?

The original model developed in our lab previously, and it is published few years ago. Now, we are trying to improve and ....

The equation for Ca2+ and VCa derived using same method as:

1- Booth et al., 1997, "Compartmental model of vertebrate motoneurons for Ca2+-dependent spiking and plateau potentials under pharmacological treatment"

2- Elbasiouny et al. 2005, "Simulation of dendritic CaV1.3 channels in cat lumbar motoneurons: spatial distribution"

ted
Site Admin
Posts: 5091
Joined: Wed May 18, 2005 4:50 pm
Location: Yale University School of Medicine
Contact:

Re: Units in mod file-ca2+ dependent K+ channel

Post by ted » Tue May 09, 2017 2:42 pm

I finally had the chance to get back to this mod file.

This equation has some serious problems
cai' = f*(-(alpha*(ican))-(kca*cai))

1. If ican = 0, cai will decay toward 0.
2. kca is clearly supposed to be a rate constant that specifies a first order return of cai toward some resting value--presumably the initial value of cai (which should really be called cai0, not caio). However, kca is multiplied by the parameter f, so the effective rate constant is really f*kca.
3. What do f and alpha mean? Is alpha the fraction of ican attributable to ca, in which case f is probably supposed to be the fraction of intracellular ca that is free, i.e. not subject to instantaneous binding to a buffer? Regardless of what f and alpha mean, why is f also applied to
kca*cai? That multiplication changes the effective rate constant for calcium equilibration from kca to f*kca. However, it does not take Faraday's constant into account.

My guess is that the equation you wanted looks more like this
cai' = -f*alpha*ican/2/F + kca*(cai0 - cai)
but I'm not entirely sure because it offers no control over the "volume of distribution" i.e. the volume in which incoming calcium first accumulates before being dissipated by diffusion or slow buffering or active transport.

If you make the commonly used assumption that calcium accumulation occurs first in a thin shell just inside the cell membrane, the first term on the right hand side must reflect the thickness of that shell, like this
cai' = -f*alpha*ican/depth/2/FARADAY + kca*(cai0 - cai)
where "depth" is the shell thickness. If depth is in nm (nanometers), the equation becomes
cai' = -(1e7)*f*alpha*ican/depth/2/FARADAY + kca*(cai0 - cai)

Bob02
Posts: 11
Joined: Sun Feb 19, 2017 6:23 pm

Re: Units in mod file-ca2+ dependent K+ channel

Post by Bob02 » Thu May 11, 2017 11:08 am

Ted,

Thank you for the comprehensive explanation. I have only one more question, How does NEURON deal with the "cai" and "vca" equations in this mod file when it solving current balance equation. For example, does NEURON deal with "cai'=  f*(-(alpha*(ican))-(kca*cai))" as:

cai'=  f*(-(alpha*(ican*area))-(kca*cai))

I mean How NEURON converts the distributed mechanism of "cai" and "vca" to point process in this mod file?

Thank you.

ted
Site Admin
Posts: 5091
Joined: Wed May 18, 2005 4:50 pm
Location: Yale University School of Medicine
Contact:

Re: Units in mod file-ca2+ dependent K+ channel

Post by ted » Thu May 11, 2017 2:49 pm

Bob02 wrote:Thank you for the comprehensive explanation.
That was not the only issue with your mod file. Others are discussed after I answer your next question.
does NEURON deal with "cai'=  f*(-(alpha*(ican))-(kca*cai))" as:
cai'=  f*(-(alpha*(ican*area))-(kca*cai))

I mean How NEURON converts the distributed mechanism of "cai" and "vca" to point process in this mod file?
I don't understand your question. The NEURON block of your mod file declares
SUFFIX CaSTest4ed
which means that CaSTest4ed is a density mechanism, not a point process, so what does "point process" have to do with anything?

Besides, the equation
cai' = -(1e7)*f*alpha*ican/depth/2/FARADAY + kca*(cai0 - cai)
is dimensionally consistent. The term on the left hand side
cai'
has units of mM/ms = (millimole per liter) per ms
The second term on the right hand side
kca*(cai0 - cai)
also has units of mM/ms.
The first term on the right hand side, leaving out its scale factor, is
f*alpha*ican/depth/2/FARADAY
f and alpha are dimensionless.
ican is in mA/cm2
FARADAY is in coulombs/mole
If the units of depth were cm, this
ican/depth/2/FARADAY (which is just a lazy programmer's way to write ican/(depth*2*FARADAY))
would have units of mM/ms = (millimole/liter)/ms
But depth is in nm (nanometers), and 1 cm = 1e7 nm, so
ican/depth/2/FARADAY
is really in units of (millimole/(1000 cm2 * nm))/ms
and needs to be multiplied by a factor of 1e7 to convert it to mM/ms.
Which is just a long way of saying that the first term on the right hand side, including the (1e7) scale factor, has units of mM/ms.

So both terms on the right hand side have exactly the same units as the term on the left hand side of the equation.

Other issues with the mod file

These three are minor:
tau_mn and tau_hn are declared in the NEURON block but are not used.
dt is declared in the ASSIGNED block but is not used.
v2 is declared in PROCEDURE evaluate_fct but is not used.

The following two could cause problems:

celsius is assigned a value in the PARAMETER block. This assignment will have no effect--it will be overridden by the value assigned to NEURON's built-in celsius parameter. Note that the default value of celsius is 6.3 deg C.

The BREAKPOINT block contains the directive
SOLVE states METHOD runge
but that is inappropriate because runge is an explicit method and prone to instability, especially with an ion accumulation mechanism that is decribed by a differential equation. For such a mechanism, derivimplicit should be used. See
Integration methods for SOLVE statements
in the Hot tips area of the NEURON Forum for more information about which method to use in various situations.

Post Reply