-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathka.mod
133 lines (108 loc) · 2.29 KB
/
ka.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
125
126
127
128
129
130
131
132
133
TITLE ka
: Kalium stroom type A
: twee gates met elk twee toestanden: open of dicht
:
: uit: Traub et al.
: A branching dendritic model of a rodent CA3
: pyramidal neurone.
UNITS {
(molar) = (1/liter)
(mV) = (millivolt)
(mA) = (milliamp)
(mM) = (millimolar)
}
INDEPENDENT {t FROM 0 TO 1 WITH 100 (ms)}
NEURON {
SUFFIX ka
USEION k READ ek WRITE ik
RANGE gkbar, ik, qk
GLOBAL shiftm, shifth
}
UNITS {
PI = (pi) (1)
FARADAY = 96485.309 (coul)
R = (k-mole) (joule/degC)
}
PARAMETER {
celsius (degC)
gkbar=1e-3 (cm/s) : Maximum Permeability .2e-3*5 hans
shiftm = 0 (mV)
shifth = 0 (mV)
}
ASSIGNED {
ik (mA/cm2)
v (mV)
ek (mV)
diam (um)
}
STATE { am ac bm bc qk } : fraction of states, m=fraction in open state.
BREAKPOINT {
SOLVE kstate METHOD sparse
ik = gkbar*am*am*bm*(v-ek)
}
INITIAL {
am=a_inf(v)
ac=1-am
bm=b_inf(v)
bc=1-bm
qk=0
ik = gkbar*am*am*bm*(v-ek)
}
LOCAL a1,a2,b1,b2
KINETIC kstate {
a1 = a_m(v)
a2 = a_c(v)
b1 = b_m(v)
b2 = b_c(v)
~ ac <-> am (a1, a2)
~ bc <-> bm (b1, b2)
CONSERVE am + ac = 1
CONSERVE bm + bc = 1
COMPARTMENT diam*diam*PI/4 { qk }
~ qk << ((-ik*diam )*PI*(1e4)/FARADAY )
}
FUNCTION a_m(v(mV)) {
LOCAL shift
TABLE DEPEND shiftm FROM -150 TO 150 WITH 200
shift=-30+shiftm
a_m=0.02*(13.1-v-70-shift)/(exp((13.1-v-70-shift)/10)-1)
}
FUNCTION a_c(v(mV)) {
LOCAL shift
TABLE DEPEND shiftm FROM -150 TO 150 WITH 200
shift=-30+shiftm
a_c=0.0175*(v-40.1+70+shift)/(exp((v-40.1+70+shift)/10)-1)
}
FUNCTION b_m(v(mV)) {
TABLE DEPEND shifth FROM -150 TO 150 WITH 200
b_m = 0.016*exp((-13-v-70-shifth)/18)
}
FUNCTION b_c(v(mV)) {
TABLE DEPEND shifth FROM -150 TO 150 WITH 200
b_c = 0.5/(1+exp((10.1-v-70-shifth)/5))
}
FUNCTION a_inf(v(mV)) {
a_inf = a_m(v) / ( a_m(v) + a_c(v) )
}
FUNCTION b_inf(v(mV)) {
b_inf = b_m(v) / ( b_m(v) + b_c(v) )
}
FUNCTION window(v(mV)) {
window=gkbar*a_inf(v)*a_inf(v)*b_inf(v)*(v-ek)
}
FUNCTION ghk(v(mV), ci(mM), co(mM)) (.001 coul/cm3) {
LOCAL z, eci, eco
z = (1e-3)*1*FARADAY*v/(R*(celsius+273.11247574))
eco = co*efun(z)
eci = ci*efun(-z)
:high kao charge moves inward, mogelijke fouten vanwege oorsprong Ca(2+)!
:negative potential charge moves inward
ghk = (.001)*1*FARADAY*(eci - eco)
}
FUNCTION efun(z) {
if (fabs(z) < 1e-4) {
efun = 1 - z/2
}else{
efun = z/(exp(z) - 1)
}
}