/* * This code is generated by BioUML FrameWork * for BIOMD0000000042.xml diagram at 2008.03.20 15:04:21 */ import biouml.plugins.simulation.ae.NewtonSolver; import biouml.plugins.simulation.java.JavaBaseModel; import ru.biosoft.math.MathRoutines; public class BIOMD0000000042 extends JavaBaseModel { /* * Write rules to calculate equation parameters */ /* * Write rules to calculate equation parameters excluding internal variables. */ public void __internalRateVarInitFunc_0(double time, double[] x) { rate_ACAflow = compartment*x[0]*flow; rate_ADPflow = compartment*(1.1 - x[1])*flow; rate_AMPflow = compartment*x[2]*flow; rate_ATPflow = compartment*(3.5 - x[3])*flow; rate_DPGflow = compartment*x[4]*flow; rate_EtOHflow = compartment*x[5]*flow; rate_F6Pflow = compartment*x[6]*flow; rate_FBPflow = compartment*x[7]*flow; rate_GAPflow = compartment*x[8]*flow; rate_GLCflow = compartment*(50 - x[9])*flow; rate_NADHflow = compartment*(0.24 - x[11])*flow; rate_NADflow = compartment*(4.0 - x[10])*flow; rate_PEPflow = compartment*x[13]*flow; rate_PYRflow = compartment*x[14]*flow; rate_Pflow = compartment*x[12]*flow; rate_reaction_1 = compartment*(V1*x[3]*x[9]/((K1GLC + x[9])*(K1ATP + x[3]))); rate_reaction_10 = compartment*k10*x[6]; rate_reaction_2 = compartment*(V2*x[3]*Math.pow(x[6], 2)/((K2*(1 + k2*Math.pow((x[3]/x[2]), 2)) + Math.pow(x[6], 2))*(K2ATP + x[3]))); rate_reaction_3 = compartment*(k3f*x[7] - k3b*Math.pow(x[8], 2)); rate_reaction_4 = compartment*(V4*x[10]*x[8]/((K4GAP + x[8])*(K4NAD + x[10]))); rate_reaction_5 = compartment*(k5f*x[4]*x[1] - k5b*x[13]*x[3]); rate_reaction_6 = compartment*(V6*x[1]*x[13]/((K6PEP + x[13])*(K6ADP + x[1]))); rate_reaction_7 = compartment*(V7*x[14]/(K7PYR + x[14])); rate_reaction_8 = compartment*(k8f*x[11]*x[0] - k8b*x[10]*x[5]); rate_reaction_9 = compartment*(k9f*x[2]*x[3] - k9b*Math.pow(x[1], 2)); } public void Init() { initialValues = getInitialValues(); /* * Initialize variables */ compartment = 1.0; // initial value of $compartment K1ATP = 0.063; // initial value of K1ATP K1GLC = 0.1; // initial value of K1GLC K2 = 0.0016; // initial value of K2 K2ATP = 0.01; // initial value of K2ATP K4GAP = 1.0; // initial value of K4GAP K4NAD = 1.0; // initial value of K4NAD K6ADP = 0.3; // initial value of K6ADP K6PEP = 0.2; // initial value of K6PEP K7PYR = 0.3; // initial value of K7PYR V1 = 0.5; // initial value of V1 V2 = 1.5; // initial value of V2 V4 = 10.0; // initial value of V4 V6 = 10.0; // initial value of V6 V7 = 2.0; // initial value of V7 flow = 0.011; // initial value of flow k10 = 0.05; // initial value of k10 k2 = 0.017; // initial value of k2 k3b = 50.0; // initial value of k3b k3f = 1.0; // initial value of k3f k5b = 0.5; // initial value of k5b k5f = 1.0; // initial value of k5f k8b = 1.43E-4; // initial value of k8b k8f = 1.0; // initial value of k8f k9b = 10.0; // initial value of k9b k9f = 10.0; // initial value of k9f } /* * Model variables initial values */ protected double rate_ACAflow; protected double rate_ADPflow; protected double rate_AMPflow; protected double rate_ATPflow; protected double rate_DPGflow; protected double rate_EtOHflow; protected double rate_F6Pflow; protected double rate_FBPflow; protected double rate_GAPflow; protected double rate_GLCflow; protected double rate_NADHflow; protected double rate_NADflow; protected double rate_PEPflow; protected double rate_PYRflow; protected double rate_Pflow; protected double rate_reaction_1; protected double rate_reaction_10; protected double rate_reaction_2; protected double rate_reaction_3; protected double rate_reaction_4; protected double rate_reaction_5; protected double rate_reaction_6; protected double rate_reaction_7; protected double rate_reaction_8; protected double rate_reaction_9; protected double compartment; protected double K1ATP; protected double K1GLC; protected double K2; protected double K2ATP; protected double K4GAP; protected double K4NAD; protected double K6ADP; protected double K6PEP; protected double K7PYR; protected double V1; protected double V2; protected double V4; protected double V6; protected double V7; protected double flow; protected double k10; protected double k2; protected double k3b; protected double k3f; protected double k5b; protected double k5f; protected double k8b; protected double k8f; protected double k9b; protected double k9f; public double[] extendResult(double time,double [] x) { this.time = time; double[] y = new double[15]; y[0] = x[0]; y[1] = x[1]; y[2] = x[2]; y[3] = x[3]; y[4] = x[4]; y[5] = x[5]; y[6] = x[6]; y[7] = x[7]; y[8] = x[8]; y[9] = x[9]; y[10] = x[10]; y[11] = x[11]; y[12] = x[12]; y[13] = x[13]; y[14] = x[14]; return y; } public double[] getInitialValues() { double [] x = new double[15]; this.time = 0.0; x[0] = 0.0738334; // - $"compartment.ACA" x[1] = 0.108367; // - $"compartment.ADP" x[2] = 0.00261149; // - $"compartment.AMP" x[3] = 4.49064; // - $"compartment.ATP" x[4] = 0.299109; // - $"compartment.DPG" x[5] = 0.33981; // - $"compartment.EtOH" x[6] = 0.65939; // - $"compartment.F6P" x[7] = 0.00770135; // - $"compartment.FBP" x[8] = 0.00190919; // - $"compartment.GAP" x[9] = 0.0112817; // - $"compartment.GLC" x[10] = 3.62057; // - $"compartment.NAD" x[11] = 0.616118; // - $"compartment.NADH" x[12] = 0.0; // - $"compartment.P" x[13] = 0.0021125; // - $"compartment.PEP" x[14] = 0.00422702; // - $"compartment.PYR" __internalRateVarInitFunc_0(time, x); return x; } /* * code for algebraic rules calculations */ /* * end of code for algebraic rules calculations */ protected void calculateRates(double time, double[] x) { __internalRateVarInitFunc_0(time, x); } /* * calculate dy/dt for 'BIOMD0000000042.xml' model */ public void __internalDyDt_0(double time, double [] x, double[] result) { result[0] = -rate_ACAflow+rate_reaction_7-rate_reaction_8; result[1] = +rate_ADPflow+rate_reaction_1+rate_reaction_2-rate_reaction_5-rate_reaction_6+rate_reaction_9*2; result[2] = -rate_AMPflow-rate_reaction_9; result[3] = +rate_ATPflow-rate_reaction_1-rate_reaction_2+rate_reaction_5+rate_reaction_6-rate_reaction_9; result[4] = -rate_DPGflow+rate_reaction_4-rate_reaction_5; result[5] = -rate_EtOHflow+rate_reaction_8; result[6] = -rate_F6Pflow-rate_reaction_10+rate_reaction_1-rate_reaction_2; result[7] = -rate_FBPflow+rate_reaction_2-rate_reaction_3; result[8] = -rate_GAPflow+rate_reaction_3*2-rate_reaction_4; result[9] = +rate_GLCflow-rate_reaction_1; result[10] = +rate_NADflow-rate_reaction_4+rate_reaction_8; result[11] = +rate_NADHflow+rate_reaction_4-rate_reaction_8; result[12] = -rate_Pflow+rate_reaction_10; result[13] = -rate_PEPflow+rate_reaction_5-rate_reaction_6; result[14] = -rate_PYRflow+rate_reaction_6-rate_reaction_7; } protected double [] calculateResult(double time, double[] x) { double[] result = new double[15]; __internalDyDt_0(time, x, result); return result; } public double[] dy_dt(double time, double[] x) { this.time = time; calculateRates( time,x ); return calculateResult( time,x ); } } // class ...