/* * This code is generated by BioUML FrameWork * for BIOMD0000000041.xml diagram at 2008.03.20 15:04:20 */ import biouml.plugins.simulation.ae.NewtonSolver; import biouml.plugins.simulation.java.JavaBaseModel; import ru.biosoft.math.MathRoutines; public class BIOMD0000000041 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_ADP_diffusion = IMS*ADP_diffusion_k1_7*(x[4]/IMS) - CYT*ADP_diffusion_k1_7*(x[0]/CYT); rate_ATP_diffusion = IMS*ATP_diffusion_k1_9*(x[5]/IMS) - CYT*ATP_diffusion_k1_9*(x[1]/CYT); rate_ATPase = CYT*ATPase_v_4*(x[1]/CYT); rate_Cr_diffusion = IMS*Cr_diffusion_k1_6*(x[6]/IMS) - CYT*Cr_diffusion_k1_6*(x[8]/CYT); rate_MMCK = CYT*((MMCK_Vf_3*(x[1]/CYT)*(x[8]/CYT)/(MMCK_Kia_3*MMCK_Kb_3) - MMCK_Vb_3*(x[0]/CYT)*(x[3]/CYT)/(MMCK_Kic_3*MMCK_Kd_3))/(1 + x[8]/CYT/MMCK_Kib_3 + x[3]/CYT/MMCK_Kid_3 + x[1]/CYT*(1.0/MMCK_Kia_3 + x[8]/CYT/(MMCK_Kia_3*MMCK_Kb_3)) + x[0]/CYT*(1.0/MMCK_Kic_3 + x[8]/CYT/(MMCK_Kic_3*MMCK_Kib_3) + x[3]/CYT/(MMCK_Kid_3*(MMCK_Kic_3*MMCK_Kd_3/MMCK_Kid_3))))); rate_MiCK = IMS*((MiCK_Vf_2*(x[5]/IMS)*(x[6]/IMS)/(MiCK_Kia_2*MiCK_Kb_2) - MiCK_Vb_2*(x[4]/IMS)*(x[7]/IMS)/(MiCK_Kic_2*MiCK_Kd_2))/(1 + x[6]/IMS/MiCK_Kib_2 + x[7]/IMS/MiCK_Kid_2 + x[5]/IMS*(1.0/MiCK_Kia_2 + x[6]/IMS/(MiCK_Kia_2*MiCK_Kb_2)) + x[4]/IMS*(1.0/MiCK_Kic_2 + x[6]/IMS/(MiCK_Kic_2*MiCK_Kib_2) + x[7]/IMS/(MiCK_Kid_2*(MiCK_Kic_2*MiCK_Kd_2/MiCK_Kid_2))))); rate_OxPhos = IMS*(OxPhos_V_1*(x[4]/IMS)*(x[9]/IMS)/(OxPhos_Ka_1*OxPhos_Kb_1*(1 + x[4]/IMS/OxPhos_Ka_1 + x[9]/IMS/OxPhos_Kb_1 + x[4]/IMS*(x[9]/IMS)/(OxPhos_Ka_1*OxPhos_Kb_1)))); rate_PCr_diffusion = IMS*PCr_diffusion_k1_8*(x[7]/IMS) - CYT*PCr_diffusion_k1_8*(x[3]/CYT); rate_Pi_diffusion = IMS*Pi_diffusion_k2_5*(x[9]/IMS) - CYT*Pi_diffusion_k2_5*(x[2]/CYT); } public void Init() { initialValues = getInitialValues(); /* * Initialize variables */ CYT = 0.75; // initial value of $CYT IMS = 0.0625; // initial value of $IMS ADP_diffusion_k1_7 = 8.16; // initial value of ADP_diffusion_k1_7 ATP_diffusion_k1_9 = 8.16; // initial value of ATP_diffusion_k1_9 ATPase_v_4 = 4600.0; // initial value of ATPase_v_4 Cr_diffusion_k1_6 = 14.6; // initial value of Cr_diffusion_k1_6 MMCK_Kb_3 = 15500.0; // initial value of MMCK_Kb_3 MMCK_Kd_3 = 1670.0; // initial value of MMCK_Kd_3 MMCK_Kia_3 = 900.0; // initial value of MMCK_Kia_3 MMCK_Kib_3 = 34900.0; // initial value of MMCK_Kib_3 MMCK_Kic_3 = 222.4; // initial value of MMCK_Kic_3 MMCK_Kid_3 = 4730.0; // initial value of MMCK_Kid_3 MMCK_Vb_3 = 29250.0; // initial value of MMCK_Vb_3 MMCK_Vf_3 = 6966.0; // initial value of MMCK_Vf_3 MiCK_Kb_2 = 5200.0; // initial value of MiCK_Kb_2 MiCK_Kd_2 = 500.0; // initial value of MiCK_Kd_2 MiCK_Kia_2 = 750.0; // initial value of MiCK_Kia_2 MiCK_Kib_2 = 28800.0; // initial value of MiCK_Kib_2 MiCK_Kic_2 = 204.8; // initial value of MiCK_Kic_2 MiCK_Kid_2 = 1600.0; // initial value of MiCK_Kid_2 MiCK_Vb_2 = 11160.0; // initial value of MiCK_Vb_2 MiCK_Vf_2 = 2658.0; // initial value of MiCK_Vf_2 OxPhos_Ka_1 = 800.0; // initial value of OxPhos_Ka_1 OxPhos_Kb_1 = 20.0; // initial value of OxPhos_Kb_1 OxPhos_V_1 = 4600.0; // initial value of OxPhos_V_1 PCr_diffusion_k1_8 = 14.6; // initial value of PCr_diffusion_k1_8 Pi_diffusion_k2_5 = 18.4; // initial value of Pi_diffusion_k2_5 } /* * Model variables initial values */ protected double rate_ADP_diffusion; protected double rate_ATP_diffusion; protected double rate_ATPase; protected double rate_Cr_diffusion; protected double rate_MMCK; protected double rate_MiCK; protected double rate_OxPhos; protected double rate_PCr_diffusion; protected double rate_Pi_diffusion; protected double CYT; protected double IMS; protected double ADP_diffusion_k1_7; protected double ATP_diffusion_k1_9; protected double ATPase_v_4; protected double Cr_diffusion_k1_6; protected double MMCK_Kb_3; protected double MMCK_Kd_3; protected double MMCK_Kia_3; protected double MMCK_Kib_3; protected double MMCK_Kic_3; protected double MMCK_Kid_3; protected double MMCK_Vb_3; protected double MMCK_Vf_3; protected double MiCK_Kb_2; protected double MiCK_Kd_2; protected double MiCK_Kia_2; protected double MiCK_Kib_2; protected double MiCK_Kic_2; protected double MiCK_Kid_2; protected double MiCK_Vb_2; protected double MiCK_Vf_2; protected double OxPhos_Ka_1; protected double OxPhos_Kb_1; protected double OxPhos_V_1; protected double PCr_diffusion_k1_8; protected double Pi_diffusion_k2_5; public double[] extendResult(double time,double [] x) { this.time = time; double[] y = new double[10]; 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]; return y; } public double[] getInitialValues() { double [] x = new double[10]; this.time = 0.0; x[0] = 0.0; // - $"CYT.ADP" x[1] = 7275.0; // - $"CYT.ATP" x[2] = 0.0; // - $"CYT.P" x[3] = 0.0; // - $"CYT.PCr" x[4] = 0.0; // - $"IMS.ADPi" x[5] = 0.0; // - $"IMS.ATPi" x[6] = 0.0; // - $"IMS.Cri" x[7] = 0.0; // - $"IMS.PCri" x[8] = 19500.0; // - $CYT.Cr x[9] = 2000.0; // - $IMS.Pi __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 'BIOMD0000000041.xml' model */ public void __internalDyDt_0(double time, double [] x, double[] result) { result[0] = +rate_ADP_diffusion+rate_ATPase+rate_MMCK; result[1] = +rate_ATP_diffusion-rate_ATPase-rate_MMCK; result[2] = +rate_ATPase+rate_Pi_diffusion; result[3] = +rate_MMCK+rate_PCr_diffusion; result[4] = -rate_ADP_diffusion+rate_MiCK-rate_OxPhos; result[5] = -rate_ATP_diffusion-rate_MiCK+rate_OxPhos; result[6] = -rate_Cr_diffusion-rate_MiCK; result[7] = +rate_MiCK-rate_PCr_diffusion; result[8] = +rate_Cr_diffusion-rate_MMCK; result[9] = -rate_OxPhos-rate_Pi_diffusion; } protected double [] calculateResult(double time, double[] x) { double[] result = new double[10]; __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 ...