Units in mod file-ca2+ dependent K+ channel

Units in mod file-ca2+ dependent K+ channel

Postby 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,
Bob02
 
Posts: 11
Joined: Sun Feb 19, 2017 7:23 pm

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

Postby 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
ted
Site Admin
 
Posts: 4954
Joined: Wed May 18, 2005 4:50 pm
Location: Yale University School of Medicine

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

Postby 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.
Bob02
 
Posts: 11
Joined: Sun Feb 19, 2017 7:23 pm

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

Postby ted » Fri Apr 28, 2017 12:21 am

What does modlunit tell you?
ted
Site Admin
 
Posts: 4954
Joined: Wed May 18, 2005 4:50 pm
Location: Yale University School of Medicine

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

Postby 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 7:23 pm

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

Postby 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))
   

}


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

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

Postby ted » Sun Apr 30, 2017 9:46 am

Interesting code. Is it based on some other model implemented for NEURON, or what?
ted
Site Admin
 
Posts: 4954
Joined: Wed May 18, 2005 4:50 pm
Location: Yale University School of Medicine

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

Postby 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"
Bob02
 
Posts: 11
Joined: Sun Feb 19, 2017 7:23 pm

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

Postby 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)
ted
Site Admin
 
Posts: 4954
Joined: Wed May 18, 2005 4:50 pm
Location: Yale University School of Medicine

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

Postby 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.
Bob02
 
Posts: 11
Joined: Sun Feb 19, 2017 7:23 pm

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

Postby 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.
ted
Site Admin
 
Posts: 4954
Joined: Wed May 18, 2005 4:50 pm
Location: Yale University School of Medicine


Return to General questions and discussions about computational neuroscience

Who is online

Users browsing this forum: No registered users and 2 guests

cron