source: project/release/3/nemo/trunk/examples/AKP06/Narsg.nemo @ 12367

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

Added support for conservation equations and updated AKP model accordingly.

File size: 5.0 KB
Line 
1(nemo-model Narsg
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     (component (type ion-channel) (name Narsg)
11               
12                (component (type gate)
13                           
14                   (const Con   = 0.005)
15                   (const Coff  = 0.5)
16                   (const Oon   = 0.75)
17                   (const Ooff  = 0.005)
18
19                   (const Narsg_alfac = (pow ((Oon / Con) (1.0 / 4.0))))
20                   (const Narsg_btfac = (pow ((Ooff / Coff) (1.0 / 4.0))))
21                   
22                   (const Narsg_alpha = 150)
23                   (const Narsg_beta  = 3)
24                   (const Narsg_gamma = 150)
25                   (const Narsg_delta = 40)
26                   (const Narsg_epsilon = 1.75)
27                   (const Narsg_zeta = 0.03)
28                   (const Narsg_x1 = 20)
29                   (const Narsg_x2 = -20)
30                   (const Narsg_x3 = 1000000000000.0)
31                   (const Narsg_x4 = -1000000000000.0)
32                   (const Narsg_x5 = 1000000000000.0)
33                   (const Narsg_x6 = -25)
34
35                   ;; rate functions
36                   (f01 = (4.0 * Narsg_alpha * exp (v / Narsg_x1) * temp_adj))
37                   (f02 = (3.0 * Narsg_alpha * exp (v / Narsg_x1) * temp_adj))
38                   (f03 = (2.0 * Narsg_alpha * exp (v / Narsg_x1) * temp_adj))
39                   (f04 = (Narsg_alpha * exp (v / Narsg_x1) * temp_adj))
40                   (f0O = (Narsg_gamma * exp (v / Narsg_x3) * temp_adj))
41                   (fip = (Narsg_epsilon * exp (v / Narsg_x5) * temp_adj))
42                   (f11 = (4.0 * Narsg_alpha * Narsg_alfac * exp (v / Narsg_x1) * temp_adj))
43                   (f12 = (3.0 * Narsg_alpha * Narsg_alfac * exp (v / Narsg_x1) * temp_adj))
44                   (f13 = (2.0 * Narsg_alpha * Narsg_alfac * exp (v / Narsg_x1) * temp_adj))
45                   (f14 = (Narsg_alpha * Narsg_alfac * exp (v / Narsg_x1) * temp_adj))
46                   (f1n = (Narsg_gamma * exp (v / Narsg_x3) * temp_adj))
47                   
48                   (fi1 = (Con * temp_adj))
49                   (fi2 = (Con * Narsg_alfac * temp_adj))
50                   (fi3 = (Con * Narsg_alfac * Narsg_alfac * temp_adj))
51                   (fi4 = (Con * Narsg_alfac * Narsg_alfac * Narsg_alfac * temp_adj))
52                   (fi5 = (Con * Narsg_alfac * Narsg_alfac * Narsg_alfac * Narsg_alfac * temp_adj))
53                   (fin = (Oon * temp_adj))
54                   
55                   (b01 = (Narsg_beta * exp (v / Narsg_x2) * temp_adj))
56                   (b02 = (2.0 * Narsg_beta * exp (v / Narsg_x2) * temp_adj))
57                   (b03 = (3.0 * Narsg_beta * exp (v / Narsg_x2) * temp_adj))
58                   (b04 = (4.0 * Narsg_beta * exp (v / Narsg_x2) * temp_adj))
59                   (b0O = (Narsg_delta * exp (v / Narsg_x4) * temp_adj))
60                   (bip = (Narsg_zeta * exp (v / Narsg_x6) * temp_adj))
61                   
62                   (b11 = (Narsg_beta * Narsg_btfac * exp (v / Narsg_x2) * temp_adj))
63                   (b12 = (2.0 * Narsg_beta * Narsg_btfac * exp (v / Narsg_x2) * temp_adj))
64                   (b13 = (3.0 * Narsg_beta * Narsg_btfac * exp (v / Narsg_x2) * temp_adj))
65                   (b14 = (4.0 * Narsg_beta * Narsg_btfac * exp (v / Narsg_x2) * temp_adj))
66                   (b1n = (Narsg_delta * exp (v / Narsg_x4) * temp_adj))
67                   
68                   (bi1 = (Coff * temp_adj))
69                   (bi2 = (Coff * Narsg_btfac * temp_adj))
70                   (bi3 = (Coff * Narsg_btfac * Narsg_btfac * temp_adj))
71                   (bi4 = (Coff * Narsg_btfac * Narsg_btfac * Narsg_btfac * temp_adj))
72                   (bi5 = (Coff * Narsg_btfac * Narsg_btfac * Narsg_btfac * Narsg_btfac * temp_adj))
73                   (bin = (Ooff * temp_adj))
74                   
75                   (state-complex
76                    (Narsg_z
77                     (transitions
78                      (<-> C1 C2 f01 b01)
79                      (<-> C2 C3 f02 b02)
80                      (<-> C3 C4 f03 b03)
81                      (<-> C4 C5 f04 b04)
82                      (<-> C5 O  f0O b0O)
83                      (<-> O  B  fip bip)
84                      (<-> O  I6 fin bin)
85                      (<-> I1 I2 f11 b11)
86                      (<-> I2 I3 f12 b12)
87                      (<-> I3 I4 f13 b13)
88                      (<-> I4 I5 f14 b14)
89                      (<-> I5 I6 f1n b1n)
90                      (<-> C1 I1 fi1 bi1)
91                      (<-> C2 I2 fi2 bi2)
92                      (<-> C3 I3 fi3 bi3)
93                      (<-> C4 I4 fi4 bi4)
94                      (<-> C5 I5 fi5 bi5))
95                     
96                      (conserve (1 = (C1 + C2 + C3 + C4 + C5 + O + B + I1 + I2 + I3 + I4 + I5 + I6)))
97                     
98                     (initial-equilibrium       
99                      (0 = ((I1 * bi1) + (C2 * b01) + (neg (C1 * (fi1 + f01)) )))
100                      (0 = ((C1 * f01) + (I2 * bi2) + (C3 * b02) + (neg (C2 * (b01 + fi2 + f02)) )))
101                      (0 = ((C2 * f02) + (I3 * bi3) + (C4 * b03) + (neg (C3 * (b02 + fi3 + f03)) )))
102                      (0 = ((C3 * f03) + (I4 * bi4) + (C5 * b04) + (neg (C4 * (b03 + fi4 + f04)) )))
103                      (0 = ((C4 * f04) + (I5 * bi5) + ( O * b0O) + (neg (C5 * (b04 + fi5 + f0O)) )))
104                      (0 = ((C5 * f0O) + ( B * bip) + (I6 * bin) + (neg ( O * (b0O + fip + fin)) )))
105                      (0 = (( O * fip) + ( B * bip)))
106                      (0 = ((C1 * fi1) + (I2 * b11) + (neg (I1 * (bi1 + f11)) )))
107                      (0 = ((I1 * f11) + (C2 * fi2) + (I3 * b12) + (neg (I2 * (b11 + bi2 + f12)) )))
108                      (0 = ((I2 * f12) + (C3 * fi3) + (I4 * bi3) + (neg (I3 * (b12 + bi3 + f13)) )))
109                      (0 = ((I3 * f13) + (C4 * fi4) + (I5 * b14) + (neg (I4 * (b13 + bi4 + f14)) )))
110                      (0 = ((I4 * f14) + (C5 * fi5) + (I6 * b1n) + (neg (I5 * (b14 + bi5 + f1n)) )))
111                      (1 = (C1 + C2 + C3 + C4 + C5 + O + B + I1 + I2 + I3 + I4 + I5 + I6 )))
112                     
113                     (open O)   (power 1)))
114                   
115                   (output Narsg_z ) 
116                   
117                   )
118                       
119                (component (type pore)
120                           (const  gbar  = 0.016)
121                           (output gbar ))
122               
123                (component (type permeating-substance) (name na)
124                           (const e = -88)
125                           (output e ))
126               
127                ) ;; end Narsg current
128     
129     )) ;; end model
Note: See TracBrowser for help on using the repository browser.