classical Hodgkin-Huxley neuron in NEURON
Posted: Thu May 31, 2007 9:35 am
Hi all,
I try to simulate classical HH neuron with original euqations from Hodgkin-Huxley article. Problem is that this want not work. I cannot get spike train during stimulation. Why?
my hoc code:
load_file("nrngui.hoc")
objectvar stim
create soma
access soma
soma{
nseg=1
L=18.8
diam=18.8
Ra=123
insert kd
insert nad
insert leak
ek=-77
ena=50
e_leak=-54.3
}
tstop=200
stim=new IClamp(0.5)
soma{
stim.del=100
stim.dur=100
stim.amp=0.1
}
My currents NMODL codes:
Potassium:
K+ current HOHU
NEURON{
SUFFIX kd
USEION k READ ek WRITE ik
RANGE gbar,g,i
}
ASSIGNED{
v (mV)
ek (mV)
ik (mA)
i (mA/cm2)
g (mmho)
}
UNITS{
(mV) = (millivolt)
(mA) = (milliamp)
(S) = (siemens)
}
PARAMETER{gbar=0.036 (S/cm2)}
BREAKPOINT{
SOLVE state METHOD cnexp
g=gbar*n^4
i=g*(v-ek)
ik=i
}
STATE {n}
INITIAL{
n=alpha(v)/(alpha(v)+beta(v))
}
DERIVATIVE state{
n'=alpha(v)*(1-n)-n*beta(v)
}
FUNCTION alpha(Vm (mV)) (/ms){
UNITSOFF
alpha=(0.01*(Vm+10))/(exp((Vm+10)/10)-1)
UNITSON
}
FUNCTION beta(Vm (mV)) (/ms){
UNITSOFF
beta=0.125*exp(Vm/80)
UNITSON
}
Sodium:
: Na+ current
NEURON{
SUFFIX nad
USEION na READ ena WRITE ina
RANGE gbar,g,i
}
UNITS{
(mV) = (millivolt)
(mA) = (milliamp)
(S) = (siemens)
}
ASSIGNED{
v (mV)
i (mA)
ina (mA/cm2)
ena (mV)
g (S/cm2)
}
PARAMETER{gbar=0.120 (S/cm2)}
STATE{m h}
BREAKPOINT{
SOLVE state METHOD cnexp
g=gbar*m*m*m*h
i=g*(v-ena)
ina=i
}
INITIAL{
m=alpham(v)/(alpham(v)+betam(v))
h=alphah(v)/(alphah(v)+betah(v))
}
DERIVATIVE state{
m'=alpham(v)*(1-m)-m*betam(v)
h'=alphah(v)*(1-h)-h*betah(v)
}
FUNCTION alpham(Vm (mV)) (/ms){
UNITSOFF
alpham=(0.1*(Vm+25))/(exp((Vm+25)/10)-1)
UNITSON
}
FUNCTION betam(Vm (mV)) (/ms){
UNITSOFF
betam=4*exp(Vm/18)
UNITSON
}
FUNCTION alphah(Vm (mV)) (/ms){
UNITSOFF
alphah=0.07*exp(Vm/20)
UNITSON
}
FUNCTION betah(Vm (mV)) (/ms){
UNITSOFF
betah=1/(exp((Vm+30)/10)+1)
UNITSON
}
Leak:
: Leak current
NEURON{
SUFFIX leak
NONSPECIFIC_CURRENT i
RANGE i,e,g
}
UNITS {
(S) = (siemens)
(mA) = (milliamp)
(mV) = (millivolt)
}
PARAMETER{
g=0.0003 (S/cm2)
}
ASSIGNED{
i (mA)
v (mV)
e (mV) : typically ~ -11
}
BREAKPOINT{
i=g*(v-e)
}
Where is the problem with this code?
Thank you your helping!
Kazmer
I try to simulate classical HH neuron with original euqations from Hodgkin-Huxley article. Problem is that this want not work. I cannot get spike train during stimulation. Why?
my hoc code:
load_file("nrngui.hoc")
objectvar stim
create soma
access soma
soma{
nseg=1
L=18.8
diam=18.8
Ra=123
insert kd
insert nad
insert leak
ek=-77
ena=50
e_leak=-54.3
}
tstop=200
stim=new IClamp(0.5)
soma{
stim.del=100
stim.dur=100
stim.amp=0.1
}
My currents NMODL codes:
Potassium:
K+ current HOHU
NEURON{
SUFFIX kd
USEION k READ ek WRITE ik
RANGE gbar,g,i
}
ASSIGNED{
v (mV)
ek (mV)
ik (mA)
i (mA/cm2)
g (mmho)
}
UNITS{
(mV) = (millivolt)
(mA) = (milliamp)
(S) = (siemens)
}
PARAMETER{gbar=0.036 (S/cm2)}
BREAKPOINT{
SOLVE state METHOD cnexp
g=gbar*n^4
i=g*(v-ek)
ik=i
}
STATE {n}
INITIAL{
n=alpha(v)/(alpha(v)+beta(v))
}
DERIVATIVE state{
n'=alpha(v)*(1-n)-n*beta(v)
}
FUNCTION alpha(Vm (mV)) (/ms){
UNITSOFF
alpha=(0.01*(Vm+10))/(exp((Vm+10)/10)-1)
UNITSON
}
FUNCTION beta(Vm (mV)) (/ms){
UNITSOFF
beta=0.125*exp(Vm/80)
UNITSON
}
Sodium:
: Na+ current
NEURON{
SUFFIX nad
USEION na READ ena WRITE ina
RANGE gbar,g,i
}
UNITS{
(mV) = (millivolt)
(mA) = (milliamp)
(S) = (siemens)
}
ASSIGNED{
v (mV)
i (mA)
ina (mA/cm2)
ena (mV)
g (S/cm2)
}
PARAMETER{gbar=0.120 (S/cm2)}
STATE{m h}
BREAKPOINT{
SOLVE state METHOD cnexp
g=gbar*m*m*m*h
i=g*(v-ena)
ina=i
}
INITIAL{
m=alpham(v)/(alpham(v)+betam(v))
h=alphah(v)/(alphah(v)+betah(v))
}
DERIVATIVE state{
m'=alpham(v)*(1-m)-m*betam(v)
h'=alphah(v)*(1-h)-h*betah(v)
}
FUNCTION alpham(Vm (mV)) (/ms){
UNITSOFF
alpham=(0.1*(Vm+25))/(exp((Vm+25)/10)-1)
UNITSON
}
FUNCTION betam(Vm (mV)) (/ms){
UNITSOFF
betam=4*exp(Vm/18)
UNITSON
}
FUNCTION alphah(Vm (mV)) (/ms){
UNITSOFF
alphah=0.07*exp(Vm/20)
UNITSON
}
FUNCTION betah(Vm (mV)) (/ms){
UNITSOFF
betah=1/(exp((Vm+30)/10)+1)
UNITSON
}
Leak:
: Leak current
NEURON{
SUFFIX leak
NONSPECIFIC_CURRENT i
RANGE i,e,g
}
UNITS {
(S) = (siemens)
(mA) = (milliamp)
(mV) = (millivolt)
}
PARAMETER{
g=0.0003 (S/cm2)
}
ASSIGNED{
i (mA)
v (mV)
e (mV) : typically ~ -11
}
BREAKPOINT{
i=g*(v-e)
}
Where is the problem with this code?
Thank you your helping!
Kazmer