@@ -127,8 +127,47 @@ impl Model for AlphaPinene {
127127 }
128128}
129129
130+ struct Nfkb ;
131+
132+ impl Model for Nfkb {
133+ fn eval ( & self , _t : f64 , y : & [ f64 ] , ydot : & mut [ f64 ] , p : & [ f64 ] ) {
134+ // p20 - p21 * y1 - p17 * y1
135+ // p17 * y1 - p19 * y2 - p18 * y2 * y8 - p21 * y2 - p2 * y2 * y10 + p3 * y4 - p4 * y2 * y13 + p5 * y5
136+ // p19 * y2 + p18 * y2 * y8 - p21 * y3
137+ // p2 * y2 * y10 - p3 * y4
138+ // p4 * y2 * y13 - p5 * y5
139+ // p11 * y13 - p1 * y6 * y10 + p5 * y5 - p23 * y6
140+ // p23 * p22 * y6 - p1 * y11 * y7
141+ // p15 * y9 - p16 * y8
142+ // p13 + p12 * y7 - p14 * y9
143+ // -p2 * y2 * y10 - p1 * y10 * y6 + p9 * y12 - p10 * y10 - p25 * y10 + p26 * y11
144+ // -p1 * y11 * y7 + p25 * p22 * y10 - p26 * p22 * y11
145+ // p7 + p6 * y7 - p8 * y12
146+ // p1 * y10 * y6 - p11 * y13 - p4 * y2 * y13 + p24 * y14
147+ // p1 * y11 * y7 - p24 * p22 * y14
148+ // p28 + p27 * y7 - p29 * y15
149+
150+ ydot[ 0 ] = p[ 19 ] - p[ 20 ] * y[ 0 ] - p[ 16 ] * y[ 0 ] ;
151+ ydot[ 1 ] = p[ 16 ] * y[ 0 ] - p[ 18 ] * y[ 1 ] - p[ 17 ] * y[ 1 ] * y[ 7 ] - p[ 20 ] * y[ 1 ] - p[ 1 ] * y[ 1 ] * y[ 9 ] + p[ 2 ] * y[ 3 ] - p[ 3 ] * y[ 1 ] * y[ 12 ] + p[ 4 ] * y[ 4 ] ;
152+ ydot[ 2 ] = p[ 18 ] * y[ 1 ] + p[ 17 ] * y[ 1 ] * y[ 7 ] - p[ 20 ] * y[ 2 ] ;
153+ ydot[ 3 ] = p[ 1 ] * y[ 1 ] * y[ 9 ] - p[ 2 ] * y[ 3 ] ;
154+ ydot[ 4 ] = p[ 3 ] * y[ 1 ] * y[ 12 ] - p[ 4 ] * y[ 4 ] ;
155+ ydot[ 5 ] = p[ 10 ] * y[ 12 ] - p[ 0 ] * y[ 5 ] * y[ 9 ] + p[ 4 ] * y[ 4 ] - p[ 22 ] * y[ 5 ] ;
156+ ydot[ 6 ] = p[ 22 ] * p[ 21 ] * y[ 5 ] - p[ 0 ] * y[ 10 ] * y[ 6 ] ;
157+ ydot[ 7 ] = p[ 14 ] * y[ 8 ] - p[ 15 ] * y[ 7 ] ;
158+ ydot[ 8 ] = p[ 12 ] + p[ 11 ] * y[ 6 ] - p[ 13 ] * y[ 8 ] ;
159+ ydot[ 9 ] = -p[ 1 ] * y[ 1 ] * y[ 9 ] - p[ 0 ] * y[ 9 ] * y[ 5 ] + p[ 8 ] * y[ 11 ] - p[ 9 ] * y[ 9 ] - p[ 23 ] * y[ 9 ] + p[ 24 ] * y[ 10 ] ;
160+ ydot[ 10 ] = -p[ 0 ] * y[ 10 ] * y[ 5 ] + p[ 23 ] * p[ 21 ] * y[ 9 ] - p[ 24 ] * p[ 21 ] * y[ 10 ] ;
161+ ydot[ 11 ] = p[ 6 ] + p[ 5 ] * y[ 6 ] - p[ 7 ] * y[ 11 ] ;
162+ ydot[ 12 ] = p[ 0 ] * y[ 1 ] * y[ 9 ] - p[ 10 ] * y[ 12 ] - p[ 3 ] * y[ 1 ] * y[ 12 ] + p[ 21 ] * y[ 13 ] ;
163+ ydot[ 13 ] = p[ 0 ] * y[ 10 ] * y[ 6 ] - p[ 23 ] * p[ 21 ] * y[ 13 ] ;
164+ ydot[ 14 ] = p[ 27 ] + p[ 26 ] * y[ 6 ] - p[ 28 ] * y[ 14 ] ;
165+ }
166+ }
167+
130168pub fn build_model ( model : & str , cuqdyn_conf : & CuqdynConfig ) -> Box < dyn Model > {
131169 match model {
170+ "nfkb" => Box :: new ( Nfkb ) ,
132171 "lotka-volterra" => Box :: new ( LotkaVolterra ) ,
133172 "alpha-pinene" | "α-pinene" => Box :: new ( AlphaPinene ) ,
134173 _ => Box :: new ( GenericModel :: new ( cuqdyn_conf) )
0 commit comments