Changeset 29071 in project


Ignore:
Timestamp:
06/12/13 06:04:48 (8 years ago)
Author:
Ivan Raikov
Message:

nemo: added all K channels

File:
1 edited

Legend:

Unmodified
Added
Removed
  • release/4/nemo/trunk/examples/CA3/CA3_Hemond08.nemo

    r29063 r29071  
    99   (const  R = 8.3134)
    1010   (const  KTOMV = .0853); (mV/degC)
    11 
     11   
     12   (const ki     = .001)
     13
     14   (defun h2 (cai) (ki / (ki + cai)))
     15
     16   (defun KTF (celsius)
     17     ((25. / 293.15) * (celsius + 273.15))
     18     )
     19   
     20   (defun efun (z)
     21     (if (abs (z) < 1e-4)
     22         then (1 - z/2)
     23         else (z / (exp (z) - 1)))
     24     )
     25   
     26   (defun ghk  (v ci co celsius)
     27     (let ((f (KTF (celsius) / 2))
     28           (nu (v / f)))
     29       (neg (f) * (1. - (ci / co) * exp (nu)) * efun (nu))
     30       ))
    1231
    1332   (component (type defaults)
     
    111130             
    112131              (input
    113                (cai from ion-pools))
     132               (cai from ion-pools)
     133               (cao from ion-pools))
    114134             
    115135              (component (type gate)
    116136                         
    117                          (const ki     = .001)
    118                          (const cai    = 50.e-6)
    119                          (const cao    = 2)
    120137                         (const q10    = 5)
    121138                         (const mmin   = 0.2)
     
    126143                         (const gmm    = 0.1)
    127144                         
    128                          (defun h2 (cai) (ki / (ki + cai)))
    129                          
    130                          (defun ghk  (v ci co celsius)
    131                            (let ((f (KTF (celsius) / 2))
    132                                  (nu (v / f)))
    133                              (neg (f) * (1. - (ci / co) * exp (nu)) * efun (nu))
    134                              ))
    135                          
    136                          (defun KTF (celsius)
    137                            ((25. / 293.15) * (celsius + 273.15))
    138                            )
    139                          
    140                          (defun efun (z)
    141                            (if (abs (z) < 1e-4)
    142                                then (1 - z/2)
    143                                else (z / (exp (z) - 1)))
    144                            )
     145                         
    145146                         
    146147                         (defun alpha (v)
     
    180181              (component (type permeability)
    181182                         
     183                         (const gcanbar = .003)
     184
    182185                         (p   = (gcalbar * ghk (v cai cao celsius) * h2 (cai)))
    183186                         
     
    189192                         )
    190193             
     194              ) ;; end CaL current
     195   
     196
     197   ;; N-type calcium current
     198   (component (type ionic-current) (name CaN )
     199
     200      (input
     201       (cai from ion-pools)
     202       (cao from ion-pools))
     203
     204      (component (type gate)
     205
     206                 (const q10    = 5)
     207                 (const mmin   = 0.2)
     208                 (const hmin   = 3)
     209                 (const a0m    =  0.03)
     210                 (const zetam  = 20)
     211                 (const vhalfm = -14)
     212                 (const gmm    =  0.1)
     213
     214                 (defun alpha_h (v)
     215                   (1.6e-4 * exp ( (neg v) / 48.4)))
     216
     217                 (defun beta_h (v)
     218                   (1 / (exp (((neg v) + 39.0) / 10.) + 1.)))
     219
     220                 (defun alpha_m (v)
     221                   (0.1967 * (-1.0 * v + 19.88) / (exp((-1.0 * v + 19.88) / 10.0) - 1.0)))
     222
     223                 (defun beta_m (v)
     224                   (0.046 * exp ((neg v) / 20.73)))
     225
     226                 (defun alphamt (v)
     227                   (exp (0.0378 * zetam * (v - vhalfm))))
     228
     229                 (defun betamt (v)
     230                   (exp (0.0378 * zetam * gmm * (v - vhalfm))))
     231
     232
     233                 (qt = (pow (q10 ((celsius - 25) / 10))))
     234
     235                 (am  = (alpha_m (v)))
     236                 (bm  = (1 / (am + beta_m (v))))
     237
     238                 (minf = (am * bm))
     239                 (mtau = (let ((u (betamt (v) / (qt * a0m * (1 + alphamt (v))))))
     240                           (if (u < (mmin / qt)) then (mmin / qt) else u)))
     241                 
     242                 (ah = (alpha_h (v)))
     243                 (bh = (1 / (ah + beta_h (v))))
     244
     245                 (hinf = (ah * bh))
     246                 ;; htau=b/qt
     247                 ;; if (htau < hmin) then hmin else htau
     248                 
     249                 (const htau = 80)
     250
     251                 (hh-ionic-gate
     252                  (CaN  ;; ion name: exported variables will be of the form {ion}_{id}
     253                   (initial-m  (minf))
     254                   (m-power    2)
     255                   (h-power    1)
     256                   (m-inf      (minf))
     257                   (m-tau      (mtau))
     258                   (h-inf      (hinf))
     259                   (h-tau      (htau))
     260                   ))
     261
     262                 )
     263
     264      (component (type permeability)
     265                 
     266                 (const gcanbar = .0003)
     267                 (p = (gcanbar * ghk (v cai cao celsius) * h2 (cai)))
     268                 
     269                 (output p)
     270                 )
     271             
     272             
     273      (component (type permeating-ion) (name ca)
     274                 )
     275
     276      ) ;; end CaN current
     277
     278
     279      ;; T-type calcium current
     280      (component (type ionic-current) (name CaT )
     281                 
     282                 (input
     283                  (cai from ion-pools)
     284                  (cao from ion-pools))
     285                 
     286                 (component (type gate)
     287
     288                            (const gcatbar = 0.003)
     289       
     290                            (const q10  = 5)
     291                            (const mmin = 0.2)
     292                            (const hmin = 10)
     293                            (const a0h  = 0.015)
     294                            (zetah      = 3.5)
     295                            (const vhalfh = -75)
     296                            (const gmh    = 0.6)
     297                            (const a0m    = 0.04)
     298                            (const zetam  = 2)
     299                            (const vhalfm = -28)
     300                            (const gmm    = 0.1)
     301
     302
     303                            (defun alpha_h (v)
     304                              (exp (0.0378 * zetah * (v - vhalfh))))
     305
     306                            (defun beta_h (v)
     307                              (exp (0.0378 * zetah * gmh * (v - vhalfh))))
     308                           
     309                            (defun alpha_mt (v)
     310                              (exp (0.0378 * zetam * (v - vhalfm))))
     311
     312                            (defun beta_mt (v)
     313                              (exp (0.0378 * zetam * gmm * (v - vhalfm))))
     314
     315                            (qt = (pow (q10 ((celsius - 25) / 10))))
     316
     317                            (a_m = (0.2 * (-1.0 * v +19.26) / (exp ((-1.0 * v + 19.26) / 10.0) - 1.0)))
     318                            (b_m = (0.009 * exp((neg v) / 22.03)))
     319                           
     320                            (minf = (a / (a+b)))
     321                            (mtau = (let ((u (beta_mt(v) / (qt * a0m * (1 + alpha_mt (v))))))
     322                                      if (u < mmin) then mmin else u))
     323
     324
     325                            (a_h = (1e-6 * exp ((neg v) / 16.26)))
     326                            (b_h = (1 / (exp (((neg v) + 29.79) / 10.) + 1.)))
     327
     328                            (hinf = (a / (a + b)))
     329                            (htau = (let ((u (beta_h (v) / (a0h * (1 + alpha_h (v))))))
     330                                      (if (u < hmin) then hmin else u)))
     331
     332
     333                            (hh-ionic-gate
     334                             (CaT  ;; ion name: exported variables will be of the form {ion}_{id}
     335                              (initial-m  (minf))
     336                              (m-power    2)
     337                              (h-power    1)
     338                              (m-inf      (minf))
     339                              (m-tau      (mtau))
     340                              (h-inf      (hinf))
     341                              (h-tau      (htau))
     342                              ))
     343
     344                            )
     345
     346                 
     347                 (component (type permeability)
     348                           
     349                            (const gcatbar = 0.003)
     350                           
     351                            (p = (gcatbar * ghk (v cai cao celsius) * h2 (cai)))
     352                           
     353                            (output p)
     354                            )
     355             
     356                 
     357                 (component (type permeating-ion) (name ca)
     358                            )
     359                 
     360                 ) ;; end CaT current
     361
     362
     363     
     364      ;; I-h channel from Magee 1998 for distal dendrites
     365
     366      (component (type ionic-current) (name Ih )
     367
     368                 (component (type gate)
     369                           
     370                            (const vhalfl = -73)
     371                            (const kl     = -8)
     372                            (const vhalft = -75)
     373                            (const a0t    = 0.011)
     374                            (const zetat  = 2.2)
     375                            (const gmt    = 0.4)
     376                            (const q10    = 4.5)
     377                            (const qtl    = 1)
     378
     379                            (defun alpha_t (v)
     380                              (exp (0.0378 * zetat * (v - vhalft))))
     381
     382                            (defun beta_t (v)
     383                              (exp (0.0378 * zetat * gmt * (v - vhalft))))
     384
     385                            (qt = (pow (q10 ((celsius - 33) / 10))))
     386                           
     387                            (a    = (alpha_t (v)))
     388                            (linf = (1 / (1 + exp (-(v - vhalfl) / kl))))
     389                            (ltau = (beta_t (v) / (qtl * qt * a0t * (1 + a))))
     390
     391                            (hh-ionic-gate
     392                             (Ih  ;; ion name: exported variables will be of the form {ion}_{id}
     393                              (initial-m (linf))
     394                              (m-power   1)
     395                              (h-power   0)
     396                              (m-inf     (linf))
     397                              (m-tau     (ltau))))
     398                            )
     399
     400
     401              (component (type pore)
     402                         (const ghdbar = .0001)
     403                         (output ghdbar))
     404
     405             
     406              (component (type permeating-ion) (name non-specific)
     407                         (const ehd = -30)
     408                         (output ehd))
     409             
     410              ;; end Ih current
    191411              )
    192    
    193    
     412
     413
    194414      ;; Borg-Graham type generic K-AHP channel
    195    
    196    
    197    (component (type ionic-current) (name KAHP )
    198 
    199       (input
    200        (cai from ion-pools))
    201              
    202       (component (type gate)
    203 
    204 
    205                  (const a0 = 1e8) ;; (/ms-mM-mM-mM-mM)
    206                  (const b0 = .5e-2) ;;  (/ms)
    207 
    208                  (defun alpha (cai)
    209                    (a0 * pow (cai n)))
    210 
    211                  (qt = (pow (q10 ((celsius - 25) / 10))))
    212 
    213                  (a    = (alpha (cai)))
    214                  (atau = (1 / (qt * (a + b0))))
    215                  (ainf = (a * tau * qt))
    216 
    217                  (hh-ionic-gate
    218                   (KAHP  ;; ion name: exported variables will be of the form {ion}_{id}
    219                    (initial-m  (ainf))
    220                    (m-power    1)
    221                    (h-power    0)
    222                    (m-inf      (ainf))
    223                    (m-tau      (atau))
    224                    ))
    225 
    226                  )
    227 
    228       (component (type pore)
    229                  (const  gbar  = 0.003)
    230                  (output gbar ))
    231      
    232      
    233       (component (type permeating-ion) (name k)
    234                  (e = ek)
    235                  (output e ))
    236      
    237       (component (type modulating-ion) (name ca) )
    238      
    239       ) ;; end KAHP current
     415     
     416     
     417      (component (type ionic-current) (name KAHP )
     418                 
     419                 (input
     420                  (cai from ion-pools))
     421                 
     422                 (component (type gate)
     423                           
     424                           
     425                            (const a0 = 1e8) ;; (/ms-mM-mM-mM-mM)
     426                            (const b0 = .5e-2) ;;  (/ms)
     427                           
     428                            (defun alpha (cai)
     429                              (a0 * pow (cai n)))
     430                           
     431                            (qt = (pow (q10 ((celsius - 25) / 10))))
     432                           
     433                            (a    = (alpha (cai)))
     434                            (atau = (1 / (qt * (a + b0))))
     435                            (ainf = (a * tau * qt))
     436                           
     437                            (hh-ionic-gate
     438                             (KAHP  ;; ion name: exported variables will be of the form {ion}_{id}
     439                              (initial-m  (ainf))
     440                              (m-power    1)
     441                              (h-power    0)
     442                              (m-inf      (ainf))
     443                              (m-tau      (atau))
     444                              ))
     445                           
     446                            )
     447                 
     448                 (component (type pore)
     449                            (const  gbar  = 0.003)
     450                            (output gbar ))
     451                 
     452                 
     453                 (component (type permeating-ion) (name k)
     454                            (e = ek)
     455                            (output e ))
     456                 
     457                 (component (type modulating-ion) (name ca) )
     458                 
     459                 ) ;; end KAHP current
     460
     461
     462
     463      ;; K-A channel from Klee Ficker and Heinemann
     464      ;; modified to account for Dax A Current --- M.Migliore Jun 1997
     465      ;; modified to be used with cvode  M.Migliore 2001
     466
     467      (component (type ionic-current) (name KA )
     468
     469                 
     470                 (component (type gate)
     471
     472                            (const sh = 24)
     473
     474                            (const vhalfn = 11)
     475                            (const vhalfl = -56)
     476                            (const a0l    = 0.05)
     477                            (const a0n    = 0.05)
     478                            (const zetan  = -1.5)
     479                            (const zetal  = 3)
     480                            (const gmn    = 0.55)
     481                            (const gml    = 1)
     482                            (const lmin   = 2)
     483                            (const nmin   = 0.1)
     484                            (const pw     = -1)
     485                            (const tq     = -40)
     486                            (const qq     = 5)
     487                            (const q10    = 5)
     488                            (const qtl    = 1)
     489
     490
     491                            (defun alpha_n (v)
     492                              (let ((zeta (zetan + pw / (1 + exp ( (v - tq - sh) / qq)))))
     493                                (exp (1e-3 * zeta * (v - vhalfn - sh) * 9.648e4 / (8.315 * (273.16 + celsius))))))
     494
     495                            (defun beta_n (v)
     496                              (let ((zeta (zetan + pw / (1 + exp((v - tq - sh) / qq)))))
     497                                (exp (1e-3 * zeta * gmn * (v - vhalfn - sh) * 9.648e4 / (8.315 * (273.16 + celsius))))))
     498
     499
     500                            (defun alpha_l (v)
     501                              (exp (1e-3 * zetal * (v - vhalfl - sh) * 9.648e4 / (8.315 * (273.16 + celsius)))))
     502
     503                            (defun beta_l (v)
     504                              (exp (1e-3 * zetal * gml * (v - vhalfl - sh) * 9.648e4 / (8.315 * (273.16 + celsius)))))
     505
     506                            (qt = (pow (q10 ((celsius - 24) / 10))))
     507
     508                            (a_n  = (alpha_n (v)))
     509                            (ninf = (1 / (1 + a_n)))
     510                            (ntau = (let ((u (beta_n (v) / (qt * a0n * (1 + a)))))
     511                                      (if (ntau < nmin) then nmin else u)))
     512
     513                            (a_l  = (alpha_l (v)))
     514                            (linf = (1 / (1 + a_l)))
     515                            (taul = (let ((u (0.26 * (v + 50 - sh) / qtl)))
     516                                      (if (taul < (lmin / qtl)) then  (lmin / qtl) else u)))
     517                           
     518
     519                            (hh-ionic-gate
     520                             (KA  ;; ion name: exported variables will be of the form {ion}_{id}
     521                              (initial-m  (ninf))
     522                              (initial-h  (linf))
     523                              (m-power    1)
     524                              (h-power    1)
     525                              (m-inf      (ninf))
     526                              (m-tau      (ntau))
     527                              (h-inf      (linf))
     528                              (h-tau      (ltau))
     529                              ))
     530                           
     531                            )
     532                 
     533                 (component (type pore)
     534                            (const  gbar  = 0.008)
     535                            (output gbar ))
     536                 
     537                 
     538                 (component (type permeating-ion) (name k)
     539                            (e = ek)
     540                            (output e ))
     541                 
     542                 
     543                 ) ;; end KA current
     544
     545
     546
     547      (component (type ionic-current) (name KD )
     548
     549                 
     550                 (component (type gate)
     551
     552                            (const sh = 0)
     553
     554                            (const vhalfn = -33)
     555                            (const a0n    = 0.01)
     556                            (const zetan  = 3)
     557                            (const gmn    = 0.7)
     558                            (const nmax   = 2)
     559                            (const q10    = 1)
     560
     561                            (defun alpha_n (v)
     562                              (exp (1e-3 * zetan * (v - vhalfn - sh) * 9.648e4 / (8.315 * (273.16 + celsius)))))
     563
     564                            (defun beta_n (v)
     565                              (exp (1e-3 * zetan * gmn * (v - vhalfn - sh) * 9.648e4 / (8.315 * (273.16 + celsius)))))
     566
     567                            (qt = (pow (q10 ((celsius - 24) / 10))))
     568
     569                            (a    = (alpha_n (v)))
     570                            (ninf = (1 / (1 + a)))
     571                            (taun = (let ((u (beta_n (v) / (qt * a0n * (1 + a)))))
     572                                      (if (ntau < nmax) then  (nmax / qt) else u)))
     573
     574
     575                            (hh-ionic-gate
     576                             (KD  ;; ion name: exported variables will be of the form {ion}_{id}
     577                              (initial-m  (ninf))
     578                              (m-power    1)
     579                              (h-power    0)
     580                              (m-inf      (ninf))
     581                              (m-tau      (ntau))
     582                              ))
     583                           
     584                            )
     585                 
     586                 (component (type pore)
     587                            (const  gbar  = 0.0)
     588                            (output gbar ))
     589                 
     590                 
     591                 (component (type permeating-ion) (name k)
     592                            (e = ek)
     593                            (output e ))
     594                 
     595                 
     596                 ) ;; end KD current
     597     
     598
     599      ;; K-DR channel from Klee Ficker and Heinemann modified to account for Dax et al.
     600      (component (type ionic-current) (name KDR )
     601
     602                 
     603                 (component (type gate)
     604
     605                            (const sh = 24)
     606
     607                            (const vhalfn = 13)
     608                            (const a0n    = 0.02)
     609                            (const zetan  = -3)
     610                            (const gmn    = 0.7)
     611                            (const nmax   = 2)
     612                            (const q10    = 1)
     613
     614                            (defun alpha_n (v)
     615                              (exp (1e-3 * zetan * (v - vhalfn - sh) * 9.648e4 / (8.315 * (273.16 + celsius)))))
     616
     617                            (defun beta_n (v)
     618                              (exp (1e-3 * zetan * gmn * (v - vhalfn - sh) * 9.648e4 / (8.315 * (273.16 + celsius)))))
     619
     620                            (qt = (pow (q10 ((celsius - 24) / 10))))
     621
     622                            (a    = (alpha_n (v)))
     623                            (ninf = (1 / (1 + a)))
     624                            (taun = (let ((u (beta_n (v) / (qt * a0n * (1 + a)))))
     625                                      (if (ntau < nmax) then  (nmax / qt) else u)))
     626
     627
     628                            (hh-ionic-gate
     629                             (KDR  ;; ion name: exported variables will be of the form {ion}_{id}
     630                              (initial-m  (ninf))
     631                              (m-power    1)
     632                              (h-power    0)
     633                              (m-inf      (ninf))
     634                              (m-tau      (ntau))
     635                              ))
     636                           
     637                            )
     638                 
     639                 (component (type pore)
     640                            (const  gbar  = 0.0)
     641                            (output gbar ))
     642                 
     643                 
     644                 (component (type permeating-ion) (name k)
     645                            (e = ek)
     646                            (output e ))
     647                 
     648                 
     649                 ) ;; end KD current
     650     
     651     
     652     
     653      ;; KM channel from Magee 1998 for distal dendrites
     654
     655      (component (type ionic-current) (name KM )
     656
     657                 (component (type gate)
     658                           
     659                            (const sh = 24)
     660
     661                            (const vhalfl = -40)
     662                            (const kl     = -10)
     663                            (const vhalft = -42)
     664                            (const a0t    = 0.003)
     665                            (const zetat  = 7)
     666                            (const gmt    = 0.4)
     667                            (const q10    = 5)
     668                            (const b0     = 60)
     669
     670                            (defun alpha_t (v)
     671                              (exp (0.0378 * zetat * (v - vhalft - sh))))
     672
     673                            (defun beta_t (v)
     674                              (exp (0.0378 * zetat * gmt * (v - vhalft - sh))))
     675
     676                            (qt = (pow (q10 ((celsius - 35) / 10))))
     677
     678                            (inf = (1 / (1 + exp ((v - vhalfl - sh) / kl))))
     679                            (a   = alpha_t (v))
     680                            (tau = ((b0 + beta_t(v) / (a0t * (1 + a)))))
     681
     682                            (hh-ionic-gate
     683                             (KM  ;; ion name: exported variables will be of the form {ion}_{id}
     684                              (initial-m (inf))
     685                              (m-power   1)
     686                              (h-power   0)
     687                              (m-inf     (inf))
     688                              (m-tau     (tau))))
     689
     690                            )
     691
     692
     693              (component (type pore)
     694                         (const gbar = .0001)
     695                         (output gbar))
     696
     697             
     698              (component (type permeating-ion) (name k)
     699                         (const e = ek)
     700                         (output e))
     701             
     702              ;; end KM current
     703              )
     704
     705   
     706     
     707     
     708   
     709
     710   
    240711)
    241712
Note: See TracChangeset for help on using the changeset viewer.