-
Notifications
You must be signed in to change notification settings - Fork 1
/
calL_Shah.mod
124 lines (94 loc) · 1.8 KB
/
calL_Shah.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
TITLE l-calcium channel
: l-type calcium channel
UNITS {
(mA) = (milliamp)
(mV) = (millivolt)
FARADAY = 96520 (coul)
R = 8.3134 (joule/degC)
KTOMV = .0853 (mV/degC)
}
PARAMETER {
v (mV)
celsius (degC)
gcalbar=.003 (mho/cm2)
ki=.001 (mM)
cai = 50.e-6 (mM)
cao = 2 (mM)
q10 = 5
mmin=0.2
tfa = 1
a0m =0.1
zetam = 2
vhalfm = 4
gmm=0.1
ggk
}
NEURON {
SUFFIX calL_Shah
USEION ca READ cai,cao WRITE ica
RANGE gcalbar,cai, ica, gcal, ggk
GLOBAL minf,tau
}
STATE {
m
}
ASSIGNED {
ica (mA/cm2)
gcal (mho/cm2)
minf
tau (ms)
}
INITIAL {
rate(v)
m = minf
}
BREAKPOINT {
SOLVE state METHOD cnexp
gcal = gcalbar*m*m*h2(cai)
ggk=ghk(v,cai,cao)
ica = gcal*ggk
}
FUNCTION h2(cai(mM)) {
h2 = ki/(ki+cai)
}
FUNCTION ghk(v(mV), ci(mM), co(mM)) (mV) {
LOCAL nu,f
f = KTF(celsius)/2
nu = v/f
ghk=-f*(1. - (ci/co)*exp(nu))*efun(nu)
}
FUNCTION KTF(celsius (DegC)) (mV) {
KTF = ((25./293.15)*(celsius + 273.15))
}
FUNCTION efun(z) {
if (fabs(z) < 1e-4) {
efun = 1 - z/2
}else{
efun = z/(exp(z) - 1)
}
}
FUNCTION alp(v(mV)) (1/ms) {
alp = 15.69*(-1.0*v+81.5)/(exp((-1.0*v+81.5)/10.0)-1.0)
}
FUNCTION bet(v(mV)) (1/ms) {
bet = 0.29*exp(-v/10.86)
}
FUNCTION alpmt(v(mV)) {
alpmt = exp(0.0378*zetam*(v-vhalfm))
}
FUNCTION betmt(v(mV)) {
betmt = exp(0.0378*zetam*gmm*(v-vhalfm))
}
DERIVATIVE state {
rate(v)
m' = (minf - m)/tau
}
PROCEDURE rate(v (mV)) { :callable from hoc
LOCAL a, b, qt
qt=q10^((celsius-25)/10)
a = alp(v)
b = 1/((a + bet(v)))
minf = a*b
tau = betmt(v)/(qt*a0m*(1+alpmt(v)))
if (tau<mmin/qt) {tau=mmin/qt}
}