-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathnmda.mod
170 lines (145 loc) · 3.78 KB
/
nmda.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
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
TITLE nmda
COMMENT
NMDA-achtige geleidbaarheid; bewerking van Traub's NMDA gate
in CA3 model van 1991
g(t) factor is hier [k+]o afhankelijk gemaakt
Onvolkomenheid is dat dit mechanisme direct naar de stromen ik en ina
schrijft. Realistischer is het om een mechanisme 'synapse' de passieve
geleidbaarheden gk_leak en gna_leak te veranderen.
1) Betere meting van de input resistance R_in.
2) 'Extracellular' werkt niet goed samen met pointprocesses. Nl. de netto
transmembraanstroom 'i_membrane' is niet meer nul.
Omdat een synapse per definitie een 'point process' is i.t.t. 'distributed
process', moet mech syn de waarde van gna_leak in mech leak veranderen.
mbv commando extern.?
bijgewerkt voor calciumgeleidbaarheid
ENDCOMMENT
UNITS {
(molar) = (1/liter)
(mV) = (millivolt)
(mA) = (milliamp)
(mM) = (millimolar)
:FARADAY = (faraday) (coulomb)
FARADAY = 96485.309 (coul)
R = (k-mole) (joule/degC)
PI = (pi) (1)
}
INDEPENDENT {t FROM 0 TO 1 WITH 100 (ms)}
NEURON {
SUFFIX nmda
USEION k READ ko, ki, ek WRITE ik
USEION na READ nai, nao, ena WRITE ina
USEION ca READ cai, cao, eca WRITE ica VALENCE 2
GLOBAL mg, act_99, act_01, ina_99, ina_01, gbar, tau_ina, tau_act, scaleca
RANGE ik, ina, itot, ica, qna, qk
}
PARAMETER {
celsius=36 (degC)
gbar=1e-3 (mho/cm2)
tau_ina=2000 (ms)
tau_act=2 (ms)
act_99=20 (mM)
act_01=10 (mM)
ina_99=3.5 (mM)
ina_01=10 (mM)
mg=1.2 (mM)
scaleca=1
}
ASSIGNED {
v (mV)
itot (mA/cm2)
ik (mA/cm2)
ina (mA/cm2)
ica (mA/cm2)
ki (mM)
ko (mM)
ek (mV)
nai (mM)
nao (mM)
ena (mV)
cai (mM)
cao (mM)
eca (mV)
diam (um2)
}
STATE { ma mb ha hb qna qk }
BREAKPOINT {
SOLVE synstate METHOD sparse
ina= gbar*ma*ha*(v-ena)/(1+(mg/3)*exp(-.07*(70+v-60))) : ghk(v,nai,nao,1)
ik = gbar*ma*ha*(v-ek) /(1+(mg/3)*exp(-.07*(70+v-60))) : ghk(v,ki ,ko ,1)
ica= gbar*scaleca*ma*ha*(v-eca)/(1+(mg/3)*exp(-.07*(70+v-60))) : ghk(v,cai,cao,2)
itot=ina+ik+ica
:ma = 1 - mb
:ha = 1 - hb
}
INITIAL {
:SOLVE synstate STEADYSTATE sparse
ma=m_inf(ko)
mb=1-ma
ha=h_inf(ko)
hb=1-ha
qna=0
qk=0
ina= gbar*ma*ha*(v-ena)/(1+(mg/3)*exp(-.07*(70+v-60))) : ghk(v,nai,nao)
ik = gbar*ma*ha*(v-ek)/(1+(mg/3)*exp(-.07*(70+v-60))) : ghk(v,ki,ko)
ica= gbar*scaleca*ma*ha*(v-eca)/(1+(mg/3)*exp(-.07*(70+v-60))) : ghk(v,cai,cao,2)
itot=ina+ik+ica
}
LOCAL a1,a2,b1,b2
KINETIC synstate {
a1 = m_a(ko)
a2 = m_b(ko)
b1 = h_a(ko)
b2 = h_b(ko)
~ mb <-> ma (a1, a2)
~ hb <-> ha (b1, b2)
:CONSERVE ma + mb = 1
:CONSERVE ha + hb = 1
COMPARTMENT diam*diam*PI/4 { qna qk }
~ qna << (-ina*PI*diam*(1e4)/FARADAY)
~ qk << ( -ik*PI*diam*(1e4)/FARADAY)
}
FUNCTION m_a(ko) {
TABLE DEPEND act_99, act_01, tau_act FROM 0 TO 150 WITH 150
m_a = m_inf(ko)/tau_act
}
FUNCTION m_b(ko) {
TABLE DEPEND act_99, act_01, tau_act FROM 0 TO 150 WITH 150
m_b = (1-m_inf(ko))/tau_act
}
FUNCTION m_inf(ko) {
LOCAL kh, h
TABLE DEPEND act_99, act_01, tau_act FROM 0 TO 150 WITH 150
kh=(act_99+act_01)/2
h=-(kh-act_99)/4.59
m_inf=1/(1+(exp((kh-ko)/h)))
}
FUNCTION h_a(ko) {
TABLE DEPEND ina_99, ina_01, tau_ina FROM 0 TO 150 WITH 150
h_a = h_inf(ko)/tau_ina
}
FUNCTION h_b(ko) {
TABLE DEPEND ina_99, ina_01, tau_ina FROM 0 TO 150 WITH 150
h_b = (1-h_inf(ko))/tau_ina
}
FUNCTION h_inf(ko) {
LOCAL kh, h
TABLE DEPEND ina_99, ina_01, tau_ina FROM 0 TO 150 WITH 150
kh=(ina_99+ina_01)/2
h=-(ina_99-kh)/4.59
h_inf=1/(1+(exp((ko-kh)/h)))
}
FUNCTION ghk(v(mV), ci(mM), co(mM)) (.001 coul/cm3) {
LOCAL z, eci, eco
z = (1e-3)*1*FARADAY*v/(R*(celsius+273.11247574))
eco = co*efun(z)
eci = ci*efun(-z)
ghk = (.001)*1*FARADAY*(eci - eco)
}
FUNCTION efun(z) {
if (fabs(z) < 1e-4) {
efun = 1 - z/2
}else{
efun = z/(exp(z) - 1)
}
}