Personal tools
You are here: Home Model Repository
 
Views

A Biophysical Model of the Mitochondrial Respiratory System and Oxidative Phosphorylation

Generated code

Programming Language

Download this code
  • The required array sizes are:
    • VARIABLES[62]
    • CONSTANTS[50]
    • BOUND[1]
    • RATES[19]
  • The following variables are defined:
    • Variable t(BOUND[0])
    • Variable Mg_tot(CONSTANTS[0])
    • Variable Pi_e(CONSTANTS[1])
    • Variable ADP_e(CONSTANTS[2])
    • Variable RT(CONSTANTS[3])
    • Variable F(CONSTANTS[4])
    • Variable n_A(CONSTANTS[5])
    • Variable dG_C1o(CONSTANTS[6])
    • Variable dG_C3o(CONSTANTS[7])
    • Variable dG_C4o(CONSTANTS[8])
    • Variable dG_F1o(CONSTANTS[9])
    • Variable pH_e(CONSTANTS[10])
    • Variable H_e(VARIABLES[19]; computed once)
    • Variable K_e(CONSTANTS[11])
    • Variable ATP_e(CONSTANTS[12])
    • Variable AMP_e(CONSTANTS[13])
    • Variable k_dHPi(CONSTANTS[14])
    • Variable k_dHatp(CONSTANTS[15])
    • Variable k_dHadp(CONSTANTS[16])
    • Variable K_DT(CONSTANTS[17])
    • Variable K_DD(CONSTANTS[18])
    • Variable K_AK(CONSTANTS[19])
    • Variable W_m(CONSTANTS[20])
    • Variable W_x(VARIABLES[20]; computed once)
    • Variable W_i(VARIABLES[21]; computed once)
    • Variable gamma(CONSTANTS[21])
    • Variable Ctot(CONSTANTS[22])
    • Variable Qtot(CONSTANTS[23])
    • Variable NADtot(CONSTANTS[24])
    • Variable H_i(VARIABLES[22]; computed once)
    • Variable K_i(VARIABLES[23]; computed once)
    • Variable k_Pi1(CONSTANTS[25])
    • Variable k_Pi2(CONSTANTS[26])
    • Variable k_Pi3(CONSTANTS[27])
    • Variable k_Pi4(CONSTANTS[28])
    • Variable k_PiH(CONSTANTS[29])
    • Variable r(CONSTANTS[30])
    • Variable x_DH(CONSTANTS[31])
    • Variable x_C1(CONSTANTS[32])
    • Variable x_C3(CONSTANTS[33])
    • Variable x_C4(CONSTANTS[34])
    • Variable x_F1(CONSTANTS[35])
    • Variable x_ANT(CONSTANTS[36])
    • Variable x_Pi1(CONSTANTS[37])
    • Variable x_KH(CONSTANTS[38])
    • Variable x_Hle(CONSTANTS[39])
    • Variable x_K(CONSTANTS[40])
    • Variable k_mADP(CONSTANTS[41])
    • Variable x_AK(CONSTANTS[42])
    • Variable p_A(CONSTANTS[43])
    • Variable k_O2(CONSTANTS[44])
    • Variable r_buff(CONSTANTS[45])
    • Variable x_MgA(CONSTANTS[46])
    • Variable x_Pi2(CONSTANTS[47])
    • Variable dG_H(VARIABLES[24]; recomputed after rate changes)
    • Variable J_DH(VARIABLES[25]; recomputed after rate changes)
    • Variable J_C1(VARIABLES[26]; recomputed after rate changes)
    • Variable dG_C1op(VARIABLES[27]; recomputed after rate changes)
    • Variable J_C3(VARIABLES[28]; recomputed after rate changes)
    • Variable dG_C3op(VARIABLES[29]; recomputed after rate changes)
    • Variable J_C4(VARIABLES[30]; recomputed after rate changes)
    • Variable dG_C4op(VARIABLES[31]; recomputed after rate changes)
    • Variable J_F1(VARIABLES[32]; recomputed after rate changes)
    • Variable J_ANT(VARIABLES[33]; recomputed after rate changes)
    • Variable Psi_x(VARIABLES[34]; recomputed after rate changes)
    • Variable K_x(RATES[0] and VARIABLES[0])
    • Variable Mg_x(RATES[1] and VARIABLES[1])
    • Variable NADH_x(RATES[2] and VARIABLES[2])
    • Variable QH2(RATES[3] and VARIABLES[3])
    • Variable Cred(RATES[4] and VARIABLES[4])
    • Variable ATP_x(RATES[5] and VARIABLES[5])
    • Variable ADP_x(RATES[6] and VARIABLES[6])
    • Variable ATP_mx(RATES[7] and VARIABLES[7])
    • Variable ADP_mx(RATES[8] and VARIABLES[8])
    • Variable Pi_x(RATES[9] and VARIABLES[9])
    • Variable ATP_i(RATES[10] and VARIABLES[10])
    • Variable ADP_i(RATES[11] and VARIABLES[11])
    • Variable AMP_i(RATES[12] and VARIABLES[12])
    • Variable ATP_mi(RATES[13] and VARIABLES[13])
    • Variable ADP_mi(RATES[14] and VARIABLES[14])
    • Variable Pi_i(RATES[15] and VARIABLES[15])
    • Variable dPsi(RATES[16] and VARIABLES[16])
    • Variable C_im(CONSTANTS[48])
    • Variable O2(RATES[17] and VARIABLES[17])
    • Variable Psi_i(VARIABLES[35]; recomputed after rate changes)
    • Variable mincond(CONSTANTS[49])
    • Variable J_MgATPx(VARIABLES[36]; recomputed after rate changes)
    • Variable ATP_fx(VARIABLES[37]; recomputed after rate changes)
    • Variable J_MgADPx(VARIABLES[38]; recomputed after rate changes)
    • Variable ADP_fx(VARIABLES[39]; recomputed after rate changes)
    • Variable J_MgATPi(VARIABLES[40]; recomputed after rate changes)
    • Variable ATP_fi(VARIABLES[41]; recomputed after rate changes)
    • Variable J_MgADPi(VARIABLES[42]; recomputed after rate changes)
    • Variable ADP_fi(VARIABLES[43]; recomputed after rate changes)
    • Variable J_ATP(VARIABLES[44]; recomputed after rate changes)
    • Variable J_ADP(VARIABLES[45]; recomputed after rate changes)
    • Variable J_AMP(VARIABLES[46]; recomputed after rate changes)
    • Variable J_Pi2(VARIABLES[47]; recomputed after rate changes)
    • Variable J_Pi1(VARIABLES[48]; recomputed after rate changes)
    • Variable H2PIi(VARIABLES[49]; recomputed after rate changes)
    • Variable H2PIx(VARIABLES[50]; recomputed after rate changes)
    • Variable J_AKi(VARIABLES[51]; recomputed after rate changes)
    • Variable J_Hle(VARIABLES[52]; recomputed after rate changes)
    • Variable J_K(VARIABLES[53]; recomputed after rate changes)
    • Variable J_KH(VARIABLES[54]; recomputed after rate changes)
    • Variable NAD_x(VARIABLES[55]; recomputed after rate changes)
    • Variable Q(VARIABLES[56]; recomputed after rate changes)
    • Variable Cox(VARIABLES[57]; recomputed after rate changes)
    • Variable ADP_me(VARIABLES[58]; computed once)
    • Variable ADP_fe(VARIABLES[59]; computed once)
    • Variable Mg_e(VARIABLES[60]; computed once)
    • Variable Mg_i(VARIABLES[61]; computed once)
    • Variable H_x(RATES[18] and VARIABLES[18])
  • No equation needed for Newton-Raphson evaluation.
void SetupFixedConstants(double* CONSTANTS)
{
CONSTANTS[0] = 0.005;
CONSTANTS[1] = 0.001;
CONSTANTS[2] = 0.0013;
CONSTANTS[3] = 2.4734;
CONSTANTS[4] = 0.096485;
CONSTANTS[5] = 3;
CONSTANTS[6] = -69.37;
CONSTANTS[7] = -32.53;
CONSTANTS[8] = -122.94;
CONSTANTS[9] = 36.03;
CONSTANTS[10] = 7.1;
CONSTANTS[11] = 0.15;
CONSTANTS[12] = 0;
CONSTANTS[13] = 0;
CONSTANTS[14] = 1.77828e-07;
CONSTANTS[15] = 3.31131e-07;
CONSTANTS[16] = 5.12861e-07;
CONSTANTS[17] = 2.4e-05;
CONSTANTS[18] = 0.000347;
CONSTANTS[19] = 0.4331;
CONSTANTS[20] = 0.72376;
CONSTANTS[21] = 5.99;
CONSTANTS[22] = 0.0027;
CONSTANTS[23] = 0.00135;
CONSTANTS[24] = 0.00297;
CONSTANTS[25] = 0.00013413;
CONSTANTS[26] = 0.00067668;
CONSTANTS[27] = 0.00019172;
CONSTANTS[28] = 0.02531;
CONSTANTS[29] = 0.00045082;
CONSTANTS[30] = 4.5807;
CONSTANTS[31] = 0.09183;
CONSTANTS[32] = 0.36923;
CONSTANTS[33] = 0.091737;
CONSTANTS[34] = 3.2562e-05;
CONSTANTS[35] = 150.93;
CONSTANTS[36] = 0.0079204;
CONSTANTS[37] = 339430;
CONSTANTS[38] = 2.9802e+07;
CONSTANTS[39] = 250;
CONSTANTS[40] = 0;
CONSTANTS[41] = 3.5e-06;
CONSTANTS[42] = 0;
CONSTANTS[43] = 85;
CONSTANTS[44] = 0.00012;
CONSTANTS[45] = 4.253;
CONSTANTS[46] = 1e+06;
CONSTANTS[47] = 327;
CONSTANTS[48] = 1e-06;
CONSTANTS[49] = 1e-12;
}

void SetupComputedConstants(double* CONSTANTS, double* VARIABLES)
{
VARIABLES[19] = (1.00000*pow(10.0000,(-CONSTANTS[10])));
VARIABLES[20] = (0.900000*CONSTANTS[20]);
VARIABLES[21] = (0.100000*CONSTANTS[20]);
VARIABLES[22] = VARIABLES[19];
VARIABLES[23] = CONSTANTS[11];
VARIABLES[58] = (((CONSTANTS[18]+CONSTANTS[2]+CONSTANTS[0])-pow((pow((CONSTANTS[18]+CONSTANTS[2]+CONSTANTS[0]),2.00000)-(4.00000*CONSTANTS[0]*CONSTANTS[2])),0.500000))/2.00000);
VARIABLES[59] = (CONSTANTS[2]-VARIABLES[58]);
VARIABLES[60] = (CONSTANTS[0]-VARIABLES[58]);
VARIABLES[61] = VARIABLES[60];
VARIABLES[0] = 0.140000;
VARIABLES[1] = 0.00500000;
VARIABLES[2] = 0.00150000;
VARIABLES[3] = 0.000800000;
VARIABLES[4] = 0.00100000;
VARIABLES[5] = 0.00000;
VARIABLES[6] = 0.0100000;
VARIABLES[7] = 0.00000;
VARIABLES[8] = 0.00000;
VARIABLES[9] = 0.00100000;
VARIABLES[10] = 0.00000;
VARIABLES[11] = 0.00000;
VARIABLES[12] = 0.00000;
VARIABLES[13] = 0.00000;
VARIABLES[14] = 0.00000;
VARIABLES[15] = 0.00100000;
VARIABLES[16] = 160.000;
VARIABLES[17] = 2.60000e-05;
VARIABLES[18] = 6.30957e-08;
}

void ComputeRates(double* BOUND, double* RATES, double* CONSTANTS, double* VARIABLES)
{
RATES[18] = (((1.00000/CONSTANTS[45])*((((((-VARIABLES[25])-(3.00000*VARIABLES[26]))-(4.00000*VARIABLES[28]))-(2.00000*VARIABLES[30]))+((CONSTANTS[5]-1.00000)*VARIABLES[32])+(2.00000*VARIABLES[48])+VARIABLES[52])-VARIABLES[54]))/VARIABLES[20]);
RATES[0] = ((VARIABLES[54]+VARIABLES[53])/VARIABLES[20]);
RATES[1] = (((-VARIABLES[36])-VARIABLES[38])/VARIABLES[20]);
RATES[2] = ((VARIABLES[25]-VARIABLES[26])/VARIABLES[20]);
RATES[3] = ((VARIABLES[26]-VARIABLES[28])/VARIABLES[20]);
RATES[4] = (((2.00000*VARIABLES[28])-(2.00000*VARIABLES[30]))/VARIABLES[21]);
RATES[5] = ((VARIABLES[32]-VARIABLES[33])/VARIABLES[20]);
RATES[6] = (((-VARIABLES[32])+VARIABLES[33])/VARIABLES[20]);
RATES[7] = (VARIABLES[36]/VARIABLES[20]);
RATES[8] = (VARIABLES[38]/VARIABLES[20]);
RATES[9] = (((-VARIABLES[32])+VARIABLES[48])/VARIABLES[20]);
RATES[10] = ((VARIABLES[44]+VARIABLES[33]+VARIABLES[51])/VARIABLES[21]);
RATES[11] = (((VARIABLES[45]-VARIABLES[33])-(2.00000*VARIABLES[51]))/VARIABLES[21]);
RATES[12] = ((VARIABLES[46]+VARIABLES[51])/VARIABLES[21]);
RATES[13] = (VARIABLES[40]/VARIABLES[21]);
RATES[14] = (VARIABLES[42]/VARIABLES[21]);
RATES[15] = (((-VARIABLES[48])+VARIABLES[47])/VARIABLES[21]);
RATES[16] = (((((((4.00000*VARIABLES[26])+(2.00000*VARIABLES[28])+(4.00000*VARIABLES[30]))-(CONSTANTS[5]*VARIABLES[32]))-VARIABLES[33])-VARIABLES[52])-VARIABLES[53])/CONSTANTS[48]);
RATES[17] = 0.00000;
}

void ComputeVariables(double* BOUND, double* RATES, double* CONSTANTS, double* VARIABLES)
{
VARIABLES[24] = ((CONSTANTS[4]*VARIABLES[16])+(CONSTANTS[3]*log((VARIABLES[22]/VARIABLES[18]))));
VARIABLES[55] = (CONSTANTS[24]-VARIABLES[2]);
VARIABLES[25] = ((CONSTANTS[31]*((CONSTANTS[30]*VARIABLES[55])-VARIABLES[2])*(1.00000+(VARIABLES[9]/CONSTANTS[25])))/(1.00000+(VARIABLES[9]/CONSTANTS[26])));
VARIABLES[56] = (CONSTANTS[23]-VARIABLES[3]);
VARIABLES[27] = ((CONSTANTS[6]-(CONSTANTS[3]*log((VARIABLES[18]/1.00000e-07))))-(CONSTANTS[3]*log((VARIABLES[56]/VARIABLES[3]))));
VARIABLES[26] = (CONSTANTS[32]*((exp(((-(VARIABLES[27]+(4.00000*VARIABLES[24])))/CONSTANTS[3]))*VARIABLES[2])-VARIABLES[55]));
VARIABLES[57] = (CONSTANTS[22]-VARIABLES[4]);
VARIABLES[29] = ((CONSTANTS[7]+(2.00000*CONSTANTS[3]*log((VARIABLES[18]/1.00000e-07))))-(CONSTANTS[3]*log((VARIABLES[3]/VARIABLES[56]))));
VARIABLES[28] = (((CONSTANTS[33]*(1.00000+(VARIABLES[9]/CONSTANTS[27])))/(1.00000+(VARIABLES[9]/CONSTANTS[28])))*((exp(((-((VARIABLES[29]+(4.00000*VARIABLES[24]))-(2.00000*CONSTANTS[4]*VARIABLES[16])))/(2.00000*CONSTANTS[3])))*VARIABLES[57])-VARIABLES[4]));
VARIABLES[31] = ((CONSTANTS[8]-(2.00000*CONSTANTS[3]*log((VARIABLES[18]/1.00000e-07))))+((CONSTANTS[3]/2.00000)*log((VARIABLES[17]/1.00000))));
VARIABLES[30] = ((((CONSTANTS[34]/(1.00000+(CONSTANTS[44]/VARIABLES[17])))*VARIABLES[4])/CONSTANTS[22])*((exp((((-VARIABLES[31])-(2.00000*VARIABLES[24]))/(2.00000*CONSTANTS[3])))*VARIABLES[4])-(VARIABLES[57]*exp(((CONSTANTS[4]*VARIABLES[16])/CONSTANTS[3])))));
VARIABLES[32] = (CONSTANTS[35]*((((exp(((-(CONSTANTS[9]-(CONSTANTS[5]*VARIABLES[24])))/CONSTANTS[3]))*CONSTANTS[18])/CONSTANTS[17])*VARIABLES[8]*VARIABLES[9])-(VARIABLES[7]*1.00000)));
VARIABLES[43] = (VARIABLES[11]-VARIABLES[14]);
VARIABLES[34] = ((-0.650000)*VARIABLES[16]);
VARIABLES[35] = (0.350000*VARIABLES[16]);
VARIABLES[37] = (VARIABLES[5]-VARIABLES[7]);
VARIABLES[39] = (VARIABLES[6]-VARIABLES[8]);
VARIABLES[41] = (VARIABLES[10]-VARIABLES[13]);
VARIABLES[33] = ((((VARIABLES[43]>CONSTANTS[49]))||((VARIABLES[41]>CONSTANTS[49])))) ? (((CONSTANTS[36]*((VARIABLES[43]/(VARIABLES[43]+(VARIABLES[41]*exp((((-CONSTANTS[4])*VARIABLES[35])/CONSTANTS[3])))))-(VARIABLES[39]/(VARIABLES[39]+(VARIABLES[37]*exp((((-CONSTANTS[4])*VARIABLES[34])/CONSTANTS[3]))))))*1.00000)/(1.00000+(CONSTANTS[41]/VARIABLES[43])))) : (0.00000);
VARIABLES[36] = (CONSTANTS[46]*((VARIABLES[37]*VARIABLES[1])-(CONSTANTS[17]*VARIABLES[7])));
VARIABLES[38] = (CONSTANTS[46]*((VARIABLES[39]*VARIABLES[1])-(CONSTANTS[18]*VARIABLES[8])));
VARIABLES[40] = (CONSTANTS[46]*((VARIABLES[41]*VARIABLES[61])-(CONSTANTS[17]*VARIABLES[13])));
VARIABLES[42] = (CONSTANTS[46]*((VARIABLES[43]*VARIABLES[61])-(CONSTANTS[18]*VARIABLES[14])));
VARIABLES[44] = (CONSTANTS[21]*CONSTANTS[43]*(CONSTANTS[12]-VARIABLES[10]));
VARIABLES[45] = (CONSTANTS[21]*CONSTANTS[43]*(CONSTANTS[2]-VARIABLES[11]));
VARIABLES[46] = (CONSTANTS[21]*CONSTANTS[43]*(CONSTANTS[13]-VARIABLES[12]));
VARIABLES[47] = (CONSTANTS[21]*CONSTANTS[47]*(CONSTANTS[1]-VARIABLES[15]));
VARIABLES[49] = ((VARIABLES[15]*VARIABLES[22])/(VARIABLES[22]+CONSTANTS[14]));
VARIABLES[50] = ((VARIABLES[9]*VARIABLES[18])/(VARIABLES[18]+CONSTANTS[14]));
VARIABLES[48] = ((CONSTANTS[37]*((VARIABLES[18]*VARIABLES[49])-(VARIABLES[22]*VARIABLES[50])))/(VARIABLES[49]+CONSTANTS[29]));
VARIABLES[51] = (CONSTANTS[42]*((CONSTANTS[19]*VARIABLES[11]*VARIABLES[11])-(VARIABLES[12]*VARIABLES[10])));
VARIABLES[52] = ((CONSTANTS[39]*VARIABLES[16]*((VARIABLES[22]*exp(((CONSTANTS[4]*VARIABLES[16])/CONSTANTS[3])))-VARIABLES[18]))/(exp(((CONSTANTS[4]*VARIABLES[16])/CONSTANTS[3]))-1.00000));
VARIABLES[53] = ((CONSTANTS[40]*VARIABLES[16]*((VARIABLES[23]*exp(((CONSTANTS[4]*VARIABLES[16])/CONSTANTS[3])))-VARIABLES[0]))/(exp(((CONSTANTS[4]*VARIABLES[16])/CONSTANTS[3]))-1.00000));
VARIABLES[54] = (CONSTANTS[38]*((VARIABLES[23]*VARIABLES[18])-(VARIABLES[0]*VARIABLES[22])));
#ifndef VARIABLES_FOR_RATES_ONLY
#endif
}