Changeset 12708 in project


Ignore:
Timestamp:
12/02/08 05:55:30 (11 years ago)
Author:
Ivan Raikov
Message:

Converted superstrate example to nemo format.

Location:
release/3/nemo/trunk/examples
Files:
1 edited
1 moved

Legend:

Unmodified
Added
Removed
  • release/3/nemo/trunk/examples/hh-substrate.nemo

    r12685 r12708  
    3838                              (conserve (1 = (C + O)))
    3939                              (open O)  (power 3)))
    40 
    41 
    4240           
    4341            ;; the value of state complex h is determined by state h1 (open state)
  • release/3/nemo/trunk/examples/hh-superstrate.nemo

    r12707 r12708  
    1010;;
    1111
    12 (require-extension nemo-macros)
    13 (require-extension nemo-nmodl)
    14 (require-extension nemo-hh)
    15 
    16 (define hodgkin-huxley
    17   (nemo-model hodgkin-huxley
     12(nemo-model hodgkin-huxley
    1813      ((input v)
    1914
    2015       (const Vrest = -65)
    2116
    22        (component (type ion-channel)
     17       (component (type membrane-capacitance)
     18           (const C = 1)
     19           (output C))
     20
     21       (component (type ion-channel) (name Na)
    2322         (component (type gate)
    2423                 
    2524            ;; rate functions
    26             (defun amf (v)   (* 0.1    (/ (+ v 40)  (- 1.0 (exp (/ (neg (+ v 40)) 10))))))
    27             (defun bmf (v)   (* 4.0    (exp (/ (neg (+ v 65)) 18))))
    28             (defun ahf (v)   (* 0.07   (exp (/ (neg (+ v 65)) 20))))
    29             (defun bhf (v)   (/ 1.0    (+ 1.0 (exp (/ (neg (+ v 35)) 10)))))
    30            
     25            (defun amf (v)   (0.1  *  ((v + 40) / (1.0 - (exp ((neg (v + 40)) / 10))))))
     26            (defun bmf (v)   (4.0  *  (exp ((neg (v + 65)) / 18))))
     27            (defun ahf (v)   (0.07 *  (exp ((neg (v + 65)) / 20))))
     28            (defun bhf (v)   (1.0  /  (1.0 + (exp ((neg (v + 35)) / 10)))))
     29
    3130            (hh-ionic-conductance
    3231             (Na  ;; ion name: exported variables will be of the form {ion}_{id}
    33               (initial-m (/ (amf Vrest) (+ (amf Vrest) (bmf Vrest))) )
    34               (initial-h (/ (ahf Vrest) (+ (ahf Vrest) (bhf Vrest))) )
     32              (initial-m (amf (Vrest) / (amf (Vrest) + bmf (Vrest))) )
     33              (initial-h (ahf (Vrest) / (ahf (Vrest) + bhf (Vrest))) )
    3534              (m-power   3)
    3635              (h-power   1)
    37               (m-alpha   (amf v))
    38               (h-alpha   (ahf v))
    39               (m-beta    (bmf v))
    40               (h-beta    (bhf v))))
     36              (m-alpha   (amf (v)))
     37              (h-alpha   (ahf (v)))
     38              (m-beta    (bmf (v)))
     39              (h-beta    (bhf (v)))))
    4140
    4241            ;; state definitions exported by this component: Na_m Na_h
     
    4443
    4544         (component (type pore)
    46             (const  gbar_Na  = 120)
    47             (output gbar_Na )
    48             )
     45                    (const  gbar_Na  = 120)
     46                    (output gbar_Na ) )
     47
     48         (component (type permeating-substance) (name na)
     49                    (const e_Na = 50)
     50                    (output e_Na ))
    4951         
    5052         )
    5153
    52        (component (type ion-channel)
    53          (component (type gates)
     54       (component (type ion-channel) (name K)
     55
     56         (component (type gate)
    5457                   
    5558            ;; rate functions
    56             (defun anf (v)   (* 0.01   (/ (+ v 55) (- 1 (exp (/ (neg (+ v 55)) 10))))))
    57             (defun bnf (v)   (* 0.125  (exp (/ (neg (+ v 65)) 80))))
     59            (defun anf (v)   (0.01  * ((v + 55) / (1 - (exp ((neg (v + 55)) / 10))))))
     60            (defun bnf (v)   (0.125 * (exp ((neg (v + 65)) / 80))))
    5861           
    59 
    6062            (hh-ionic-conductance
    6163             (K  ;; ion name
    62               (initial-m (/ (anf Vrest) (+ (anf Vrest) (bnf Vrest))) )
     64              (initial-m (anf (Vrest) / (anf (Vrest) + bnf (Vrest))) )
    6365              (m-power 4)
    6466              (h-power 0) ;; h-power is 0, therefore h further declarations are omitted
    65               (m-alpha (anf v))
    66               (m-beta  (bnf v))))
     67              (m-alpha (anf (v)))
     68              (m-beta  (bnf (v)))))
    6769
    6870            ;; state definitions exported by this component: K_m K_h
     
    7476            (output  gbar_K )
    7577          )
    76          ))
    7778
     79         (component (type permeating-substance) (name k)
     80                    (const e_K = -77)
     81                    (output e_K ))
    7882
    79       (let ((hh1 (nemo:hh-transformer hodgkin-huxley)))
    80         (print ((nemo 'depgraph*) hh1))
    81         (print ((nemo 'exports) hh1))
    82         (print ((nemo 'imports) hh1))
    83         (for-each (lambda (x)
    84                     (print x ": " ((nemo 'component-exports) hh1 (second x))))
    85                   ((nemo 'components) hh1))
    86         (nemo:nmodl-translator hh1))
    87       )
    88   )
     83         )
     84       
     85       (component (type ion-channel) (name Leak)
     86                 
     87                  (component (type pore)
     88                             (const  gbar_Leak  = 0.3)
     89                             (output gbar_Leak ))
     90                 
     91              (component (type permeating-substance) (name non-specific)
     92                         (const e_Leak = -54.4)
     93                         (output e_Leak ))
     94             
     95              ) ;; end leak current
     96
     97      ))
Note: See TracChangeset for help on using the changeset viewer.