Changeset 29863 in project


Ignore:
Timestamp:
10/07/13 07:55:01 (8 years ago)
Author:
Ivan Raikov
Message:

nemo: added more currents to the winograd model

File:
1 edited

Legend:

Unmodified
Added
Removed
  • release/4/nemo/trunk/examples/HH/winograd.nemo

    r29824 r29863  
    66   (input v celsius)
    77
     8   (const vtraub  = -55)
    89
    910   (component (type defaults)
    10       (const V_t = -35)
     11      (const V_t     = -35)
    1112      (const celsius = 36)
    1213      (output celsius V_t)
    1314      )
    1415
     16
     17   (fun exp1 (x) (if (x < -100) then 0.0 else exp (x)))
     18
     19   (fun vtrap (x y)
     20        (if (abs (x / y) < 1e-6)
     21            then (y * (1 - x / y / 2))
     22            else (x / (exp1 (x / y) - 1))))
     23
     24   (fun vtrap_CaL (x c)
     25        (if (abs (x / c) < 1e-6)
     26            then (c + (x / 2))
     27            else (x / (1 - exp ( neg(x) / c)))))
    1528
    1629   (component (type membrane-capacitance)
     
    4255              )
    4356
     57;; High-threshold calcium (L-) current from hippocampal pyramidal cells
     58;;
     59;; Equations from
     60;;   McCormick DA, Huguenard JR (1992) A model of the electrophysiological
     61;;   properties of thalamocortical relay neurons. J Neurophys 68(4):
     62;;   1384-1400.
     63;;
     64;;      See also
     65;;   Kay AR, Wong RK (1987) Calcium current activation kinetics in isolated   
     66;;   pyramidal neurones of the Ca1 region of the mature guinea-pig
     67;;   hippocampus. J Physiol 392: 603-616.
     68;;
     69;; >< Temperature adjusts time constants measured at 23.5 degC.
    4470   
    4571   (component (type ionic-current) (name CaL )
     
    5177      (component (type gate)
    5278                 
    53                  (Q10 = (pow (3 ((celsius - 23.5) / 10))))
    54                  
     79                 (tadj = (pow (3 ((celsius - 23.5) / 10))))
     80
    5581                 (a  = (1.6 / (1 + exp (-0.072 * (v - 5))) ))
    56                  (b  = (0.02 * vtrap (neg (v - 1.31) ~ 5.36) ))
     82                 (b  = (0.02 * vtrap_CaL (neg (v - 1.31) ~ 5.36) ))
    5783                 
    5884                 (mtau = (1 / (a + b) / tadj))
     
    97123      )
    98124
    99    
     125;; Cortical M current
     126;;
     127;;   M-current, responsible for the adaptation of firing rate and the
     128;;   afterhyperpolarization (AHP) of cortical pyramidal cells
     129;;
     130;;   First-order model described by hodgkin-Hyxley like equations.
     131;;   K+ current, activated by depolarization, noninactivating.
     132;;
     133;;   Model taken from Yamada, W.M., Koch, C. and Adams, P.R.  Multiple
     134;;   channels and calcium dynamics.  In: Methods in Neuronal Modeling,
     135;;   edited by C. Koch and I. Segev, MIT press, 1989, p 97-134.
     136;;
     137;;   See also: McCormick, D.A., Wang, Z. and Huguenard, J. Neurotransmitter
     138;;   control of neocortical neuronal activity and excitability.
     139;;  Cerebral Cortex 3: 387-398, 1993.
     140;;
     141;;  Written by Alain Destexhe, Laval University, 1995
     142
     143   (component (type ionic-current) (name KM)
     144
     145              (component (type gate)
     146
     147                         (fun exptable (x) (if ((x > -25) && (x < 25)) then exp (x) else 0.0))
     148                         
     149                         (const tadj = (pow (2.3 ((celsius - 36) / 10 ))))
     150                         
     151                         ;; rate functions
     152                         
     153                         (const taumax = 1000.0)
     154                         (tau_peak = (taumax / tadj))
     155                         
     156                         (n_inf = (1 / ( 1 + exptable (neg (v + 35) / 10)) ))
     157                         (tau_n = (tau_peak / ( 3.3 * exptable((v + 35) / 20) + exptable(neg (v + 35) / 20)) ))
     158                         
     159                         (hh-ionic-gate
     160                          (KM  ;; ion name: exported variables will be of the form {ion}_{id}
     161                           (initial-m (n_inf))
     162                           
     163                           (m-power   1)
     164                           (h-power   0)
     165                           (m-tau     (tau_n))
     166                           (m-inf     (n_inf))
     167                           ))
     168                         )
     169
     170              (component (type permeating-ion) (name k)
     171                         (const e_KM = -95)
     172                         (output e_KM))
     173
     174              (component (type pore)
     175                         (const  gbar_KM  = 1e-6)
     176                         (output gbar_KM))
     177              )
     178
     179             
     180
    100181   (component (type ionic-current) (name Na)
    101182
    102183              (component (type gate)
     184
     185                        (const tadj = (pow (3.0 ((celsius-36) / 10 ))))
     186
    103187                         ;; rate functions
    104 
    105                          (fun amf (v)   (0.1  *  ((v + 40) / (1.0 - (exp ((neg (v + 40)) / 10))))))
    106                          (fun bmf (v)   (4.0  *  (exp ((neg (v + 65)) / 18))))
    107                          (fun ahf (v)   (0.07 *  (exp ((neg (v + 65)) / 20))))
    108                          (fun bhf (v)   (1.0  /  (1.0 + (exp ((neg (v + 35)) / 10)))))
    109 
    110                          (hh-ionic-gate
    111                           (Na  ;; ion name: exported variables will be of the form {ion}_{id}
    112                            (initial-m (amf (Vrest) / (amf (Vrest) + bmf (Vrest))) )
    113                            (initial-h (ahf (Vrest) / (ahf (Vrest) + bhf (Vrest))) )
    114                            (m-power   3)
    115                            (h-power   1)
    116                            (m-alpha   (amf (v)))
    117                            (h-alpha   (ahf (v)))
    118                            (m-beta    (bmf (v)))
    119                            (h-beta    (bhf (v)))))
    120                          )
     188                         
     189                        (v2 = (v - vtraub)) ;; convert to traub convention
     190
     191                        (a_m = (0.32 * vtrap (13 - v2 ~ 4)))
     192                        (b_m = (0.28 * vtrap (v2 - 40 ~ 5)))
     193                        (tau_m = (1 / (a_m + b_m) / tadj))
     194                        (m_inf = (a_m / (a_m + b_m)))
     195
     196                        (a_h   = (0.128 * exp1 ((17 - v2) / 18)))
     197                        (b_h   = (4 / ( 1 + exp1 ((40 - v2) / 5) )))
     198                        (tau_h = (1 / (a_h + b_h) / tadj))
     199                        (h_inf = (a_h / (a_h + b_h)))
     200
     201                        (hh-ionic-gate
     202                         (Na  ;; ion name: exported variables will be of the form {ion}_{id}
     203                          (initial-m (m_inf))
     204                          (initial-h (h_inf))
     205
     206                          (m-power   3)
     207                          (h-power   1)
     208                          (m-tau     (tau_m))
     209                          (h-tau     (tau_h))
     210                          (m-inf     (m_inf))
     211                          (h-inf     (h_inf))
     212                        ))
     213                        )
    121214
    122215              (component (type permeating-ion) (name na)
     
    125218
    126219              (component (type pore)
    127                          (const  gbar_Na  = 0.12)
     220                         (const  gbar_Na  = 0.1)
    128221                         (output gbar_Na))
    129222              )
     
    133226
    134227              (component (type gate)
    135                    
     228
     229                        (const tadj = (pow (3.0 ((celsius-36) / 10 ))))
     230
    136231                         ;; rate functions
    137                          (fun anf (v)   (0.01  * ((v + 55) / (1 - (exp ((neg (v + 55)) / 10))))))
    138                          (fun bnf (v)   (0.125 * (exp ((neg (v + 65)) / 80))))
    139            
    140             hh-ionic-gate
    141              K  ;; ion name
    142               initial-m (anf (Vrest) / (anf (Vrest) + bnf (Vrest)))
    143               m-power 4
    144               h-power 0 ;; h-power is 0, therefore h further declarations are omitted
    145               m-alpha (anf (v))
    146               m-beta  (bnf (v))
    147 
    148 
    149          component (type pore)
    150             const   gbar_K   = 0.036
    151             output  gbar_K
    152 
    153          component (type permeating-ion) (name k)
    154                     const e_K = -77
    155                     output e_K
    156 
     232                         
     233                        (v2 = (v - vtraub)) ;; convert to traub convention
     234
     235                        (a_n   = (0.032 * vtrap (15 - v2 ~ 5)))
     236                        (b_n   = (0.5 * exp1 ((10 - v2) / 40)))
     237                        (tau_n = (1 / (a_n + b_n) / tadj))
     238                        (n_inf = (a_n / (a_n + b_n)))
     239
     240                        (hh-ionic-gate
     241                         (K  ;; ion name: exported variables will be of the form {ion}_{id}
     242                          (initial-m (n_inf))
     243
     244                          (m-power   4)
     245                          (h-power   0)
     246                          (m-tau     (tau_n))
     247                          (m-inf     (n_inf))
     248                        ))
     249                        )
     250
     251              (component (type permeating-ion) (name k)
     252                         (const e_K = -95)
     253                         (output e_K))
     254
     255              (component (type pore)
     256                         (const  gbar_K  = 0.01)
     257                         (output gbar_K))
     258              )
    157259
    158260     
     
    160262             
    161263              (component (type pore)
    162                          (const  gbar  = (21e-6))
     264                         (const  gbar  = (0.001))
    163265                         (output gbar))
    164266             
    165267              (component (type permeating-ion) (name non-specific)
    166                          (const e = -55)
     268                         (const e = -70)
    167269                         (output e ))
    168270             
Note: See TracChangeset for help on using the changeset viewer.