-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathhhmfb.mod
150 lines (126 loc) · 3.69 KB
/
hhmfb.mod
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
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
TITLE hhmfb.mod modified squid sodium, potassium, and leak channels
COMMENT
This is a Hodgkin-Huxley treatment for the set of sodium,
potassium, and leakage channels found in the squid giant axon membrane,
adapted to channels in mossy fiber terminals
Original: SW Jaslove 6 March, 1992
Modified version: P Jonas, 10 March, 2004
Modified version: C Schmidt-Hieber, 17 Dec 2007
Modified version: C Schmidt-Hieber, 08 Sep 2008
Modified version: C Schmidt-Hieber, 17 Apr 2010
Revision history:
September 13, 2004: Revised fit - final version
Dec 17, 2007: hScale to account for slower inactivation in the soma, CSH
Sep 08, 2008: Make rate parameters range variables
Apr 17, 2010: global inactivation shift; make vShift (Donnan) global
ENDCOMMENT
UNITS {
(mA) = (milliamp)
(mV) = (millivolt)
}
? interface
NEURON {
THREADSAFE
SUFFIX hhmfb
USEION na READ ena WRITE ina
USEION k READ ek WRITE ik
NONSPECIFIC_CURRENT il
RANGE gnabar, gkbar, gl, el, gna, gk, hScale, am0, am1, am2, bm0, bm1, ah0, ah1, bh0, bh1, bh2
GLOBAL minf, hinf, ninf, mtau, htau, ntau, vShift, vShift_inact
}
PARAMETER {
: alpha = 93.8285 * vtrap(-(v-105.023-vShift+vLeft), 17.7094)
am0 = 9.38285e+1 (/ms)
am1 = 1.05023e+2 (mV) : Note that this is used as a positive value here.
am2 = 1.77094e+1 (mV)
: beta = 0.168396 * exp(-(v-vShift+vLeft)/23.2707)
bm0 = 1.68396e-1 (/ms)
bm1 = 2.32707e+1 (mV)
: alpha = hScale * .000353747 * exp(-(v-vShift)/18.706)
ah0 = 3.53747e-4 (/ms)
ah1 = 1.87060e+1 (mV)
: beta = hScale * 6.62694 / (exp(-(v+17.6769-vShift)/13.3097) + 1)
bh0 = 6.62694e+0 (/ms)
bh1 = 1.76769e+1 (mV)
bh2 = 1.33097e+1 (mV)
gnabar = .12 (mho/cm2) <0,1e9>
gkbar = .036 (mho/cm2) <0,1e9>
gl = .0003 (mho/cm2) <0,1e9>
el = -80.0 (mV)
vShift = 12 (mV) :shift to the right to account for Donnan potentials
vShift_inact = 0 (mV) :global inactivation shift to align with 8-state model
hScale = 1 : account for slower inactivation in the soma
}
STATE {
m h n
}
ASSIGNED {
v (mV)
ena (mV)
ek (mV)
gna (mho/cm2)
gk (mho/cm2)
ina (mA/cm2)
ik (mA/cm2)
il (mA/cm2)
minf hinf ninf
mtau (ms) htau (ms) ntau (ms)
}
? currents
BREAKPOINT {
SOLVE states METHOD cnexp
gna = gnabar*m*m*m*h
ina = gna*(v - ena)
gk = gkbar*n*n*n*n
ik = gk*(v - ek)
il = gl*(v - el)
}
INITIAL {
rates(v)
m = minf
h = hinf
n = ninf
}
? states
DERIVATIVE states {
rates(v)
m' = (minf-m)/mtau
h' = (hinf-h)/htau
n' = (ninf-n)/ntau
}
? 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, vS
TABLE minf, mtau, hinf, htau, ninf, ntau FROM -100 TO 100 WITH 200
UNITSOFF
vS = v-vShift
: "m" sodium activation system
: am1 is positive here (by contrast to the original E&J model)
alpha = am0 * vtrap(-(vS-am1), am2)
beta = bm0 * exp(-vS/bm1)
sum = alpha + beta
mtau = 1/sum
minf = alpha/sum
:"h" sodium inactivation system
alpha = hScale * ah0 * exp(-(vS-vShift_inact)/ah1)
beta = hScale * bh0 / (exp(-((vS-vShift_inact)+bh1)/bh2) + 1)
sum = alpha + beta
htau = 1/sum
hinf = alpha/sum
:"n" potassium activation system
alpha = .01*vtrap(-(v+55),10)
beta = .125*exp(-(v+65)/80)
sum = alpha + beta
ntau = 1/sum
ninf = alpha/sum
}
FUNCTION vtrap(x,y) { :Traps for 0 in denominator of rate eqns.
if (fabs(x/y) < 1e-6) {
vtrap = y*(1 - x/y/2)
} else {
vtrap = x/(exp(x/y) - 1)
}
}
UNITSON