/* * Model Status * * This CellML model is able to run in PCEnv and COR to reproduce * published results in the original paper. The units in this model * have also been checked and curated. * * Model Structure * * ABSTRACT: We propose a mathematical model for mitochondria-dependent * apoptosis, in which kinetic cooperativity in formation of the * apoptosome is a key element ensuring bistability. We examine * the role of Bax and Bcl-2 synthesis and degradation rates, as * well as the number of mitochondrial permeability transition * pores (MPTPs), on the cell response to apoptotic stimuli. Our * analysis suggests that cooperative apoptosome formation is a * mechanism for inducing bistability, much more robust than that * induced by other mechanisms, such as inhibition of caspase-3 * by the inhibitor of apoptosis (IAP). Simulations predict a pathological * state in which cells will exhibit a monostable cell survival * if Bax degradation rate is above a threshold value, or if Bax * expression rate is below a threshold value. Otherwise, cell * death or survival occur depending on initial caspase-3 levels. * We show that high expression rates of Bcl-2 can counteract the * effects of Bax. Our simulations also demonstrate a monostable * (pathological) apoptotic response if the number of MPTPs exceeds * a threshold value. This study supports our contention, based * on mathematical modeling, that cooperativity in apoptosome formation * is critically important for determining the healthy responses * to apoptotic stimuli, and helps define the roles of Bax, Bcl-2, * and MPTP vis-a-vis apoptosome formation. * * The original paper is cited below: * * Bistability in Apoptosis: Roles of Bax, Bcl-2 and Mitochondrial * Permeability Transition Pores. E.Z. Bagci, Y. Vodovotz, T.R. * Billiar et al, 2006, Biophysical Journal, 90, 1546-1559. PubMed * ID: 16339882 * * Diagram of model * * [[Image file: bagci_2006.png]] * * A schematic diagram of intrinsic apoptotic signalling pathway * described by this mathematical model. */ 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); 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 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 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 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 J_14(time) flux; real J_Cytc(time) flux; real Cytc_mito(time) micromolar; when(time=time.min) Cytc_mito=0.004; 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 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; // // J_f0=(k_f0*Casp8Bid); J_Casp8=((-1)*u*Casp8); J_0=(k_10*Casp8*Bid-k_00*Casp8Bid); Casp8:time=((-1)*J_0+J_f0+J_Casp8); 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); Cytc:time=(J_14-J_1+J_Cytc); // 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); // 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); // ApopCasp9_2:time=(J_f3-J_4-J_5c-J_6b+J_f6b); // }