pyfibers 0.4.2__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- pyfibers/MOD/AXNODE_myel.mod +247 -0
- pyfibers/MOD/BK.mod +86 -0
- pyfibers/MOD/CaPump.mod +57 -0
- pyfibers/MOD/CaV12.mod +89 -0
- pyfibers/MOD/CaV22.mod +97 -0
- pyfibers/MOD/DNav18.mod +107 -0
- pyfibers/MOD/HCN.mod +104 -0
- pyfibers/MOD/KA14.mod +91 -0
- pyfibers/MOD/KA34.mod +93 -0
- pyfibers/MOD/KM.mod +83 -0
- pyfibers/MOD/KV21.mod +78 -0
- pyfibers/MOD/NaCX.mod +74 -0
- pyfibers/MOD/NaCaPump.mod +81 -0
- pyfibers/MOD/NaV7.mod +89 -0
- pyfibers/MOD/NaV9.mod +92 -0
- pyfibers/MOD/Nakpump.mod +84 -0
- pyfibers/MOD/NakpumpSchild.mod +66 -0
- pyfibers/MOD/RattayAberham.mod +118 -0
- pyfibers/MOD/SK.mod +77 -0
- pyfibers/MOD/caextscale.mod +79 -0
- pyfibers/MOD/caintscale.mod +76 -0
- pyfibers/MOD/can.mod +158 -0
- pyfibers/MOD/cat.mod +131 -0
- pyfibers/MOD/extrapump.mod +39 -0
- pyfibers/MOD/h.mod +93 -0
- pyfibers/MOD/k_ion_dynamics.mod +54 -0
- pyfibers/MOD/k_ion_dynamics_tigerholm.mod +54 -0
- pyfibers/MOD/ka.mod +114 -0
- pyfibers/MOD/kca.mod +110 -0
- pyfibers/MOD/kd.mod +109 -0
- pyfibers/MOD/kdr.mod +91 -0
- pyfibers/MOD/kdrTiger.mod +67 -0
- pyfibers/MOD/kds.mod +111 -0
- pyfibers/MOD/kf.mod +81 -0
- pyfibers/MOD/kna.mod +50 -0
- pyfibers/MOD/ks.mod +76 -0
- pyfibers/MOD/leak.mod +50 -0
- pyfibers/MOD/leakSchild.mod +59 -0
- pyfibers/MOD/na_ion_dynamics.mod +55 -0
- pyfibers/MOD/na_ion_dynamics_tigerholm.mod +55 -0
- pyfibers/MOD/naf.mod +142 -0
- pyfibers/MOD/naf97mean.mod +115 -0
- pyfibers/MOD/nahh.mod +92 -0
- pyfibers/MOD/nas.mod +114 -0
- pyfibers/MOD/nas97mean.mod +112 -0
- pyfibers/MOD/nattxs.mod +131 -0
- pyfibers/MOD/nav1p9.mod +142 -0
- pyfibers/MOD/newNaV8.mod +97 -0
- pyfibers/MOD/train.mod +58 -0
- pyfibers/__init__.py +43 -0
- pyfibers/calc.py +2 -0
- pyfibers/compile.py +43 -0
- pyfibers/fiber.py +1165 -0
- pyfibers/model_enum.py +81 -0
- pyfibers/models/__init__.py +12 -0
- pyfibers/models/mrg.py +330 -0
- pyfibers/models/rattay.py +54 -0
- pyfibers/models/schild.py +130 -0
- pyfibers/models/sundt.py +61 -0
- pyfibers/models/thio.py +173 -0
- pyfibers/models/tigerholm.py +122 -0
- pyfibers/stimulation.py +1178 -0
- pyfibers-0.4.2.dist-info/METADATA +123 -0
- pyfibers-0.4.2.dist-info/RECORD +67 -0
- pyfibers-0.4.2.dist-info/WHEEL +4 -0
- pyfibers-0.4.2.dist-info/entry_points.txt +3 -0
- pyfibers-0.4.2.dist-info/licenses/LICENSE +361 -0
|
@@ -0,0 +1,247 @@
|
|
|
1
|
+
TITLE Motor Axon Node channels
|
|
2
|
+
|
|
3
|
+
: 2/02
|
|
4
|
+
: Cameron C. McIntyre
|
|
5
|
+
:
|
|
6
|
+
: Fast Na+, Persistant Na+, Slow K+, and Leakage currents
|
|
7
|
+
: responsible for nodal action potential
|
|
8
|
+
: Iterative equations H-H notation rest = -80 mV
|
|
9
|
+
:
|
|
10
|
+
: This model is described in detail in:
|
|
11
|
+
:
|
|
12
|
+
: McIntyre CC, Richardson AG, and Grill WM. Modeling the excitability of
|
|
13
|
+
: mammalian nerve fibers: influence of afterpotentials on the recovery
|
|
14
|
+
: cycle. Journal of Neurophysiology 87:995-1006, 2002.
|
|
15
|
+
|
|
16
|
+
INDEPENDENT {t FROM 0 TO 1 WITH 1 (ms)}
|
|
17
|
+
|
|
18
|
+
NEURON {
|
|
19
|
+
SUFFIX axnode_myel
|
|
20
|
+
NONSPECIFIC_CURRENT ina
|
|
21
|
+
NONSPECIFIC_CURRENT inap
|
|
22
|
+
NONSPECIFIC_CURRENT ik
|
|
23
|
+
NONSPECIFIC_CURRENT il
|
|
24
|
+
RANGE gnapbar, gnabar, gkbar, gl, ena, ek, el
|
|
25
|
+
RANGE mp_inf, m_inf, h_inf, s_inf
|
|
26
|
+
RANGE tau_mp, tau_m, tau_h, tau_s
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
UNITS {
|
|
31
|
+
(mA) = (milliamp)
|
|
32
|
+
(mV) = (millivolt)
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
PARAMETER {
|
|
36
|
+
|
|
37
|
+
gnapbar = 0.01 (mho/cm2)
|
|
38
|
+
gnabar = 3.0 (mho/cm2)
|
|
39
|
+
gkbar = 0.08 (mho/cm2)
|
|
40
|
+
gl = 0.007 (mho/cm2)
|
|
41
|
+
ena = 50.0 (mV)
|
|
42
|
+
ek = -90.0 (mV)
|
|
43
|
+
el = -90.0 (mV)
|
|
44
|
+
celsius (degC)
|
|
45
|
+
dt (ms)
|
|
46
|
+
v (mV)
|
|
47
|
+
vtraub=-80
|
|
48
|
+
ampA = 0.01
|
|
49
|
+
ampB = 27
|
|
50
|
+
ampC = 10.2
|
|
51
|
+
bmpA = 0.00025
|
|
52
|
+
bmpB = 34
|
|
53
|
+
bmpC = 10
|
|
54
|
+
amA = 1.86
|
|
55
|
+
amB = 21.4
|
|
56
|
+
amC = 10.3
|
|
57
|
+
bmA = 0.086
|
|
58
|
+
bmB = 25.7
|
|
59
|
+
bmC = 9.16
|
|
60
|
+
ahA = 0.062
|
|
61
|
+
ahB = 114.0
|
|
62
|
+
ahC = 11.0
|
|
63
|
+
bhA = 2.3
|
|
64
|
+
bhB = 31.8
|
|
65
|
+
bhC = 13.4
|
|
66
|
+
asA = 0.3
|
|
67
|
+
asB = -27
|
|
68
|
+
asC = -5
|
|
69
|
+
bsA = 0.03
|
|
70
|
+
bsB = 10
|
|
71
|
+
bsC = -1
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
STATE {
|
|
75
|
+
mp m h s
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
ASSIGNED {
|
|
79
|
+
inap (mA/cm2)
|
|
80
|
+
ina (mA/cm2)
|
|
81
|
+
ik (mA/cm2)
|
|
82
|
+
il (mA/cm2)
|
|
83
|
+
mp_inf
|
|
84
|
+
m_inf
|
|
85
|
+
h_inf
|
|
86
|
+
s_inf
|
|
87
|
+
tau_mp
|
|
88
|
+
tau_m
|
|
89
|
+
tau_h
|
|
90
|
+
tau_s
|
|
91
|
+
q10_1
|
|
92
|
+
q10_2
|
|
93
|
+
q10_3
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
BREAKPOINT {
|
|
97
|
+
SOLVE states METHOD cnexp
|
|
98
|
+
inap = gnapbar * mp*mp*mp * (v - ena)
|
|
99
|
+
ina = gnabar * m*m*m*h * (v - ena)
|
|
100
|
+
ik = gkbar * s * (v - ek)
|
|
101
|
+
il = gl * (v - el)
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
DERIVATIVE states { : exact Hodgkin-Huxley equations
|
|
105
|
+
evaluate_fct(v)
|
|
106
|
+
mp'= (mp_inf - mp) / tau_mp
|
|
107
|
+
m' = (m_inf - m) / tau_m
|
|
108
|
+
h' = (h_inf - h) / tau_h
|
|
109
|
+
s' = (s_inf - s) / tau_s
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
UNITSOFF
|
|
113
|
+
|
|
114
|
+
INITIAL {
|
|
115
|
+
:
|
|
116
|
+
: Q10 adjustment
|
|
117
|
+
:
|
|
118
|
+
|
|
119
|
+
q10_1 = 2.2 ^ ((celsius-20)/ 10 )
|
|
120
|
+
q10_2 = 2.9 ^ ((celsius-20)/ 10 )
|
|
121
|
+
q10_3 = 3.0 ^ ((celsius-36)/ 10 )
|
|
122
|
+
|
|
123
|
+
evaluate_fct(v)
|
|
124
|
+
mp = mp_inf
|
|
125
|
+
m = m_inf
|
|
126
|
+
h = h_inf
|
|
127
|
+
s = s_inf
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
PROCEDURE evaluate_fct(v(mV)) { LOCAL a,b,v2
|
|
131
|
+
|
|
132
|
+
a = q10_1*vtrap1(v)
|
|
133
|
+
b = q10_1*vtrap2(v)
|
|
134
|
+
tau_mp = 1 / (a + b)
|
|
135
|
+
mp_inf = a / (a + b)
|
|
136
|
+
|
|
137
|
+
a = q10_1*vtrap6(v)
|
|
138
|
+
b = q10_1*vtrap7(v)
|
|
139
|
+
tau_m = 1 / (a + b)
|
|
140
|
+
m_inf = a / (a + b)
|
|
141
|
+
|
|
142
|
+
a = q10_2*vtrap8(v)
|
|
143
|
+
b = q10_2*vtrap9(v)
|
|
144
|
+
tau_h = 1 / (a + b)
|
|
145
|
+
h_inf = a / (a + b)
|
|
146
|
+
|
|
147
|
+
v2 = v - vtraub : convert to traub convention
|
|
148
|
+
|
|
149
|
+
a = q10_3*vtrap10(v)
|
|
150
|
+
b = q10_3*vtrap11(v)
|
|
151
|
+
tau_s = 1 / (a + b)
|
|
152
|
+
s_inf = a / (a + b)
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
:FUNCTION vtrap(x) {
|
|
156
|
+
: if (x < -50) {
|
|
157
|
+
: vtrap = 0
|
|
158
|
+
: }else{
|
|
159
|
+
: vtrap = bsA / (Exp((x+bsB)/bsC) + 1)
|
|
160
|
+
: }
|
|
161
|
+
:}
|
|
162
|
+
|
|
163
|
+
FUNCTION vtrap1(x) {
|
|
164
|
+
if (fabs((x+ampB)/ampC) < 1e-6) {
|
|
165
|
+
vtrap1 = ampA*ampC
|
|
166
|
+
}else if (x < -150){
|
|
167
|
+
vtrap1 = 0.00086725
|
|
168
|
+
}else{
|
|
169
|
+
vtrap1 = (ampA*(x+ampB)) / (1 - Exp(-(x+ampB)/ampC))
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
FUNCTION vtrap2(x) {
|
|
174
|
+
if (fabs((x+bmpB)/bmpC) < 1e-6) {
|
|
175
|
+
vtrap2 = bmpA*bmpC : Ted Carnevale minus sign bug fix
|
|
176
|
+
}else if (x > 150){
|
|
177
|
+
vtrap2 = 1.5855e-05
|
|
178
|
+
}else{
|
|
179
|
+
vtrap2 = (bmpA*(-(x+bmpB))) / (1 - Exp((x+bmpB)/bmpC))
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
FUNCTION vtrap6(x) {
|
|
184
|
+
if (fabs((x+amB)/amC) < 1e-6) {
|
|
185
|
+
vtrap6 = amA*amC
|
|
186
|
+
}else if (x < -150){
|
|
187
|
+
vtrap6 = 0.15733
|
|
188
|
+
}else{
|
|
189
|
+
vtrap6 = (amA*(x+amB)) / (1 - Exp(-(x+amB)/amC))
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
FUNCTION vtrap7(x) {
|
|
194
|
+
if (fabs((x+bmB)/bmC) < 1e-6) {
|
|
195
|
+
vtrap7 = bmA*bmC : Ted Carnevale minus sign bug fix
|
|
196
|
+
}else if (x > 150){
|
|
197
|
+
vtrap7 = 0.0057268
|
|
198
|
+
}else{
|
|
199
|
+
vtrap7 = (bmA*(-(x+bmB))) / (1 - Exp((x+bmB)/bmC))
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
FUNCTION vtrap8(x) {
|
|
204
|
+
if (fabs((x+ahB)/ahC) < 1e-6) {
|
|
205
|
+
vtrap8 = ahA*ahC : Ted Carnevale minus sign bug fix
|
|
206
|
+
}else if (x > 150){
|
|
207
|
+
vtrap8 = 0.0032594
|
|
208
|
+
}else{
|
|
209
|
+
vtrap8 = (ahA*(-(x+ahB))) / (1 - Exp((x+ahB)/ahC))
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
FUNCTION vtrap9(x) {
|
|
214
|
+
if (x < -150){
|
|
215
|
+
vtrap9 = 0.0014054
|
|
216
|
+
}else{
|
|
217
|
+
vtrap9 = bhA / (1 + Exp(-(x+bhB)/bhC))
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
FUNCTION vtrap10(x) {
|
|
222
|
+
if (x < -150){ :<-150 because asC is negative
|
|
223
|
+
vtrap10 = 3.3484e-05
|
|
224
|
+
}else{
|
|
225
|
+
vtrap10 = asA / (Exp((x-vtraub+asB)/asC) + 1)
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
FUNCTION vtrap11(x) {
|
|
230
|
+
:if (((x-vtraub+bsB)/bsC) > 600) { :(x > 150){
|
|
231
|
+
if (x < -150){ :<-150 because bsC is negative
|
|
232
|
+
vtrap11 = 3.3484e-06
|
|
233
|
+
}else{
|
|
234
|
+
vtrap11 = bsA / (Exp((x-vtraub+bsB)/bsC) + 1)
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
|
|
239
|
+
FUNCTION Exp(x) {
|
|
240
|
+
if (x < -100) {
|
|
241
|
+
Exp = 0
|
|
242
|
+
}else{
|
|
243
|
+
Exp = exp(x)
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
UNITSON
|
pyfibers/MOD/BK.mod
ADDED
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
: This channel is implemented by Nathan Titus 2019.
|
|
2
|
+
: Calcium-Activated potassium channel of BK and SK Channel Contributions
|
|
3
|
+
: Kv7.2 (n) and Kv7.3 (m). Kv7.5 was considered "similar enough" to
|
|
4
|
+
: Kv7.2 so as to be considered a part of that current (n).
|
|
5
|
+
: Data From:
|
|
6
|
+
|
|
7
|
+
NEURON {
|
|
8
|
+
SUFFIX bk
|
|
9
|
+
USEION k READ ek WRITE ik
|
|
10
|
+
USEION ca READ cai
|
|
11
|
+
RANGE gbar, ek, ik
|
|
12
|
+
RANGE tau_m,minf,tau_n,m,h,hinf,tau_h
|
|
13
|
+
RANGE minfshift, hinfshift, ik, gp, g
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
UNITS {
|
|
17
|
+
(S) = (siemens)
|
|
18
|
+
(mV) = (millivolts)
|
|
19
|
+
(mA) = (milliamp)
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
PARAMETER {
|
|
23
|
+
gbar (S/cm2)
|
|
24
|
+
q10 = 3
|
|
25
|
+
|
|
26
|
+
minfshift = 0 (mV)
|
|
27
|
+
hinfshift = 0 (mV)
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
ASSIGNED {
|
|
31
|
+
v (mV) : NEURON provides this
|
|
32
|
+
ik (mA/cm2)
|
|
33
|
+
g (S/cm2)
|
|
34
|
+
tau_m (ms)
|
|
35
|
+
tau_h (ms)
|
|
36
|
+
cai (mM)
|
|
37
|
+
minf
|
|
38
|
+
hinf
|
|
39
|
+
gp
|
|
40
|
+
ek (mV)
|
|
41
|
+
celsius (degC)
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
STATE { m h }
|
|
45
|
+
|
|
46
|
+
BREAKPOINT {
|
|
47
|
+
SOLVE states METHOD cnexp
|
|
48
|
+
gp = m*h
|
|
49
|
+
g = gbar*gp
|
|
50
|
+
ik = g * (v-ek)
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
INITIAL {
|
|
54
|
+
: assume that equilibrium has been reached
|
|
55
|
+
rates(v)
|
|
56
|
+
m=minf :BK
|
|
57
|
+
h=hinf :BK
|
|
58
|
+
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
DERIVATIVE states {
|
|
62
|
+
rates(v)
|
|
63
|
+
m' = (minf - m)/(tau_m)
|
|
64
|
+
h' = (hinf - h)/(tau_h)
|
|
65
|
+
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
? rates
|
|
69
|
+
PROCEDURE rates(Vm (mV)) (/ms) {
|
|
70
|
+
LOCAL Q10,sf,v12,vh12,pca
|
|
71
|
+
UNITSOFF
|
|
72
|
+
Q10 = q10^((celsius-22)/10)
|
|
73
|
+
pca = log10(cai)-3 :converts to log10(cai [molar])
|
|
74
|
+
v12 = -50*pca-232
|
|
75
|
+
vh12 = -8*pca+35
|
|
76
|
+
minf= 1/(1+exp(-1*(Vm - v12)/24))
|
|
77
|
+
hinf= 1/(1+exp((Vm - vh12)/47))
|
|
78
|
+
tau_m = 1/(exp((Vm+(58*pca)+303)/(3.2*pca))+exp(-1*(Vm+(107*pca)+453)/(6.8*pca)))+0.4
|
|
79
|
+
tau_h = 1/(exp((Vm+(3*pca)+100)/(3*pca))+exp(-1*(Vm+(191*pca)+600)/(17*pca)))
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
tau_m=tau_m/Q10
|
|
83
|
+
tau_h=tau_h/Q10
|
|
84
|
+
UNITSON
|
|
85
|
+
|
|
86
|
+
}
|
pyfibers/MOD/CaPump.mod
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
: Author: David Catherall
|
|
2
|
+
: Created: November 2016
|
|
3
|
+
:CaPump is the Calcium Pump in Schild 1994
|
|
4
|
+
: Adapted from Leo Medina's implementation from Lindblad et al Am J Physiol 1996 275:H1666
|
|
5
|
+
|
|
6
|
+
: Neuron Block creates mechanism
|
|
7
|
+
NEURON {
|
|
8
|
+
SUFFIX CaPump :Sets suffix of mechanism for insertion into models
|
|
9
|
+
USEION ca READ cai WRITE ica :Lays out which NEURON variables will be used/modified by file
|
|
10
|
+
RANGE ICaPmax, KmCa, ica, icap :Allows variables to be modified in hoc and collected in vectors
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
: Defines Units different from NEURON base units
|
|
14
|
+
UNITS {
|
|
15
|
+
(mA) = (milliamp)
|
|
16
|
+
(mV) = (millivolt)
|
|
17
|
+
(molar) = (1/liter)
|
|
18
|
+
(mM) = (millimolar)
|
|
19
|
+
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
: Defines variables which will have a constant value throughout any given simulation run
|
|
23
|
+
PARAMETER {
|
|
24
|
+
ICaPmax22 = 0.000859437(mA/cm2) <0,1e6>
|
|
25
|
+
KmCa = .0005 (mM) <0,1e6>
|
|
26
|
+
Q10CaP = 2.30
|
|
27
|
+
Q10TempA = 22 (degC) : Used to shift ICaPmax value based on temperature with equation : tau(T1)=tau(Q10TempA)*Q10^((Q10TempA-T1)/Q10TempB)
|
|
28
|
+
Q10TempB = 10 (degC)
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
: Defines variables which will be used or calculated throughout the simulation which may not be constant. Also included NEURON provided variables, like v, celsius, and ina
|
|
32
|
+
ASSIGNED {
|
|
33
|
+
|
|
34
|
+
:NEURON provided Variables
|
|
35
|
+
celsius (degC)
|
|
36
|
+
v (mV)
|
|
37
|
+
cai (mM)
|
|
38
|
+
ica (mA/cm2)
|
|
39
|
+
|
|
40
|
+
:Model Specific Variables
|
|
41
|
+
icap (mA/cm2)
|
|
42
|
+
ICaPmax (mA/cm2)
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
: This block iterates the variable calculations and uses those calculations to calculate currents
|
|
46
|
+
BREAKPOINT {
|
|
47
|
+
|
|
48
|
+
icap = ICaPmax*(cai/(cai+KmCa))
|
|
49
|
+
|
|
50
|
+
ica=icap
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
:Initialize KNaCa, as it is temperature dependent
|
|
54
|
+
INITIAL {
|
|
55
|
+
ICaPmax = ICaPmax22*Q10CaP^((Q10TempA-celsius)/Q10TempB)
|
|
56
|
+
}
|
|
57
|
+
:Note that there are no state variables, and as such, no differential equations
|
pyfibers/MOD/CaV12.mod
ADDED
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
: L-Type Voltage Dependent Calcium Channel
|
|
2
|
+
|
|
3
|
+
: Coded and modified by Nathan Titus 2018
|
|
4
|
+
: Development Notes:
|
|
5
|
+
:
|
|
6
|
+
:
|
|
7
|
+
|
|
8
|
+
NEURON {
|
|
9
|
+
SUFFIX cav12
|
|
10
|
+
USEION ca READ eca WRITE ica
|
|
11
|
+
RANGE ica
|
|
12
|
+
RANGE gbar, minf, mtau, hinf, htau
|
|
13
|
+
RANGE q10, gp, g
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
UNITS {
|
|
17
|
+
(molar) = (1/liter) : moles do not appear in units
|
|
18
|
+
(mM) = (millimolar)
|
|
19
|
+
(uA) = (microamp)
|
|
20
|
+
(mA) = (milliamp)
|
|
21
|
+
(mV) = (millivolt)
|
|
22
|
+
(um) = (micron)
|
|
23
|
+
(S) = (siemens)
|
|
24
|
+
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
PARAMETER {
|
|
28
|
+
gbar = 6.5e-9 (S/cm2) :from Schild et al 1994
|
|
29
|
+
q10 = 3
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
ASSIGNED {
|
|
33
|
+
v (mV)
|
|
34
|
+
celsius (degC)
|
|
35
|
+
g (S/cm2)
|
|
36
|
+
gp
|
|
37
|
+
minf
|
|
38
|
+
mtau
|
|
39
|
+
hinf
|
|
40
|
+
htau
|
|
41
|
+
ica (mA/cm2)
|
|
42
|
+
eca (mV)
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
INITIAL {
|
|
47
|
+
rates(v)
|
|
48
|
+
m = minf
|
|
49
|
+
h = hinf
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
STATE {
|
|
53
|
+
m h
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
BREAKPOINT {
|
|
57
|
+
SOLVE states METHOD cnexp
|
|
58
|
+
gp = m*m*m*h
|
|
59
|
+
g = gbar*gp
|
|
60
|
+
ica = g*(v-eca)
|
|
61
|
+
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
DERIVATIVE states {
|
|
65
|
+
rates(v)
|
|
66
|
+
m' = (minf - m)/(mtau)
|
|
67
|
+
h' = (hinf - h)/(htau)
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
? rates
|
|
71
|
+
PROCEDURE rates(Vm (mV)) {
|
|
72
|
+
LOCAL Q10
|
|
73
|
+
TABLE minf,hinf,mtau,htau DEPEND celsius FROM -120 TO 100 WITH 440
|
|
74
|
+
|
|
75
|
+
UNITSOFF
|
|
76
|
+
Q10 = q10^((celsius-22)/10)
|
|
77
|
+
:minf = 1/(1 + exp(-1*(Vm - 1.5)/6))
|
|
78
|
+
minf = (1/(1 + exp(-1*(Vm - 1.75)/10)))^(1/3)
|
|
79
|
+
:hinf = 1/(1 + exp((Vm + 61.5)/12))
|
|
80
|
+
hinf = 1/(1 + exp((Vm - 10)/8))
|
|
81
|
+
:mtau = 0.57 + 5.5/(exp((Vm + 4.6)/7.95) + exp(-1*(Vm - 8.9)/33.8))
|
|
82
|
+
mtau = 0.25 + 0.5/(exp((Vm - 15)/5) + exp(-1*(Vm + 27)/12))
|
|
83
|
+
:htau = 4.3 + 167/(exp((Vm + 15)/9.2) + exp(-1*(Vm + 38)/31)) + 80/(1+exp((Vm + 72)/5))
|
|
84
|
+
htau = 1.4/(exp((Vm - 145)/30) + exp(-1*(Vm + 150)/16.4))
|
|
85
|
+
mtau = mtau/Q10
|
|
86
|
+
htau = htau/Q10
|
|
87
|
+
|
|
88
|
+
}
|
|
89
|
+
UNITSON
|
pyfibers/MOD/CaV22.mod
ADDED
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
: N-Type Voltage Dependent Calcium Channel NOT FOR VAGAL AFFERENTS
|
|
2
|
+
|
|
3
|
+
: Coded and modified by Nathan Titus 2018
|
|
4
|
+
: Development Notes: Almost definitely a second inactivation gate or
|
|
5
|
+
: concentration dependency. Insufficient data exists so inactivation tau
|
|
6
|
+
: should be updated when more is understood about these channels.
|
|
7
|
+
|
|
8
|
+
NEURON {
|
|
9
|
+
SUFFIX cav22
|
|
10
|
+
USEION ca READ eca WRITE ica
|
|
11
|
+
RANGE ica
|
|
12
|
+
RANGE gbar, minf, mtau, hinf, htau, sinf, stau
|
|
13
|
+
RANGE q10, gp, g
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
UNITS {
|
|
17
|
+
(molar) = (1/liter) : moles do not appear in units
|
|
18
|
+
(mM) = (millimolar)
|
|
19
|
+
(uA) = (microamp)
|
|
20
|
+
(mA) = (milliamp)
|
|
21
|
+
(mV) = (millivolt)
|
|
22
|
+
(um) = (micron)
|
|
23
|
+
(S) = (siemens)
|
|
24
|
+
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
PARAMETER {
|
|
28
|
+
gbar = 6.5e-9 (S/cm2) :from Schild et al 1994
|
|
29
|
+
q10 = 3
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
ASSIGNED {
|
|
33
|
+
v (mV)
|
|
34
|
+
celsius (degC)
|
|
35
|
+
g (S/cm2)
|
|
36
|
+
gp
|
|
37
|
+
minf
|
|
38
|
+
mtau
|
|
39
|
+
hinf
|
|
40
|
+
htau
|
|
41
|
+
sinf
|
|
42
|
+
stau
|
|
43
|
+
ica (mA/cm2)
|
|
44
|
+
eca (mV)
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
INITIAL {
|
|
49
|
+
rates(v)
|
|
50
|
+
m = minf
|
|
51
|
+
h = hinf
|
|
52
|
+
s = sinf
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
STATE {
|
|
56
|
+
m h s
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
BREAKPOINT {
|
|
60
|
+
SOLVE states METHOD cnexp
|
|
61
|
+
gp = m*m*m*h*s
|
|
62
|
+
g = gbar*gp
|
|
63
|
+
ica = g*(v-eca)
|
|
64
|
+
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
DERIVATIVE states {
|
|
68
|
+
rates(v)
|
|
69
|
+
m' = (minf - m)/(mtau)
|
|
70
|
+
h' = (hinf - h)/(htau)
|
|
71
|
+
s' = (sinf - s)/(stau)
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
? rates
|
|
75
|
+
PROCEDURE rates(Vm (mV)) {
|
|
76
|
+
LOCAL Q10
|
|
77
|
+
TABLE minf,hinf,sinf,mtau,htau,stau DEPEND celsius FROM -120 TO 100 WITH 440
|
|
78
|
+
|
|
79
|
+
UNITSOFF
|
|
80
|
+
Q10 = q10^((celsius-22)/10)
|
|
81
|
+
:minf = 1/(1 + exp(-1*(Vm - 1.5)/6))
|
|
82
|
+
minf = (1/(1 + exp(-1*(Vm + 4)/7.5)))^(1/3)
|
|
83
|
+
:hinf = 1/(1 + exp((Vm + 61.5)/12))
|
|
84
|
+
hinf = 1/(1 + exp((Vm + 48)/7))
|
|
85
|
+
sinf = 1/(1 + exp((Vm + 81)/8.6))
|
|
86
|
+
mtau = .1 + 0.5/(exp((Vm-3)/6.7)+exp(-1*(Vm+37)/13.5))
|
|
87
|
+
htau = 36/(exp((Vm-35)/15.4)+exp(-1*(Vm+134)/26.6)) + 19 + 50/(1+exp((Vm+50)/10))
|
|
88
|
+
htau = 10/(exp((Vm-54)/23)+exp(-1*(Vm+150)/35))
|
|
89
|
+
stau = 50 + 30/(exp((Vm-50)/26)+exp(-1*(Vm+150)/26))
|
|
90
|
+
|
|
91
|
+
mtau = mtau/Q10
|
|
92
|
+
htau = htau/Q10
|
|
93
|
+
stau = stau/Q10
|
|
94
|
+
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
UNITSON
|
pyfibers/MOD/DNav18.mod
ADDED
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
: The m and h are form sheets 2007
|
|
2
|
+
:s and u are form Delmas
|
|
3
|
+
: run NaV18_delmas.m to plot the model
|
|
4
|
+
|
|
5
|
+
NEURON {
|
|
6
|
+
SUFFIX nav1p8
|
|
7
|
+
USEION na READ ena WRITE ina
|
|
8
|
+
RANGE gbar, ena, ina, celsiusT
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
UNITS {
|
|
12
|
+
(S) = (siemens)
|
|
13
|
+
(mV) = (millivolts)
|
|
14
|
+
(mA) = (milliamp)
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
PARAMETER {
|
|
18
|
+
gbar = 0 (S/cm2) : =220e-9/(100e-12*1e8) (S/cm2) : 220(nS)/100(um)^2
|
|
19
|
+
kvot_qt
|
|
20
|
+
celsiusT
|
|
21
|
+
shift_act = 0 (mV)
|
|
22
|
+
shift_inact =0 (mV)
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
ASSIGNED {
|
|
26
|
+
v (mV) : NEURON provides this
|
|
27
|
+
ina (mA/cm2)
|
|
28
|
+
g (S/cm2)
|
|
29
|
+
tau_h (ms)
|
|
30
|
+
tau_m (ms)
|
|
31
|
+
tau_s (ms)
|
|
32
|
+
tau_u (ms)
|
|
33
|
+
minf
|
|
34
|
+
hinf
|
|
35
|
+
sinf
|
|
36
|
+
uinf
|
|
37
|
+
ena (mV)
|
|
38
|
+
am
|
|
39
|
+
bm
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
STATE { m h s u }
|
|
43
|
+
|
|
44
|
+
BREAKPOINT {
|
|
45
|
+
SOLVE states METHOD cnexp
|
|
46
|
+
g = gbar * m^3* h * s * u
|
|
47
|
+
ina = g * (v-ena)
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
INITIAL {
|
|
51
|
+
: assume that equilibrium has been reached
|
|
52
|
+
rates(v)
|
|
53
|
+
m=minf
|
|
54
|
+
h=hinf
|
|
55
|
+
s=sinf
|
|
56
|
+
u=uinf
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
DERIVATIVE states {
|
|
62
|
+
rates(v)
|
|
63
|
+
m' = (minf - m)/tau_m
|
|
64
|
+
h' = (hinf - h)/tau_h
|
|
65
|
+
s' = (sinf - s)/tau_s
|
|
66
|
+
u' = (uinf - u)/tau_u
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
FUNCTION rates(Vm (mV)) {
|
|
70
|
+
|
|
71
|
+
am= 2.85-(2.839)/(1+exp((Vm-1.159)/13.95))
|
|
72
|
+
bm= (7.6205)/(1+exp((Vm+46.463)/8.8289))
|
|
73
|
+
tau_m = 1/(am+bm)
|
|
74
|
+
minf = am/(am+bm)
|
|
75
|
+
|
|
76
|
+
hinf= 1/(1+exp((Vm+32.2)/4))
|
|
77
|
+
tau_h=(1.218+42.043*exp(-((Vm+38.1)^2)/(2*15.19^2)))
|
|
78
|
+
|
|
79
|
+
tau_s = 1/(alphas(Vm) + betas(Vm))
|
|
80
|
+
sinf = 1/(1 + exp((Vm + 45)/8(mV)))
|
|
81
|
+
tau_u = 1/(alphau(Vm) + betau(Vm))
|
|
82
|
+
uinf = 1/(1 + exp((Vm + 51)/8(mV)))
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
kvot_qt=1/((2.5^((celsiusT-22)/10)))
|
|
86
|
+
tau_m=tau_m*kvot_qt
|
|
87
|
+
tau_h=tau_h*kvot_qt
|
|
88
|
+
tau_s=tau_s*kvot_qt
|
|
89
|
+
tau_u=tau_u*kvot_qt
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
FUNCTION alphas(Vm (mV)) (/ms) {
|
|
94
|
+
alphas= 0.001(/ms)*5.4203/(1 + exp((Vm + 79.816)/16.269(mV)))
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
FUNCTION alphau(Vm (mV)) (/ms) {
|
|
98
|
+
alphau= 0.0002(/ms)*2.0434/(1 + exp((Vm + 67.499)/19.51(mV)))
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
FUNCTION betas(Vm (mV)) (/ms) {
|
|
102
|
+
betas= 0.001(/ms)*5.0757/(1 + exp(-(Vm + 15.968)/11.542(mV)))
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
FUNCTION betau(Vm (mV)) (/ms) {
|
|
106
|
+
betau= 0.0002(/ms)*1.9952/(1 + exp(-(Vm + 30.963)/14.792(mV)))
|
|
107
|
+
}
|