Huang1996 - Ultrasensitivity in MAPK cascade

The temporal sequence of kinase activation, from MAPKKK (activated RAF) to the final effector MAPK (activated ERK), is described here. It is observed from the model that there is an increase in sensitivity along the levels of the cascade, where the activity of MAPK reaches its maximal before MAPKKK.

This model is described in the article:

Proc. Natl. Acad. Sci. U.S.A. 1996:93(19):10078-83

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 species K_PP_norm, KKK_P_norm and KK_PP_norm are the relative concentrations of the active MAPK, MAPKK and MAPKKK, that is the double, or single resp. phophorylated forms divided by the total concentrations of each kinase. For MAPK additionally the also active MAPK divided by the maximal concentration of active MAPK is given by rel_K_PP_max. The parameter K_PP_norm_max, the maximal ratio of active MapK, has to be calculated for each change of parameters.

This model is hosted on BioModels Database
and identified by: BIOMD0000000009
.
To cite BioModels Database, please use: BioModels Database: An enhanced, curated and annotated resource for published quantitative kinetic models
.

To the extent possible under law, all copyright and related or neighbouring rights to this encoded model have been dedicated to the public domain worldwide. Please refer to CC0 Public Domain Dedication
for more information.

*/
// unit definitions
import nsrunit;
unit conversion off;
// SBML property definitions
property sbmlRole=string;
property sbmlName=string;
property sbmlCompartment=string;
// SBML reactions
// r1a: KKK E1 => E1_KKK
// r1b: E1_KKK <=> E1 P_KKK
// r2a: P_KKK E2 => E2_P_KKK
// r2b: E2_P_KKK <=> E2 KKK
// r3a: KK P_KKK => P_KKK_KK
// r3b: P_KKK_KK <=> P_KK P_KKK
// r4a: P_KK KKPase => KKPase_P_KK
// r4b: KKPase_P_KK <=> KK KKPase
// r5a: P_KK P_KKK => P_KKK_P_KK
// r5b: P_KKK_P_KK <=> PP_KK P_KKK
// r6a: PP_KK KKPase => KKPase_PP_KK
// r6b: KKPase_PP_KK <=> P_KK KKPase
// r7a: K PP_KK => PP_KK_K
// r7b: PP_KK_K <=> P_K PP_KK
// r8a: P_K KPase => KPase_P_K
// r8b: KPase_P_K <=> K KPase
// r9a: P_K PP_KK => PP_KK_P_K
// r9b: PP_KK_P_K <=> PP_KK PP_K
// r10a: PP_K KPase => KPase_PP_K
// r10b: KPase_PP_K <=> P_K KPase
math main {
realDomain time second;
time.min=0;
extern time.max;
extern time.delta;
// variable definitions
real compartment = 4E-12 L;
real K_PP_norm_max = .900049; /* the maximal value of K_PP_norm at a stimulation conc. of 10. */
real E1(time) uM;
real E2(time) uM;
real KKK(time) uM;
real P_KKK(time) uM;
real KK(time) uM;
real P_KK(time) uM;
real PP_KK(time) uM;
real K(time) uM;
real P_K(time) uM;
real PP_K(time) uM;
real KPase(time) uM;
real KKPase(time) uM;
real E1_KKK(time) uM;
real E2_P_KKK(time) uM;
real P_KKK_KK(time) uM;
real P_KKK_P_KK(time) uM;
real PP_KK_K(time) uM;
real PP_KK_P_K(time) uM;
real KKPase_PP_KK(time) uM;
real KKPase_P_KK(time) uM;
real KPase_PP_K(time) uM;
real KPase_P_K(time) uM;
real K_PP_norm(time) uM;
real KK_PP_norm(time) uM;
real KKK_P_norm(time) uM;
real rel_K_PP_max(time) uM;
real r1a(time) microkatal;
real a1 = 1E3;
real d1 = 150;
real r1b(time) microkatal;
real k2 = 150;
real r2a(time) microkatal;
real a2 = 1E3;
real d2 = 150;
real r2b(time) microkatal;
real r2b_k2 = 150;
real r3a(time) microkatal;
real a3 = 1E3;
real d3 = 150;
real r3b(time) microkatal;
real k3 = 150;
real r4a(time) microkatal;
real a4 = 1E3;
real d4 = 150;
real r4b(time) microkatal;
real k4 = 150;
real r5a(time) microkatal;
real a5 = 1E3;
real d5 = 150;
real r5b(time) microkatal;
real k5 = 150;
real r6a(time) microkatal;
real a6 = 1E3;
real d6 = 150;
real r6b(time) microkatal;
real k6 = 150;
real r7a(time) microkatal;
real a7 = 1E3;
real d7 = 150;
real r7b(time) microkatal;
real k7 = 150;
real r8a(time) microkatal;
real a8 = 1E3;
real d8 = 150;
real r8b(time) microkatal;
real k8 = 150;
real r9a(time) microkatal;
real a9 = 1E3;
real d9 = 150;
real r9b(time) microkatal;
real k9 = 150;
real r10a(time) microkatal;
real a10 = 1E3;
real d10 = 150;
real r10b(time) microkatal;
real k10 = 150;
// equations
when (time=time.min) E1 = 3E-5;
(E1*compartment):time = -1*r1a + r1b;
when (time=time.min) E2 = 3E-4;
(E2*compartment):time = -1*r2a + r2b;
when (time=time.min) KKK = .003;
(KKK*compartment):time = -1*r1a + r2b;
when (time=time.min) P_KKK = 0;
(P_KKK*compartment):time = r1b + -1*r2a + -1*r3a + r3b + -1*r5a + r5b;
when (time=time.min) KK = 1.2;
(KK*compartment):time = -1*r3a + r4b;
when (time=time.min) P_KK = 0;
(P_KK*compartment):time = r3b + -1*r4a + -1*r5a + r6b;
when (time=time.min) PP_KK = 0;
(PP_KK*compartment):time = r5b + -1*r6a + -1*r7a + r7b + -1*r9a + r9b;
when (time=time.min) K = 1.2;
(K*compartment):time = -1*r7a + r8b;
when (time=time.min) P_K = 0;
(P_K*compartment):time = r7b + -1*r8a + -1*r9a + r10b;
when (time=time.min) PP_K = 0;
(PP_K*compartment):time = r9b + -1*r10a;
when (time=time.min) KPase = .12;
(KPase*compartment):time = -1*r8a + r8b + -1*r10a + r10b;
when (time=time.min) KKPase = 3E-4;
(KKPase*compartment):time = -1*r4a + r4b + -1*r6a + r6b;
when (time=time.min) E1_KKK = 0;
(E1_KKK*compartment):time = r1a + -1*r1b;
when (time=time.min) E2_P_KKK = 0;
(E2_P_KKK*compartment):time = r2a + -1*r2b;
when (time=time.min) P_KKK_KK = 0;
(P_KKK_KK*compartment):time = r3a + -1*r3b;
when (time=time.min) P_KKK_P_KK = 0;
(P_KKK_P_KK*compartment):time = r5a + -1*r5b;
when (time=time.min) PP_KK_K = 0;
(PP_KK_K*compartment):time = r7a + -1*r7b;
when (time=time.min) PP_KK_P_K = 0;
(PP_KK_P_K*compartment):time = r9a + -1*r9b;
when (time=time.min) KKPase_PP_KK = 0;
(KKPase_PP_KK*compartment):time = r6a + -1*r6b;
when (time=time.min) KKPase_P_KK = 0;
(KKPase_P_KK*compartment):time = r4a + -1*r4b;
when (time=time.min) KPase_PP_K = 0;
(KPase_PP_K*compartment):time = r10a + -1*r10b;
when (time=time.min) KPase_P_K = 0;
(KPase_P_K*compartment):time = r8a + -1*r8b;
K_PP_norm = (PP_K+KPase_PP_K)/(PP_K+P_K+K+PP_KK_K+PP_KK_P_K+KPase_PP_K+KPase_P_K);
KK_PP_norm = (PP_KK+PP_KK_K+PP_KK_P_K+KKPase_PP_KK)/(PP_KK+P_KK+KK+PP_KK_K+PP_KK_P_K+P_KKK_KK+P_KKK_P_KK+KKPase_PP_KK+KKPase_P_KK);
KKK_P_norm = (P_KKK+P_KKK_KK+P_KKK_P_KK)/(KKK+P_KKK+P_KKK_KK+P_KKK_P_KK);
rel_K_PP_max = K_PP_norm/K_PP_norm_max;
r1a = compartment*(a1*E1*KKK-d1*E1_KKK);
r1b = compartment*k2*E1_KKK;
r2a = compartment*(a2*E2*P_KKK-d2*E2_P_KKK);
r2b = compartment*r2b_k2*E2_P_KKK;
r3a = compartment*(a3*KK*P_KKK-d3*P_KKK_KK);
r3b = compartment*k3*P_KKK_KK;
r4a = compartment*(a4*P_KK*KKPase-d4*KKPase_P_KK);
r4b = compartment*k4*KKPase_P_KK;
r5a = compartment*(a5*P_KK*P_KKK-d5*P_KKK_P_KK);
r5b = compartment*k5*P_KKK_P_KK;
r6a = compartment*(a6*PP_KK*KKPase-d6*KKPase_PP_KK);
r6b = compartment*k6*KKPase_PP_KK;
r7a = compartment*(a7*K*PP_KK-d7*PP_KK_K);
r7b = compartment*k7*PP_KK_K;
r8a = compartment*(a8*P_K*KPase-d8*KPase_P_K);
r8b = compartment*k8*KPase_P_K;
r9a = compartment*(a9*P_K*PP_KK-d9*PP_KK_P_K);
r9b = compartment*k9*PP_KK_P_K;
r10a = compartment*(a10*PP_K*KPase-d10*KPase_PP_K);
r10b = compartment*k10*KPase_PP_K;
// variable properties
compartment.sbmlRole="compartment";
K_PP_norm_max.sbmlRole="parameter";
E1.sbmlRole="species";
E1.sbmlCompartment="compartment";
E2.sbmlRole="species";
E2.sbmlCompartment="compartment";
KKK.sbmlRole="species";
KKK.sbmlCompartment="compartment";
P_KKK.sbmlRole="species";
P_KKK.sbmlCompartment="compartment";
KK.sbmlRole="species";
KK.sbmlCompartment="compartment";
P_KK.sbmlRole="species";
P_KK.sbmlCompartment="compartment";
PP_KK.sbmlRole="species";
PP_KK.sbmlCompartment="compartment";
K.sbmlRole="species";
K.sbmlCompartment="compartment";
P_K.sbmlRole="species";
P_K.sbmlCompartment="compartment";
PP_K.sbmlRole="species";
PP_K.sbmlCompartment="compartment";
KPase.sbmlRole="species";
KPase.sbmlCompartment="compartment";
KKPase.sbmlRole="species";
KKPase.sbmlCompartment="compartment";
E1_KKK.sbmlRole="species";
E1_KKK.sbmlCompartment="compartment";
E2_P_KKK.sbmlRole="species";
E2_P_KKK.sbmlCompartment="compartment";
P_KKK_KK.sbmlRole="species";
P_KKK_KK.sbmlCompartment="compartment";
P_KKK_P_KK.sbmlRole="species";
P_KKK_P_KK.sbmlCompartment="compartment";
PP_KK_K.sbmlRole="species";
PP_KK_K.sbmlCompartment="compartment";
PP_KK_P_K.sbmlRole="species";
PP_KK_P_K.sbmlCompartment="compartment";
KKPase_PP_KK.sbmlRole="species";
KKPase_PP_KK.sbmlCompartment="compartment";
KKPase_P_KK.sbmlRole="species";
KKPase_P_KK.sbmlCompartment="compartment";
KPase_PP_K.sbmlRole="species";
KPase_PP_K.sbmlCompartment="compartment";
KPase_P_K.sbmlRole="species";
KPase_P_K.sbmlCompartment="compartment";
K_PP_norm.sbmlRole="species";
K_PP_norm.sbmlCompartment="compartment";
KK_PP_norm.sbmlRole="species";
KK_PP_norm.sbmlCompartment="compartment";
KKK_P_norm.sbmlRole="species";
KKK_P_norm.sbmlCompartment="compartment";
rel_K_PP_max.sbmlRole="species";
rel_K_PP_max.sbmlCompartment="compartment";
r1a.sbmlRole="rate";
a1.sbmlRole="parameter";
d1.sbmlRole="parameter";
r1b.sbmlRole="rate";
k2.sbmlRole="parameter";
r2a.sbmlRole="rate";
a2.sbmlRole="parameter";
d2.sbmlRole="parameter";
r2b.sbmlRole="rate";
r2b_k2.sbmlRole="parameter";
r3a.sbmlRole="rate";
a3.sbmlRole="parameter";
d3.sbmlRole="parameter";
r3b.sbmlRole="rate";
k3.sbmlRole="parameter";
r4a.sbmlRole="rate";
a4.sbmlRole="parameter";
d4.sbmlRole="parameter";
r4b.sbmlRole="rate";
k4.sbmlRole="parameter";
r5a.sbmlRole="rate";
a5.sbmlRole="parameter";
d5.sbmlRole="parameter";
r5b.sbmlRole="rate";
k5.sbmlRole="parameter";
r6a.sbmlRole="rate";
a6.sbmlRole="parameter";
d6.sbmlRole="parameter";
r6b.sbmlRole="rate";
k6.sbmlRole="parameter";
r7a.sbmlRole="rate";
a7.sbmlRole="parameter";
d7.sbmlRole="parameter";
r7b.sbmlRole="rate";
k7.sbmlRole="parameter";
r8a.sbmlRole="rate";
a8.sbmlRole="parameter";
d8.sbmlRole="parameter";
r8b.sbmlRole="rate";
k8.sbmlRole="parameter";
r9a.sbmlRole="rate";
a9.sbmlRole="parameter";
d9.sbmlRole="parameter";
r9b.sbmlRole="rate";
k9.sbmlRole="parameter";
r10a.sbmlRole="rate";
a10.sbmlRole="parameter";
d10.sbmlRole="parameter";
r10b.sbmlRole="rate";
k10.sbmlRole="parameter";
}