/usr/share/nrn/demo/release/mcna.mod is in neuron 7.5-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 | TITLE Moore-Cox sodium channel
: Biophy. J. (1976) 16:171
: This paper mapped HH VClamp currents, no attention paid to resting currents.
: Used V-jump @ T=0 to check match with HH action potential; fig shows equal V-threshold levels
: Ramon first noted instability at rest, spontaneous impulse generation.
: Same problem noted with resimulation with NEURON. Now thresholds rather different
: Revised July 28, 1995 to remove instability. Added back reaction rate coefficients for HH beta m
: First use of NEURON's new "Run Fitter" to find best values of these coefficients,
: using delay and fitting ina to just beyond peak.
: Excellent fit to HH AP with these coefficients except for "gratituitous hump" in HH
: Changed from HH reference potential level at rest to NEURON @-65mV
NEURON {
SUFFIX MCna
USEION na READ ena WRITE ina
RANGE gnabar, gna, ina, lp, ml, nm, porate
:lp, ml, nm, porate coefficients of HH betas for re-fitting
GLOBAL cnt1, cnt2
}
UNITS {
(mA) = (milliamp)
(mV) = (millivolt)
}
PARAMETER {
gnabar=.120 (mho/cm2) <0,1e9>
lp=1.9 <0, 1e9>
ml=.75 <0, 1e9>
nm=.3 <0, 1e9>
: porate=1
}
STATE {
P L M N O
}
ASSIGNED {
v (mV)
celsius (degC) : 6.3
ena (mV)
cnt1 cnt2
ina (mA/cm2)
gna (mho/cm2)
}
ASSIGNED { am (/ms) bm (/ms) ah (/ms) bh (/ms)}
INITIAL {
cnt1 = 0
cnt2 = 0
P=1
rate(v*1(/mV))
SOLVE states STEADYSTATE sparse
}
BREAKPOINT {
SOLVE states METHOD sparse
ina = gnabar*N*(v - ena)
PROTECT cnt1 = cnt1 + 1
}
KINETIC states {
PROTECT cnt2 = cnt2 + 1
rate(v*1(/mV))
: CONSERVE P + L + M + N + O = 1
~ P <-> L (am, lp*bm) :back reaction in original = 3.5
~ L <-> M (2*am, ml*bm) :back reaction in original = 0
~ M <-> N (3*am, nm*bm) :back reaction in original = 0
~ N <-> O (1.1*bh, 0)
~ N <-> P (3*bm, 0)
~ P <-> O (bh, ah) :back reaction in original = 1,
: found this to still be good
}
UNITSOFF
FUNCTION alp(v(mV),i) { LOCAL a,b,c,q10 :rest = -65 order m,h
v = -v - 65 :convert to hh convention
q10 = 3^((celsius - 6.3)/10)
if (i==0) {
alp = q10*.1*expM1(v + 25, 10)
}else if (i==1){
alp = q10*.07*exp(v/20)
}
}
FUNCTION bet(v,i) { LOCAL a,b,c,q10 :rest = -70 order m,h
v = -v - 65
q10 = 3^((celsius - 6.3)/10)
if (i==0) {
bet = q10* 4*exp(v/18)
}else if (i==1){
bet = q10*1/(exp(.1*v + 3) + 1)
}
}
FUNCTION expM1(x,y) {
if (fabs(x/y) < 1e-6) {
expM1 = y*(1 - x/y/2) : for singular point
}else{
expM1 = x/(exp(x/y) - 1)
}
}
PROCEDURE rate(v) {LOCAL a, b, tau :rest = -65
TABLE am, ah, bm, bh DEPEND celsius FROM -100 TO 100 WITH 200
am = alp(v, 0)
ah = alp(v, 1)
bm = bet(v, 0)
bh = bet(v, 1)
}
UNITSON
|