source: project/release/3/nemo/trunk/examples/AKP06/PotIhCa.scm @ 11977

Last change on this file since 11977 was 11977, checked in by Ivan Raikov, 12 years ago

Bug fixes.

File size: 7.7 KB
Line 
1;;  -*- Hen -*-
2
3(nemo-model PotIhCa
4            ((input v  cai cao)
5             
6             (const Vrest   = -68)
7             (const diam    = 20)
8             (const celsius = 24)
9             
10             (const temp_adj = (pow 3 (/ (- celsius 22) 10)))
11             
12             (defun ghk (v celsius ci co)
13               (let ((F 96485.0) (R 8.3145))
14                 (let ((zeta (/ (* 2e-3 F v) (* R (+ 273.19 celsius)))))
15                   (if (< (abs (- 1.0 (exp (neg zeta)))) 1e-6)
16                       (* 1e-6  (* 2 F) (- ci (* co (exp (neg zeta)))) (+ 1.0 (/ zeta 2)))
17                       (/ (* 1e-6 (* 2 zeta F) (- ci (* co (exp (neg zeta))))) (- 1.0 (exp (neg zeta))))))))
18             
19             
20             (component (type ion-channel) ;; Kv1 current
21                       
22                        (component (type gate)
23                                   
24                                   ;; rate functions
25                                   (const cma  = 0.12889)
26                                   (const cka  = -33.90877)
27                                   (const cva  = 45)
28                                   
29                                   (defun Kv1_amf (v cma cva cka temp_adj) (* temp_adj cma (exp (neg (/ (+ v cva) cka)))))
30                                   
31                                   (const cmb   = 0.12889)
32                                   (const ckb   = 12.42101)
33                                   (const cvb   = 45)
34                                   (defun Kv1_bmf (v cmb cvb ckb temp_adj) (* temp_adj cmb (exp (neg (/ (+ v cvb) ckb)))))
35                                   
36                                   (hh-ionic-conductance 
37                                    (Kv1  ;; ion name: exported variables will be of the form {ion}_{id}
38                                     (initial-m (/ (Kv1_amf Vrest cma cva cka temp_adj)
39                                                   (+ (Kv1_amf Vrest cma cva cka temp_adj)
40                                                      (Kv1_bmf Vrest cmb cvb ckb temp_adj))))
41                                     (m-power   4)
42                                     (h-power   0)
43                                     (m-alpha   (Kv1_amf v cma cva cka temp_adj) )
44                                     (m-beta    (Kv1_bmf v cmb cvb ckb temp_adj) )))
45                                   
46                                   )
47                       
48                        (component (type pore)
49                                   (const  gbar_Kv1  = 0.011)
50                                   (output gbar_Kv1 ))
51                       
52                        (component (type permeating-substance) (name k)
53                                   (const e_Kv1 = -85)
54                                   (output e_Kv1 ))
55                       
56                        ) ;; end Kv1 current
57             
58             
59             (component (type ion-channel) ;; Kv4 current
60
61                        (component (type gate)
62                                   
63                                   ;; rate functions
64                                   
65                                   (const can   = 0.15743)
66                                   (const ckan  = -32.19976)
67                                   (const cvan  = 57)
68                                   
69                                   (defun Kv4_amf (v can cvan ckan temp_adj) 
70                                     (* temp_adj can (exp (neg (/ (+ v cvan) ckan)))))
71                                   
72                                   (const  cbn   = 0.15743)
73                                   (const  ckbn  = 37.51346)
74                                   (const  cvbn  = 57)
75
76            (defun Kv4_bmf (v cbn cvbn ckbn temp_adj)  (* temp_adj cbn (exp (neg (/ (+ v cvbn) ckbn)))))
77
78            (const cah   = 0.01342)
79            (const ckah  = -7.86476)
80            (const cvah  = 60)
81
82            (defun Kv4_ahf (v cah cvah ckah temp_adj)  (* temp_adj (/ cah (+ 1.0 (exp (neg (/ (+ v cvah) ckah)))))))
83
84            (const  cbh   = 0.04477)
85            (const  ckbh  = 11.3615)
86            (const  cvbh  = 54)
87
88            (defun Kv4_bhf (v cbh cvbh ckbh temp_adj)  (* temp_adj (/ cbh (+ 1.0 (exp (neg (/ (+ v cvbh) ckbh)))))))
89
90
91            (hh-ionic-conductance 
92             (Kv4  ;; ion name: exported variables will be of the form {ion}_{id}
93              (initial-m (/ (Kv4_amf Vrest can cvan ckan temp_adj)
94                            (+ (Kv4_amf Vrest can cvan ckan temp_adj)
95                               (Kv4_bmf Vrest cbn cvbn ckbn temp_adj))))
96              (initial-h (/ (Kv4_ahf Vrest cah cvh ckah temp_adj) 
97                            (+ (Kv4_ahf Vrest cah cvh ckah temp_adj) 
98                               (Kv4_bhf Vrest cbh cvbh ckbh temp_adj))) ) 
99              (m-power   4)
100              (h-power   1)
101              (m-alpha   (Kv4_amf v can cvan ckan temp_adj))
102              (m-beta    (Kv4_bmf v cbn cvbn ckbn temp_adj))
103              (h-alpha   (Kv4_ahf v cah cvh ckah temp_adj))
104              (h-beta    (Kv4_bhf v cbh cvbh ckbh temp_adj))
105              ))
106             
107            )
108
109         (component (type pore)
110            (const  gbar_Kv4  = 0.0039)
111            (output gbar_Kv4 ))
112
113         (component (type permeating-substance) (name k)
114           (const e_Kv4 = -85)
115           (output e_Kv4 ))
116
117         ) ;; end Kv4 current
118
119
120       (component (type ion-channel) ;; Ih current
121
122         (component (type gate)
123                 
124            ;; rate functions
125
126            (const cvn =  90.1)
127            (const ckn =  -9.9)
128            (defun Ih_inf (v cvn ckn)   (/ 1.0 (+ 1.0 (exp (neg (/ (+ v cvn) ckn) )))))
129           
130            (const cct = 190)
131            (const cat = 720)
132            (const cvt = 81.5)
133            (const ckt = 11.9)
134
135            (defun Ih_tau (v cct cat cvt ckt temp_adj)   
136              (/ (+ cct (* cat (exp (neg (pow (/ (+ v cvt) ckt) 2))))) temp_adj))
137
138            (hh-ionic-conductance 
139             (Ih  ;; ion name: exported variables will be of the form {ion}_{id}
140              (initial-m (Ih_inf Vrest cvn ckn))
141              (m-power   1)
142              (h-power   0)
143              (m-inf     (Ih_inf v cvn ckn))
144              (m-tau     (Ih_tau v cct cat cvt ckt temp_adj))
145              ))
146             
147            )
148
149         (component (type pore)
150            (const  gbar_Ih  = 0.2)
151            (output gbar_Ih ))
152
153         (component (type permeating-substance) (name non-specific)
154           (const e_Ih = -30)
155           (output e_Ih ))
156
157         ) ;; end Ih current
158
159       (component (type ion-channel) ;; CaP current
160
161         (component (type gate)
162                 
163            ;; rate functions
164
165            (const cv = 19)
166            (const ck = 5.5)
167
168            (defun CaP_inf (v cv ck)  (/ 1.0 (+ 1.0 (exp (neg (/ (+ v cv) ck))))))
169
170            (defun CaP_tau (v temp_adj) 
171              (/ (if (> v -50) (* 1e3 (+ 0.000191 (* 0.00376 (pow (exp (neg (/ (+ v 41.9) 27.8)))  2))))
172                     (* 1e3 (+ 0.00026367 (* 0.1278 (exp (* 0.10327 v)))))) temp_adj))
173
174            (hh-ionic-conductance 
175             (CaP  ;; ion name: exported variables will be of the form {ion}_{id}
176              (initial-m  (CaP_inf Vrest cv ck))
177              (m-power    1)
178              (h-power    0)
179              (m-inf      (CaP_inf v cv ck))
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
193
194
195       (component (type ion-channel) ;; BK current
196
197         (component (type gate)
198                 
199            ;; rate functions
200
201            (const zhalf = 0.001)
202            (defun CaBK_zinf (ca zhalf)  (/ 1 (+ 1 (/ zhalf ca))))
203            (const CaBK_ztau = (/ 1.0 temp_adj))
204
205            (const cvm = 28.9)
206            (const ckm = 6.2)
207            (defun CaBK_minf (v cvm ckm temp_adj)
208              (/ (/ 1.0 (+ 1.0 (exp (neg (/ (+ v 5.0 cvm) ckm)))))
209                 temp_adj))
210           
211            (const ctm    = 0.000505)
212            (const cvtm1  = 86.4)
213            (const cktm1  = -10.1)
214            (const cvtm2  = -33.3)
215            (const cktm2  = 10)
216            (defun CaBK_mtau (v ctm cvtm1 cktm1 cvtm2 cktm2 temp_adj)
217              (/ (+ ctm (/ 1.0 (+ (exp (neg (/ (+ v 5.0 cvtm1) cktm1))) 
218                                  (exp (neg (/ (+ v 5.0 cvtm2) cktm2))))))
219                 temp_adj))
220           
221            (const ch   = 0.085)
222            (const cvh  = 32)
223            (const ckh  = -5.8)
224            (defun CaBK_hinf (v ch cvh ckh temp_adj) 
225              (/ (+ ch (/ (- 1.0 ch) (+ 1.0 (exp (neg (/ (+ v 5.0 cvh) ckh))))))
226                 temp_adj))
227
228            (const cth    = 0.0019)
229            (const cvth1  = 48.5)
230            (const ckth1  = -5.2)
231            (const cvth2  = -54.2)
232            (const ckth2  = 12.9)
233            (defun CaBK_htau (v cth ckth1 ckth2 cvth1 cvth2 temp_adj)
234              (/ (+ cth (/ 1.0 ( + (exp (- (/ (+ v cvth1) ckth1))) 
235                                   (exp (- (/ (+ v cvth2) ckth2))))))
236                 temp_adj))
237           
238           
239            (state-complex (CaBK_z (transitions (-> zC zO  (/ (CaBK_zinf cai zhalf) CaBK_ztau))
240                                                (-> zO zC  (/ (- 1 (CaBK_zinf cai zhalf)) CaBK_ztau)))
241                                   (initial   (CaBK_zinf 1e-4 zhalf))
242                                   (open zO)  (power 2)))
243           
244            (output CaBK_z ) 
245
246           
247            (hh-ionic-conductance 
248             (CaBK  ;; ion name: exported variables will be of the form {ion}_{id}
249              (initial-m  (CaBK_minf Vrest cvm ckm temp_adj ))
250              (initial-h  (CaBK_hinf Vrest ch cvh ckh temp_adj ))
251              (m-power    3)
252              (h-power    1)
253              (m-inf      (CaBK_minf v cvm ckm temp_adj) )
254              (m-tau      (CaBK_mtau v ctm cvtm1 cktm1 cvtm2 cktm2 temp_adj) )
255              (h-inf      (CaBK_hinf v ch cvh ckh temp_adj) )
256              (h-tau      (CaBK_htau v cth cvth1 ckth1 cvth2 cvth2 temp_adj) )))
257
258            )
259
260         (component (type pore)
261            (const  gbar_CaBK  = 0.014)
262            (output gbar_CaBK ))
263
264         (component (type permeating-substance) (name k)
265           (const e_CaBK = -85)
266           (output e_CaBK ))
267
268         ) ;; end BK current
269
270
271
272       )) ;; end model
Note: See TracBrowser for help on using the repository browser.