/* * Evolutionary dynamics of mutator phenotypes in cancer: implications * for chemotherapy * * Model Status * * This is the CellML description of the complex version of the * model detailed in the paper. The model runs in both OpenCell * and COR and the units are consistent, however it does not reproduce * the correct published results as some of the parameter values * are unknown. * * Model Structure * * ABSTRACT: Genetic instability is a central characteristic of * cancers. However, the selective forces responsible for the emergence * of genetic instability are not clear. We use mathematical models * to determine the conditions under which selection favors instability, * and when stable cells are advantageous. We take into account * the processes of DNA damage, repair, cell cycle arrest, mutation, * and death. We find that the rate of DNA damage can play a major * role in this context. In particular, an increase in the rate * of DNA damage can reverse the relative fitness of stable and * unstable cells. In terms of cancer progression, we find the * following results. If cells have intact apoptotic responses, * stable cells prevail if the DNA hit rate is low. A high DNA * hit rate can result in the selection of genetically unstable * cells. This has implications for the induction of tumors by * carcinogens. On the other hand, if cells are characterized by * impaired apoptosis, we observe the opposite. Genetic instability * is selected for if the DNA hit rate is low. A high DNA hit rate * can select against instability and result in the persistence * of stable cells. We propose that chemotherapy can be used to * reverse the relative fitness of stable and unstable cells, such * that unstable cells are the inferior competitors. This could * result in the competitive exclusion of progressing cancer cells. * * The original paper reference is cited below: * * Evolutionary dynamics of mutator phenotypes in cancer: implications * for chemotherapy, Natalia L. Komarova and Dominik Wodarz, 2003,Cancer * Research, 63, 6635-6642. PubMed ID: 14583456 * * cell diagram * * [[Image file: komarova_2003.png]] * * Schematic diagram of the model, showing the processes of cell * reproduction, DNA damage, repair, cell cycle arrest, mutation * and death. */ import nsrunit; unit conversion on; unit hour=3600 second^1; unit first_order_rate_constant=2.7777778E-4 second^(-1); unit per_time2=7.7160494E-8 second^(-2); unit per_time3=2.1433471E-11 second^(-3); math main { realDomain time hour; time.min=0; extern time.max; extern time.delta; real S_0(time) dimensionless; when(time=time.min) S_0=0.5; real R_0 first_order_rate_constant; real u_s first_order_rate_constant; real phi(time) first_order_rate_constant; real S_1(time) dimensionless; when(time=time.min) S_1=0; real R_1 first_order_rate_constant; real epsilon_s first_order_rate_constant; epsilon_s=0.99; real alpha dimensionless; alpha=0.6; real u first_order_rate_constant; u=0.07; real S_2(time) dimensionless; when(time=time.min) S_2=0; real R_2 first_order_rate_constant; real S_3(time) dimensionless; when(time=time.min) S_3=0; real R_3 first_order_rate_constant; real S_4(time) dimensionless; when(time=time.min) S_4=0; real R_4 first_order_rate_constant; real S_5(time) dimensionless; when(time=time.min) S_5=0; real R_5 first_order_rate_constant; real S_6(time) dimensionless; when(time=time.min) S_6=0; real R_6 first_order_rate_constant; real S_7(time) dimensionless; when(time=time.min) S_7=0; real R_7 first_order_rate_constant; real S_8(time) dimensionless; when(time=time.min) S_8=0; real R_8 first_order_rate_constant; real M_0(time) dimensionless; when(time=time.min) M_0=0.5; real epsilon_m first_order_rate_constant; epsilon_m=0.1; real u_m first_order_rate_constant; real M_1(time) dimensionless; when(time=time.min) M_1=0; real M_1_2(time) dimensionless; when(time=time.min) M_1_2=0; real M_2(time) dimensionless; when(time=time.min) M_2=0; real M_3(time) dimensionless; when(time=time.min) M_3=0; real M_4(time) dimensionless; when(time=time.min) M_4=0; real M_5(time) dimensionless; when(time=time.min) M_5=0; real M_6(time) dimensionless; when(time=time.min) M_6=0; real M_7(time) dimensionless; when(time=time.min) M_7=0; real M_8(time) dimensionless; when(time=time.min) M_8=0; real r_0 first_order_rate_constant; r_0=0.5; real r_1 first_order_rate_constant; r_1=0.6; real r_2 first_order_rate_constant; r_2=0.7; real r_3 first_order_rate_constant; r_3=0.8; real r_4 first_order_rate_constant; r_4=0.9; real r_5 first_order_rate_constant; r_5=1; real r_6 first_order_rate_constant; r_6=1.1; real r_7 first_order_rate_constant; r_7=1.2; real r_8 first_order_rate_constant; r_8=1.3; real a dimensionless; a=0.5; real w(time) dimensionless; when(time=time.min) w=0; real total_cells(time) dimensionless; real stable_total(time) dimensionless; real mutant_total(time) dimensionless; real beta dimensionless; beta=0.2; // // S_0:time=(R_0*S_0/(1 first_order_rate_constant)*((1 first_order_rate_constant)-u_s)-phi*S_0); // S_1:time=(alpha*u*R_0*S_0/(1 per_time2)*((1 first_order_rate_constant)-epsilon_s)+R_1*S_1/(1 first_order_rate_constant)*((1 first_order_rate_constant)-u_s)-phi*S_1); // S_2:time=(alpha*u*R_1*S_1/(1 per_time2)*((1 first_order_rate_constant)-epsilon_s)+R_2*S_2/(1 first_order_rate_constant)*((1 first_order_rate_constant)-u_s)-phi*S_2); // S_3:time=(alpha*u*R_2*S_2/(1 per_time2)*((1 first_order_rate_constant)-epsilon_s)+R_3*S_3/(1 first_order_rate_constant)*((1 first_order_rate_constant)-u_s)-phi*S_3); // S_4:time=(alpha*u*R_3*S_3/(1 per_time2)*((1 first_order_rate_constant)-epsilon_s)+R_4*S_4/(1 first_order_rate_constant)*((1 first_order_rate_constant)-u_s)-phi*S_4); // S_5:time=(alpha*u*R_4*S_4/(1 per_time2)*((1 first_order_rate_constant)-epsilon_s)+R_5*S_5/(1 first_order_rate_constant)*((1 first_order_rate_constant)-u_s)-phi*S_5); // S_6:time=(alpha*u*R_5*S_5/(1 per_time2)*((1 first_order_rate_constant)-epsilon_s)+R_6*S_6/(1 first_order_rate_constant)*((1 first_order_rate_constant)-u_s)-phi*S_6); // S_7:time=(alpha*u*R_6*S_6/(1 per_time2)*((1 first_order_rate_constant)-epsilon_s)+R_7*S_7/(1 first_order_rate_constant)*((1 first_order_rate_constant)-u_s)-phi*S_7); // S_8:time=(alpha*u*R_7*S_7/(1 per_time2)*((1 first_order_rate_constant)-epsilon_s)+R_8*S_8/(1 first_order_rate_constant)*((1 first_order_rate_constant)-u_s)-phi*S_8); // M_0:time=(R_0*M_0/(1 first_order_rate_constant)*((1 first_order_rate_constant)-u_m)-phi*M_0); // M_1:time=(M_0*(1 first_order_rate_constant)); M_1_2:time=(alpha*u*R_0*M_0/(1 per_time2)*((1 first_order_rate_constant)-epsilon_m)+R_1*M_1/(1 first_order_rate_constant)*((1 first_order_rate_constant)-u_m)-phi*M_1); // M_2:time=(alpha*u*R_1*M_1/(1 per_time2)*((1 first_order_rate_constant)-epsilon_m)+R_2*M_2/(1 first_order_rate_constant)*((1 first_order_rate_constant)-u_m)-phi*M_2); // M_3:time=(alpha*u*R_2*M_2/(1 per_time2)*((1 first_order_rate_constant)-epsilon_m)+R_3*M_3/(1 first_order_rate_constant)*((1 first_order_rate_constant)-u_m)-phi*M_3); // M_4:time=(alpha*u*R_3*M_4/(1 per_time2)*((1 first_order_rate_constant)-epsilon_m)+R_4*M_4/(1 first_order_rate_constant)*((1 first_order_rate_constant)-u_m)-phi*M_4); // M_5:time=(alpha*u*R_4*M_4/(1 per_time2)*((1 first_order_rate_constant)-epsilon_m)+R_5*M_5/(1 first_order_rate_constant)*((1 first_order_rate_constant)-u_m)-phi*M_5); // M_6:time=(alpha*u*R_5*M_5/(1 per_time2)*((1 first_order_rate_constant)-epsilon_m)+R_6*M_6/(1 first_order_rate_constant)*((1 first_order_rate_constant)-u_m)-phi*M_6); // M_7:time=(alpha*u*R_6*M_6/(1 per_time2)*((1 first_order_rate_constant)-epsilon_m)+R_7*M_7/(1 first_order_rate_constant)*((1 first_order_rate_constant)-u_m)-phi*M_7); // M_8:time=(alpha*u*R_7*M_7/(1 per_time2)*((1 first_order_rate_constant)-epsilon_m)+R_8*M_8/(1 first_order_rate_constant)*((1 first_order_rate_constant)-u_m+alpha*u/(1 first_order_rate_constant)*((1 first_order_rate_constant)-epsilon_m))-phi*S_8); // R_0=r_0; R_1=(r_1*(1-a)); R_2=(r_2*(1-a)); R_3=(r_3*(1-a)); R_4=(r_4*(1-a)); R_5=(r_5*(1-a)); R_6=(r_6*(1-a)); R_7=(r_7*(1-a)); R_8=(r_8*(1-a)); // phi=(((1 first_order_rate_constant)-u_s)/(1 first_order_rate_constant)*(R_0*S_0+R_1*S_1+R_2*S_2+R_3*S_3+R_4*S_4)+((1 first_order_rate_constant)-u_m)/(1 first_order_rate_constant)*(R_1*M_1+R_2*M_2+R_3*M_3+R_4*M_4)); // w:time=((1-alpha)*u/(1 per_time2)*(((1 first_order_rate_constant)-epsilon_s)*(R_0*S_0+R_1*S_1+R_2*S_2+R_3*S_3+R_4*S_4+R_5*S_5+R_6*S_6+R_7*S_7+R_8*S_8)+((1 first_order_rate_constant)-epsilon_m)*(R_0*M_0+R_1*M_1+R_2*M_2+R_3*M_3+R_4*M_4+R_5*M_5+R_6*M_6+R_7*M_7+R_8*M_8))-phi*w); // total_cells=(S_0+S_1+S_2+S_3+S_4+S_5+S_6+S_7+S_8+M_0+M_2+M_3+M_4+M_5+M_6+M_7+M_8); stable_total=(S_0+S_1+S_2+S_3+S_4+S_5+S_6+S_7+S_8); mutant_total=(M_0+M_2+M_3+M_4+M_5+M_6+M_7+M_8); // u_s=(u*(1-beta*epsilon_s/(1 first_order_rate_constant))); u_m=(u*(1-beta*epsilon_m/(1 first_order_rate_constant))); }