source: project/release/4/nemo/trunk/examples/CGC/DeSouzaCGC.nemo @ 27532

Last change on this file since 27532 was 27532, checked in by Ivan Raikov, 8 years ago

nemo: added another variant of CGC example model

File size: 13.6 KB
Line 
1
2;; Reference: Theta-Frequency Bursting and Resonance in Cerebellar Granule Cells:Experimental
3;; Evidence and Modeling of a Slow K+-Dependent Mechanism
4;; Egidio D'Angelo,Thierry Nieus,Arianna Maffei,Simona Armano,Paola Rossi,Vanni Taglietti,
5;; Andrea Fontana and Giovanni Naldi
6
7(nemo-model CGC
8
9  (
10   (input v celsius)
11
12   (defun sigm (x y) (1 / (exp (x / y) + 1)))
13
14   (defun linoid (x y)
15         (if ((abs (x / y)) < 1e-6)
16             then (y * (1 - ((x / y) / 2)))
17             else (x / (exp (x / y) - 1))
18              ))
19
20   (component (type decaying-pool) (name ca)
21
22      (input
23       (cai from ion-pools)
24       (ica from ion-currents))
25
26      (const  F       = 96485.0)
27      (const  d       = .2)
28      (const  cao     = 2.)
29      (const  cai0    = 1e-4)
30      (const  beta    = 1.5)
31     
32      (d (ca) =  ((neg (ica) / (2 * F * d)) * 1e4 -
33                  (beta * (cai - cai0)))
34         (initial cai0))
35     
36      (output ca)
37      )
38
39   
40   (component (type ionic-current) (name CaHVA )
41             
42              (component (type gate)
43
44                         ;; rate constants
45
46                         (Q10 = (pow (3 ((celsius - 20) / 10))))
47
48                         (const Aalpha_s  = 0.04944)
49                         (const Kalpha_s  =  15.87301587302)
50                         (const V0alpha_s = -29.06)
51       
52                         (const Abeta_s  = 0.08298)
53                         (const Kbeta_s  =  -25.641)
54                         (const V0beta_s = -18.66)
55
56                         (const Aalpha_u  = 0.0013)
57                         (const Kalpha_u  =  -18.183)
58                         (const V0alpha_u = -48)
59                         
60                         (const Abeta_u = 0.0013)
61                         (const Kbeta_u = 83.33)
62                         (const V0beta_u = -48)
63                         
64                         ;; rate functions
65
66                         (defun alpha_s (v Q10)
67                           (Q10 * Aalpha_s * exp((v - V0alpha_s) / Kalpha_s)))
68
69                         (defun beta_s (v Q10)
70                           (Q10 * Abeta_s * exp((v - V0beta_s) / Kbeta_s)))
71
72                         (defun alpha_u (v Q10)
73                           (Q10 * Aalpha_u * exp((v - V0alpha_u) / Kalpha_u)))
74
75                         (defun beta_u (v Q10)
76                           (Q10 * Abeta_u * exp((v - V0beta_u) / Kbeta_u)))
77
78
79                         (hh-ionic-gate
80                          (CaHVA  ;; ion name: exported variables will be of the form {ion}_{id}
81                           (initial-m  ((alpha_s (v Q10))/(alpha_s (v Q10) + beta_s (v Q10)) ))
82                           (initial-h  ((alpha_u (v Q10))/(alpha_u (v Q10) + beta_u (v Q10)) ))
83                           (m-power    2)
84                           (h-power    1)
85                           (m-alpha    (alpha_s (v Q10)))
86                           (m-beta     (beta_s (v Q10)))
87                           (h-alpha    (alpha_u (v Q10)))
88                           (h-beta     (beta_u (v Q10)))
89                           ))
90
91                         
92                         )
93             
94              (component (type pore)
95                         (const  gbar  = 0.00046)
96                         (output gbar ))
97             
98              (component (type permeating-ion) (name ca)
99                         (const e = 129.33)
100                         (output e ))
101             
102              ) ;; end CaHVA current
103
104   (component (type voltage-clamp) (name CaHVA)
105             
106              (const vchold   = -71)
107              (const vcbase   = -69)
108              (const vcinc    = 10)
109              (const vcsteps  = 8)
110              (const vchdur   = 30)
111              (const vcbdur   = 100)
112             
113              (output vchold vcbase vcinc vcsteps vchdur vcbdur)
114              )
115
116
117
118   (component (type ionic-current) (name KA )
119             
120              (component (type gate)
121
122                         ;; rate constants
123
124                         (Q10 = (pow (3 ((celsius - 25.5) / 10))))
125
126                         (const Aalpha_a  = 0.8147)
127                         (const Kalpha_a  = -23.32708)
128                         (const V0alpha_a = -9.17203)
129                         (const Abeta_a   = 0.1655)
130                         (const Kbeta_a   = 19.47175)
131                         (const V0beta_a  = -18.27914)
132
133                         (const Aalpha_b  = 0.0368)
134                         (const Kalpha_b  = 12.8433)
135                         (const V0alpha_b = -111.33209)
136                         (const Abeta_b   = 0.0345)
137                         (const Kbeta_b   = -8.90123)
138                         (const V0beta_b  = -49.9537)
139
140                         (const V0_ainf = -38)
141                         (const  K_ainf = -17)
142
143                         (const V0_binf   = -78.8)
144                         (const K_binf    = 8.4)
145
146                         
147                         ;; rate functions
148
149                         (defun alpha_a (v)
150                           (Q10 * Aalpha_a * sigm((v - V0alpha_a) Kalpha_a)))
151
152                         (defun beta_a (v)
153                           (Q10 * (Abeta_a / exp((v - V0beta_a) / Kbeta_a))))
154
155                         (defun alpha_b (v)
156                           (Q10 * Aalpha_b * sigm((v - V0alpha_b) Kalpha_b)))
157
158                         (defun beta_b (v)
159                           (Q10 * Abeta_b * sigm((v - V0beta_b) Kbeta_b)))
160
161
162
163                         (a_inf = (1 / (1 + exp ((v - V0_ainf) / K_ainf))))
164                         (tau_a = (1 / (alpha_a (v) + beta_a (v)) ))
165                         (b_inf = (1 / (1 + exp ((v - V0_binf) / K_binf))))
166                         (tau_b = (1 / (alpha_b (v) + beta_b (v)) ))
167
168                         (hh-ionic-gate
169                          (KA  ;; ion name: exported variables will be of the form {ion}_{id}
170                           (initial-m  (1 / (1 + exp ((v - V0_ainf) / K_ainf))) )
171                           (initial-h  (1 / (1 + exp ((v - V0_binf) / K_binf))) )
172                           (m-power    3)
173                           (h-power    1)
174                           (m-inf      a_inf)
175                           (m-tau      tau_a)
176                           (h-inf      b_inf)
177                           (h-tau      tau_b)
178                           ))
179
180                         )
181
182                     
183              (component (type pore)
184                         (const  gbar  = 0.0032)
185                         (output gbar ))
186
187             
188              (component (type permeating-ion) (name k)
189                         (const e = -84.69)
190                         (output e ))
191             
192              ) ;; end KA current
193             
194
195              (component (type voltage-clamp) (name KA)
196           
197                         (const vchold   = -71)
198                         (const vcbase   = -69)
199                         (const vcinc    = 10)
200                         (const vcsteps  = 8)
201                         (const vchdur   = 30)
202                         (const vcbdur   = 100)
203           
204                         (output vchold vcbase vcinc vcsteps vchdur vcbdur)
205                         )
206   
207
208   (component (type ionic-current) (name KCa )
209
210
211      (input
212       (cai from ion-pools))
213
214             
215      (component (type gate)
216                 
217                 ;; rate constants
218                 (Q10 = (pow (3 ((celsius - 30) / 10))))
219                 
220                 (const Aalpha_c = 2.5)
221                 (const Balpha_c = 1.5e-3)
222                 
223                 (const Kalpha_c =  -11.765)
224                 
225                 (const Abeta_c = 1.5)
226                 (const Bbeta_c = 0.15e-3)
227
228                 (const Kbeta_c = -11.765)
229                 
230                 ;; rate functions
231                 (defun alpha_c (v cai Q10)
232                   (Q10 * Aalpha_c / (1 + (Balpha_c * exp(v / Kalpha_c) / cai))))
233                 
234                 (defun beta_c (v cai Q10)
235                   (Q10 * Abeta_c / (1 + (cai / (Bbeta_c * exp (v / Kbeta_c))) )))
236
237
238                 (hh-ionic-gate
239                  (KCa  ;; ion name: exported variables will be of the form {ion}_{id}
240                   (initial-m  ((alpha_c (v cai Q10)) / (alpha_c (v cai Q10) + beta_c (v cai Q10)) ))
241                   (m-power    1)
242                   (h-power    0)
243                   (m-alpha    (alpha_c (v cai Q10)))
244                   (m-beta     (beta_c (v cai Q10)))
245                   ))
246                 
247                 )
248     
249      (component (type pore)
250                 (const  gbar  = 0.003)
251                 (output gbar ))
252     
253     
254      (component (type permeating-ion) (name k)
255                 (const e = -84.69)
256                 (output e ))
257     
258      (component (type modulating-ion) (name ca)
259                 )
260             
261      ) ;; end KCa current
262
263   (component (type voltage-clamp) (name KCa)
264             
265              (const vchold   = -71)
266              (const vcbase   = -69)
267              (const vcinc    = 10)
268              (const vcsteps  = 8)
269              (const vchdur   = 30)
270              (const vcbdur   = 100)
271             
272              (output vchold vcbase vcinc vcsteps vchdur vcbdur)
273              )
274
275
276
277   (component (type ionic-current) (name Kir )
278             
279              (component (type gate)
280
281                         ;; rate constants
282                         (Q10 = (pow (3 ((celsius - 30) / 10))))
283
284                         (const Aalpha_d = 0.13289)
285                         (const Kalpha_d = -24.3902)
286
287                         (const V0alpha_d = -83.94)
288                         (const Abeta_d   = 0.16994)
289
290                         (const Kbeta_d = 35.714)
291                         (const V0beta_d = -83.94)
292   
293                         ;; rate functions
294                         (defun alpha_d (v Q10)
295                           (Q10 * Aalpha_d * exp((v - V0alpha_d) / Kalpha_d)))
296                         
297                         (defun beta_d (v Q10)
298                           (Q10 * Abeta_d * exp((v - V0beta_d) / Kbeta_d) ))
299
300                         (hh-ionic-gate
301                          (Kir  ;; ion name: exported variables will be of the form {ion}_{id}
302                           (initial-m  ((alpha_d (v Q10)) / (alpha_d (v Q10) + beta_d (v Q10)) ))
303                           (m-power    1)
304                           (h-power    0)
305                           (m-alpha    (alpha_d (v Q10)))
306                           (m-beta     (beta_d (v Q10)))
307                           ))
308                         
309                         )
310
311
312              (component (type pore)
313                         (const  gbar  = 0.0009)
314                         (output gbar ))
315
316             
317              (component (type permeating-ion) (name k)
318                         (const e = -84.69)
319                         (output e ))
320             
321              ) ;; end Kir current
322
323                     
324
325   (component (type voltage-clamp) (name Kir)
326             
327              (const vchold   = -71)
328              (const vcbase   = -69)
329              (const vcinc    = 10)
330              (const vcsteps  = 8)
331              (const vchdur   = 30)
332              (const vcbdur   = 100)
333             
334              (output vchold vcbase vcinc vcsteps vchdur vcbdur)
335              )
336
337
338   (component (type ionic-current) (name KM )
339             
340              (component (type gate)
341
342                         ;; rate constants
343                         (const Aalpha_n = 0.0033)
344
345                         (const Kalpha_n  = 40)
346                         (const V0alpha_n = -30)
347                         (const Abeta_n   = 0.0033)
348
349                         (const Kbeta_n  = -20)
350                         (const V0beta_n = -30)
351                         (const V0_ninf  = -30)
352                         (const   B_ninf = 6)
353                         
354                         (Q10 = (pow (3 ((celsius - 22) / 10))))
355                         
356                         ;; rate equations
357                         (defun alpha_n (v Q10)
358                           (Q10 * Aalpha_n * exp((v - V0alpha_n) / Kalpha_n) ))
359
360                         (defun beta_n (v Q10)
361                           (Q10 * Abeta_n * exp((v - V0beta_n) / Kbeta_n) ))
362
363                         (hh-ionic-gate
364                          (KM  ;; ion name: exported variables will be of the form {ion}_{id}
365                           (initial-m  (alpha_n (v Q10)) / (alpha_n (v Q10) + beta_n (v Q10)) )
366                           (m-power    1)
367                           (h-power    0)
368                           (m-tau      (1 / (alpha_n(v Q10) + beta_n (v Q10)) ))
369                           (m-inf      (1 / (1 + exp((neg (v - V0_ninf)) / B_ninf))))
370                           ))
371                         )
372             
373              (component (type pore)
374                         (const  gbar  = 0.00025)
375                         (output gbar ))
376             
377              (component (type permeating-ion) (name k)
378                         (const e = -84.69)
379                         (output e ))
380             
381              ) ;; end KM current
382
383
384   (component (type voltage-clamp) (name KM)
385             
386              (const vchold   = -71)
387              (const vcbase   = -69)
388              (const vcinc    = 10)
389              (const vcsteps  = 8)
390              (const vchdur   = 30)
391              (const vcbdur   = 100)
392             
393              (output vchold vcbase vcinc vcsteps vchdur vcbdur)
394              )
395
396   (component (type ionic-current) (name KV )
397             
398              (component (type gate)
399
400                         ;; rate constants
401                         (Q10 = (pow (3 ((celsius - 6.3) / 10))))
402
403                         (const Aalpha_n = -0.01)
404                         (const Kalpha_n = -10)
405                         (const V0alpha_n = -25)
406                         (const Abeta_n = 0.125)
407       
408                         (const Kbeta_n = -80)
409                         (const V0beta_n = -35)
410
411                         ;; rate functions
412                         (defun alpha_n (v Q10)
413                           (Q10 * Aalpha_n * linoid ((v - V0alpha_n) Kalpha_n)))
414
415                         (defun beta_n (v Q10)
416                           (Q10 * Abeta_n * exp((v - V0beta_n) / Kbeta_n) ))
417
418                         (hh-ionic-gate
419                          (KV  ;; ion name: exported variables will be of the form {ion}_{id}
420                           (initial-m  ((alpha_n (v Q10)) / (alpha_n (v Q10) + beta_n (v Q10)) ))
421                           (m-power    4)
422                           (h-power    0)
423                           (m-alpha    (alpha_n(v Q10)))
424                           (m-beta     (beta_n(v Q10)))
425                           ))
426                         )
427
428              (component (type pore)
429                         (const  gbar  = 0.003)
430                         (output gbar ))
431             
432              (component (type permeating-ion) (name k)
433                         (const e = -84.69)
434                         (output e ))
435             
436              ) ;; end KV current
437             
438
439   (component (type voltage-clamp) (name KV)
440             
441              (const vchold   = -71)
442              (const vcbase   = -69)
443              (const vcinc    = 10)
444              (const vcsteps  = 8)
445              (const vchdur   = 30)
446              (const vcbdur   = 100)
447             
448              (output vchold vcbase vcinc vcsteps vchdur vcbdur)
449              )
450             
451   
452   (component (type ionic-current) (name Lkg1)
453             
454              (component (type pore)
455                         (const  gbar  = (5.68e-5))
456                         (output gbar))
457             
458              (component (type permeating-ion) (name non-specific)
459                         (const e = -16.5)
460                         (output e ))
461             
462              ) ;; end leak current
463
464
465   (component (type ionic-current) (name Lkg2)
466             
467              (component (type pore)
468                         (const  ggaba  = (3e-5))
469                         (output ggaba))
470             
471              (component (type permeating-ion) (name non-specific)
472                         (const egaba = -65)
473                         (output egaba ))
474             
475              ) ;; end leak current
476
477
478   (component (type ionic-current) (name Na )
479             
480              (component (type gate)
481
482                         ;; rate constants
483                         (Q10 = (pow (3 ((celsius - 20) / 10))))
484
485                         (const Aalfa = 353.91)
486                         (const Valfa = 13.99)
487                         (const Abeta = 1.272)
488                         (const Vbeta = 13.99)
489                         (const Agamma = 150)
490                         (const Adelta = 40)
491                         (const Aepsilon = 1.75)
492                         (const Ateta = 0.0201)
493                         (const Vteta = 25)
494                         (const ACon = 0.005)
495                         (const ACoff = 0.5)
496                         (const AOon = 0.75)
497                         (const AOoff = 0.005)
498                         (const n1 = 5.422)
499                         (const n2 = 3.279)
500                         (const n3 = 1.83)
501                         (const n4 = 0.738)
502       
503                         (gamma = (Q10 * Agamma))
504                         (delta = (Q10 * Adelta))
505                         (epsilon = (Q10 * Aepsilon))
506                         (Con = (Q10 * ACon))
507                         (Coff = (Q10 * ACoff))
508                         (Oon = (Q10 * AOon))
509                         (Ooff = (Q10 * AOoff))
510                         (a = (pow ((Oon / Con) (1.0 / 4.0))))
511                         (b = (pow ((Ooff/Coff) (1.0 / 4.0))))
512
513                         ;; rate functions
514                         (defun alfa (v Q10)   
515                           (Q10 * Aalfa * exp (v / Valfa)))
516
517                         (defun beta (v Q10)
518                           (Q10 * Abeta * exp(((neg v) / Vbeta))))
519
520                         (defun teta (v Q10)
521                           (Q10 * Ateta * exp(((neg v) / Vteta))))
522                               
523
524                         (reaction
525                          (Na_z
526                           (transitions
527                            (<-> C1 C2 (n1 * alfa (v Q10)) (n4 * beta (v Q10)))
528                            (<-> C2 C3 (n2 * alfa (v Q10)) (n3 * beta (v Q10)))
529                            (<-> C3 C4 (n3 * alfa (v Q10)) (n2 * beta (v Q10)))
530                            (<-> C4 C5 (n4 * alfa (v Q10)) (n1 * beta (v Q10)))
531                            (<-> C5 O  gamma delta)
532                            (<-> O  B  epsilon (teta (v Q10)))
533
534                            (<-> I1 I2 (n1 * alfa (v Q10) * a) (n4 * beta (v Q10) * b))
535                            (<-> I2 I3 (n2 * alfa (v Q10) * a) (n3 * beta (v Q10) * b))
536                            (<-> I3 I4 (n3 * alfa (v Q10) * a) (n2 * beta (v Q10) * b))
537                            (<-> I4 I5 (n4 * alfa (v Q10) * a) (n1 * beta (v Q10) * b))
538                            (<-> I5 I6 gamma delta)
539
540                            (<-> C1 I1 Con Coff)
541                            (<-> C2 I2 (Con * a) (Coff * b))
542                            (<-> C3 I3 (Con * pow (a, 2)) (Coff * pow (b,2)))
543                            (<-> C4 I4 (Con * pow (a, 3)) (Coff * pow (b, 3)))
544                            (<-> C5 I5 (Con * pow (a, 4)) (Coff * pow (b, 4)))
545
546                            (O <-> I6 Oon Ooff)
547                           
548                           (conserve (1 = (C1 + C2 + C3 + C4 + C5 + O + B + I1 + I2 + I3 + I4 + I5 + I6)))
549                     
550                           (open O)   (power 1)))
551
552                         (output Na_z ) 
553
554                         )
555             
556              (component (type pore)
557                         (const  gbar  = 0.013)
558                         (output gbar ))
559
560             
561              (component (type permeating-ion) (name na)
562                         (const e = 87.39)
563                         (output e ))
564             
565              ) ;; end Na current
566
567
568   (component (type voltage-clamp) (name Na)
569
570              (const vchold   = -71)
571              (const vcbase   = -60)
572              (const vcinc    = 10)
573              (const vcsteps  = 9)
574              (const vchdur   = 30)
575              (const vcbdur   = 100)
576           
577              (output vchold vcbase vcinc vcsteps vchdur vcbdur))
578
579
580
581))
Note: See TracBrowser for help on using the repository browser.