-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathka.mod
More file actions
130 lines (109 loc) · 2.77 KB
/
ka.mod
File metadata and controls
130 lines (109 loc) · 2.77 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
: ka.mod codes an A-type voltage-gated K+ channel.
: Default parameters of a H-H equation are fitted to our experimental data
: by using our channel generator.
:
: Takaki Watanabe
: wtakaki@m.u-tokyo.ac.jp
UNITS {
(mA) = (milliamp)
(mV) = (millivolt)
(nA) = (nanoamp)
}
NEURON {
SUFFIX ka
USEION k READ ek WRITE ik
RANGE gkabar, gka, ik
GLOBAL ainf, binf, cinf, atau, btau, ctau
GLOBAL aa3,bb3,cc3,dd3,ee3,ff3,gg3,hh3,ii3,jj3,kk3,ll3,mm3,nn3,oo3,pp3,qq3,rr3,ss3,tt3,uu3,vv3,ww3,xx3,yy3,zz3,aaa3,bbb3,ccc3
}
INDEPENDENT {t FROM 0 TO 1 WITH 1 (ms)}
PARAMETER {
v (mV)
celsius = 20 (degC)
dt (ms)
ek = -90 (mV)
gkabar = 0.00477 (mho/cm2) <0,1e9>
aa3=31 <0,1e3>
bb3=6 <0,1e3>
cc3=0.25 <0,1e3>
dd3=66 <0,1e3>
ee3=7 <0,1e3>
ff3=0.5 <0,1e3>
gg3=66 <0,1e3>
hh3=7 <0,1e3>
ii3=0.5 <0,1e3>
jj3=100 <0,1e3>
kk3=7 <0,1e3>
ll3=60 <0,1e3>
mm3=14 <0,1e3>
nn3=29 <0,1e3>
oo3=60 <0,1e3>
pp3=24 <0,1e3>
qq3=0.1 <0,1e3>
rr3=1000 <0,1e4>
ss3=14 <0,1e3>
tt3=60 <0,1e3>
uu3=27 <0,1e3>
vv3=29 <0,1e3>
ww3=60 <0,1e3>
xx3=24 <0,1e3>
yy3=1 <0,1e3>
zz3=90 <0,1e3>
aaa3=66 <0,1e3>
bbb3=17 <0,1e3>
ccc3=10 <0,1e3>
}
STATE {
a b c
}
ASSIGNED {
ik (mA/cm2)
gka (mho/cm2)
ainf binf cinf
atau (ms) btau (ms) ctau (ms)
}
LOCAL aexp, bexp, cexp
BREAKPOINT {
SOLVE states
gka = gkabar*(a^4)*b*c
ik = gka*(v - ek)
}
UNITSOFF
INITIAL {
trates(v)
a = ainf
b = binf
c = cinf
}
PROCEDURE states() { :Computes state variables m, h, and n
trates(v) : at the current v and dt.
a = a + aexp*(ainf-a)
b = b + bexp*(binf-b)
c = c + cexp*(cinf-c)
VERBATIM
return 0;
ENDVERBATIM
}
LOCAL q10
PROCEDURE rates(v) { :Computes rate and other constants at current v.
:Call once from HOC to initialize inf at resting v.
ainf = (1 / (1 + exp(-1*(v + aa3) / bb3)))^cc3
binf = 1 / (1 + exp((v + dd3) / ee3))^ff3
cinf = 1 / (1 + exp((v + gg3) / hh3))^ii3
atau = (jj3 / (kk3*exp((v+ll3) / mm3) + nn3*exp(-(v+oo3) / pp3))) + qq3
btau = (rr3 / (ss3*exp((v+tt3) / uu3) + vv3*exp(-(v+ww3) / xx3))) + yy3
ctau = (zz3 / (1 + exp((-aaa3-v) / bbb3))) + ccc3
}
PROCEDURE trates(v) { :Computes rate and other constants at current v.
:Call once from HOC to initialize inf at resting v.
LOCAL tinc
TABLE ainf, aexp, binf, bexp, cinf, cexp
DEPEND dt, celsius FROM -150 TO 150 WITH 300
q10 = 3^((celsius - 20)/10)
rates(v)
tinc = -dt * q10
aexp = 1 - exp(tinc/atau)
bexp = 1 - exp(tinc/btau)
cexp = 1 - exp(tinc/ctau)
}
UNITSON