I want to add a fast acting Na channel and persistent NaP channel in my subthalamic neuron model.The problem is that the sodium current equation given by ohm's law is written as a linear combination of the gNa and gNaP conductances of the form:
Ina=(gNa*(m^2)*h+gNaP)*(V-ENa)
where m and h are the known activation and inactivation functions respectively.The rate functions (malpha mbeta halpha hbeta) are also known.Is it possible to implement it in this form using NMODL?Can I split it up into 2 different .mod files one for each channel?
And a second question:
Is there any code or tutorial for temperature alignment using a Q10...?
thanks in advance,
George.
Na and persistent NaP channel
-
- Site Admin
- Posts: 6384
- Joined: Wed May 18, 2005 4:50 pm
- Location: Yale University School of Medicine
- Contact:
From the standpoint of software maintenance, the cleanest way to deal with multiple
currents carried by the same ion is to specify each one with its own mod file. For
example, you could have nat.mod that specifies the rapidly inactivating current
and an nap.mod that describes the noninactivating current
Both would contribute to ina, and you would be able to plot their individual currents and
conductances as i_nat, i_nap, g_nat, g_nap.
I have answered your question about temperature dependence in a separate thread:
https://www.neuron.yale.edu/phpBB2/viewtopic.php?t=348
currents carried by the same ion is to specify each one with its own mod file. For
example, you could have nat.mod that specifies the rapidly inactivating current
Code: Select all
NEURON {
SUFFIX nat
USEION na READ ena WRITE ina
RANGE gbar, i, g
}
. . . delcarations, initialization etc. . . .
INITIAL {
rates(v)
m = minf
h = hinf
}
BREAKPOINT {
rates(v)
g = gbar*m^3*h
i = g*(v-ena)
ina = i
}
Code: Select all
NEURON {
SUFFIX nap
USEION na READ ena WRITE ina
RANGE gbar, i, g
}
. . . delcarations, initialization etc. . . .
INITIAL {
rates(v)
m = minf
}
BREAKPOINT {
g = gbar*m^3
i = g*(v-ena)
ina = i
}
conductances as i_nat, i_nap, g_nat, g_nap.
I have answered your question about temperature dependence in a separate thread:
https://www.neuron.yale.edu/phpBB2/viewtopic.php?t=348
-
- Posts: 5
- Joined: Sun Mar 19, 2006 11:26 pm
A beginner follow-up question
Hi,
A very beginner follow-up:
In an analogus situation, I'm trying to plot the individual contributions of an hh channel model and an m-current channel to the total k current vs time.
For the 19th PY cell, using the Plot what? tool, the total k current might be "PY[14].soma[0].ik(0.5)."
Assuming that the suffix for the NMODL M-current channel is "im" and that the m-current model "WRITES" ik, I would have thought that the m-current would be something like "PY[14].soma[0].i_im(0.5)," but nothing like this comes up with the Plot what? tool. After flailing about for a bit manually inputting various arbitrary syntactical variations and getting the error messesage that the "im suffix is not a range variable or section property" I've determined that I'm missng some basic point. I did think to confirm that im is inserted and that leaving it out changes the output simulation...
Thanks
A very beginner follow-up:
In an analogus situation, I'm trying to plot the individual contributions of an hh channel model and an m-current channel to the total k current vs time.
For the 19th PY cell, using the Plot what? tool, the total k current might be "PY[14].soma[0].ik(0.5)."
Assuming that the suffix for the NMODL M-current channel is "im" and that the m-current model "WRITES" ik, I would have thought that the m-current would be something like "PY[14].soma[0].i_im(0.5)," but nothing like this comes up with the Plot what? tool. After flailing about for a bit manually inputting various arbitrary syntactical variations and getting the error messesage that the "im suffix is not a range variable or section property" I've determined that I'm missng some basic point. I did think to confirm that im is inserted and that leaving it out changes the output simulation...
Thanks
-
- Site Admin
- Posts: 6384
- Joined: Wed May 18, 2005 4:50 pm
- Location: Yale University School of Medicine
- Contact:
Re: A beginner follow-up question
True.AnotherNewUser wrote:I'm trying to plot the individual contributions of an hh channel model and an m-current channel to the total k current vs time.
For the 19th PY cell, using the Plot what? tool, the total k current might be "PY[14].soma[0].ik(0.5)."
A reasonable assumption, but whether it is correct depends entirely on the code thatAssuming that the suffix for the NMODL M-current channel is "im" and that the m-current model "WRITES" ik, I would have thought that the m-current would be something like "PY[14].soma[0].i_im(0.5)"
defines the im mechanism. For example, consider the hh mechanism, which WRITEs
ina and ik. Make a single compartment model and insert hh. Now use Plot what? to
see what ionic currents are known to hoc. You'll see ina and ik, but no ina_hh or ik_hh.
To drive the point home, doing everything by writing hoc,
Code: Select all
oc>create soma
oc>access soma
oc>insert hh
oc>psection()
soma { nseg=1 L=100 Ra=35.4
/*location 0 attached to cell 0*/
/* First segment only */
insert morphology { diam=500}
insert capacitance { cm=1}
insert hh { gnabar_hh=0.12 gkbar_hh=0.036 gl_hh=0.0003 el_hh=-54.3}
insert na_ion { ena=50}
insert k_ion { ek=-77}
}
1
oc>soma.ina(0.5)
0
oc>soma.ina_hh(0.5)
/usr/local/nrn/i686/bin/nrniv: ina_hh not a section variable
near line 6
soma.ina_hh(0.5)
^
you can't tease out hh's contribution to the total; likewise for ik.
The solution is to revise the mod file. To make hh's ina and ik accessible, I copied
hh.mod to hhx.mod, then edited the latter to make the following changes:
1. in the NEURON block, change SUFFIX hh to SUFFIX hhx (so this wouldn't
conflict with the built-in hh)
2. also in the NEURON block, insert the statement RANGE ina, ik
Now
Code: Select all
oc>create soma
oc>access soma
oc>insert hhx
oc>psection()
soma { nseg=1 L=100 Ra=35.4
/*location 0 attached to cell 0*/
/* First segment only */
insert morphology { diam=500}
insert capacitance { cm=1}
insert hhx { gnabar_hhx=0.12 gkbar_hhx=0.036 gl_hhx=0.0003 el_hhx=-54.3} insert na_ion { ena=50}
insert k_ion { ek=-77}
}
1
oc>soma.ina(0.5)
0
oc>soma.ina_hhx(0.5)
0
so you don't need to change the SUFFIX. However, you will need to do the following:
1. in the NEURON block, insert RANGE i
2. in the ASSIGNED block, insert
i (mA/cm2)
3. in the BREAKPOINT block, you will find a statement of the form
Code: Select all
ik = some_algebraic_expression
Code: Select all
: ik = some_algebraic_expression
i = some_algebraic_expression
ik = i
by your mechanism--it won't be lost into the great pool of all k currents.