Changeset 11996 in project


Ignore:
Timestamp:
09/25/08 09:56:46 (12 years ago)
Author:
Ivan Raikov
Message:

Added some useful shortcuts for tau/inf to alpha/beta conversion.

Location:
release/3/nemo/trunk
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • release/3/nemo/trunk/examples/AKP06/PotIhCa.scm

    r11995 r11996  
    116116                        ) ;; end Kv4 current
    117117             
     118
    118119             
    119120             (component (type ion-channel) (name Ih)
     
    141142                                     (h-power   0)
    142143                                     (m-inf     (Ih_inf v))
    143                                      (m-tau     (/ temp_adj (Ih_tau v)))
     144                                     (m-tau     (/ (Ih_tau v) temp_adj))
    144145                                     ))
    145146                                   
     
    147148
    148149                        (component (type pore)
    149                                    (const  gbar_Ih  = 0.2)
     150                                   (const  gbar_Ih  = 0.0002)
    150151                                   (output gbar_Ih ))
    151152                       
     
    156157                        ) ;; end Ih current
    157158
    158              (component (type ion-channel) (name CaP)
    159                        
    160                         (component (type gate)
    161                                    
    162                                    ;; rate functions
    163                                    (defun CaP_inf (v) 
    164                                      (let ((cv  19)
    165                                            (ck  5.5))
    166                                        (/ 1.0 (+ 1.0 (exp (neg (/ (+ v cv) ck)))))))
    167                                    
    168                                    (defun CaP_tau (v temp_adj
    169                                      (if (> v -50)
    170                                          (* 1e3 (+ 0.000191 (* 0.00376 (pow (exp (neg (/ (+ v 41.9) 27.8)))  2))))
    171                                          (* 1e3 (+ 0.00026367 (* 0.1278 (exp (* 0.10327 v)))))))
    172 
    173                                    (hh-ionic-conductance
    174                                     (CaP  ;; ion name: exported variables will be of the form {ion}_{id}
    175                                      (initial-m  (CaP_inf Vrest))
    176                                      (m-power    1)
    177                                      (h-power    0)
    178                                      (m-inf      (CaP_inf v))
    179                                      (m-tau      (/ (CaP_tau v) temp_adj))))
    180                                    
    181                                    )
    182 
    183                         (component (type pore)
    184                                    (const gmax_CaP  = 0.01667)
    185                                    (gbar_CaP = (* gmax_CaP (ghk v celsius cai cao)))
    186                                    (output gbar_CaP ))
    187                        
    188                         (component (type accumulating-substance) (name ca) )
    189                        
    190                        
    191                         ) ;; end CaP current
     159;;           (component (type ion-channel) (name CaP)
     160                       
     161;;                      (component (type gate)
     162                                   
     163;;                                 ;; rate functions
     164;;                                 (defun CaP_inf (v) 
     165;;                                   (let ((cv  19)
     166;;                                         (ck  5.5))
     167;;                                     (/ 1.0 (+ 1.0 (exp (neg (/ (+ v cv) ck)))))))
     168                                   
     169;;                                 (defun CaP_tau (v
     170;;                                   (if (> v -50)
     171;;                                       (* 1e3 (+ 0.000191 (* 0.00376 (pow (exp (neg (/ (+ v 41.9) 27.8)))  2))))
     172;;                                       (* 1e3 (+ 0.00026367 (* 0.1278 (exp (* 0.10327 v)))))))
     173
     174;;                                 (hh-ionic-conductance
     175;;                                  (CaP  ;; ion name: exported variables will be of the form {ion}_{id}
     176;;                                   (initial-m  (CaP_inf Vrest))
     177;;                                   (m-power    1)
     178;;                                   (h-power    0)
     179;;                                   (m-inf      (CaP_inf v))
     180;;                                   (m-tau      (/ (CaP_tau v) temp_adj))))
     181                                   
     182;;                                 )
     183
     184;;                      (component (type pore)
     185;;                                 (const gmax_CaP  = 0.01667)
     186;;                                 (gbar_CaP = (* gmax_CaP (ghk v celsius cai cao)))
     187;;                                 (output gbar_CaP ))
     188                       
     189;;                      (component (type accumulating-substance) (name ca) )
     190                       
     191                       
     192;;                      ) ;; end CaP current
    192193
    193194             
     
    268269             
    269270             
    270              )) ;; end model
     271             )) ;; end model
  • release/3/nemo/trunk/examples/AKP06/morphology_mechanisms.hoc

    r11848 r11996  
    1616//insert CaBK
    1717insert Caint
    18 //insert CaP
     18insert CaP
    1919//insert Ih
    2020insert leak
     21insert PotIhCa
    2122
    22 insert PotIhCa
    2323soma.ena = 60   // (mV)
    2424soma.ek = -88   // (mV)
     25//soma.eh_Ih = -30
     26soma.e_Ih_PotIhCa = -30
    2527soma.e_leak = -61
    2628soma.cao = 2   // (mM)
    27 soma.e_Ih_PotIhCa = -30
    28 //soma.e_Ih = -30
    29 
     29     
    3030soma.gmax_Narsg = 0.016     // (mho/cm2)
    3131soma.gmax_Na = 0.014
     32//soma.gbar_Kv1 = 0.011
     33soma.gbar_Kv1_PotIhCa = 0.011
     34//soma.gbar_Kv4 = 0.0039
     35soma.gbar_Kv4_PotIhCa = 0.0039
    3236soma.gmax_Kbin = 0.0016
     37//soma.gkbar_CaBK = 0.014
     38soma.gbar_CaBK_PotIhCa = 0.014
     39soma.pcabar_CaP = 0.00006
     40//soma.gmax_CaP_PotIhCa = 0.06
     41//soma.ghbar_Ih = 0.0002
     42soma.gbar_Ih_PotIhCa = 0.0002
    3343soma.gbar_leak = 9e-5
    34 
    35 soma.gbar_Kv1_PotIhCa = 0.011
    36 soma.gbar_Kv4_PotIhCa = 0.0039
    37 //soma.gmax_Kv4 = 0.0039
    38 soma.gbar_Ih_PotIhCa  = 0.0002
    39 //soma.gmax_Ih  = 0.0002
    40 soma.gmax_CaP_PotIhCa = 0.06
    41 //soma.gmax_CaP = 0.06
    42 
    43 soma.gbar_CaBK_PotIhCa = 0.014
    44 //soma.gmax_CaBK = 0.014
  • release/3/nemo/trunk/extensions/nemo-hh.scm

    r11995 r11996  
    9595                   (m-inf      (lookup-field 'm-inf alst))
    9696                   (m-tau      (lookup-field 'm-tau alst))
    97                    (m-alpha    (or (lookup-field 'm-alpha alst)  `(/ ,m-inf ,m-tau)))
    98                    (m-beta     (or (lookup-field 'm-beta alst)   `(/ (- 1 ,m-inf) ,m-tau)))
     97                   (m-inf-sym  (p$ ion 'm-inf))
     98                   (m-tau-sym  (p$ ion 'm-tau))
     99                   (m-alpha    (or (lookup-field 'm-alpha alst)  `(/ ,m-inf-sym ,m-tau-sym)))
     100                   (m-beta     (or (lookup-field 'm-beta alst)   `(/ (- 1 ,m-inf-sym) ,m-tau-sym)))
    99101                   (open       (p$ ion 'mO))
    100102                   (closed     (p$ ion 'mC))
     
    102104                                 (transitions (-> ,closed ,open ,m-alpha)
    103105                                              (-> ,open ,closed ,m-beta)))))
     106              (if m-inf (env-extend! m-inf-sym '(asgn) 'none `(rhs ,m-inf)))
     107              (if m-tau (env-extend! m-tau-sym '(asgn) 'none `(rhs ,m-tau)))
    104108              (apply env-extend! (cons* (p$ ion 'm) '(tscomp) initial-m mst))
    105109              (add-external! (p$ ion 'm) 'output)
  • release/3/nemo/trunk/nemo.scm

    r11995 r11996  
    168168
    169169(define (model->nmodl options model)
    170   (nemo:nmodl-translator model (lookup-def 'nmodl-method options) (lookup-def 'table options) -150 150 1))
     170  (nemo:nmodl-translator model (lookup-def 'method options) (lookup-def 'table options) -150 150 1))
    171171
    172172
  • release/3/nemo/trunk/nmodl.scm

    r11995 r11996  
    178178(define (bind ks vs e) `(let ,(zip ks vs) ,e))
    179179
     180(define (name-normalize expr)
     181  (match expr
     182         (('if c t e)  `(if ,(name-normalize c) ,(name-normalize t) ,(name-normalize e)))
     183         (('let bs e)
     184          `(let ,(map (lambda (b) `(,(car b) ,(name-normalize (cadr b)))) bs) ,(name-normalize e)))
     185         ((f . es)
     186          (cons f (map name-normalize es)))
     187         ((? symbol? ) (nmodl-name expr))
     188         ((? atom? ) expr)))
    180189
    181190(define (if-convert expr)
     
    230239    (let* ((expr1 (if-convert expr))
    231240           (expr2 (subst-convert expr1 subst-empty))
    232            (expr3 (let-lift expr2)))
    233       expr3)))
     241           (expr3 (let-lift expr2))
     242           (expr4 (name-normalize expr3)))
     243      expr4)))
    234244
    235245(define (format-expr/NMODL indent expr . rest) 
     
    607617                                  (map second acc-ions) (map fourth acc-ions)))
    608618                  (asgns1 (delete-duplicates asgns0)))
    609              (for-each (lambda (x) (pp indent+ ,x)) asgns1)
     619             (for-each (lambda (x) (pp indent+ ,(nmodl-name x))) asgns1)
    610620             (pp indent "}")
    611621             
     
    616626                     (if (not (null? locals)) (pp indent+ (LOCAL ,(sl\ ", " locals)))))
    617627                   (for-each (lambda (def)
    618                                (let ((n (first def))
     628                               (let ((n (nmodl-name (first def)) )
    619629                                     (b (second def)))
    620630                                 (pp indent+ ,(expr->string/NMODL b n)))) asgn-eq-defs)
Note: See TracChangeset for help on using the changeset viewer.