-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathSlowCa.mod
More file actions
134 lines (99 loc) · 2.27 KB
/
Copy pathSlowCa.mod
File metadata and controls
134 lines (99 loc) · 2.27 KB
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
COMMENT
changed from (AS Oct0899)
ca.mod
Uses fixed eca instead of GHK eqn
HVA Ca current
Based on Reuveni, Friedman, Amitai and Gutnick (1993) J. Neurosci. 13:
4609-4621.
Author: Zach Mainen, Salk Institute, 1994, zach@salk.edu
ENDCOMMENT
INDEPENDENT {t FROM 0 TO 1 WITH 1 (ms)}
NEURON {
SUFFIX sca
USEION ca READ eca WRITE ica
RANGE m, h, gca, gbar
RANGE minf, hinf, mtau, htau, inactF, actF
GLOBAL q10, temp, tadj, vmin, vmax, vshift
}
PARAMETER {
inactF = 3
actF = 1
gbar = 0.1 (pS/um2) : 0.12 mho/cm2
vshift = 0 (mV) : voltage shift (affects all)
cao = 2.5 (mM) : external ca concentration
cai (mM)
temp = 23 (degC) : original temp
q10 = 2.3 : temperature sensitivity
v (mV)
dt (ms)
celsius (degC)
vmin = -120 (mV)
vmax = 100 (mV)
}
UNITS {
(mA) = (milliamp)
(mV) = (millivolt)
(pS) = (picosiemens)
(um) = (micron)
FARADAY = (faraday) (coulomb)
R = (k-mole) (joule/degC)
PI = (pi) (1)
}
ASSIGNED {
ica (mA/cm2)
gca (pS/um2)
eca (mV)
minf hinf
mtau (ms) htau (ms)
tadj
}
STATE { m h }
INITIAL {
trates(v+vshift)
m = minf
h = hinf
}
BREAKPOINT {
SOLVE states
gca = tadj*gbar*m*m*h
ica = (1e-4) * gca * (v - eca)
}
LOCAL mexp, hexp
PROCEDURE states() {
trates(v+vshift)
m = m + mexp*(minf-m)
h = h + hexp*(hinf-h)
VERBATIM
return 0;
ENDVERBATIM
}
PROCEDURE trates(v) {
LOCAL tinc
TABLE minf, mexp, hinf, hexp
DEPEND dt, celsius, temp, inactF
FROM vmin TO vmax WITH 199
rates(v): not consistently executed from here if usetable == 1
tadj = q10^((celsius - temp)/10)
tinc = -dt * tadj
mexp = 1 - exp(tinc/mtau)
hexp = 1 - exp(tinc/htau)
}
PROCEDURE rates(vm) {
LOCAL a, b
a = 0.055*(-27 - vm)/(exp((-27-vm)/3.8) - 1)/actF
b = 0.94*exp((-75-vm)/17)/actF
mtau = 1/(a+b)
minf = a*mtau
:"h" inactivation
a = 0.000457*exp((-13-vm)/50)/inactF
b = 0.0065/(exp((-vm-15)/28) + 1)/inactF
htau = 1/(a+b) : originally *1
hinf = a*htau
}
FUNCTION efun(z) {
if (fabs(z) < 1e-4) {
efun = 1 - z/2
}else{
efun = z/(exp(z) - 1)
}
}