-
Notifications
You must be signed in to change notification settings - Fork 2
/
RMD.ode
469 lines (278 loc) · 14 KB
/
RMD.ode
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
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
#Nicoletti M, Loppini A, Chiodo L, Folli V, Ruocco G, et al. (2019)
#Biophysical modeling of C. elegans neurons: Single ion currents and whole-cell dynamics of AWCon and RMD.
#PLOS ONE 14(7): e0218738. https://doi.org/10.1371/journal.pone.0218738. PMID: 31260485
#=========================== RMD simulation =====================================================================
# potassium,calcium, leakge ad sodium reversal potentials
par ek=-80,eca=60,eleak=-80,ena=30
#===============================================================================================================
# VOLTAGE-GATED POTASSIUM CHANNELS
# ==============================================================================================================
#==================== SHL-1 CHANNELS ===========================================================================
#conductance in nS
par gshal=2.48
par shalsfhit=18
# activation
par vashal=11.2,kashal=14.1,kishal=8.3,vishal=-33.1
par ptmshal1=13.8,ptmshal2=-17.5165,ptmshal3=12.9213,ptmshal4=-3.7082,ptmshal5=6.4876,ptmshal6=1.8849
par cashal=0.1
minf_shal=1/(1+exp(-(v-vashal+shalsfhit)/(kashal)))
tm_shal=(ptmshal1/(exp(-(v-ptmshal2)/ptmshal3)+exp((v-ptmshal4)/ptmshal5))+ptmshal6)*cashal
#inactivation
par pthfshal1=539.1584, pthfshal2=-28.1990, pthfshal3=4.9199, pthfshal4=27.2811
par pthsshal1=8422 pthsshal2=-37.7391 pthsshal3=6.3785 pthsshal4=118.8983,cshal=0.1
hinf_shal=1/(1+exp((v-vishal+shalsfhit)/(kishal)))
ths_shal=(pthsshal1/(1+exp((v-pthsshal2)/pthsshal3))+pthsshal4)*cshal
thf_shal=(pthfshal1/(1+exp((v-pthfshal2)/pthfshal3))+pthfshal4)*cshal
m_shal'=(minf_shal-m_shal)/tm_shal
hf_shal'=(hinf_shal-hf_shal)/thf_shal
hs_shal'=(hinf_shal-hs_shal)/ths_shal
init m_shal=0,hf_shal=1,hs_shal=1
Ishal=gshal*(m_shal^3)*(0.7*hf_shal+0.3*hs_shal)*(v-ek)
#=================== SHK1 CHANNELS ==============================================================================
#conductance
par gshak=1.1
#activation
par vashak=20.4,kashak=7.7
par ptmshak1=26.571450568169027 ,ptmshak2=-33.741611800716130,ptmshak3=15.757936311607475
par ptmshak4=15.364937728953288,ptmshak5=1.990037272604829 ,shiftV05=0
minf_shak=1/(1+exp(-(v-vashak+shiftV05)/kashak))
tm_shak=ptmshak1/(exp(-(v-(ptmshak2+shiftV05))/ptmshak4)+exp((v-(ptmshak2+shiftV05))/ptmshak3))+ptmshak5
#inactivation
par kishak=5.8,vishak=-6.95
par pthshak=1400
hinf_shak=1/(1+exp((v-vishak+shiftV05)/kishak))
th_shak=pthshak
m_shak'=(minf_shak-m_shak)/tm_shak
h_shak'=(hinf_shak-h_shak)/th_shak
init m_shak=0,h_shak=1
I_shak=gshak*m_shak*h_shak*(v-ek)
#================ EGL-36 CHANNELS ==============================================================================
#conductance
par gegl36=1.3
#activation
par va_egl36=63,ka_egl36=28.5,t1_egl36=355,t2_egl36=63,t3_egl36=13
par a1=0.31,a2=0.36,a3=0.39
min1_egl36=1/(1+exp(-(v-va_egl36)/(ka_egl36)))
min2_egl36=1/(1+exp(-(v-va_egl36)/(ka_egl36)))
min3_egl36=1/(1+exp(-(v-va_egl36)/(ka_egl36)))
tm1_egl36=t1_egl36
tm2_egl36=t2_egl36
tm3_egl36=t3_egl36
m1_egl36'=(min1_egl36-m1_egl36)/tm1_egl36
m2_egl36'=(min2_egl36-m2_egl36)/tm2_egl36
m3_egl36'=(min3_egl36-m3_egl36)/tm3_egl36
init m1_egl36=0,m2_egl36=0,m3_egl36=0
I_egl36=gegl36*((a1*m1_egl36)+(a2*m2_egl36)+(a3*m3_egl36))*(v-ek)
#======================= IRK CHANNELS =================================================================================
par gkir=0.2
par va_kir=-52, ka_kir=13
par p1tmkir=17.0752,p2tmkir=-17.8258, p3tmkir=20.3154, p4tmkir=-43.4414, p5tmkir=11.1691, p6tmkir=3.8329
minf_kir=1/(1+exp((v-va_kir+30)/ka_kir))
tm_kir=p1tmkir/(exp(-(v-p2tmkir)/p3tmkir)+exp((v-p4tmkir)/p5tmkir))+p6tmkir
m_kir'=(minf_kir-m_kir)/tm_kir
I_kir=gkir*m_kir*(v-ek)
aux I_kir=I_kir
#=========================================================================================================================
# CALCIUM CHANNELS
#=========================================================================================================================
#=================== UNC-2 CHANNELS =======================================================================================
#conductance
par gunc2=0.9
#activation
par va_unc2=-12.17,ka_unc2=3.97,stm2=25
par p1tmunc2=1.4969,p2tmunc2=-8.1761,p3tmunc2=9.0753,p4tmunc2=15.3456,p5tmunc2=0.1029
par shiftmunc2=30,constmunc2=3
minf_unc2=1/(1+exp(-(v-va_unc2+stm2)/(ka_unc2)))
tm_unc2=(p1tmunc2/(exp(-(v-p2tmunc2+shiftmunc2)/(p3tmunc2))+exp((v-p2tmunc2+shiftmunc2)/(p4tmunc2)))+p5tmunc2)*constmunc2
#inactivation
par vi_unc2=-52.47,ki_unc2=5.6,sth2=25
par p1thunc2=83.8037, p2thunc2=52.8997,p3thunc2=3.4557,p4thunc2=72.0995,p5thunc2=23.9009,p6thunc2=3.5903
par consthunc2=1.7, shifthunc2=30
hinf_unc2=1/(1+exp((v-vi_unc2+sth2)/(ki_unc2)))
th_unc2=(p1thunc2/(1+exp((v-p2thunc2+shifthunc2)/(p3thunc2)))+p4thunc2/(1+exp(-(v-p5thunc2+shifthunc2)/(p6thunc2))))*consthunc2
# equations
m_unc2'=(minf_unc2-m_unc2)/tm_unc2
h_unc2'=(hinf_unc2-h_unc2)/th_unc2
init m_unc2=0,h_unc2=1
I_unc2=gunc2*m_unc2*h_unc2*(v-eca)
#alpha and beta for slo1 ans slo2 channels
alpha=minf_unc2/tm_unc2
beta=(1/tm_unc2)-alpha
#================== EGL-19 CHANNELS ===========================================================================================
#conductance
par gegl19=0.99
#activation
par va_egl19=5.6, ka_egl19=7.50,stm19=10,sth19=10
par pdg1=2.3359,pdg2=2.9324,pdg3=5.2357,pdg4=6.0,pdg5=1.8739,pdg6=1.3930,pdg7=30.0,stau19=10
minf_egl19=1/(1+exp(-(v-va_egl19+stm19)/ka_egl19))
tm_egl19=(pdg1+(pdg2*exp(-(v-pdg3+stau19)^2/(pdg4)^2))+(pdg5*exp(-(v-pdg6+stau19)^2/(pdg7)^2)))
#inactivation
par p1hegl19=1.4314,p2hegl19=24.8573,p3hegl19=11.9541,p4hegl19=0.1427,p5hegl19=5.9589,p6hegl19=-10.5428,p7hegl19=8.0552,p8hegl19=0.6038
par pds1=0.4,pds2=0.55,pds3=81.1179,pds4=-22.9723,pds5=5,pds6=43.0937,pds7=0.9,pds8=40.4885,pds9=28.7251,pds10=3.7125,pds11=0,shiftdps=10
hinf_egl19=((p1hegl19/(1+exp(-(v-p2hegl19+sth19)/p3hegl19))+p4hegl19)*(p5hegl19/(1+exp((v-p6hegl19+sth19)/p7hegl19))+p8hegl19))
ths_egl19=pds1*(((pds2*pds3)/(1+exp((v-pds4+shiftdps)/pds5)))+pds6+((pds7*pds8)/(1+exp((v-pds9+shiftdps)/pds10)))+pds11)
# equations
m_egl19'=(minf_egl19-m_egl19)/tm_egl19
hs_egl19'=(hinf_egl19-hs_egl19)/ths_egl19
init m_egl19=0,hs_egl19=1
I_egl19=gegl19*m_egl19*hs_egl19*(v-eca)
# alpha and beta for slo1 and slo2 channels
alpha1=minf_egl19/tm_egl19
beta1=(1/tm_egl19)-alpha1
#=============== CCA-1 channels ==================================================================================================
#conductance
par gcca1=3.1
par va_cca1=-42.65,ka_cca1=1.7,sscca1=15
par stmcca1=30,sthcca1=15,sshcca1=15,constmcca1=0.5
par fcca=1.4,f2cca1=1.15,f3ca=1.7,f4ca=1.1
par p1tmcca1=40,p2tmcca1=-62.5393,p3tmcca1=-12.4758,p4tmcca1=0.6947
minf_cca1=1/(1+exp(-(v-va_cca1+sscca1)/(ka_cca1*fcca)))
tm_cca1=((p1tmcca1/(1+exp(-(v-p2tmcca1+stmcca1)/(p3tmcca1*f3ca))))+p4tmcca1)*constmcca1
par vi_cca1=-58,ki_cca1=7,consthcca1=0.08
par p1thcca1=280,p2thcca1=-60.7312,p3thcca1=8.5224,p4thcca1=19.7456
hinf_cca1=1/(1+exp((v-vi_cca1+sshcca1)/(ki_cca1*f2cca1)))
th_cca1=((p1thcca1/(1+exp((v-p2thcca1+sthcca1)/(p3thcca1*f4ca))))+p4thcca1)*consthcca1
# equations
m_cca1'=(minf_cca1-m_cca1)/tm_cca1
h_cca1'=(hinf_cca1-h_cca1)/th_cca1
init m_cca1=0,h_cca1=1
I_cca1=gcca1*m_cca1^2*h_cca1*(v-eca)
#======================================================================================================================================
# CALCIUM-REGULATED POTASSIUM CHANNELS
#======================================================================================================================================
#================== Ca nanodomain calculation (Only for SLO1 and SLO2)=================================================================
# r: nanodomain radius
# d: diffusion coefficient
# F: Faraday constant C/mol
# kb:
# b:
# gsc: conductance of calcium channels
par r=13e-9,d=250e-12,F=96485,kb=500e6,b=30e-6,backgr=0.05,gsc=40e-12
cao_nano=(((abs(gsc*(v-eca)*1e-3)/(8*pi*r*d*F))*exp(-r/sqrt(d/(kb*b))))*1e6*1e-3 )+backgr
cac_nano=backgr
#================= SLO1 CHANNELS ====================================================================================================
# no clustering 1:1 stoichiometry with EGL-19 and UNC-2 channels
# activation
# (parameters from genetic algorithm)
par wom=3.152961,wyx=0.012643,kyx=34.338784,nyx=0.000100
par wop=0.156217,wxy=-0.027527,kxy=55.726816,nxy=1.299198
kcm=wom*exp(-wyx*v)*(1/(1+((cac_nano)/kyx)^nyx))
kom=wom*exp(-wyx*v)*(1/(1+((cao_nano)/kyx)^nyx))
kop=wop*exp(-wxy*v)*(1/(1+(kxy/(cao_nano))^nxy))
kcp=0
# SLO1-UNC2 COMPLEX
#conductance
par gbk=0.3
minf_bk=(m_unc2*kop*(alpha+beta+kcm))/((kop+kom)*(kcm+alpha)+(beta*kcm))
tm_bkunc2=((alpha+beta+kcm)/((kop+kom)*(kcm+alpha)+(beta*kcm)))
mbk'=(minf_bk-mbk)/tm_bkunc2
init mbk=0
I_bk=gbk*mbk*h_unc2*(v-ek)
# SLO1-EGL19 COMPLEX
#conductance
par gslo1=0.3
#activation
# same activation parameters of SLO1-UNC2 complex
kcm2=wom*exp(-wyx*v)*(1/(1+((cac_nano)/kyx)^nyx))
kom2=wom*exp(-wyx*v)*(1/(1+((cao_nano)/kyx)^nyx))
kop2=wop*exp(-wxy*v)*(1/(1+(kxy/(cao_nano))^nxy))
kcp2=0
minf_slo1=(m_egl19*kop*(alpha1+beta1+kcm2))/((kop2+kom2)*(kcm2+alpha1)+(beta1*kcm2))
tm_slo1=((alpha1+beta1+kcm2)/((kop2+kom2)*(kcm2+alpha1)+(beta1*kcm2)))
mslo1'=(minf_slo1-mslo1)/tm_slo1
init mslo1=0
I_slo1=gslo1*mslo1*hs_egl19*(v-ek)
#================ SLO-2 CHANNELS =============================================================================================
# no clustering, 1:1 stoichiometry with EGL-19 and UNC-2
# activation
# parameters from genetic algorithm
par wom1=0.896395,wyx1=0.019405,kyx1=3294.553404,nyx1=0.000010
par wop1=0.026719,wxy1=-0.024123,kxy1=93.449423,nxy1=1.835067
kcm1=wom1*exp(-wyx1*v)*(1/(1+(cac_nano/kyx1)^nyx1))
kom1=wom1*exp(-wyx1*v)*(1/(1+((cao_nano)/kyx1)^nyx1))
kop1=wop1*exp(-wxy1*v)*(1/(1+(kxy1/(cao_nano))^nxy1))
kcp1=0
# SLO2- EGL19 COMPLEX
#conductance
par gbk2=0.3
minf_bk2=(m_egl19*kop1*(alpha1+beta1+kcm1))/((kop1+kom1)*(kcm1+alpha1)+(beta1*kcm1))
tm_bkegl19=((alpha1+beta1+kcm1)/((kop1+kom1)*(kcm1+alpha1)+(beta1*kcm1)))
mbk2'=(minf_bk2-mbk2)/tm_bkegl19
init mbk2=0
I_bk2=gbk2*mbk2*hs_egl19*(v-ek)
# SLO2-UNC2 COMPLEX
#conductance
par gslo2=0.3
kcm3=wom1*exp(-wyx1*v)*(1/(1+(cac_nano/kyx1)^nyx1))
kom3=wom1*exp(-wyx1*v)*(1/(1+((cao_nano)/kyx1)^nyx1))
kop3=wop1*exp(-wxy1*v)*(1/(1+(kxy1/(cao_nano))^nxy1))
kcp3=0
minf_slo2=(m_unc2*kop3*(alpha+beta+kcm3))/((kop3+kom3)*(kcm3+alpha)+(beta*kcm3))
tm_slo2=((alpha+beta+kcm3)/((kop3+kom3)*(kcm3+alpha)+(beta*kcm3)))
mslo2'=(minf_slo2-mslo2)/tm_slo2
I_slo2=gslo2*mslo2*h_unc2*(v-ek)
#================================= Intracellular calcium calculation =========================================================
# fd: Faraday constant in C/mmol
par fd=96.485,fca=0.001,t_ca=50,rcell=1
I_ca=I_unc2+I_egl19+I_cca1
aux I_ca=I_ca
# RMD total volume in um^3 (from Neuromorpho)
par vol=5.65
alpha_ca=1/(2*vol*fd)
J_ca1=fca*alpha_ca*I_ca
aux J_ca1=J_ca1
backgr2=0.05e-3
rs=if(I_ca<0)then(-fca*(alpha_ca*I_ca)-((ca_intra1-backgr2)/t_ca))else((backgr2-ca_intra1)/t_ca)
ca_intra1'=rs
init ca_intra1=5e-05
#============================= KCNL CHANNELS ==================================================================================
# Rinzel
#conductance
par gca=0.06
#activation
par k_sk2=0.00033
minf_sk=ca_intra1/(k_sk2+ca_intra1)
t_sk=6.3
#equations
m_sk'=(minf_sk-m_sk)/t_sk
init m_sk=0.13563
I_sk=gca*m_sk*(v-ek)
#==================================================================================================================================
# LEAKAGE CHANNELS
#===================================================================================================================================
#================= LEAKAGE CURRENT =================================================================================================
par gleak=0.4
I_leak=gleak*(v-eleak)
#================== Nca current ====================================================================================================
par gnca=0.05
I_nca=gnca*(v-ena)
#===================================================================================================================================
# SIMULATIONS
#====================================================================================================================================
# Total current
I_tot=Ishal+I_bk+I_bk2+I_shak+I_cca1+I_egl19+I_unc2+I_sk+I_leak+I_egl36+I_nca+I_slo1+I_slo2+I_kir
aux Itot=I_tot
#===================== CURRENT CLAMP ================================================================================================
# IH: holding current
# c: membrane capacitance pF
par ih=0
par c=1.2
v'=(Istim-I_tot)/c
init v=-70
#current clamp protocol
Istim=if(t>ton)then(if(t<toff)then(iclamp)else(if(t>t2)then(if(t<t3)then(iclamp2)else(ih))else(ih)))else(ih)
par iclamp=10,ton=310,toff=360,t2=410,iclamp2=-15,t3=430
aux prot=if(t>ton)then(if(t<toff)then(iclamp)else(if(t>t2)then(if(t<t3)then(iclamp2)else(ih))else(ih)))else(ih)
### XPP SETTINGS
@ meth=stiff,trans=200,total=400,dt=0.01,maxstor=1000000,bound=100000000000000,atol=1e-8,tol=1e-8
@ xp=t,yp=v,xlo=200,xhi=1000,yhi=30,ylo=-100
done
#===================== VOLTAGE CLAMP =================================================================================================
# voltage clamp protocol
#par vk=-70
#v=if(t>ton)then(if(t<toff)then(vclamp)else(vk))else(vk)
#par vclamp=1100,ton=1100,toff=2300
### XPP SETTINGS
#@ meth=stiff,trans=1000,total=2400,dt=0.01,maxstor=1000000,bound=100000000000000,atol=1e-8,tol=1e-8
#@ xp=t,yp=Itot,xlo=1000,xhi=2400,yhi=800,ylo=-100
#done