source: project/release/3/nemo/trunk/examples/hh-substrate.scm @ 11846

Last change on this file since 11846 was 11846, checked in by Ivan Raikov, 13 years ago

Renaming examples.

File size: 2.9 KB
Line 
1;;  -*- Hen -*-
2
3;;
4;; This model is used to calculate the channel conductance assuming
5;; some initial state. The calculation is based on sodium ion flow,
6;; potassium ion flow and leakage ion flow. (Hodgkin, A. L. and Huxley,
7;; A. F. (1952) "A Quantitative Description of Membrane Current and its
8;; Application to Conduction and Excitation in Nerve" Journal of
9;; Physiology 117: 500-544)
10;;
11
12(require-extension nemo-macros)
13(require-extension nemo-nmodl)
14
15(define hodgkin-huxley
16  (nemo-model hodgkin-huxley
17      ((input v)
18
19       (const Vrest = -65)
20
21       (component (type ion-channel)
22         (component (type gate)
23                 
24            ;; rate functions
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           
30            ;; model states
31           
32            ;; the value of state complex m is determined by state m1 (open state)
33            ;;
34            ;; each statement in the transitions block is of the form (-> SRC DEST RATE)
35            ;;
36            (state-complex (m (transitions (-> mC mO (amf v)) (-> mO mC (bmf v)) )
37                              (initial (/ (amf Vrest) (+ (amf Vrest) (bmf Vrest))) ) 
38                              (open mO)  (power 3)))
39           
40            ;; the value of state complex h is determined by state h1 (open state)
41            (state-complex (h (transitions (-> hC hO (ahf v)) (-> hO hC (bhf v)) )
42                              (initial (/ (ahf Vrest) (+ (ahf Vrest) (bhf Vrest))) ) 
43                              (open hO)))
44           
45            ;; state definitions exported by this model
46            (output m h ) 
47            )
48
49         (component (type pore)
50            (const gbar_Na  = 120)
51            (output gbar_Na )
52            )
53         
54         )
55
56       (component (type ion-channel)
57         (component (type gates)
58                   
59            ;; rate functions
60            (defun anf (v)   (* 0.01   (/ (+ v 55) (- 1 (exp (/ (neg (+ v 55)) 10))))))
61            (defun bnf (v)   (* 0.125  (exp (/ (neg (+ v 65)) 80))))
62           
63            ;; model states
64           
65            ;; the value of state complex m is determined by state m1 (open state)
66            ;;
67            ;; each statement in the transitions block is of the form (-> SRC DEST RATE)
68            ;;
69            ;; the value of state complex n is determined by state n1 (open state)
70            (state-complex (n (transitions (-> nC nO (anf v)) (-> nO nC (bnf v)))
71                              (initial (/ (anf Vrest) (+ (anf Vrest) (bnf Vrest))) ) 
72                              (open nO)  (power 4)))
73           
74            ;; state definitions exported by this model
75            (output n)
76            )
77
78         (component (type pore)
79            (const gbar_K   = 36)
80            (output gbar_K )
81          )
82         ))
83
84      (print ((nemo 'depgraph*) hodgkin-huxley))
85      (print ((nemo 'exports) hodgkin-huxley))
86      (print ((nemo 'imports) hodgkin-huxley))
87      (for-each (lambda (x) 
88                  (print x ": " ((nemo 'component-exports) hodgkin-huxley x)))
89                ((nemo 'components) hodgkin-huxley))
90
91      (nemo:nmodl-translator hodgkin-huxley)
92      )
93  )
Note: See TracBrowser for help on using the repository browser.