/* * Model Status * * This CellML model describes Model III in the published paper, * and is able to reproduce all figures from publication. The units * have been checked and are consistent. * * Model Structure * * ABSTRACT: Despite the establishment of the important role of * nitric oxide (NO) on apoptosis, a molecular-level understanding * of the origin of its dichotomous pro- and anti-apoptotic effects * has been elusive. We propose a new mathematical model for simulating * the effects of nitric oxide (NO) on apoptosis. The new model * integrates mitochondria-dependent apoptotic pathways with NO-related * reactions, to gain insights into the regulatory effect of the * reactive NO species N(2)O(3), non-heme iron nitrosyl species * (FeL(n)NO), and peroxynitrite (ONOO(-)). The biochemical pathways * of apoptosis coupled with NO-related reactions are described * by ordinary differential equations using mass-action kinetics. * In the absence of NO, the model predicts either cell survival * or apoptosis (a bistable behavior) with shifts in the onset * time of apoptotic response depending on the strength of extracellular * stimuli. Computations demonstrate that the relative concentrations * of anti- and pro-apoptotic reactive NO species, and their interplay * with glutathione, determine the net anti- or pro-apoptotic effects * at long time points. Interestingly, transient effects on apoptosis * are also observed in these simulations, the duration of which * may reach up to hours, despite the eventual convergence to an * anti-apoptotic state. Our computations point to the importance * of precise timing of NO production and external stimulation * in determining the eventual pro- or anti-apoptotic role of NO. * * The original paper is cited below: * * Computational Insights on the Competing Effects of Nitric Oxide * in Regulating Apoptosis. Elift. Z. Bagci, Yoram Vodovotz et * al, 2009, PLoS ONE, 3(5),e2249. PubMed ID: 18509469 * * Diagram of model * * [[Image file: bagci_2008b.png]] * * A schematic diagram of biochemical pathways of NO related reactions. */ import nsrunit; unit conversion on; // unit micromolar predefined unit first_order_rate_constant=1 second^(-1); unit second_order_rate_constant=1E3 meter^3*second^(-1)*mole^(-1); unit flux=1E-3 meter^(-3)*second^(-1)*mole^1; unit rate=1E9 meter^9*second^(-1)*mole^(-3); unit rate2=1E6 meter^6*second^(-1)*mole^(-2); math main { realDomain time second; time.min=0; extern time.max; extern time.delta; real Casp8(time) micromolar; when(time=time.min) Casp8=0; real Casp8Bid(time) micromolar; when(time=time.min) Casp8Bid=0; real FeLnNO(time) micromolar; when(time=time.min) FeLnNO=0; real Bid(time) micromolar; when(time=time.min) Bid=0.004; real J_0(time) flux; real J_f0(time) flux; real J_Casp8(time) flux; real r_20NO(time) flux; real r_19NO(time) flux; real k_f0 first_order_rate_constant; k_f0=0.1; real k_10 second_order_rate_constant; k_10=10; real k_00 first_order_rate_constant; k_00=0.5; real u first_order_rate_constant; u=0.006; real k_20NO second_order_rate_constant; k_20NO=66; real Apaf_1(time) micromolar; when(time=time.min) Apaf_1=0.004; real CytcApaf_1(time) micromolar; when(time=time.min) CytcApaf_1=0; real Cytc(time) micromolar; when(time=time.min) Cytc=0; real J_Apaf_1(time) flux; real J_1(time) flux; real P_Apaf_1 flux; P_Apaf_1=0.0003; real k_11 second_order_rate_constant; k_11=5; real k_01 first_order_rate_constant; k_01=0.5; real Apop(time) micromolar; when(time=time.min) Apop=0; real J_1b(time) flux; real k_11b rate; k_11b=50000; real k_01b first_order_rate_constant; k_01b=0.5; // Var below replaced by constant in model eqns to satisfy unit correction // real p dimensionless; // p=4; real Cytc_mito(time) micromolar; when(time=time.min) Cytc_mito=0.004; real PTPC(time) micromolar; when(time=time.min) PTPC=0; real PTPC_act(time) micromolar; real PTPC_0 micromolar; PTPC_0=0; real J_14(time) flux; real J_Cytc(time) flux; real k_1 second_order_rate_constant; k_1=1; real Bax_2(time) micromolar; when(time=time.min) Bax_2=0; real J_Cytc_mito(time) flux; real P_Cytc_mito flux; P_Cytc_mito=0.0003; real k14 second_order_rate_constant; k14=10; real J_12b(time) flux; real J_Bax_2(time) flux; real tBid_mito(time) micromolar; when(time=time.min) tBid_mito=0; real Bax(time) micromolar; when(time=time.min) Bax=0.004; real J_11(time) flux; real J_12a(time) flux; real J_tBid_mito(time) flux; real k12a second_order_rate_constant; k12a=10; real tBid(time) micromolar; when(time=time.min) tBid=0; real J_f8(time) flux; real J_tBid(time) flux; real k11 first_order_rate_constant; k11=10; real tBidBax(time) micromolar; when(time=time.min) tBidBax=0; real J_tBidBax(time) flux; real k12b second_order_rate_constant; k12b=10; real Bcl_2(time) micromolar; when(time=time.min) Bcl_2=0.004; real J_13(time) flux; real J_Bax(time) flux; real P_Bax flux; real k13 second_order_rate_constant; k13=10; real P_oBax flux; P_oBax=0.00003; real p53 micromolar; p53=0.0066; real p53_thresh micromolar; p53_thresh=0.004; real u_Bax first_order_rate_constant; u_Bax=0.006; real Casp3(time) micromolar; when(time=time.min) Casp3=0; real Casp3Bcl_2(time) micromolar; when(time=time.min) Casp3Bcl_2=0; real J_9(time) flux; real J_Bcl_2(time) flux; real k_19 second_order_rate_constant; k_19=10; real k_09 first_order_rate_constant; k_09=0.5; real P_Bcl_2 flux; real P_oBcl_2 flux; P_oBcl_2=0.00008; real u_Bcl_2 first_order_rate_constant; u_Bcl_2=0.006; real J_f9(time) flux; real k_f9 first_order_rate_constant; k_f9=0.1; real Casp3Bid(time) micromolar; when(time=time.min) Casp3Bid=0; real J_8(time) flux; real k_18 second_order_rate_constant; k_18=10; real k_08 first_order_rate_constant; k_08=0.5; real k_f8 first_order_rate_constant; k_f8=0.1; real J_Bid(time) flux; real P_Bid flux; P_Bid=0.00003; real IAP(time) micromolar; when(time=time.min) IAP=0.004; real Casp3IAP(time) micromolar; when(time=time.min) Casp3IAP=0; real J_f6(time) flux; real J_f6b(time) flux; real J_7(time) flux; real J_Casp3(time) flux; real r_22NO(time) flux; real k_17 second_order_rate_constant; k_17=5; real k_07 first_order_rate_constant; k_07=0.0035; real J_2(time) flux; real J_4b(time) flux; real Pro9(time) micromolar; when(time=time.min) Pro9=0.004; real ApopPro9(time) micromolar; when(time=time.min) ApopPro9=0; real ApopPro9_2(time) micromolar; when(time=time.min) ApopPro9_2=0; real J_3(time) flux; real J_Pro9(time) flux; real k_12 second_order_rate_constant; k_12=10; real k_02 first_order_rate_constant; k_02=0.5; real k_13 second_order_rate_constant; k_13=10; real k_03 first_order_rate_constant; k_03=0.5; real P_Pro9 flux; P_Pro9=0.0003; real J_f3(time) flux; real k_f3 first_order_rate_constant; k_f3=0.1; real ApopCasp9_2Pro3(time) micromolar; when(time=time.min) ApopCasp9_2Pro3=0; real ApopCasp9_2(time) micromolar; when(time=time.min) ApopCasp9_2=0; real Pro3(time) micromolar; when(time=time.min) Pro3=0.004; real J_6b(time) flux; real k_16b second_order_rate_constant; k_16b=10; real k_06b first_order_rate_constant; k_06b=0.5; real k_f6b first_order_rate_constant; k_f6b=0.1; real Casp9Pro3(time) micromolar; when(time=time.min) Casp9Pro3=0; real J_6(time) flux; real k_f6 first_order_rate_constant; k_f6=0.001; real Casp9(time) micromolar; when(time=time.min) Casp9=0; real J_Pro3(time) flux; real k_16 second_order_rate_constant; k_16=10; real k_06 first_order_rate_constant; k_06=0.5; real P_Pro3 flux; P_Pro3=0.0003; real Casp9IAP(time) micromolar; when(time=time.min) Casp9IAP=0; real ApopCasp9IAP(time) micromolar; when(time=time.min) ApopCasp9IAP=0; real ApopCasp9_2IAP(time) micromolar; when(time=time.min) ApopCasp9_2IAP=0; real ApopCasp9(time) micromolar; when(time=time.min) ApopCasp9=0; real J_5(time) flux; real J_5b(time) flux; real J_5c(time) flux; real J_IAP(time) flux; real P_IAP flux; P_IAP=0.00003; real k_15 second_order_rate_constant; k_15=5; real k_05 first_order_rate_constant; k_05=0.0035; real k_15b second_order_rate_constant; k_15b=5; real k_05b first_order_rate_constant; k_05b=0.0035; real k_15c second_order_rate_constant; k_15c=5; real k_05c first_order_rate_constant; k_05c=0.0035; real J_4(time) flux; real k_14 first_order_rate_constant; k_14=5; real k_04 second_order_rate_constant; k_04=0.5; real k_14b first_order_rate_constant; k_14b=5; real k_04b second_order_rate_constant; k_04b=0.5; real J_Casp9(time) flux; real r_21NO(time) flux; real NO(time) micromolar; when(time=time.min) NO=0; real O_2m(time) micromolar; when(time=time.min) O_2m=35; real O_2 micromolar; O_2=35; real NO_2(time) micromolar; when(time=time.min) NO_2=0; real N2O3(time) micromolar; when(time=time.min) N2O3=0; real GSNO(time) micromolar; when(time=time.min) GSNO=0; real CcOX(time) micromolar; when(time=time.min) CcOX=0.1; real FeLn(time) micromolar; when(time=time.min) FeLn=0.05; real r_1NO flux; real r_4NO(time) flux; real r_12aNO(time) flux; real r_12bNOp(time) flux; real r_12bNOm(time) flux; real r_14NO(time) flux; real r_15NO(time) flux; real r_16NO(time) flux; real k_1NO flux; k_1NO=1; real k_4NO second_order_rate_constant; k_4NO=6700; real k_12aNO rate2; k_12aNO=0.000006; real k_12bNOp second_order_rate_constant; k_12bNOp=1100; real k_12bNOm first_order_rate_constant; k_12bNOm=81000; real k_14NO first_order_rate_constant; k_14NO=0.0002; real k_15NO second_order_rate_constant; k_15NO=100; real k_16NO second_order_rate_constant; k_16NO=1.21; real SOD micromolar; SOD=10; real r_2NO flux; real r_5NO(time) flux; real r_10NO(time) flux; real k_2NO flux; k_2NO=0.1; real k_5NO second_order_rate_constant; k_5NO=2400; real k_10NO rate2; k_10NO=0.0006; real ONOO_m(time) micromolar; when(time=time.min) ONOO_m=0; real GSH(time) micromolar; when(time=time.min) GSH=10000; real GPX micromolar; GPX=5.8; real CO_2 micromolar; CO_2=1000; real Cyt_c micromolar; Cyt_c=400; real r_6NO(time) flux; real r_7NO(time) flux; real r_8NO(time) flux; real r_9NO(time) flux; real r_18NO(time) flux; real k_6NO second_order_rate_constant; k_6NO=0.00135; real k_7NO second_order_rate_constant; k_7NO=2; real k_8NO second_order_rate_constant; k_8NO=0.058; real k_9NO second_order_rate_constant; k_9NO=0.025; real k_18NO second_order_rate_constant; k_18NO=1; real GSSG(time) micromolar; real FeLn_0 micromolar; FeLn_0=0.05; real GSH_0 micromolar; GSH_0=10000; real r_11NO(time) flux; real r_m(time) flux; real r_17NO(time) flux; real k_11NO second_order_rate_constant; k_11NO=66; real v_m flux; v_m=320; real k_m micromolar; k_m=50; real k_17NO second_order_rate_constant; k_17NO=66; real r_13NO(time) flux; real k_13NO first_order_rate_constant; k_13NO=1600; real k_21NO second_order_rate_constant; k_21NO=66; real k_22NO second_order_rate_constant; k_22NO=66; real k_19NO second_order_rate_constant; k_19NO=10; real k_17bNO second_order_rate_constant; k_17bNO=0.0002; // // J_f0=(k_f0*Casp8Bid); J_Casp8=((-1)*u*Casp8); J_0=(k_10*Casp8*Bid-k_00*Casp8Bid); r_20NO=(k_20NO*FeLnNO*Casp8); Casp8:time=((-1)*J_0+J_f0+J_Casp8-r_19NO-r_20NO); Casp8Bid:time=(J_0-J_f0); // J_Apaf_1=(P_Apaf_1-u*Apaf_1); J_1=(k_11*Cytc*Apaf_1-k_01*CytcApaf_1); Apaf_1:time=((-1)*J_1+J_Apaf_1); // J_1b=(k_11b*CytcApaf_1^4-k_01b*Apop); CytcApaf_1:time=(J_1-7*J_1b); // J_Cytc=((-1)*u*Cytc); PTPC_act=(PTPC_0-PTPC); Cytc:time=(J_14-J_1+J_Cytc+k_1*PTPC_act*Cytc_mito); // J_Cytc_mito=(P_Cytc_mito-u*Cytc_mito); J_14=(k14*Bax_2*Cytc_mito); Cytc_mito:time=((-1)*J_14+J_Cytc_mito); // J_Bax_2=((-1)*u*Bax_2); Bax_2:time=(J_12b+J_Bax_2); // J_tBid_mito=((-1)*u*tBid_mito); J_12a=(k12a*tBid_mito*Bax); tBid_mito:time=(J_11-J_12a+J_tBid_mito); // J_11=(k11*tBid); J_tBid=((-1)*u*tBid); tBid:time=(J_f0+J_f8-J_11+J_12b+J_tBid); // J_tBidBax=((-1)*u*tBidBax); J_12b=(k12b*tBidBax*Bax); tBidBax:time=(J_12a-J_12b+J_tBidBax); // P_Bax=(P_oBax*(1+p53^4/(p53^4+p53_thresh^4))); J_Bax=(P_Bax-u_Bax*Bax); J_13=(k13*Bcl_2*Bax); Bax:time=((-1)*J_12a-J_12b-J_13+J_Bax); // P_Bcl_2=(P_oBcl_2*p53_thresh^4/(p53^4+p53_thresh^4)); J_9=(k_19*Casp3*Bcl_2-k_09*Casp3Bcl_2); J_Bcl_2=(P_Bcl_2-u_Bcl_2*Bcl_2); Bcl_2:time=((-1)*J_9-J_13+J_Bcl_2); // J_f9=(k_f9*Casp3Bcl_2); Casp3Bcl_2:time=(J_9-J_f9); // J_8=(k_18*Casp3*Bid-k_08*Casp3Bid); J_f8=(k_f8*Casp3Bid); Casp3Bid:time=(J_8-J_f8); // J_Bid=(P_Bid-u*Bid); Bid:time=((-1)*J_0-J_8+J_Bid); // J_Casp3=((-1)*u*Casp3); J_7=(k_17*Casp3*IAP-k_07*Casp3IAP); Casp3IAP:time=J_7; Casp3:time=(J_f6+J_f6b-J_7-J_8+J_f8-J_9+J_f9+J_Casp3-r_22NO); // Apop:time=(J_1b-J_2+J_4b); // J_Pro9=(P_Pro9-u*Pro9); J_2=(k_12*Apop*Pro9-k_02*ApopPro9); J_3=(k_13*ApopPro9*Pro9-k_03*ApopPro9_2); Pro9:time=((-1)*J_2-J_3+J_Pro9); ApopPro9:time=(J_2-J_3); // J_f3=(k_f3*ApopPro9_2); ApopPro9_2:time=(J_3-J_f3); // J_6b=(k_16b*ApopCasp9_2*Pro3-k_06b*ApopCasp9_2Pro3); J_f6b=(k_f6b*ApopCasp9_2Pro3); ApopCasp9_2Pro3:time=(J_6b-J_f6b); // J_f6=(k_f6*Casp9Pro3); Casp9Pro3:time=(J_6-J_f6); // J_6=(k_16*Casp9*Pro3-k_06*Casp9Pro3); J_Pro3=(P_Pro3-u*Pro3); Pro3:time=((-1)*J_6-J_6b+J_Pro3); // J_5=(k_15*Casp9*IAP-k_05*Casp9IAP); J_5b=(k_15b*ApopCasp9*IAP-k_05b*ApopCasp9IAP); J_5c=(k_15c*ApopCasp9_2*IAP-k_05c*ApopCasp9_2IAP); J_IAP=(P_IAP-u*IAP); Casp9IAP:time=J_5; ApopCasp9IAP:time=J_5b; ApopCasp9_2IAP:time=J_5c; IAP:time=((-1)*J_5-J_5b-J_5c-J_7+J_IAP); // J_4=(k_14*ApopCasp9_2-k_04*ApopCasp9*Casp9); J_4b=(k_14b*ApopCasp9-k_04b*Apop*Casp9); ApopCasp9:time=(J_4-J_4b-J_5b); // J_Casp9=((-1)*u*Casp9); Casp9:time=(J_4+J_4b-J_5-J_6+J_f6+J_Casp9-r_21NO); // ApopCasp9_2:time=(J_f3-J_4-J_5c-J_6b+J_f6b); // r_1NO=k_1NO; r_4NO=(k_4NO*NO*O_2m); r_12aNO=(k_12aNO*NO^2*O_2); r_12bNOp=(k_12bNOp*NO_2*NO); r_12bNOm=(k_12bNOm*N2O3); r_14NO=(k_14NO*GSNO); r_15NO=(k_15NO*CcOX*NO); r_16NO=(k_16NO*FeLn*NO); NO:time=(r_1NO-r_4NO-2*r_12aNO-r_12bNOp+r_12bNOm+r_14NO-r_15NO-r_16NO); CcOX:time=((-1)*r_15NO); NO_2:time=(2*r_12aNO-r_12bNOp+r_12bNOm); // r_2NO=k_2NO; r_5NO=(k_5NO*SOD*O_2m); r_10NO=(k_10NO*GSNO^2*O_2m); O_2m:time=(r_2NO-r_4NO-r_5NO-r_10NO); // r_6NO=(k_6NO*ONOO_m*GSH); r_7NO=(k_7NO*ONOO_m*GPX); r_8NO=(k_8NO*ONOO_m*CO_2); r_9NO=(k_9NO*ONOO_m*Cyt_c); r_18NO=(k_18NO*ONOO_m*PTPC); ONOO_m:time=(r_4NO-r_6NO-r_7NO-r_8NO-r_9NO-r_18NO); // GSSG=((GSH_0-GSH-GSNO)/2); r_11NO=(k_11NO*N2O3*GSH); r_m=(v_m*GSSG/(k_m+GSSG)); r_17NO=(k_17NO*FeLnNO*GSH); GSH:time=((-1)*r_6NO-r_11NO+2*r_m-r_17NO); // GSNO:time=(r_6NO-2*r_10NO+r_11NO-r_14NO+r_17NO); // r_13NO=(k_13NO*N2O3); N2O3:time=((-1)*r_11NO+r_12bNOp-r_12bNOm-r_13NO-r_19NO); // r_21NO=(k_21NO*FeLnNO*Casp9); r_22NO=(k_22NO*FeLnNO*Casp3); FeLn:time=((-1)*r_16NO+r_17NO+r_20NO+r_21NO+r_22NO); FeLnNO:time=(r_16NO-r_17NO-r_20NO-r_21NO-r_22NO); // r_19NO=(k_19NO*N2O3*Casp8); PTPC:time=((-1)*r_19NO); // }