/* * This code is generated by BioUML FrameWork * for BIOMD0000000075.xml diagram at 2008.03.20 15:07:56 */ import biouml.plugins.simulation.ae.NewtonSolver; import biouml.plugins.simulation.java.JavaBaseModel; import ru.biosoft.math.MathRoutines; public class BIOMD0000000075 extends JavaBaseModel { /* * Write rules to calculate equation parameters */ private void __internalVarInitFunc_0(double time, double[] x) { Ratebasal_PIPsyn = 0.581*PIPsynbasal_Stimulation*kBasalSynPIP*(-1.0 + Math.exp((PIP_basal + (-x[6]))*(1/PIP_basal))); Rate_PIP2SynStim = kStimSynPIP2*Math.exp(-((time + (-tauPIP2syn))*(1/PIP2syndecay)))*PIP2synstim_Stimulation; kr_IP3PH = kf_IP3PH*KdIP3PH; Ratestim_PIPsyn = kStimSynPIP*Math.exp(-((time + (-tauPIPsyn))*(1/PIPsyndecay)))*PIPsynstim_Stimulation; signal = Signal_Stimulation*Math.exp(-((time + (-tau0))*(1/stimdecay))); kr_PIP2PH = kf_PIP2PH*KdPIP2PH; Rate_PIP2Synbasal = 0.581*PIP2synbasal_Stimulation*kBasalSynPIP2*(-1.0 + Math.exp((PIP2_basal + (-x[5]))*(1/PIP2_basal))); } /* * Write rules to calculate equation parameters excluding internal variables. */ public void __internalRateVarInitFunc_0(double time, double[] x) { rate_IP3_PHGFP = _PM_Cytosol_*(x[2]*kf_IP3PH*x[0] + (-(kr_IP3PH*x[1]))); rate_IP3_uncaging = _PM_Cytosol_*IP3_uncaging_intensity*_PM_Cytosol_IP3X_Cytosol_*_PM_Cytosol_hv_Cytosol_; rate_IP3deg = _PM_Cytosol_*IP3deg_kIP3deg*(x[0] + (-IP3deg_IP3_basal)); rate_PIP2Syn = PM*(Rate_PIP2Synbasal + Rate_PIP2SynStim)*x[6]; rate_PIP2_PH = PM*(x[5]*kf_PIP2PH*x[2] + (-(kr_PIP2PH*x[4]))); rate_PIP2_PH_hyd = PM*PIP2_PH_hyd_k_PIP2PHhyd*x[9]*x[4]; rate_PIP2_hyd = PM*k_PIP2hyd*x[5]*x[9]; rate_PIPSyn = PM*(Ratebasal_PIPsyn + Ratestim_PIPsyn)*x[7]; rate_PLCact = PM*(PLCact_KfPLCact*x[8]*signal + (-(PLCact_krPLCact*x[9]))); } public void Init() { initialValues = getInitialValues(); /* * Initialize variables */ _PM_Cytosol_ = 1.0; // initial value of $"PM.Cytosol" PM = 1.0; // initial value of $PM IP3_uncaging_intensity = 100000.0; // initial value of IP3_uncaging_intensity IP3deg_IP3_basal = 0.16; // initial value of IP3deg_IP3_basal IP3deg_kIP3deg = 0.08; // initial value of IP3deg_kIP3deg KdIP3PH = 0.1; // initial value of KdIP3PH KdPIP2PH = 2.0; // initial value of KdPIP2PH PIP2_basal = 4000.0; // initial value of PIP2_basal PIP2syndecay = 1.0; // initial value of PIP2syndecay PIP_basal = 2857.0; // initial value of PIP_basal PIPsyndecay = 1.0; // initial value of PIPsyndecay PLCact_KfPLCact = 5.0E-4; // initial value of PLCact_KfPLCact PLCact_krPLCact = 0.1; // initial value of PLCact_krPLCact kBasalSynPIP = 0.0055; // initial value of kBasalSynPIP kBasalSynPIP2 = 0.048; // initial value of kBasalSynPIP2 kStimSynPIP = 0.019; // initial value of kStimSynPIP kStimSynPIP2 = 0.92; // initial value of kStimSynPIP2 k_PIP2hyd = 2.4; // initial value of k_PIP2hyd kf_IP3PH = 10.0; // initial value of kf_IP3PH kf_PIP2PH = 0.12; // initial value of kf_PIP2PH stimdecay = 1.0; // initial value of stimdecay tau0 = 0.05; // initial value of tau0 tauPIP2syn = 0.05; // initial value of tauPIP2syn tauPIPsyn = 0.05; // initial value of tauPIPsyn } /* * Model variables initial values */ protected double _PM_Cytosol_; protected double _PM_Cytosol_IP3X_Cytosol_; protected double _PM_Cytosol_hv_Cytosol_; protected double rate_IP3_PHGFP; protected double rate_IP3_uncaging; protected double rate_IP3deg; protected double rate_PIP2Syn; protected double rate_PIP2_PH; protected double rate_PIP2_PH_hyd; protected double rate_PIP2_hyd; protected double rate_PIPSyn; protected double rate_PLCact; protected double PM; protected double IP3_uncaging_intensity; protected double IP3deg_IP3_basal; protected double IP3deg_kIP3deg; protected double KdIP3PH; protected double KdPIP2PH; protected double PIP2_PH_hyd_k_PIP2PHhyd; protected double PIP2_basal; protected double PIP2synbasal_Stimulation; protected double PIP2syndecay; protected double PIP2synstim_Stimulation; protected double PIP_basal; protected double PIPsynbasal_Stimulation; protected double PIPsyndecay; protected double PIPsynstim_Stimulation; protected double PLCact_KfPLCact; protected double PLCact_krPLCact; protected double Rate_PIP2SynStim; protected double Rate_PIP2Synbasal; protected double Ratebasal_PIPsyn; protected double Ratestim_PIPsyn; protected double Signal_Stimulation; protected double kBasalSynPIP; protected double kBasalSynPIP2; protected double kStimSynPIP; protected double kStimSynPIP2; protected double k_PIP2hyd; protected double kf_IP3PH; protected double kf_PIP2PH; protected double kr_IP3PH; protected double kr_PIP2PH; protected double signal; protected double stimdecay; protected double tau0; protected double tauPIP2syn; protected double tauPIPsyn; protected double time; public double[] extendResult(double time,double [] x) { this.time = time; __internalVarInitFunc_0(time, x); double[] y = new double[22]; 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] = PIP2synbasal_Stimulation; y[11] = PIP2synstim_Stimulation; y[12] = PIPsynbasal_Stimulation; y[13] = PIPsynstim_Stimulation; y[14] = Rate_PIP2SynStim; y[15] = Rate_PIP2Synbasal; y[16] = Ratebasal_PIPsyn; y[17] = Ratestim_PIPsyn; y[18] = Signal_Stimulation; y[19] = kr_IP3PH; y[20] = kr_PIP2PH; y[21] = signal; return y; } public double[] getInitialValues() { double [] x = new double[10]; this.time = 0.0; x[0] = 0.16; // - $"PM.Cytosol.IP3_Cyt" x[1] = 0.0; // - $"PM.Cytosol.IP3_PHGFP_Cyt" x[2] = 0.0; // - $"PM.Cytosol.PH_GFP_Cyt" x[3] = 2000.0; // - $"PM.DAG_PM" x[4] = 0.0; // - $"PM.PIP2_PHGFP_PM" x[5] = 4000.0; // - $"PM.PIP2_PM" x[6] = 2857.0; // - $"PM.PIP_PM" x[7] = 142857.0; // - $"PM.PI_PM" x[8] = 100.0; // - $"PM.PLC_PM" x[9] = 0.0; // - $"PM.PLC_act_PM" __internalVarInitFunc_0(time, x); __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) { __internalVarInitFunc_0(time, x); __internalRateVarInitFunc_0(time, x); } /* * calculate dy/dt for 'BIOMD0000000075.xml' model */ public void __internalDyDt_0(double time, double [] x, double[] result) { result[0] = -rate_IP3_PHGFP+rate_IP3_uncaging-rate_IP3deg+rate_PIP2_PH_hyd*9.224E-4+rate_PIP2_hyd*9.224E-4; result[1] = +rate_IP3_PHGFP; result[2] = -rate_IP3_PHGFP-rate_PIP2_PH+rate_PIP2_PH_hyd*9.224E-4; result[3] = +rate_PIP2_PH_hyd+rate_PIP2_hyd; result[4] = +rate_PIP2_PH-rate_PIP2_PH_hyd; result[5] = +rate_PIP2Syn-rate_PIP2_PH-rate_PIP2_hyd; result[6] = -rate_PIP2Syn+rate_PIPSyn; result[7] = -rate_PIPSyn; result[8] = -rate_PLCact; result[9] = +rate_PLCact; } 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 ); } public double[] checkEvent(double time, double[] x) { this.time = time; __internalVarInitFunc_0(time, x); __internalRateVarInitFunc_0(time, x); double [] flags = new double[5]; flags[0] = (x[6] < PIP_basal) ? +1 : -1; //event_0000001 flags[1] = (time > tauPIPsyn) ? +1 : -1; //event_0000002 flags[2] = (x[5] < PIP2_basal) ? +1 : -1; //event_0000003 flags[3] = (time > tauPIP2syn) ? +1 : -1; //event_0000004 flags[4] = (time > tau0) ? +1 : -1; //event_0000005 return flags; } public void processEvent(int __internalVar12060040765150, double time, double[] x) { this.time = time; if ( __internalVar12060040765150 == 0) //event_0000001 { PIPsynbasal_Stimulation = 1; } else if ( __internalVar12060040765150 == 1) //event_0000002 { PIPsynstim_Stimulation = 1; } else if ( __internalVar12060040765150 == 2) //event_0000003 { PIP2synbasal_Stimulation = 1; } else if ( __internalVar12060040765150 == 3) //event_0000004 { PIP2synstim_Stimulation = 1; } else if ( __internalVar12060040765150 == 4) //event_0000005 { Signal_Stimulation = 1; } } } // class ...