TITLE inter.mod
:v1/2 of minf is 25.29 and the slope factor is 9.052
UNITS {
(mA) = (milliamp)
(mV) = (millivolt)
(S) = (siemens)
}
? interface
NEURON {
SUFFIX inter
USEION na READ ena WRITE ina
RANGE gnabar, gna, ina
GLOBAL minf, mtau, hinf, htau
}
PARAMETER {
gnabar = 0 (S/cm2) <0,1e9>
}
STATE {
m h
}
ASSIGNED {
v (mV)
celsius (degC)
ena (mV)
gna (S/cm2)
ina (mA/cm2)
minf hinf
mtau (ms) htau (ms)
}
LOCAL mexp, hexp
? currents
BREAKPOINT {
SOLVE states METHOD cnexp
m = minf
gna = gnabar*m*h
ina = gna*(v  ena)
}
INITIAL {
rates(v)
m = minf
h = hinf
}
? states
DERIVATIVE states {
rates(v)
h' = (hinfh)/htau
}
LOCAL q10
? rates
PROCEDURE rates(v(mV)) { :Computes rate and other constants at current v.
:Call once from HOC to initialize inf at resting v.
LOCAL alpha, beta, sum
TABLE minf, mtau, hinf, htau DEPEND celsius FROM 100 TO 100 WITH 200
UNITSOFF
q10 = 3^((celsius  6.3)/10)
:"m" sodium activation system
alpha = .1 * vtrap((v+25),10)
beta = 4 * exp((v+50)/18)
sum = alpha + beta
minf = alpha/sum
:"h" sodium inactivation system
htau = 0.2218*exp(0.06883*v) :Caffrey
hinf = (1+exp((v+72.5)/8))^1 :numbers from page 286 + shift
}
FUNCTION vtrap(x,y) { :Traps for 0 in denominator of rate eqns.
if (fabs(x/y) < 1e6) {
vtrap = y*(1  x/y/2)
}else{
vtrap = x/(exp(x/y)  1)
}
}
UNITSON
