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

Last change on this file since 26999 was 26999, checked in by Ivan Raikov, 9 years ago

nemo: completed CGC example

File size: 13.1 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
11    (cai from ion-pools)
12    (ica from ion-currents))
13
14   (const Vrest = -68)
15             
16   (const fix_celsius = 30)
17
18
19
20   (defun sigmoid (x y) (1 / (exp (x / y) + 1)))
21   
22
23   (defun linoid (x y)
24         (if ((abs (x / y)) < 1e-6)
25             then (y * (1 - ((x / y) / 2)))
26             else (x / (exp (x / y) - 1))
27              ))
28
29   (component (type decaying-pool) (name ca)
30              (const  F       = 96485.0)
31              (const  d       = .2)
32              (const  cao     = 2.)
33              (const  cai0    = 1e-4)
34              (const  beta    = 1.5)
35             
36              (d (ca) =  ((neg (ica) / (2 * F * d)) -
37                          (beta * (cai - cai0)))
38                         (initial cai0))
39             
40              (output ca)
41              )
42
43
44   (component (type ionic-current) (name CaHVA )
45             
46              (component (type gate)
47
48                         ;; rate constants
49
50                         (const Q10 = (pow (3 ((fix_celsius - 20) / 10))))
51
52                         (const Aalpha_s  = 0.04944)
53                         (const Kalpha_s  =  15.87301587302)
54                         (const V0alpha_s = -29.06)
55       
56                         (const Abeta_s  = 0.08298)
57                         (const Kbeta_s  =  -25.641)
58                         (const V0beta_s = -18.66)
59
60                         (const Aalpha_u  = 0.0013)
61                         (const Kalpha_u  =  -18.183)
62                         (const V0alpha_u = -48)
63                         
64                         (const Abeta_u = 0.0013)
65                         (const Kbeta_u = 83.33)
66                         (const V0beta_u = -48)
67                         
68                         ;; rate functions
69
70                         (defun alpha_s (v)
71                           (Q10 * Aalpha_s * exp((v - V0alpha_s) / Kalpha_s)))
72
73                         (defun beta_s (v)
74                           (Q10 * Abeta_s * exp((v - V0beta_s) / Kbeta_s)))
75
76                         (defun alpha_u (v)
77                           (Q10 * Aalpha_s * exp((v - V0alpha_s) / Kalpha_s)))
78
79                         (defun beta_u (v)
80                           (Q10 * Abeta_u * exp((v - V0beta_u) / Kbeta_u)))
81
82
83                         (hh-ionic-gate
84                          (CaHVA  ;; ion name: exported variables will be of the form {ion}_{id}
85                           (initial-m  ((alpha_s (v))/(alpha_s (v) + beta_s (v)) ))
86                           (initial-h  ((alpha_u (v))/(alpha_u (v) + beta_u (v)) ))
87                           (m-power    2)
88                           (h-power    1)
89                           (m-alpha    (alpha_s (v)))
90                           (m-beta     (beta_s (v)))
91                           (h-alpha    (alpha_u (v)))
92                           (h-beta     (beta_u (v)))
93                           ))
94
95                         
96                         )
97             
98                     
99              (component (type pore)
100                         (const  gbar  = 0.00046)
101                         (output gbar ))
102             
103              (component (type permeating-ion) (name ca)
104                         (const e = 129.33)
105                         (output e ))
106             
107              ) ;; end CaHVA current
108
109
110   (component (type ionic-current) (name KA )
111             
112              (component (type gate)
113
114                         ;; rate constants
115
116                         (const Q10 = (pow (3 ((fix_celsius - 20) / 10))))
117
118                         (const Aalpha_a  = 4.88826)
119                         (const Kalpha_a  = -23.32708)
120                         (const V0alpha_a = -9.17203)
121                         (const Abeta_a   = 0.99285)
122                         (const Kbeta_a   = 19.47175)
123                         (const V0beta_a  = -18.27914)
124
125                         (const Aalpha_b  = 0.11042)
126                         (const Kalpha_b  = 12.8433)
127                         (const V0alpha_b = -111.33209)
128                         (const Abeta_b   = 0.10353)
129                         (const Kbeta_b   = -8.90123)
130                         (const V0beta_b  = -49.9537)
131
132                         (const V0_ainf = -46.7)
133                         (const  K_ainf = -19.8)
134
135                         (const V0_binf   = -78.8)
136                         (const K_binf    = 8.4)
137
138                         
139                         ;; rate functions
140
141                         (defun alpha_a (v)
142                           (Q10 * Aalpha_a * sigmoid((v - V0alpha_a) Kalpha_a)))
143
144                         (defun beta_a (v)
145                           (Q10 * Abeta_a * exp((v - V0beta_a) / Kbeta_a)))
146
147                         (defun alpha_b (v)
148                           (Q10 * Aalpha_b * sigmoid((v - V0alpha_b) Kalpha_b)))
149
150                         (defun beta_b (v)
151                           (Q10 * Abeta_b * sigmoid((v - V0beta_b) Kbeta_b)))
152
153                         (a_inf = (1 / (1 + exp ((v - V0_ainf) / K_ainf))))
154                         (tau_a = (1 / (alpha_a (v) + beta_a (v)) ))
155                         (b_inf = (1 / (1 + exp ((v - V0_binf) / K_binf))))
156                         (tau_b = (1 / (alpha_b (v) + beta_b (v)) ))
157
158                         (hh-ionic-gate
159                          (KA  ;; ion name: exported variables will be of the form {ion}_{id}
160                           (initial-m  ((alpha_a (v)) / (alpha_a (v) + beta_a (v)) ))
161                           (initial-h  ((alpha_b (v)) / (alpha_b (v) + beta_b (v)) ))
162                           (m-power    3)
163                           (h-power    1)
164                           (m-inf      a_inf)
165                           (m-tau      tau_a)
166                           (h-inf      b_inf)
167                           (h-tau      tau_b)
168                           ))
169
170                         )
171
172                     
173              (component (type pore)
174                         (const  gbar  = 0.004)
175                         (output gbar ))
176
177             
178              (component (type permeating-ion) (name k)
179                         (const e = -84.69)
180                         (output e ))
181             
182              ) ;; end KA current
183   
184
185   (component (type ionic-current) (name KCa )
186             
187              (component (type gate)
188
189                         ;; rate constants
190                         (const Q10 = (pow (3 ((fix_celsius - 30) / 10))))
191                         
192                         (const Aalpha_c = 2.5)
193                         (const Balpha_c = 1.5e-3)
194
195                         (const Kalpha_c =  -11.765)
196
197                         (const Abeta_c = 1.5)
198                         (const Bbeta_c = 0.15e-3)
199
200                         (const Kbeta_c = -11.765)
201
202                         ;; rate functions
203                         (defun alpha_c (v cai)
204                           (Q10 * Aalpha_c / (1 + (Balpha_c * exp(v / Kalpha_c) / cai))))
205
206                         (defun beta_c (v cai)
207                           (Q10 * Abeta_c / (1 + (cai / (Bbeta_c * exp (v / Kbeta_c))) )))
208
209
210                         (hh-ionic-gate
211                          (KCa  ;; ion name: exported variables will be of the form {ion}_{id}
212                           (initial-m  ((alpha_c (v cai)) / (alpha_c (v cai) + beta_c (v cai)) ))
213                           (m-power    1)
214                           (h-power    0)
215                           (m-inf      (alpha_c (v cai)))
216                           (m-tau      (beta_c (v cai)))
217                           ))
218                         
219                         )
220
221              (component (type pore)
222                         (const  gbar  = 0.004)
223                         (output gbar ))
224
225             
226              (component (type permeating-ion) (name k)
227                         (const e = -84.69)
228                         (output e ))
229             
230              ) ;; end KCa current
231
232
233   (component (type ionic-current) (name Kir )
234             
235              (component (type gate)
236
237                         ;; rate constants
238                         (const Q10 = (pow (3 ((fix_celsius - 20) / 10))))
239
240                         (const Aalpha_d = 0.13289)
241                         (const Kalpha_d = -24.3902)
242
243                         (const V0alpha_d = -83.94)
244                         (const Abeta_d   = 0.16994)
245
246                         (const Kbeta_d = 35.714)
247                         (const V0beta_d = -83.94)
248   
249                         ;; rate functions
250                         (defun alpha_d (v)
251                           (Q10 * Aalpha_d * exp((v - V0alpha_d) / Kalpha_d)))
252                         
253                         (defun beta_d (v)
254                           (Q10 * Abeta_d * exp((v - V0beta_d) / Kbeta_d) ))
255
256                         (hh-ionic-gate
257                          (Kir  ;; ion name: exported variables will be of the form {ion}_{id}
258                           (initial-m  ((alpha_d (v)) / (alpha_d (v) + beta_d (v)) ))
259                           (m-power    1)
260                           (h-power    0)
261                           (m-inf      (alpha_d (v)))
262                           (m-tau      (beta_d (v)))
263                           ))
264                         
265                         )
266
267
268              (component (type pore)
269                         (const  gbar  = 0.0009)
270                         (output gbar ))
271
272             
273              (component (type permeating-ion) (name k)
274                         (const e = -84.69)
275                         (output e ))
276             
277              ) ;; end Kir current
278             
279                         
280
281
282
283   (component (type ionic-current) (name KM )
284             
285              (component (type gate)
286
287                         ;; rate constants
288                         (const Aalpha_n = 0.0033)
289
290                         (const Kalpha_n  = 40)
291                         (const V0alpha_n = -30)
292                         (const Abeta_n   = 0.0033)
293
294                         (const Kbeta_n  = -20)
295                         (const V0beta_n = -30)
296                         (const V0_ninf  = -30)
297                         (const   B_ninf = 6)
298                         
299                         (const Q10 = (pow (3 ((fix_celsius - 22) / 10))))
300                         
301                         ;; rate equations
302                         (defun alpha_n (v)
303                           (Q10 * Aalpha_n * exp((v - V0alpha_n) / Kalpha_n) ))
304
305                         (defun beta_n (v)
306                           (Q10 * Abeta_n * exp((v - V0beta_n) / Kbeta_n) ))
307
308                         (hh-ionic-gate
309                          (KM  ;; ion name: exported variables will be of the form {ion}_{id}
310                           (initial-m  ((alpha_n (v)) / (alpha_n (v) + beta_n (v)) ))
311                           (m-power    1)
312                           (h-power    0)
313                           (m-inf      (1 / (1 + exp((neg (v - V0_ninf)) / B_ninf))))
314                           (m-tau      (1 / (alpha_n(v) + beta_n (v)) ))
315                           ))
316                         )
317             
318              (component (type pore)
319                         (const  gbar  = 0.00035)
320                         (output gbar ))
321             
322              (component (type permeating-ion) (name k)
323                         (const e = -84.69)
324                         (output e ))
325             
326              ) ;; end KM current
327
328
329
330   (component (type ionic-current) (name KV )
331             
332              (component (type gate)
333
334                         ;; rate constants
335                         (const Q10 = (pow (3 ((fix_celsius - 6.3) / 10))))
336
337                         ;; rate functions
338                         (defun alpha_n (v)
339                           (Q10 * Aalpha_n * linoid ((v - V0alpha_n) Kalpha_n)))
340
341                         (defun beta_n (v)
342                           (Q10 * Abeta_n * linoid ((v - V0beta_n) Kbeta_n)))
343
344                         (hh-ionic-gate
345                          (KV  ;; ion name: exported variables will be of the form {ion}_{id}
346                           (initial-m  ((alpha_n (v)) / (alpha_n (v) + beta_n (v)) ))
347                           (m-power    4)
348                           (h-power    0)
349                           (m-alpha    (alpha_n(v)))
350                           (m-beta     (beta_n(v)))
351                           ))
352                         )
353
354              (component (type pore)
355                         (const  gbar  = 0.003)
356                         (output gbar ))
357             
358              (component (type permeating-ion) (name k)
359                         (const e = -84.69)
360                         (output e ))
361             
362              ) ;; end KV current
363
364
365   (component (type ionic-current) (name pNa )
366             
367              (component (type gate)
368
369                         ;; rate constants
370                         (const Q10 = (pow (3 ((fix_celsius - 30) / 10))))
371
372                         (const Aalpha_m  = -0.091)
373                         (const Kalpha_m  = -5)
374                         (const V0alpha_m = -42)
375                         (const Abeta_m   = 0.062)
376                         (const Kbeta_m   = 5)
377                         (const V0beta_m  = -42)
378                         (const V0_minf   = -42)
379                         (const B_minf    = 5)
380
381                         ;; rate functions
382                         (defun alpha_m (v)
383                           (Q10 * Aalpha_m * linoid( (v - V0alpha_m) Kalpha_m)))
384
385                         (defun beta_m (v)
386                           (Q10 * Abeta_m * linoid ( (v - V0beta_m) Kbeta_m) ))
387                         
388
389                         (hh-ionic-gate
390                          (pNa  ;; ion name: exported variables will be of the form {ion}_{id}
391                           (initial-m  ((alpha_d (v)) / (alpha_d (v) + beta_d (v)) ))
392                           (m-power    1)
393                           (h-power    0)
394                           (m-inf      (1 / (1 + exp((neg (v - V0_minf)) / B_minf))))
395                           (m-tau      (5 / (alpha_m (v) + beta_m (v))))
396                           ))
397                         
398                         )
399
400
401              (component (type pore)
402                         (const  gbar  = 2e-5)
403                         (output gbar ))
404
405             
406              (component (type permeating-ion) (name na)
407                         (const e = 87.39)
408                         (output e ))
409             
410              ) ;; end pNa current
411
412   
413
414   (component (type ionic-current) (name Na )
415             
416              (component (type gate)
417
418                         ;; rate constants
419                         (const Q10 = (pow (3 ((fix_celsius - 20) / 10))))
420
421                         (const Aalpha_m  = -0.3)
422                         (const Kalpha_m  = -10)
423                         (const V0alpha_m = -19)
424       
425                         (const Abeta_m = 12)
426                         (const Kbeta_m = -18.182)
427                         (const V0beta_m = -44)
428
429                         (const Aalpha_h = 0.105)
430                         (const Kalpha_h = -3.333)
431                         (const V0alpha_h = -44)
432 
433                         (const Abeta_h = 1.5)
434                         (const Kbeta_h = -5)
435                         (const V0beta_h = -11)
436
437                         ;; rate functions
438                         (defun alpha_m (v)
439                           (Q10 * Aalpha_m * linoid((v - V0alpha_m) Kalpha_m) ))
440
441                         (defun beta_m (v)
442                           (Q10 * Abeta_m * exp((v - V0beta_m) / Kbeta_m) ))
443
444                         (defun alpha_h (v)
445                           (Q10 * Aalpha_h * linoid((v - V0alpha_h) Kalpha_h) ))
446
447                         (defun beta_h (v)
448                           (Q10 * Abeta_h * exp((v - V0beta_h) / Kbeta_h) ))
449
450                         
451                         (hh-ionic-gate
452                          (Na  ;; ion name: exported variables will be of the form {ion}_{id}
453                           (initial-m  ((alpha_m (v)) / (alpha_m (v) + beta_m (v)) ))
454                           (initial-h  ((alpha_h (v)) / (alpha_h (v) + beta_h (v)) ))
455                           (m-power    3)
456                           (h-power    1)
457                           (m-alpha    (alpha_m (v)))
458                           (m-beta     (beta_m (v)))
459                           (h-alpha    (alpha_h (v)))
460                           (h-beta     (beta_h (v)))
461                           ))
462                         
463                         )
464             
465              (component (type pore)
466                         (const  gbar  = 0.013)
467                         (output gbar ))
468
469             
470              (component (type permeating-ion) (name na)
471                         (const e = 87.39)
472                         (output e ))
473             
474              ) ;; end Na current
475
476
477   (component (type ionic-current) (name Nar )
478             
479              (component (type gate)
480
481                         ;; rate constants
482                         (const Q10 = (pow (3 ((fix_celsius - 20) / 10))))
483
484                         (const Aalpha_s     = -0.00493)
485                         (const V0alpha_s    = -4.48754)
486                         (const Kalpha_s     = -6.81881)
487                         (const Shiftalpha_s = 0.00008)
488
489                         (const Abeta_s     = 0.01558)
490                         (const V0beta_s    = 43.97494)
491                         (const Kbeta_s     =  0.10818)
492                         (const Shiftbeta_s = 0.04752)
493
494                         (const Aalpha_f  = 0.31836)
495                         (const V0alpha_f = -80)
496                         (const Kalpha_f  = -62.52621)
497
498                         (const Abeta_f  = 0.01014)
499                         (const V0beta_f = -83.3332)
500                         (const Kbeta_f  = 16.05379)
501
502                         ;; rate functions
503                         (defun alpha_s (v)
504                           (Q10 * (Shiftalpha_s + (Aalpha_s * ((v + V0alpha_s) )) ) / (exp ((v + V0alpha_s) / Kalpha_s) - 1)))
505
506                         (defun beta_s (v)
507                           (Q10 * (Shiftbeta_s + Abeta_s * ((v + V0beta_s) / (exp((v + V0beta_s) / Kbeta_s) - 1)))))
508
509                         (defun alpha_f (v)
510                           (Q10 * Aalpha_f * exp( ( v - V0alpha_f ) / Kalpha_f)))
511
512                         (defun beta_f (v)
513                           (Q10 * Abeta_f * exp( ( v - V0beta_f ) / Kbeta_f )  ))
514
515                         (hh-ionic-gate
516                          (Nar  ;; ion name: exported variables will be of the form {ion}_{id}
517                           (initial-m  ((alpha_s (v)) / (alpha_s (v) + beta_s (v)) ))
518                           (initial-h  ((alpha_f (v)) / (alpha_f (v) + beta_f (v)) ))
519                           (m-power    1)
520                           (h-power    1)
521                           (m-alpha    (alpha_s (v)))
522                           (m-beta     (beta_s (v)))
523                           (h-alpha    (alpha_f (v)))
524                           (h-beta     (beta_f (v)))
525                           ))
526                         )
527
528              (component (type pore)
529                         (const  gbar  = 0.0005)
530                         (output gbar ))
531
532              (component (type permeating-ion) (name na)
533                         (const e = 87.39)
534                         (output e ))
535             
536              ) ;; end Nar current
537             
538   
539   (component (type ionic-current) (name Lkg1)
540             
541              (component (type pore)
542                         (const  gbar  = (5.68e-5))
543                         (output gbar))
544             
545              (component (type permeating-ion) (name non-specific)
546                         (const e = -58)
547                         (output e ))
548             
549              ) ;; end leak current
550
551   (component (type ionic-current) (name Lkg2)
552             
553              (component (type pore)
554                         (const  ggaba  = (2.17e-5))
555                         (output ggaba))
556             
557              (component (type permeating-ion) (name non-specific)
558                         (const egaba = -65)
559                         (output egaba ))
560             
561              ) ;; end leak current
562 
563   
564))
Note: See TracBrowser for help on using the repository browser.