/* * The Mitogen-Activated Protein Kinase (MAPK) Cascade * * Model Status * * This CellML model runs in both OpenCell and COR to reproduce * the results given by running the Mathematica description of * the model (provided by the original model author) using the * Mathematica NDSolve integration algorithm. The units have been * checked and they are consistent. * * Model Structure * * ABSTRACT: The mitogen-activated protein kinase (MAPK) cascade * is a highly conserved series of three protein kinases implicated * in diverse biological processes. Here we demonstrate that the * cascade arrangement has unexpected consequences for the dynamics * of MAPK signaling. We solved the rate equations for the cascade * numerically and found that MAPK is predicted to behave like * a highly cooperative enzyme, even though it was not assumed * that any of the enzymes in the cascade were regulated cooperatively. * Measurements of MAPK activation in Xenopus oocyte extracts confirmed * this prediction. The stimulus/response curve of the MAPK was * found to be as steep as that of a cooperative enzyme with a * Hill coefficient of 4-5, well in excess of that of the classical * allosteric protein hemoglobin. The shape of the MAPK stimulus/ * response curve may make the cascade particularly appropriate * for mediating processes like mitogenesis, cell fate induction, * and oocyte maturation, where a cell switches from one discrete * state to another. * * The original paper reference is cited below: * * Ultrasensitivity in the mitogen-activated protein cascade, Chi-Ying * F. Huang and James E. Ferrell, Jr., 1996, Proc. Natl. Acad. * Sci. USA , 93, 10078-10083. PubMed ID: 8816754 * * the conventional rendering of the MAPK cascade * * [[Image file: huang_ferrell_1996.png]] * * Schematic diagram of the MAPK cascade described by the model. */ import nsrunit; unit conversion on; // unit micromolar predefined unit first_order_rate_constant_units=1 second^(-1); unit second_order_rate_constant_units=1E3 meter^3*second^(-1)*mole^(-1); math main { realDomain time second; time.min=0; extern time.max; extern time.delta; real mostot micromolar; mostot=0.003; real e1tot micromolar; e1tot=0.0003; real e2tot micromolar; e2tot=0.0003; real mektot micromolar; mektot=1.2; real mekpasetot micromolar; mekpasetot=0.0003; real mapktot micromolar; mapktot=1.2; real mapkpasetot micromolar; mapkpasetot=0.12; real a1 second_order_rate_constant_units; a1=1000; real a2 second_order_rate_constant_units; a2=1000; real a3 second_order_rate_constant_units; a3=1000; real a4 second_order_rate_constant_units; a4=1000; real a5 second_order_rate_constant_units; a5=1000; real a6 second_order_rate_constant_units; a6=1000; real a7 second_order_rate_constant_units; a7=1000; real a8 second_order_rate_constant_units; a8=1000; real a9 second_order_rate_constant_units; a9=1000; real a10 second_order_rate_constant_units; a10=1000; real d1 first_order_rate_constant_units; d1=150; real d2 first_order_rate_constant_units; d2=150; real d3 first_order_rate_constant_units; d3=150; real d4 first_order_rate_constant_units; d4=150; real d5 first_order_rate_constant_units; d5=150; real d6 first_order_rate_constant_units; d6=150; real d7 first_order_rate_constant_units; d7=150; real d8 first_order_rate_constant_units; d8=150; real d9 first_order_rate_constant_units; d9=150; real d10 first_order_rate_constant_units; d10=150; real k1 first_order_rate_constant_units; k1=150; real k2 first_order_rate_constant_units; k2=150; real k3 first_order_rate_constant_units; k3=150; real k4 first_order_rate_constant_units; k4=150; real k5 first_order_rate_constant_units; k5=150; real k6 first_order_rate_constant_units; k6=150; real k7 first_order_rate_constant_units; k7=150; real k8 first_order_rate_constant_units; k8=150; real k9 first_order_rate_constant_units; k9=150; real k10 first_order_rate_constant_units; k10=150; real mos(time) micromolar; when(time=time.min) mos=0.003; real mosstar(time) micromolar; when(time=time.min) mosstar=0; real mose1(time) micromolar; when(time=time.min) mose1=0; real mosstare2(time) micromolar; when(time=time.min) mosstare2=0; real mekstarmosstar(time) micromolar; when(time=time.min) mekstarmosstar=0; real mekmosstar(time) micromolar; when(time=time.min) mekmosstar=0; real mekstar(time) micromolar; when(time=time.min) mekstar=0; real mekstarstar(time) micromolar; when(time=time.min) mekstarstar=0; real mekstarmekpase(time) micromolar; when(time=time.min) mekstarmekpase=0; real mekstarstarmekpase(time) micromolar; when(time=time.min) mekstarstarmekpase=0; real mapkmekstarstar(time) micromolar; when(time=time.min) mapkmekstarstar=0; real mapkstarmekstarstar(time) micromolar; when(time=time.min) mapkstarmekstarstar=0; real mek(time) micromolar; when(time=time.min) mek=1.2; real mapkstar(time) micromolar; when(time=time.min) mapkstar=0; real mapkstarstar(time) micromolar; when(time=time.min) mapkstarstar=0; real mapkstarmapkpase(time) micromolar; when(time=time.min) mapkstarmapkpase=0; real mapkstarstarmapkpase(time) micromolar; when(time=time.min) mapkstarstarmapkpase=0; real mapk(time) micromolar; when(time=time.min) mapk=1.2; // // // // mos:time=((-1)*a1*(mostot-mosstar-mose1-mosstare2-mekmosstar-mekstarmosstar)*(e1tot-mose1)+d1*mose1+k2*mosstare2); // mose1:time=(a1*(mostot-mosstar-mose1-mosstare2-mekmosstar-mekstarmosstar)*(e1tot-mose1)-(d1+k1)*mose1); // mosstar:time=((-1)*a2*mosstar*(e2tot-mosstare2)+d2*mosstare2+k1*mose1+(k3+d3)*mekmosstar-a3*mosstar*(mektot-mekstar-mekstarstar-mekstarmekpase-mekstarstarmekpase-mekmosstar-mekstarmosstar-mapkmekstarstar-mapkstarmekstarstar)+(k5+d5)*mekstarmosstar-a5*mekstar*mosstar); // mosstare2:time=(a2*mosstar*(e2tot-mosstare2)-(d2+k2)*mosstare2); // mek:time=((-1)*a3*(mektot-mekstar-mekstarstar-mekstarmekpase-mekstarstarmekpase-mekmosstar-mekstarmosstar-mapkmekstarstar-mapkstarmekstarstar)*mosstar+d3*mekmosstar+k4*mekstarmekpase); // mekmosstar:time=(a3*(mektot-mekstar-mekstarstar-mekstarmekpase-mekstarstarmekpase-mekmosstar-mekstarmosstar-mapkmekstarstar-mapkstarmekstarstar)*mosstar-(d3+k3)*mekmosstar); // mekstar:time=((-1)*a4*mekstar*(mekpasetot-mekstarmekpase-mekstarstarmekpase)+d4*mekstarmekpase+k3*mekmosstar+k6*mekstarstarmekpase+d5*mekstarmosstar-a5*mekstar*mosstar); // mekstarmekpase:time=(a4*mekstar*(mekpasetot-mekstarmekpase-mekstarstarmekpase)-(d4+k4)*mekstarmekpase); // mekstarmosstar:time=(a5*mekstar*mosstar-(d5+k5)*mekstarmosstar); // mekstarstar:time=(k5*mekstarmosstar-a6*mekstarstar*(mekpasetot-mekstarmekpase-mekstarstarmekpase)+d6*mekstarstarmekpase-a7*mekstarstar*(mapktot-mapkstar-mapkstarstar-mapkstarmapkpase-mapkstarstarmapkpase-mapkmekstarstar-mapkstarmekstarstar)+(d7+k7)*mapkmekstarstar+(d9+k9)*mapkstarmekstarstar-a9*mapkstar*mekstarstar); // mekstarstarmekpase:time=(a6*mekstarstar*(mekpasetot-mekstarmekpase-mekstarstarmekpase)-(d6+k6)*mekstarstarmekpase); // mapk:time=((-1)*a7*(mapktot-mapkstar-mapkstarstar-mapkstarmapkpase-mapkstarstarmapkpase-mapkmekstarstar-mapkstarmekstarstar)*mekstarstar+d7*mapkmekstarstar+k8*mapkstarmapkpase); // mapkmekstarstar:time=(a7*(mapktot-mapkstar-mapkstarstar-mapkstarmapkpase-mapkstarstarmapkpase-mapkmekstarstar-mapkstarmekstarstar)*mekstarstar-(d7+k7)*mapkmekstarstar); // mapkstar:time=(k7*mapkmekstarstar-a8*mapkstar*(mapkpasetot-mapkstarmapkpase-mapkstarstarmapkpase)+d8*mapkstarmapkpase-a9*mapkstar*mekstarstar+d9*mapkstarmekstarstar+k10*mapkstarstarmapkpase); // mapkstarmekstarstar:time=(a9*mapkstar*mekstarstar-(d9+k9)*mapkstarmekstarstar); // mapkstarstar:time=((-1)*a10*mapkstarstar*(mapkpasetot-mapkstarmapkpase-mapkstarstarmapkpase)+d10*mapkstarstarmapkpase+k9*mapkstarmekstarstar); // mapkstarmapkpase:time=(a8*mapkstar*(mapkpasetot-mapkstarmapkpase-mapkstarstarmapkpase)-(d8+k8)*mapkstarmapkpase); // mapkstarstarmapkpase:time=(a10*mapkstarstar*(mapkpasetot-mapkstarmapkpase-mapkstarstarmapkpase)-(d10+k10)*mapkstarstarmapkpase); }