-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathCaT.mod
More file actions
123 lines (94 loc) · 2.25 KB
/
Copy pathCaT.mod
File metadata and controls
123 lines (94 loc) · 2.25 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
COMMENT
T-type Ca channel
ca.mod to lead to thalamic ca current inspired by destexhe and huguenrd
Uses fixed eca instead of GHK eqn
changed from (AS Oct0899)
changed for use with Ri18 (B.Kampa 2005)
ENDCOMMENT
INDEPENDENT {t FROM 0 TO 1 WITH 1 (ms)}
NEURON {
SUFFIX it
USEION ca READ eca WRITE ica
RANGE m, h, gca, gbar
RANGE minf, hinf, mtau, htau, inactF, actF
GLOBAL vshift,vmin,vmax, v12m, v12h, vwm, vwh, am, ah, vm1, vm2, vh1, vh2, wm1, wm2, wh1, wh2
}
PARAMETER {
gbar = 0.0008 (mho/cm2) : 0.12 mho/cm2
vshift = 0 (mV) : voltage shift (affects all)
cao = 2.5 (mM) : external ca concentration
cai (mM)
v (mV)
dt (ms)
celsius (degC)
vmin = -120 (mV)
vmax = 100 (mV)
v12m=50 (mV)
v12h=78 (mV)
vwm =7.4 (mV)
vwh=5.0 (mV)
am=3 (mV)
ah=85 (mV)
vm1=25 (mV)
vm2=100 (mV)
vh1=46 (mV)
vh2=405 (mV)
wm1=20 (mV)
wm2=15 (mV)
wh1=4 (mV)
wh2=50 (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 = gbar*m*m*h
ica = 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
FROM vmin TO vmax WITH 199
rates(v): not consistently executed from here if usetable == 1
tinc = -dt
mexp = 1 - exp(tinc/mtau)
hexp = 1 - exp(tinc/htau)
}
PROCEDURE rates(v_) {
LOCAL a, b
minf = 1.0 / ( 1 + exp(-(v_+v12m)/vwm) )
hinf = 1.0 / ( 1 + exp((v_+v12h)/vwh) )
mtau = ( am + 1.0 / ( exp((v_+vm1)/wm1) + exp(-(v_+vm2)/wm2) ) )
htau = ( ah + 1.0 / ( exp((v_+vh1)/wh1) + exp(-(v_+vh2)/wh2) ) )
}