/* * The control systems structures of energy metabolism * * Model Status * * This CellML model represents version F of the published model * (Table 1.F LAC shuttling) and runs in both PCEnv and COR to * replicate the published results (Figure 2F). The units have * been checked and they are consistent. We'd like to thank the * original model author Mathieu Cloutier for his time spent curating * the CellML model to get it matching the published model. * * Model Structure * * ABSTRACT: The biochemical regulation of energy metabolism (EM) * allows cells to modulate their energetic output depending on * available substrates and requirements. To this end, numerous * biomolecular mechanisms exist that allow the sensing of the * energetic state and corresponding adjustment of enzymatic reaction * rates. This regulation is known to induce dynamic systems properties * such as oscillations or perfect adaptation. Although the various * mechanisms of energy regulation have been studied in detail * from many angles at the experimental and theoretical levels, * no framework is available for the systematic analysis of EM * from a control systems perspective. In this study, we have used * principles well known in control to clarify the basic system * features that govern EM. The major result is a subdivision of * the biomolecular mechanisms of energy regulation in terms of * widely used engineering control mechanisms: proportional, integral, * derivative control, and structures: feedback, cascade and feed-forward * control. Evidence for each mechanism and structure is demonstrated * and the implications for systems properties are shown through * simulations. As the equivalence between biological systems and * control components presented here is generic, it is also hypothesized * that our work could eventually have an applicability that is * much wider than the focus of the current study. * * model diagram * * [[Image file: cloutier_2009.png]] * * Schematic diagram of a generic model for energy metabolism * * The original paper reference is cited below: * * The control systems structures of energy metabolism, Mathieu * Cloutier and Peter Wellstead, 2009, Journal of the Royal Society * Interface, DOI: 10.1098/rsif.2009.0371. PubMed ID: 19828503 */ import nsrunit; unit conversion on; unit s=1 second^1; unit mM=1 meter^(-3)*mole^1; unit per_mM=1 meter^3*mole^(-1); unit mM_per_s=1 meter^(-3)*second^(-1)*mole^1; unit per_mM_s=1 meter^3*second^(-1)*mole^(-1); unit per_s=1 second^(-1); unit cm_per_mM_s=.01 meter^4*second^(-1)*mole^(-1); unit per_cm=100 meter^(-1); unit C_per_mole=1 second^1*ampere^1*mole^(-1); unit L_per_millimole=1 meter^3*mole^(-1); unit mS_per_cm2=10 kilogram^(-1)*meter^(-4)*second^3*ampere^2; unit mV=.001 kilogram^1*meter^2*second^(-3)*ampere^(-1); math main { realDomain time s; time.min=0; extern time.max; extern time.delta; real F6P(time) mM; when(time=time.min) F6P=0.2; real V_hk(time) mM_per_s; real V_pfk(time) mM_per_s; real V_pfk2(time) mM_per_s; real F26P(time) mM; when(time=time.min) F26P=0.001; real GAP(time) mM; when(time=time.min) GAP=0.0405; real V_pk(time) mM_per_s; real PYR(time) mM; when(time=time.min) PYR=0.1; real V_ldh(time) mM_per_s; real V_op(time) mM_per_s; real LAC(time) mM; when(time=time.min) LAC=0.5; real V_lac(time) mM_per_s; real ATP(time) mM; when(time=time.min) ATP=2.402; real V_ATPase(time) mM_per_s; real V_ck(time) mM_per_s; real dAMP_dATP(time) dimensionless; real PCr(time) mM; when(time=time.min) PCr=18.14; real Vmax_hk mM_per_s; Vmax_hk=2.5; real Km_ATP_hk mM; Km_ATP_hk=0.5; real KI_F6P mM; KI_F6P=0.068; real Vmax_pfk mM_per_s; Vmax_pfk=3.85; real Km_ATP_pfk mM; Km_ATP_pfk=0.05; real Km_F6P_pfk mM; Km_F6P_pfk=0.18; real Km_F26P_pfk mM; Km_F26P_pfk=0.01; real AMP_act(time) dimensionless; real ATP_inh(time) dimensionless; real Vmaxf_pfk2 mM_per_s; Vmaxf_pfk2=2e-04; real Vmaxr_pfk2 mM_per_s; Vmaxr_pfk2=1.036e-04; real Km_ATP_pfk2 mM; Km_ATP_pfk2=0.05; real Km_F6P_pfk2 mM; Km_F6P_pfk2=0.01; real Km_F26P_pfk2 mM; Km_F26P_pfk2=0.0001; real AMP_pfk2(time) dimensionless; real Vmax_pk mM_per_s; Vmax_pk=5.0; real Km_ADP_pk mM; Km_ADP_pk=0.005; real Km_GAP_pk mM; Km_GAP_pk=0.4; real ADP(time) mM; real Vmax_op mM_per_s; Vmax_op=1.0; real Km_ADP_op mM; Km_ADP_op=0.005; real Km_PYR_op mM; Km_PYR_op=0.5; real kf_ldh per_s; kf_ldh=12.5; real kr_ldh per_s; kr_ldh=2.5355; real kf_ck per_mM_s; kf_ck=3.0; real kr_ck per_mM_s; kr_ck=1.26; real Cr(time) mM; real PCrtot mM; PCrtot=20.0; real Vmax_ATPase mM_per_s; Vmax_ATPase=0.9355; real Km_ATP mM; Km_ATP=0.5; real v_stim(time) dimensionless; real Vlac_0 mM_per_s; Vlac_0=0.355; real K_LAC_eff per_s; K_LAC_eff=0.71; real K_LAC dimensionless; K_LAC=0.641; real u(time) dimensionless; real ANP mM; ANP=2.51; real Q_adk dimensionless; Q_adk=0.92; real AMP(time) mM; real nATP dimensionless; nATP=0.4; real KI_ATP mM; KI_ATP=1.0; real nAMP dimensionless; nAMP=0.5; real Ka_AMP mM; Ka_AMP=0.05; real unitpulseSB(time) dimensionless; real stim dimensionless; stim=1; real was_to s; was_to=50; real tend s; tend=200; real v1_n dimensionless; v1_n=0.5; real v2_n dimensionless; v2_n=0.0; real t_n_stim s; t_n_stim=2; real Kamp_pfk2 mM; Kamp_pfk2=0.005; real nh_amp dimensionless; nh_amp=2; // // F6P:time=(V_hk-(V_pfk-V_pfk2)); // F26P:time=V_pfk2; // GAP:time=(2*V_pfk-V_pk); // PYR:time=(V_pk-(V_op+V_ldh)); // LAC:time=(2.25*V_ldh+V_lac); // ATP:time=((2*V_pk+15*V_op+V_ck-(V_hk+V_pfk+V_pfk2+V_ATPase))*(1-dAMP_dATP)^(-1)); // PCr:time=((-1)*V_ck); // V_hk=(Vmax_hk*(ATP/(ATP+Km_ATP_hk))*(1+(F6P/KI_F6P)^4)^(-1)); // V_pfk=(Vmax_pfk*(F6P/(F6P+Km_F6P_pfk))*(ATP/(ATP+Km_ATP_pfk))*(F26P/(F26P+Km_F26P_pfk))*ATP_inh*AMP_act); // V_pfk2=(Vmaxf_pfk2*(ATP/(ATP+Km_ATP_pfk2))*(F6P/(F6P+Km_F6P_pfk2))*AMP_pfk2-Vmaxr_pfk2*(F26P/(F26P+Km_F26P_pfk2))); // V_pk=(Vmax_pk*(GAP/(GAP+Km_GAP_pk))*(ADP/(ADP+Km_ADP_pk))*ATP_inh); // V_op=(Vmax_op*(PYR/(PYR+Km_PYR_op))*(ADP/(ADP+Km_ADP_op))*(1/(1+.1*(ATP/ADP)))); // V_ldh=(kf_ldh*PYR-kr_ldh*LAC); // V_ck=(kf_ck*PCr*ADP-kr_ck*Cr*ATP); // Cr=(PCrtot-PCr); // V_ATPase=(Vmax_ATPase*(ATP/(ATP+Km_ATP))*(1+v_stim)); // V_lac=(Vlac_0*(1+v_stim*K_LAC)-K_LAC_eff*LAC); // ADP=(ATP/2*((-1)*Q_adk+sqrt(u))); u=(Q_adk^2+4*Q_adk*(ANP/ATP-1)); // dAMP_dATP=((-1)*1+Q_adk/2+(-1)*(.5*sqrt(u))+Q_adk*(ANP/(ATP*sqrt(u)))); // AMP=(ANP-(ATP+ADP)); // ATP_inh=(((1+nATP*(ATP/KI_ATP))/(1+ATP/KI_ATP))^4); // AMP_act=(((1+AMP/Ka_AMP)/(1+nAMP*(AMP/Ka_AMP)))^4); // v_stim=(stim*(v1_n+v2_n*((time-was_to)/t_n_stim)*exp((-1)*((time-was_to)*(unitpulseSB/t_n_stim))))*unitpulseSB); unitpulseSB=(if ((time>=was_to) and (time<=(was_to+tend))) 1 else 0); // // AMP_pfk2=((AMP/Kamp_pfk2)^nh_amp/(1+(AMP/Kamp_pfk2)^nh_amp)); }