-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathca.mod
121 lines (86 loc) · 1.94 KB
/
ca.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
COMMENT
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, [email protected]
ENDCOMMENT
INDEPENDENT {t FROM 0 TO 1 WITH 1 (ms)}
NEURON {
SUFFIX ca
USEION ca READ eca WRITE ica
RANGE m, h, gca, gbar
RANGE minf, hinf, mtau, htau
RANGE q10, temp, tadj, vmin, vmax, vshift
RANGE mexp, hexp
}
PARAMETER {
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 {
m = minf
h = hinf
}
BREAKPOINT {
SOLVE states
gca = tadj*gbar*m*m*h
ica = (1e-4) * gca * (v - eca)
}
PROCEDURE states() {
LOCAL mexp, hexp, tinc
rates(v+vshift): 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)
m = m + mexp*(minf-m)
h = h + hexp*(hinf-h)
}
PROCEDURE rates(vm) {
LOCAL a, b
a = 0.055*(-27 - vm)/(exp((-27-vm)/3.8) - 1)
b = 0.94*exp((-75-vm)/17)
mtau = 1/(a+b)
minf = a*mtau
:"h" inactivation
a = 0.000457*exp((-13-vm)/50)
b = 0.0065/(exp((-vm-15)/28) + 1)
htau = 1/(a+b)
hinf = a*htau
}
FUNCTION efun(z) {
if (fabs(z) < 1e-4) {
efun = 1 - z/2
}else{
efun = z/(exp(z) - 1)
}
}