-
Notifications
You must be signed in to change notification settings - Fork 3
/
h.mod
94 lines (64 loc) · 1.25 KB
/
h.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
TITLE I-h channel from Magee 1998 for distal dendrites
UNITS {
(mA) = (milliamp)
(mV) = (millivolt)
}
PARAMETER {
v (mV)
ehd (mV)
celsius (degC)
ghdbar=.0001 (mho/cm2)
vhalfl=-81 (mV)
kl=-8
vhalft=-75 (mV)
a0t=0.011 (/ms)
zetat=2.2 (1)
gmt=.4 (1)
q10=4.5
qtl=1
}
NEURON {
SUFFIX hd
NONSPECIFIC_CURRENT i
RANGE ghd, i, ghdbar :, vhalfl
RANGE linf,taul
}
STATE {
l
}
ASSIGNED {
i (mA/cm2)
linf
taul
ghd
}
INITIAL {
rate(v)
l=linf
}
BREAKPOINT {
SOLVE states METHOD cnexp
ghd = ghdbar*l
i = ghd*(v-ehd)
}
FUNCTION alpt(v(mV)) {
alpt = exp(0.0378*zetat*(v-vhalft))
}
FUNCTION bett(v(mV)) {
bett = exp(0.0378*zetat*gmt*(v-vhalft))
}
DERIVATIVE states { : exact when v held constant; integrates over dt step
rate(v)
l' = (linf - l)/taul
}
PROCEDURE rate(v (mV)) { :callable from hoc
LOCAL a,qt
qt=q10^((celsius-33)/10)
a = alpt(v)
if (v > -62.5 ) {
linf = 0
} else{
linf = 1/(1 + exp(-(v-vhalfl)/kl))
}
taul = bett(v)/(qtl*qt*a0t*(1+a))
}