-
Notifications
You must be signed in to change notification settings - Fork 0
/
naps.mod
105 lines (78 loc) · 1.7 KB
/
naps.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
TITLE naps
COMMENT
Comments from Original Implementation:
modified to have slow inactivation described in Fleidervish and to make slope a global parameter
Model Reference:
Powers, R.K. and Heckman, C.J., 2017.
"Synaptic control of the shape of the motoneuron
pool input-output function."
Journal of neurophysiology, 117(3), pp.1171-1184.
Original Code Link:
https://senselab.med.yale.edu/ModelDB/showmodel?model=239582
ENDCOMMENT
NEURON {
SUFFIX naps
USEION na READ ena WRITE ina
RANGE gbar, thegna, sh, ar,minf,sinf,taus,vslope,asvh,bsvh
GLOBAL mtau
}
PARAMETER {
gbar = .0052085 (mho/cm2)
sh = 0 (mV)
vslope=6.8 (mV) :activation slope
mtau = 1 (ms)
ena (mV) :must be explicitly defined in hoc
a0s=0.001 (/ms)
b0s=0.0034 (/ms)
asvh=-85 (mV)
bsvh=-17 (mV)
avs=30 (mV)
bvs=10 (mV)
ar=1 (1) : 1=no inact., 0=max inact.
celsius (degC)
v (mV)
}
UNITS {
(mA) = (milliamp)
(mV) = (millivolt)
(pS) = (picosiemens)
(um) = (micron)
}
ASSIGNED {
ina (mA/cm2)
thegna (mho/cm2)
minf
sinf
taus (ms)
}
STATE { m s }
UNITSOFF
BREAKPOINT {
SOLVE states METHOD cnexp
thegna =gbar*m*s
ina = thegna * (v - ena)
}
INITIAL {
trates(v,ar,sh)
m=minf
s=sinf
}
DERIVATIVE states {
trates(v,ar,sh)
s' = (sinf - s)/taus
m' = (minf-m)/mtau
}
PROCEDURE trates(vm,a2,sh2) {
LOCAL c
minf = (1/(1+exp(-(vm+52.3-sh2)/vslope)))
taus = 1/(alps(vm)+bets(vm))
c=alps(vm)*taus
sinf = c+a2*(1-c)
}
FUNCTION alps(v(mV)) {
alps = a0s*exp((asvh-v)/avs)
}
FUNCTION bets(v(mV)) {
bets = b0s/(exp((bsvh-v)/bvs)+1)
}
UNITSON