generated from min-seo-kim/CA1_Cutsuridis
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathnmda2.mod
89 lines (77 loc) · 1.55 KB
/
nmda2.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
: from Dave et al (2021), Hippocampal CA1 Area
TITLE nmda synapse
NEURON {
POINT_PROCESS NMDA2
NONSPECIFIC_CURRENT i
RANGE gmax, enmda, eca, onset, tauF, tauS, mg, pnmda, pca, alpha, beta, T, v, gnmda, i, B, ketamine
}
UNITS {
(nS) = (microsiemens)
(nA) = (nanoamp)
(mV) = (millivolt)
(mM) = (milli/liter)
}
PARAMETER {
gmax = 0.00065 (uS)
enmda = 0 (mV)
eca = 130 (mV)
onset = 10 (ms)
tauF = 9 (ms)
tauS = 90 (ms)
mg = 1 (mM)
ketamine = 0.3
alpha = 0.072 <0,1e4>
beta = 0.0066
T = 1
util = 0.3
}
ASSIGNED {
v (mV)
gnmda (uS)
i (nA)
B : fraction of NMDA receptors not affected by magnesium block
}
STATE {
r : fraction of open channels
}
BREAKPOINT {
SOLVE state METHOD derivimplicit
B = mgblock(v)
gnmda = gmax*((tauF*tauS)/(tauF-tauS))*duale((t-onset)/tauF,(t-onset)/tauS)
i = gnmda*B*r*(v-enmda)
}
DERIVATIVE state {
r' = alpha*T*(1-r)-beta*r
}
INITIAL {
r = 0
}
FUNCTION mgblock(v(mV)) {
mgblock = 1/(1+exp(-0.062(/mV)*v)*(mg/3.57(mM)))
}
FUNCTION duale(x,y) {
if (x<0 || y<0) {
duale = 0
}
else {
duale = exp(-x)-exp(-y)
}
}
NET_RECEIVE(wgt,R,u,tlast (ms),nspike) {
LOCAL x
:printf("entry flag=%g t=%g\n", flag, tlast)
COMMENT
if (nspike==0) {
R=1
u=util
}
else {
if (tauF>0) { u=util+(1-util)*u*exp(-(t-tlast)/tauF) }
if (tauD>0) { R=1+(R*(1-u)-1)*exp(-(t-tlast)/tauD) }
}
ENDCOMMENT
x = wgt
state_discontinuity(r,r+x)
tlast = t
nspike = nspike+1
}