-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathh.mod
72 lines (60 loc) · 1.51 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
TITLE H-current
: Corrected and cleaned up by Val G. Rousseau on 07/17/20.
NEURON {
SUFFIX h
NONSPECIFIC_CURRENT i
RANGE gbar,vhalf,K,taun,ninf,g,i
}
UNITS {
(um)=(micrometer)
(mA)=(milliamp)
(uA)=(microamp)
(mV)=(millivolt)
(pmho)=(picomho)
(mmho)=(millimho)
}
PARAMETER {
dt (ms)
v (mV)
ena=50 (mV)
eh=-10 (mV)
K=8.5 (mV)
gbar=0 (mho/cm2) : initialize conductance to zero
vhalf=-81 (mV) : half potential
}
STATE { : the unknown parameters to be solved in the DEs
n
}
ASSIGNED { : parameters needed to solve DE
i (mA/cm2)
ninf
taun (ms)
g
}
INITIAL { : initialize the following parameter using states()
states()
n=ninf
g=gbar*n
i=g*(v-eh)
}
BREAKPOINT {
SOLVE h METHOD derivimplicit
g=gbar*n
i=g*(v-eh)
}
DERIVATIVE h {
states()
n'=(ninf-n)/taun
}
FUNCTION MyExp(x) {
if (x<-50) {MyExp=0}
else if (x>50) {MyExp=exp(50)}
else {MyExp=exp(x)}
}
PROCEDURE states() {
taun=2*(1/(MyExp((v+186.32)/-29.91)+MyExp((v+21.84)/13.77))) : Carol's equation
if (taun<5) {
taun=5
}
ninf=1-(1/(1+MyExp((vhalf-v)/K))) : steady state value
}