/* * Modelling the Budding Yeast Cell Cycle * * Model Status * * This CellML version of the model has been checked in COR and * OpenCell and the model runs to replicate the results in the * original published paper. The units have been checked and they * are consistent. * * Model Structure * * ABSTRACT: The molecular machinery of cell cycle control is known * in more detail for budding yeast, Saccharomyces cerevisiae, * than for any other eukaryotic organism. In recent years, many * elegant experiments on budding yeast have dissected the roles * of cyclin molecules (Cln1-3 and Clb1-6) in coordinating the * events of DNA synthesis, bud emergence, spindle formation, nuclear * division, and cell separation. These experimental clues suggest * a mechanism for the principal molecular interactions controlling * cyclin synthesis and degradation. Using standard techniques * of biochemical kinetics, we convert the mechanism into a set * of differential equations, which describe the time courses of * three major classes of cyclin-dependent kinase activities. Model * in hand, we examine the molecular events controlling "Start" * (the commitment step to a new round of chromosome replication, * bud formation, and mitosis) and "Finish" (the transition from * metaphase to anaphase, when sister chromatids are pulled apart * and the bud separates from the mother cell) in wild-type cells * and 50 mutants. The model accounts for many details of the physiology, * biochemistry, and genetics of cell cycle control in budding * yeast. * * The original paper reference is cited below: * * Kinetic Analysis of a Molecular Model of the Budding Yeast Cell * Cycle, Katherine C. Chen, Attila Csikasz-Nagy, Bela Gyorffy, * John Val, Bela Novak, and John J. Tyson, 2000, Molecular Biology * of the Cell , 11, 369-391. PubMed ID: 10637314 * * reaction diagram * * [[Image file: chen_2000.png]] * * Molecular model of the control of CDK activities during the * budding yeast cell cycle. */ import nsrunit; unit conversion on; // unit nanomolar predefined unit minute=60 second^1; unit flux=1.6666667E-8 meter^(-3)*second^(-1)*mole^1; unit first_order_rate_constant=.01666667 second^(-1); math main { realDomain time minute; time.min=0; extern time.max; extern time.delta; real Cln2(time) dimensionless; when(time=time.min) Cln2=0.0078; real ks_n2 first_order_rate_constant; ks_n2=0; real ks_n2_ first_order_rate_constant; ks_n2_=0.05; real kd_n2 first_order_rate_constant; kd_n2=0.1; real mass(time) dimensionless; when(time=time.min) mass=0.6608; real SBF(time) dimensionless; real Clb2_T(time) dimensionless; when(time=time.min) Clb2_T=0.2342; real Hct1_T dimensionless; Hct1_T=1; real ks_b2 first_order_rate_constant; ks_b2=0.002; real ks_b2_ first_order_rate_constant; ks_b2_=0.05; real kd_b2 first_order_rate_constant; kd_b2=0.01; real kd_b2_v1 first_order_rate_constant; kd_b2_v1=2; real kd_b2_v2 first_order_rate_constant; kd_b2_v2=0.05; real Vd_b2(time) first_order_rate_constant; real Mcm1(time) dimensionless; real Hct1(time) dimensionless; when(time=time.min) Hct1=0.9946; real Cdc20(time) dimensionless; when(time=time.min) Cdc20=0.6848; real Clb2(time) dimensionless; real Clb2_Sic1(time) dimensionless; when(time=time.min) Clb2_Sic1=0.079; real Clb5(time) dimensionless; real Clb5_Sic1(time) dimensionless; when(time=time.min) Clb5_Sic1=0.0207; real Clb5_T(time) dimensionless; when(time=time.min) Clb5_T=0.0614; real Sic1(time) dimensionless; real Sic1_T(time) dimensionless; when(time=time.min) Sic1_T=0.1231; real ks_b5 first_order_rate_constant; ks_b5=0.006; real ks_b5_ first_order_rate_constant; ks_b5_=0.02; real kd_b5 first_order_rate_constant; kd_b5=0.1; real kd_b5_ first_order_rate_constant; kd_b5_=0.25; real Vd_b5(time) first_order_rate_constant; real MBF(time) dimensionless; real Bck2(time) dimensionless; real Bck2_0 dimensionless; Bck2_0=0.0027; real Cln3(time) dimensionless; real Jn3 dimensionless; Jn3=6; real Dn3 dimensionless; Dn3=1; real Cln3_max dimensionless; Cln3_max=0.02; real ks_c1 first_order_rate_constant; ks_c1=0.02; real ks_c1_ first_order_rate_constant; ks_c1_=0.1; real kd1_c1 first_order_rate_constant; kd1_c1=0.01; real Jd2_c1 dimensionless; Jd2_c1=0.05; real Vd2_c1(time) first_order_rate_constant; real Swi5(time) dimensionless; real kas_b2 first_order_rate_constant; kas_b2=50; real kdi_b2 first_order_rate_constant; kdi_b2=0.05; real kas_b5 first_order_rate_constant; kas_b5=50; real kdi_b5 first_order_rate_constant; kdi_b5=0.05; real kd2_c1 first_order_rate_constant; kd2_c1=0.3; real epsilonc1_n3 dimensionless; epsilonc1_n3=20; real epsilonc1_k2 dimensionless; epsilonc1_k2=2; real epsilonc1_b5 dimensionless; epsilonc1_b5=1; real epsilonc1_b2 dimensionless; epsilonc1_b2=0.067; real Cdc20_T(time) dimensionless; when(time=time.min) Cdc20_T=0.8332; real ks_20 first_order_rate_constant; ks_20=0.005; real ks_20_ first_order_rate_constant; ks_20_=0.06; real kd_20 first_order_rate_constant; kd_20=0.08; real ka_20 first_order_rate_constant; ka_20=1; real ki_20 first_order_rate_constant; ki_20=0.1; real ki_20_ first_order_rate_constant; ki_20_=10; real Vi_20(time) first_order_rate_constant; real ORI(time) dimensionless; when(time=time.min) ORI=0; real SPN(time) dimensionless; when(time=time.min) SPN=0; real ka_t1 first_order_rate_constant; ka_t1=0.04; real ka_t1_ first_order_rate_constant; ka_t1_=2; real ki_t1 first_order_rate_constant; ki_t1=0; real ki_t1_ first_order_rate_constant; ki_t1_=0.64; real Vi_t1(time) first_order_rate_constant; real Ji_t1 dimensionless; Ji_t1=0.05; real Ja_t1 dimensionless; Ja_t1=0.05; real epsiloni_t1_n2 dimensionless; epsiloni_t1_n2=1; real epsiloni_t1_b5 dimensionless; epsiloni_t1_b5=0.5; real epsiloni_t1_b2 dimensionless; epsiloni_t1_b2=1; real mu first_order_rate_constant; mu=0.005776; real ks_ori first_order_rate_constant; ks_ori=2; real kd_ori first_order_rate_constant; kd_ori=0.06; real epsilonori_b2 dimensionless; epsilonori_b2=0.4; real BUD(time) dimensionless; when(time=time.min) BUD=0; real ks_bud first_order_rate_constant; ks_bud=0.3; real kd_bud first_order_rate_constant; kd_bud=0.06; real epsilonbud_b5 dimensionless; epsilonbud_b5=1; real ks_spn first_order_rate_constant; ks_spn=0.08; real kd_spn first_order_rate_constant; kd_spn=0.06; real J_spn dimensionless; J_spn=0.2; real ka_sbf first_order_rate_constant; ka_sbf=1; real ki_sbf first_order_rate_constant; ki_sbf=0.5; real ki_sbf_ first_order_rate_constant; ki_sbf_=6; real Va_sbf(time) first_order_rate_constant; real Ji_sbf dimensionless; Ji_sbf=0.01; real Ja_sbf dimensionless; Ja_sbf=0.01; real epsilonsbf_n3 dimensionless; epsilonsbf_n3=75; real epsilonsbf_b5 dimensionless; epsilonsbf_b5=0.5; real ka_mcm first_order_rate_constant; ka_mcm=1; real ki_mcm first_order_rate_constant; ki_mcm=0.15; real Ji_mcm dimensionless; Ji_mcm=1; real Ja_mcm dimensionless; Ja_mcm=1; real ka_swi first_order_rate_constant; ka_swi=1; real ki_swi first_order_rate_constant; ki_swi=0.3; real ki_swi_ first_order_rate_constant; ki_swi_=0.2; real Ji_swi dimensionless; Ji_swi=0.1; real Ja_swi dimensionless; Ja_swi=0.1; // // Cln2:time=(mass*(ks_n2+ks_n2_*SBF)-kd_n2*Cln2); // Clb2_T:time=(mass*(ks_b2+ks_b2_*Mcm1)-Vd_b2*Clb2_T); Vd_b2=(kd_b2*(Hct1_T-Hct1)+kd_b2_v1*Hct1+kd_b2_v2*Cdc20); // Clb2=(Clb2_T-Clb2_Sic1); // Clb5=(Clb5_T-Clb5_Sic1); // Sic1=(Sic1_T-(Clb2_Sic1+Clb5_Sic1)); // Clb5_T:time=(mass*(ks_b5+ks_b5_*MBF)-Vd_b5*Clb5_T); Vd_b5=(kd_b5+kd_b5_*Cdc20); // Bck2=(Bck2_0*mass); // Cln3=(Cln3_max*Dn3*mass/(Jn3+Dn3*mass)); // Sic1_T:time=(ks_c1+ks_c1_*Swi5-Sic1_T*(kd1_c1+Vd2_c1/(Jd2_c1+Sic1_T))); // Clb2_Sic1:time=(kas_b2*Clb2*Sic1-Clb2_Sic1*(kdi_b2+Vd_b2+kd1_c1+Vd2_c1/(Jd2_c1+Sic1_T))); // Clb5_Sic1:time=(kas_b5*Clb5*Sic1-Clb5_Sic1*(kdi_b5+Vd_b5+kd1_c1+Vd2_c1/(Jd2_c1+Sic1_T))); // Vd2_c1=(kd2_c1*(epsilonc1_n3*Cln3+epsilonc1_k2*Bck2+Cln2+epsilonc1_b5*Clb5+epsilonc1_b2*Clb2)); // Cdc20_T:time=(ks_20+ks_20_*Clb2-kd_20*Cdc20_T); // Cdc20:time=(ka_20*(Cdc20_T-Cdc20)-Cdc20*(Vi_20+kd_20)); Vi_20=(if (ORI>=1) ki_20_ else if (SPN>=1) ki_20 else (.1 first_order_rate_constant)); // Hct1:time=((ka_t1+ka_t1_*Cdc20)*(Hct1_T-Hct1)/(Ja_t1+Hct1_T-Hct1)-Vi_t1*Hct1/(Ji_t1+Hct1)); Vi_t1=(ki_t1+ki_t1_*(Cln3+epsiloni_t1_n2*Cln2+epsiloni_t1_b5*Clb5+epsiloni_t1_b2*Clb2)); // mass:time=(mu*mass); // ORI:time=(ks_ori*(Clb5+epsilonori_b2*Clb2)-kd_ori*ORI); // BUD:time=(ks_bud*(Cln2+Cln3+epsilonbud_b5*Clb5)-kd_bud*BUD); // SPN:time=(ks_spn*Clb2/(J_spn+Clb2)-kd_spn*SPN); // SBF=(2*Va_sbf*Ji_sbf/(ki_sbf+ki_sbf_*Clb2+Va_sbf*Ji_sbf+(ki_sbf+ki_sbf_*Clb2)*Ja_sbf-Va_sbf+sqrt((ki_sbf+ki_sbf_*Clb2+Va_sbf*Ji_sbf+(ki_sbf+ki_sbf_*Clb2)*Ja_sbf-Va_sbf)^2-4*Va_sbf*Ji_sbf*(ki_sbf+ki_sbf_*Clb2-Va_sbf)))); Va_sbf=(ka_sbf*(Cln2+epsilonsbf_n3*(Cln3+Bck2)+epsilonsbf_b5*Clb5)); // MBF=SBF; // Mcm1=(2*ka_mcm*Clb2*Ji_mcm/(ki_mcm+ka_mcm*Clb2*Ji_mcm+ki_mcm*Ja_mcm-ka_mcm*Clb2+sqrt((ki_mcm+ka_mcm*Clb2*Ji_mcm+ki_mcm*Ja_mcm-ka_mcm*Clb2)^2-4*(ki_mcm-ka_mcm*Clb2)*ka_mcm*Clb2*Ji_mcm))); // Swi5=(2*ka_swi*Cdc20*Ji_swi/(ki_swi+ki_swi_*Clb2+ka_swi*Cdc20*Ji_swi+(ki_swi+ki_swi_*Clb2)*Ja_swi-ka_swi*Cdc20+sqrt((ki_swi+ki_swi_*Clb2+ka_swi*Cdc20*Ji_swi+(ki_swi+ki_swi_*Clb2)*Ja_swi-ka_swi*Cdc20)^2-4*(ki_swi+ki_swi_*Clb2-ka_swi*Cdc20)*ka_swi*Cdc20*Ji_swi))); // }