/*
 * This code is generated by BioUML FrameWork 
 * for BIOMD0000000105.xml diagram  at 2008.03.20 15:08:41
 */
import biouml.plugins.simulation.ae.NewtonSolver;
import biouml.plugins.simulation.java.JavaBaseModel;
import ru.biosoft.math.MathRoutines;

public class BIOMD0000000105 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_Aggregation1 = k71*x[6]*(x[6] - 1)*0.5;
        rate_Aggregation10 = k72*x[18]*(x[18] - 1)*0.5;
        rate_Aggregation11 = k72*x[7]*x[6];
        rate_Aggregation12 = k72*x[8]*x[6];
        rate_Aggregation13 = k72*x[9]*x[6];
        rate_Aggregation14 = k72*x[10]*x[6];
        rate_Aggregation15 = k72*x[12]*x[6];
        rate_Aggregation16 = k72*x[14]*x[6];
        rate_Aggregation17 = k72*x[16]*x[6];
        rate_Aggregation18 = k72*x[18]*x[6];
        rate_Aggregation19 = k72*x[7]*x[0];
        rate_Aggregation2 = k71*x[6]*x[0];
        rate_Aggregation20 = k72*x[8]*x[0];
        rate_Aggregation21 = k72*x[9]*x[0];
        rate_Aggregation22 = k72*x[10]*x[0];
        rate_Aggregation23 = k72*x[12]*x[0];
        rate_Aggregation24 = k72*x[14]*x[0];
        rate_Aggregation25 = k72*x[16]*x[0];
        rate_Aggregation26 = k72*x[18]*x[0];
        rate_Aggregation27 = k72*x[7]*x[8];
        rate_Aggregation28 = k72*x[7]*x[9];
        rate_Aggregation29 = k72*x[7]*x[10];
        rate_Aggregation3 = k72*x[7]*(x[7] - 1)*0.5;
        rate_Aggregation30 = k72*x[7]*x[12];
        rate_Aggregation31 = k72*x[7]*x[14];
        rate_Aggregation32 = k72*x[7]*x[16];
        rate_Aggregation33 = k72*x[7]*x[18];
        rate_Aggregation34 = k72*x[8]*x[9];
        rate_Aggregation35 = k72*x[8]*x[10];
        rate_Aggregation36 = k72*x[8]*x[12];
        rate_Aggregation37 = k72*x[8]*x[14];
        rate_Aggregation38 = k72*x[8]*x[16];
        rate_Aggregation39 = k72*x[8]*x[18];
        rate_Aggregation4 = k72*x[8]*(x[8] - 1)*0.5;
        rate_Aggregation40 = k72*x[9]*x[10];
        rate_Aggregation41 = k72*x[9]*x[12];
        rate_Aggregation42 = k72*x[9]*x[14];
        rate_Aggregation43 = k72*x[9]*x[16];
        rate_Aggregation44 = k72*x[9]*x[18];
        rate_Aggregation45 = k72*x[10]*x[12];
    }
    public void __internalRateVarInitFunc_1(double time, double[] x)
    {
        rate_Aggregation46 = k72*x[10]*x[14];
        rate_Aggregation47 = k72*x[10]*x[16];
        rate_Aggregation48 = k72*x[10]*x[18];
        rate_Aggregation49 = k72*x[12]*x[14];
        rate_Aggregation5 = k72*x[9]*(x[9] - 1)*0.5;
        rate_Aggregation50 = k72*x[12]*x[16];
        rate_Aggregation51 = k72*x[12]*x[18];
        rate_Aggregation52 = k72*x[14]*x[16];
        rate_Aggregation53 = k72*x[14]*x[18];
        rate_Aggregation54 = k72*x[16]*x[18];
        rate_Aggregation6 = k72*x[10]*(x[10] - 1)*0.5;
        rate_Aggregation7 = k72*x[12]*(x[12] - 1)*0.5;
        rate_Aggregation8 = k72*x[14]*(x[14] - 1)*0.5;
        rate_Aggregation9 = k72*x[16]*(x[16] - 1)*0.5;
        rate_DeubiquitinationBoundMisP1 = k68*x[11]*x[2];
        rate_DeubiquitinationBoundMisP2 = k68*x[13]*x[2];
        rate_DeubiquitinationBoundMisP3 = k68*x[15]*x[2];
        rate_DeubiquitinationBoundMisP4 = k68*x[17]*x[2];
        rate_DeubiquitinationBoundMisP5 = k68*x[19]*x[2];
        rate_Deubiqutination1 = k66*x[18]*x[2];
        rate_Deubiqutination2 = k66*x[16]*x[2];
        rate_Deubiqutination3 = k66*x[14]*x[2];
        rate_Deubiqutination4 = k66*x[12]*x[2];
        rate_Deubiqutination5 = k66*x[10]*x[2];
        rate_Deubiqutination6 = k66*x[9]*x[2];
        rate_Deubiqutination7 = k66*x[8]*x[2];
        rate_Deubiqutination8 = k66*x[7]*x[2];
        rate_E1UbBinding = k62*x[31]*x[34]*_cytosol_ATP_/(5000 + _cytosol_ATP_);
        rate_E2UbBinding = k63*x[32]*x[3];
        rate_MisPE3Binding = k61*x[6]*x[33];
        rate_MisPE3Release = k61r*x[5];
        rate_Misfolding = k2*x[20]*x[22];
        rate_Monoubiquitination = k64*x[4]*x[5];
        rate_Polyubiquitination1 = k65*x[7]*x[4];
        rate_Polyubiquitination2 = k65*x[8]*x[4];
        rate_Polyubiquitination3 = k65*x[9]*x[4];
        rate_Polyubiquitination4 = k65*x[10]*x[4];
        rate_Polyubiquitination5 = k65*x[12]*x[4];
        rate_Polyubiquitination6 = k65*x[14]*x[4];
        rate_Polyubiquitination7 = k65*x[16]*x[4];
    }
    public void __internalRateVarInitFunc_2(double time, double[] x)
    {
        rate_ProteasomeActivity1 = k69*x[11]*_cytosol_ATP_/(5000 + _cytosol_ATP_);
        rate_ProteasomeActivity2 = k69*x[13]*_cytosol_ATP_/(5000 + _cytosol_ATP_);
        rate_ProteasomeActivity3 = k69*x[15]*_cytosol_ATP_/(5000 + _cytosol_ATP_);
        rate_ProteasomeActivity4 = k69*x[17]*_cytosol_ATP_/(5000 + _cytosol_ATP_);
        rate_ProteasomeActivity5 = k69*x[19]*_cytosol_ATP_/(5000 + _cytosol_ATP_);
        rate_ProteasomeBinding1 = k67*x[10]*x[21];
        rate_ProteasomeBinding2 = k67*x[12]*x[21];
        rate_ProteasomeBinding3 = k67*x[14]*x[21];
        rate_ProteasomeBinding4 = k67*x[16]*x[21];
        rate_ProteasomeBinding5 = k67*x[18]*x[21];
        rate_ProteasomeInhibtion = k74*x[0]*x[21];
        rate_ProteinSynthesis = k1*_cytosol_Source_;
        rate_Refolding = k3*x[6];
        rate_SequesteringOfAggregates = k73*x[0];
    }

    public void Init()
    {
        initialValues = getInitialValues();
/*
 * Initialize variables
 */
        _cytosol_ADP_ = 1000.0; // initial value of $"cytosol.ADP"
        _cytosol_AMP_ = 1000.0; // initial value of $"cytosol.AMP"
        _cytosol_ATP_ = 10000.0; // initial value of $"cytosol.ATP"
        _cytosol_Source_ = 1.0; // initial value of $"cytosol.Source"
        k1 = 0.01; // initial value of k1
        k2 = 2.0E-6; // initial value of k2
        k3 = 4.0E-6; // initial value of k3
        k61 = 1.7E-5; // initial value of k61
        k61r = 2.0E-4; // initial value of k61r
        k62 = 2.0E-4; // initial value of k62
        k63 = 0.0010; // initial value of k63
        k64 = 0.0010; // initial value of k64
        k65 = 0.01; // initial value of k65
        k66 = 1.0E-5; // initial value of k66
        k67 = 1.0E-5; // initial value of k67
        k68 = 1.0E-5; // initial value of k68
        k71 = 1.0E-8; // initial value of k71
        k72 = 1.0E-8; // initial value of k72
        k73 = 0.0010; // initial value of k73
        k74 = 1.0E-5; // initial value of k74
    }

    /*
     * Model variables initial values
     */
    protected double _cytosol_ADP_;
    protected double _cytosol_AMP_;
    protected double _cytosol_ATP_;
    protected double _cytosol_Source_;
    protected double rate_Aggregation1;
    protected double rate_Aggregation10;
    protected double rate_Aggregation11;
    protected double rate_Aggregation12;
    protected double rate_Aggregation13;
    protected double rate_Aggregation14;
    protected double rate_Aggregation15;
    protected double rate_Aggregation16;
    protected double rate_Aggregation17;
    protected double rate_Aggregation18;
    protected double rate_Aggregation19;
    protected double rate_Aggregation2;
    protected double rate_Aggregation20;
    protected double rate_Aggregation21;
    protected double rate_Aggregation22;
    protected double rate_Aggregation23;
    protected double rate_Aggregation24;
    protected double rate_Aggregation25;
    protected double rate_Aggregation26;
    protected double rate_Aggregation27;
    protected double rate_Aggregation28;
    protected double rate_Aggregation29;
    protected double rate_Aggregation3;
    protected double rate_Aggregation30;
    protected double rate_Aggregation31;
    protected double rate_Aggregation32;
    protected double rate_Aggregation33;
    protected double rate_Aggregation34;
    protected double rate_Aggregation35;
    protected double rate_Aggregation36;
    protected double rate_Aggregation37;
    protected double rate_Aggregation38;
    protected double rate_Aggregation39;
    protected double rate_Aggregation4;
    protected double rate_Aggregation40;
    protected double rate_Aggregation41;
    protected double rate_Aggregation42;
    protected double rate_Aggregation43;
    protected double rate_Aggregation44;
    protected double rate_Aggregation45;
    protected double rate_Aggregation46;
    protected double rate_Aggregation47;
    protected double rate_Aggregation48;
    protected double rate_Aggregation49;
    protected double rate_Aggregation5;
    protected double rate_Aggregation50;
    protected double rate_Aggregation51;
    protected double rate_Aggregation52;
    protected double rate_Aggregation53;
    protected double rate_Aggregation54;
    protected double rate_Aggregation6;
    protected double rate_Aggregation7;
    protected double rate_Aggregation8;
    protected double rate_Aggregation9;
    protected double rate_DeubiquitinationBoundMisP1;
    protected double rate_DeubiquitinationBoundMisP2;
    protected double rate_DeubiquitinationBoundMisP3;
    protected double rate_DeubiquitinationBoundMisP4;
    protected double rate_DeubiquitinationBoundMisP5;
    protected double rate_Deubiqutination1;
    protected double rate_Deubiqutination2;
    protected double rate_Deubiqutination3;
    protected double rate_Deubiqutination4;
    protected double rate_Deubiqutination5;
    protected double rate_Deubiqutination6;
    protected double rate_Deubiqutination7;
    protected double rate_Deubiqutination8;
    protected double rate_E1UbBinding;
    protected double rate_E2UbBinding;
    protected double rate_MisPE3Binding;
    protected double rate_MisPE3Release;
    protected double rate_Misfolding;
    protected double rate_Monoubiquitination;
    protected double rate_Polyubiquitination1;
    protected double rate_Polyubiquitination2;
    protected double rate_Polyubiquitination3;
    protected double rate_Polyubiquitination4;
    protected double rate_Polyubiquitination5;
    protected double rate_Polyubiquitination6;
    protected double rate_Polyubiquitination7;
    protected double rate_ProteasomeActivity1;
    protected double rate_ProteasomeActivity2;
    protected double rate_ProteasomeActivity3;
    protected double rate_ProteasomeActivity4;
    protected double rate_ProteasomeActivity5;
    protected double rate_ProteasomeBinding1;
    protected double rate_ProteasomeBinding2;
    protected double rate_ProteasomeBinding3;
    protected double rate_ProteasomeBinding4;
    protected double rate_ProteasomeBinding5;
    protected double rate_ProteasomeInhibtion;
    protected double rate_ProteinSynthesis;
    protected double rate_Refolding;
    protected double rate_SequesteringOfAggregates;
    protected double k1;
    protected double k2;
    protected double k3;
    protected double k61;
    protected double k61r;
    protected double k62;
    protected double k63;
    protected double k64;
    protected double k65;
    protected double k66;
    protected double k67;
    protected double k68;
    protected double k69;
    protected double k71;
    protected double k72;
    protected double k73;
    protected double k74;

    public double[] extendResult(double time,double [] x)
    {
        this.time = time;


        double[] y = new double[35];
        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];
        y[15] = x[15];
        y[16] = x[16];
        y[17] = x[17];
        y[18] = x[18];
        y[19] = x[19];
        y[20] = x[20];
        y[21] = x[21];
        y[22] = x[22];
        y[23] = x[23];
        y[24] = x[24];
        y[25] = x[25];
        y[26] = x[26];
        y[27] = x[27];
        y[28] = x[28];
        y[29] = x[29];
        y[30] = x[30];
        y[31] = x[31];
        y[32] = x[32];
        y[33] = x[33];
        y[34] = x[34];
        return y;
    }
    public double[] getInitialValues()
    {
        double [] x = new double[35];
        this.time = 0.0;
        x[0] = 0.0; // - $"cytosol.AggP"
        x[1] = 0.0; // - $"cytosol.AggP_Proteasome"
        x[2] = 200.0; // - $"cytosol.DUB"
        x[3] = 0.0; // - $"cytosol.E1_Ub"
        x[4] = 0.0; // - $"cytosol.E2_Ub"
        x[5] = 0.0; // - $"cytosol.E3_MisP"
        x[6] = 0.0; // - $"cytosol.MisP"
        x[7] = 0.0; // - $"cytosol.MisP_Ub"
        x[8] = 0.0; // - $"cytosol.MisP_Ub2"
        x[9] = 0.0; // - $"cytosol.MisP_Ub3"
        x[10] = 0.0; // - $"cytosol.MisP_Ub4"
        x[11] = 0.0; // - $"cytosol.MisP_Ub4_Proteasome"
        x[12] = 0.0; // - $"cytosol.MisP_Ub5"
        x[13] = 0.0; // - $"cytosol.MisP_Ub5_Proteasome"
        x[14] = 0.0; // - $"cytosol.MisP_Ub6"
        x[15] = 0.0; // - $"cytosol.MisP_Ub6_Proteasome"
        x[16] = 0.0; // - $"cytosol.MisP_Ub7"
        x[17] = 0.0; // - $"cytosol.MisP_Ub7_Proteasome"
        x[18] = 0.0; // - $"cytosol.MisP_Ub8"
        x[19] = 0.0; // - $"cytosol.MisP_Ub8_Proteasome"
        x[20] = 500.0; // - $"cytosol.NatP"
        x[21] = 100.0; // - $"cytosol.Proteasome"
        x[22] = 10.0; // - $"cytosol.ROS"
        x[23] = 0.0; // - $"cytosol.SeqAggP"
        x[24] = 0.0; // - $"cytosol.degUb4"
        x[25] = 0.0; // - $"cytosol.degUb5"
        x[26] = 0.0; // - $"cytosol.degUb6"
        x[27] = 0.0; // - $"cytosol.degUb7"
        x[28] = 0.0; // - $"cytosol.degUb8"
        x[29] = 0.0; // - $"cytosol.refNatP"
        x[30] = 0.0; // - $"cytosol.totMisP"
        x[31] = 100.0; // - $cytosol.E1
        x[32] = 100.0; // - $cytosol.E2
        x[33] = 100.0; // - $cytosol.E3
        x[34] = 500.0; // - $cytosol.Ub

        __internalRateVarInitFunc_0(time, x);
        __internalRateVarInitFunc_1(time, x);
        __internalRateVarInitFunc_2(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);
        __internalRateVarInitFunc_1(time, x);
        __internalRateVarInitFunc_2(time, x);

    }

        /*
         * calculate dy/dt for 'BIOMD0000000105.xml' model
         */
    public void __internalDyDt_0(double time, double [] x, double[] result)
    {
        result[0] = +rate_Aggregation10+rate_Aggregation11+rate_Aggregation12+rate_Aggregation13+rate_Aggregation14+rate_Aggregation15+rate_Aggregation16+rate_Aggregation17+rate_Aggregation18+rate_Aggregation19*2-rate_Aggregation19+rate_Aggregation1+rate_Aggregation20*2-rate_Aggregation20+rate_Aggregation21*2-rate_Aggregation21+rate_Aggregation22*2-rate_Aggregation22+rate_Aggregation23*2-rate_Aggregation23+rate_Aggregation24*2-rate_Aggregation24+rate_Aggregation25*2-rate_Aggregation25+rate_Aggregation26*2-rate_Aggregation26+rate_Aggregation27+rate_Aggregation28+rate_Aggregation29+rate_Aggregation2*2-rate_Aggregation2+rate_Aggregation30+rate_Aggregation31+rate_Aggregation32+rate_Aggregation33+rate_Aggregation34+rate_Aggregation35+rate_Aggregation36+rate_Aggregation37+rate_Aggregation38+rate_Aggregation39+rate_Aggregation3+rate_Aggregation40+rate_Aggregation41+rate_Aggregation42+rate_Aggregation43+rate_Aggregation44+rate_Aggregation45+rate_Aggregation46+rate_Aggregation47+rate_Aggregation48+rate_Aggregation49+rate_Aggregation4+rate_Aggregation50+rate_Aggregation51+rate_Aggregation52+rate_Aggregation53+rate_Aggregation54+rate_Aggregation5+rate_Aggregation6+rate_Aggregation7+rate_Aggregation8+rate_Aggregation9-rate_ProteasomeInhibtion-rate_SequesteringOfAggregates;
        result[1] = +rate_ProteasomeInhibtion;
        result[2] = +rate_DeubiquitinationBoundMisP1-rate_DeubiquitinationBoundMisP1+rate_DeubiquitinationBoundMisP2-rate_DeubiquitinationBoundMisP2+rate_DeubiquitinationBoundMisP3-rate_DeubiquitinationBoundMisP3+rate_DeubiquitinationBoundMisP4-rate_DeubiquitinationBoundMisP4+rate_DeubiquitinationBoundMisP5-rate_DeubiquitinationBoundMisP5+rate_Deubiqutination1-rate_Deubiqutination1+rate_Deubiqutination2-rate_Deubiqutination2+rate_Deubiqutination3-rate_Deubiqutination3+rate_Deubiqutination4-rate_Deubiqutination4+rate_Deubiqutination5-rate_Deubiqutination5+rate_Deubiqutination6-rate_Deubiqutination6+rate_Deubiqutination7-rate_Deubiqutination7+rate_Deubiqutination8-rate_Deubiqutination8;
        result[3] = +rate_E1UbBinding-rate_E2UbBinding;
        result[4] = +rate_E2UbBinding-rate_Monoubiquitination-rate_Polyubiquitination1-rate_Polyubiquitination2-rate_Polyubiquitination3-rate_Polyubiquitination4-rate_Polyubiquitination5-rate_Polyubiquitination6-rate_Polyubiquitination7;
        result[5] = +rate_MisPE3Binding-rate_MisPE3Release-rate_Monoubiquitination;
        result[6] = -rate_Aggregation11-rate_Aggregation12-rate_Aggregation13-rate_Aggregation14-rate_Aggregation15-rate_Aggregation16-rate_Aggregation17-rate_Aggregation18-rate_Aggregation1*2-rate_Aggregation2+rate_Deubiqutination8-rate_MisPE3Binding+rate_MisPE3Release+rate_Misfolding-rate_Refolding;
        result[7] = -rate_Aggregation11-rate_Aggregation19-rate_Aggregation27-rate_Aggregation28-rate_Aggregation29-rate_Aggregation30-rate_Aggregation31-rate_Aggregation32-rate_Aggregation33-rate_Aggregation3*2+rate_Deubiqutination7-rate_Deubiqutination8+rate_Monoubiquitination-rate_Polyubiquitination1;
        result[8] = -rate_Aggregation12-rate_Aggregation20-rate_Aggregation27-rate_Aggregation34-rate_Aggregation35-rate_Aggregation36-rate_Aggregation37-rate_Aggregation38-rate_Aggregation39-rate_Aggregation4*2+rate_Deubiqutination6-rate_Deubiqutination7+rate_Polyubiquitination1-rate_Polyubiquitination2;
        result[9] = -rate_Aggregation13-rate_Aggregation21-rate_Aggregation28-rate_Aggregation34-rate_Aggregation40-rate_Aggregation41-rate_Aggregation42-rate_Aggregation43-rate_Aggregation44-rate_Aggregation5*2+rate_DeubiquitinationBoundMisP1+rate_Deubiqutination5-rate_Deubiqutination6+rate_Polyubiquitination2-rate_Polyubiquitination3;
        result[10] = -rate_Aggregation14-rate_Aggregation22-rate_Aggregation29-rate_Aggregation35-rate_Aggregation40-rate_Aggregation45-rate_Aggregation46-rate_Aggregation47-rate_Aggregation48-rate_Aggregation6*2+rate_Deubiqutination4-rate_Deubiqutination5+rate_Polyubiquitination3-rate_Polyubiquitination4-rate_ProteasomeBinding1;
        result[11] = -rate_DeubiquitinationBoundMisP1+rate_DeubiquitinationBoundMisP2-rate_ProteasomeActivity1+rate_ProteasomeBinding1;
        result[12] = -rate_Aggregation15-rate_Aggregation23-rate_Aggregation30-rate_Aggregation36-rate_Aggregation41-rate_Aggregation45-rate_Aggregation49-rate_Aggregation50-rate_Aggregation51-rate_Aggregation7*2+rate_Deubiqutination3-rate_Deubiqutination4+rate_Polyubiquitination4-rate_Polyubiquitination5-rate_ProteasomeBinding2;
        result[13] = -rate_DeubiquitinationBoundMisP2+rate_DeubiquitinationBoundMisP3-rate_ProteasomeActivity2+rate_ProteasomeBinding2;
        result[14] = -rate_Aggregation16-rate_Aggregation24-rate_Aggregation31-rate_Aggregation37-rate_Aggregation42-rate_Aggregation46-rate_Aggregation49-rate_Aggregation52-rate_Aggregation53-rate_Aggregation8*2+rate_Deubiqutination2-rate_Deubiqutination3+rate_Polyubiquitination5-rate_Polyubiquitination6-rate_ProteasomeBinding3;
        result[15] = -rate_DeubiquitinationBoundMisP3+rate_DeubiquitinationBoundMisP4-rate_ProteasomeActivity3+rate_ProteasomeBinding3;
        result[16] = -rate_Aggregation17-rate_Aggregation25-rate_Aggregation32-rate_Aggregation38-rate_Aggregation43-rate_Aggregation47-rate_Aggregation50-rate_Aggregation52-rate_Aggregation54-rate_Aggregation9*2+rate_Deubiqutination1-rate_Deubiqutination2+rate_Polyubiquitination6-rate_Polyubiquitination7-rate_ProteasomeBinding4;
        result[17] = -rate_DeubiquitinationBoundMisP4+rate_DeubiquitinationBoundMisP5-rate_ProteasomeActivity4+rate_ProteasomeBinding4;
        result[18] = -rate_Aggregation10*2-rate_Aggregation18-rate_Aggregation26-rate_Aggregation33-rate_Aggregation39-rate_Aggregation44-rate_Aggregation48-rate_Aggregation51-rate_Aggregation53-rate_Aggregation54-rate_Deubiqutination1+rate_Polyubiquitination7-rate_ProteasomeBinding5;
        result[19] = -rate_DeubiquitinationBoundMisP5-rate_ProteasomeActivity5+rate_ProteasomeBinding5;
        result[20] = -rate_Misfolding+rate_ProteinSynthesis+rate_Refolding;
        result[21] = +rate_DeubiquitinationBoundMisP1+rate_ProteasomeActivity1+rate_ProteasomeActivity2+rate_ProteasomeActivity3+rate_ProteasomeActivity4+rate_ProteasomeActivity5-rate_ProteasomeBinding1-rate_ProteasomeBinding2-rate_ProteasomeBinding3-rate_ProteasomeBinding4-rate_ProteasomeBinding5-rate_ProteasomeInhibtion;
        result[22] = +rate_Misfolding-rate_Misfolding;
        result[23] = +rate_SequesteringOfAggregates;
        result[24] = +rate_ProteasomeActivity1;
        result[25] = +rate_ProteasomeActivity2;
        result[26] = +rate_ProteasomeActivity3;
        result[27] = +rate_ProteasomeActivity4;
        result[28] = +rate_ProteasomeActivity5;
        result[29] = +rate_Refolding;
        result[30] = +rate_Misfolding;
        result[31] = -rate_E1UbBinding+rate_E2UbBinding;
        result[32] = -rate_E2UbBinding+rate_Monoubiquitination+rate_Polyubiquitination1+rate_Polyubiquitination2+rate_Polyubiquitination3+rate_Polyubiquitination4+rate_Polyubiquitination5+rate_Polyubiquitination6+rate_Polyubiquitination7;
        result[33] = -rate_MisPE3Binding+rate_MisPE3Release+rate_Monoubiquitination;
        result[34] = +rate_DeubiquitinationBoundMisP1+rate_DeubiquitinationBoundMisP2+rate_DeubiquitinationBoundMisP3+rate_DeubiquitinationBoundMisP4+rate_DeubiquitinationBoundMisP5+rate_Deubiqutination1+rate_Deubiqutination2+rate_Deubiqutination3+rate_Deubiqutination4+rate_Deubiqutination5+rate_Deubiqutination6+rate_Deubiqutination7+rate_Deubiqutination8-rate_E1UbBinding+rate_ProteasomeActivity1*4+rate_ProteasomeActivity2*5+rate_ProteasomeActivity3*6+rate_ProteasomeActivity4*7+rate_ProteasomeActivity5*8;
    }
    protected double [] calculateResult(double time, double[] x)
    {
        double[] result = new double[35];
        __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 ...