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.
Files changed (67) hide show
  1. pyfibers/MOD/AXNODE_myel.mod +247 -0
  2. pyfibers/MOD/BK.mod +86 -0
  3. pyfibers/MOD/CaPump.mod +57 -0
  4. pyfibers/MOD/CaV12.mod +89 -0
  5. pyfibers/MOD/CaV22.mod +97 -0
  6. pyfibers/MOD/DNav18.mod +107 -0
  7. pyfibers/MOD/HCN.mod +104 -0
  8. pyfibers/MOD/KA14.mod +91 -0
  9. pyfibers/MOD/KA34.mod +93 -0
  10. pyfibers/MOD/KM.mod +83 -0
  11. pyfibers/MOD/KV21.mod +78 -0
  12. pyfibers/MOD/NaCX.mod +74 -0
  13. pyfibers/MOD/NaCaPump.mod +81 -0
  14. pyfibers/MOD/NaV7.mod +89 -0
  15. pyfibers/MOD/NaV9.mod +92 -0
  16. pyfibers/MOD/Nakpump.mod +84 -0
  17. pyfibers/MOD/NakpumpSchild.mod +66 -0
  18. pyfibers/MOD/RattayAberham.mod +118 -0
  19. pyfibers/MOD/SK.mod +77 -0
  20. pyfibers/MOD/caextscale.mod +79 -0
  21. pyfibers/MOD/caintscale.mod +76 -0
  22. pyfibers/MOD/can.mod +158 -0
  23. pyfibers/MOD/cat.mod +131 -0
  24. pyfibers/MOD/extrapump.mod +39 -0
  25. pyfibers/MOD/h.mod +93 -0
  26. pyfibers/MOD/k_ion_dynamics.mod +54 -0
  27. pyfibers/MOD/k_ion_dynamics_tigerholm.mod +54 -0
  28. pyfibers/MOD/ka.mod +114 -0
  29. pyfibers/MOD/kca.mod +110 -0
  30. pyfibers/MOD/kd.mod +109 -0
  31. pyfibers/MOD/kdr.mod +91 -0
  32. pyfibers/MOD/kdrTiger.mod +67 -0
  33. pyfibers/MOD/kds.mod +111 -0
  34. pyfibers/MOD/kf.mod +81 -0
  35. pyfibers/MOD/kna.mod +50 -0
  36. pyfibers/MOD/ks.mod +76 -0
  37. pyfibers/MOD/leak.mod +50 -0
  38. pyfibers/MOD/leakSchild.mod +59 -0
  39. pyfibers/MOD/na_ion_dynamics.mod +55 -0
  40. pyfibers/MOD/na_ion_dynamics_tigerholm.mod +55 -0
  41. pyfibers/MOD/naf.mod +142 -0
  42. pyfibers/MOD/naf97mean.mod +115 -0
  43. pyfibers/MOD/nahh.mod +92 -0
  44. pyfibers/MOD/nas.mod +114 -0
  45. pyfibers/MOD/nas97mean.mod +112 -0
  46. pyfibers/MOD/nattxs.mod +131 -0
  47. pyfibers/MOD/nav1p9.mod +142 -0
  48. pyfibers/MOD/newNaV8.mod +97 -0
  49. pyfibers/MOD/train.mod +58 -0
  50. pyfibers/__init__.py +43 -0
  51. pyfibers/calc.py +2 -0
  52. pyfibers/compile.py +43 -0
  53. pyfibers/fiber.py +1165 -0
  54. pyfibers/model_enum.py +81 -0
  55. pyfibers/models/__init__.py +12 -0
  56. pyfibers/models/mrg.py +330 -0
  57. pyfibers/models/rattay.py +54 -0
  58. pyfibers/models/schild.py +130 -0
  59. pyfibers/models/sundt.py +61 -0
  60. pyfibers/models/thio.py +173 -0
  61. pyfibers/models/tigerholm.py +122 -0
  62. pyfibers/stimulation.py +1178 -0
  63. pyfibers-0.4.2.dist-info/METADATA +123 -0
  64. pyfibers-0.4.2.dist-info/RECORD +67 -0
  65. pyfibers-0.4.2.dist-info/WHEEL +4 -0
  66. pyfibers-0.4.2.dist-info/entry_points.txt +3 -0
  67. 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
+ }
@@ -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
@@ -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
+ }