-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathKv2like.mod
97 lines (79 loc) · 1.49 KB
/
Kv2like.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
: Kv2-like channel
: Adapted from model implemented in Keren et al. 2005
: Adjusted parameters to be similar to guangxitoxin-sensitive current in mouse CA1 pyramids from Liu and Bean 2014
NEURON {
SUFFIX Kv2like
USEION k READ ek WRITE ik
RANGE gbar, g, ik
}
UNITS {
(S) = (siemens)
(mV) = (millivolt)
(mA) = (milliamp)
}
PARAMETER {
gbar = 0.00001 (S/cm2)
}
ASSIGNED {
v (mV)
ek (mV)
ik (mA/cm2)
g (S/cm2)
celsius (degC)
mInf
mAlpha
mBeta
mTau
hInf
h1Tau
h2Tau
}
STATE {
m
h1
h2
}
BREAKPOINT {
SOLVE states METHOD cnexp
g = gbar * m * m * (0.5 * h1 + 0.5 * h2)
ik = g * (v - ek)
}
DERIVATIVE states {
rates()
m' = (mInf - m) / mTau
h1' = (hInf - h1) / h1Tau
h2' = (hInf - h2) / h2Tau
}
INITIAL{
rates()
m = mInf
h1 = hInf
h2 = hInf
}
PROCEDURE rates() {
LOCAL qt
qt = 2.3^((celsius-21)/10)
UNITSOFF
mAlpha = 0.12 * vtrap( -(v - 43), 11.0)
mBeta = 0.02 * MyExp(-(v + 1.27) / 120)
mInf = mAlpha / (mAlpha + mBeta)
mTau = 2.5 * (1 / (qt * (mAlpha + mBeta)))
hInf = 1/(1 + MyExp((v + 58) / 11))
h1Tau = (360 + (1010 + 23.7 * (v + 54)) * MyExp(-((v + 75) / 48)^2)) / qt
h2Tau = (2350 + 1380 * MyExp(-0.011 * v) - 210 * MyExp(-0.03 * v)) / qt
UNITSON
}
FUNCTION vtrap(x, y) { : Traps for 0 in denominator of rate equations
UNITSOFF
if (fabs(x / y) < 1e-6) {
vtrap = y :* (1 - x / y / 2)
} else {
vtrap = x / (MyExp(x / y) - 1)
}
UNITSON
}
FUNCTION MyExp(x) {
if (x<-50) {MyExp=0}
else if (x>50) {MyExp=exp(50)}
else {MyExp=exp(x)}
}