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

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

Added example with infix arithmetic expressions.

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