COMMENT
nat.mod
Sodium channel, Hodgkin-Huxley style kinetics.
Kinetics are from Qian...Canavier 2014 J Neurophysiol paper on NaT in DA neurons
Adapted by Yu 2014 and Yu 2015 - claims these fit data more accurately...
This model is used in a few Canavier papers on DAs from 2011-2015
Original fit is to Seutin Engel 2010
Then with additional slow component of inactivation
based on Ding 2011
Author: Zach Mainen, Salk Institute, 1994, zach@salk.edu
Edited by Tim Rumbell, IBM Research, 2019, thrumbel@us.ibm.com
ENDCOMMENT
INDEPENDENT {t FROM 0 TO 1 WITH 1 (ms)}
NEURON {
SUFFIX nat
USEION na READ ena WRITE ina
RANGE m, h, hs, gna, gbar, ina
RANGE vhm, vhh, vhhs, vh_shift
GLOBAL km, kh, khs
GLOBAL tm0, tm1, tmac, tma0, tma1, tmb0, tmb1
GLOBAL thf0, thf1, thfa0, thfa1, thfb0, thfb1
GLOBAL ths0, ths1 :, thsa0, thsa1, thsb0, thsb1
RANGE minf, hinf, hsinf, mtau, htau, hstau
GLOBAL q10, tadj, vshift
GLOBAL Vhalf, taumod, vhm_ax, gdend, gax, vhh_shift, vhhs_shift
}
PARAMETER {
gbar = 1 (S/cm2)
vshift = 0 (mV) : voltage shift (affects ll)
vh_shift = 0 (mV) : shifts vh values per section
: parmeters for easy tuning
Vhalf = -30.0907
taumod = 1
vhm_ax = 0
gdend = 1
gax = 1
vhh_shift = 0
vhhs_shift = 0
: Parameters from Qian 2014 Table 1
: activation parameters (m)
vhm = -30.0907 (mV) : v 1/2 for act
km = 9.7264 (mV) : slope for act
: parameters for tau m
tm0 = 0.01
tm1 = 1.0
: tma0 = 15.6504
: tma1 = 0.4043
tmac = 0.79992
tma0 = -19.565
tma1 = -0.50542
tmb0 = 3.0212
tmb1 = -7.463e-03
: fast inactivation parameters (hf)
vhh = -54.0289 (mV) : v 1/2 for inact
kh = -10.7665 (mV) : slope for inact
: parameters for tau hf
thf0 = 0.4
thf1 = 1.0
thfa0 = 5.0754e-04
thfa1 = -6.3213e-02
thfb0 = 9.7529
thfb1 = 0.13442
: slow inactivation parameters (hs)
vhhs = -54.8 (mV) : v 1/2 for inact
khs = -1.57 (mV) : slope for inact
: parameters for tau hs
: From Yu 2014:
ths0 = 20
ths1 = 580
temp = 24 (degC) : original temp
q10 = 2.3 : temperature sensitivity
v (mV)
dt (ms)
celsius (degC)
tadj = 1
}
UNITS {
(mA) = (milliamp)
(mV) = (millivolt)
(pS) = (picosiemens)
(um) = (micron)
}
ASSIGNED {
ina (mA/cm2)
gna (S/um2)
ena (mV)
minf hinf hsinf
mtau (ms) htau (ms) hstau (ms)
}
STATE { m h hs }
INITIAL {
: Assume that v has been constant for long enough to reach steady state
setVhalf(Vhalf)
setTauMod(taumod)
m = minf_na(v+vshift)
h = hinf_na(v+vshift)
hs = hsinf_na(v+vshift)
tadj = tadj_na()
}
BREAKPOINT {
SOLVE states METHOD cnexp
gna = gbar*m*m*m*h*hs
ina = gna * (v - ena)
}
DERIVATIVE states { :Computes state variables m, h, and hs
m' = -(m-minf_na(v+vshift))/(tadj*taum_na(v+vshift))
h' = -(h-hinf_na(v+vshift))/(tadj*tauh_na(v+vshift))
hs' = -(hs-hsinf_na(v+vshift))/(tadj*tauhs_na(v+vshift))
}
FUNCTION boltz(x,y,z) {
boltz = 1/(1+exp(-(x-y)/z))
}
FUNCTION minf_na(v (mV)) (1) {
minf_na = boltz(v,vhm,km)
}
FUNCTION taum_na(v (mV)) (1/ms) {
LOCAL a, b
a = tmac*(tma0 + (tma1*v)) / ( exp( tma0 + (tma1 * v) ) - 1 )
b = tmb0 * exp(tmb1*v)
taum_na = tm0 + ( tm1 / (a+b) )
}
FUNCTION hinf_na(v (mV)) (1) {
hinf_na = boltz(v,vhh,kh)
}
FUNCTION tauh_na(v (mV)) (1/ms) {
LOCAL a, b
a = thfa0 * exp(thfa1 * v)
b = thfb0 * exp(thfb1 * v)
tauh_na = thf0 + ( thf1 / (a+b) )
}
FUNCTION hsinf_na(v (mV)) (1) {
hsinf_na = boltz(v,vhhs,khs)
}
FUNCTION tauhs_na(v (mV)) (1/ms) {
tauhs_na = ths0 + ths1 / (1 + exp(v) )
}
FUNCTION tadj_na() {
tadj_na = 1/(q10^((celsius - temp)/10))
}
PROCEDURE setVhalf(Vhalf(mV)) {
vhm = Vhalf + vh_shift
vhh = Vhalf - 23.9382 + vhh_shift + vh_shift
vhhs = Vhalf - 24.7093 + vhhs_shift + vh_shift
}
PROCEDURE setTauMod(taumod) {
tm0 = 0.01 * taumod
tm1 = 1.0 * taumod
thf0 = 0.4 * taumod
thf1 = 1 * taumod
ths0 = 20 * taumod
ths1 = 580 * taumod
}