Michaelis-Menten Kinetics-- Chapter 5. Section 5.3
 
 BOP and OR October 3 2007.
 Addiel de Alba. April 2010

Step1. Construction of Stoichiometric matrix.

metabolites={"s","e","x","p"};
reactions={"v1","v1i","v2"};
var={s,e,x,p};
S=MatrixForm[  (({{-1, 1, 0}, {-1, 1, 1}, {1, -1, -1}, {0, 0, 1}})),TableHeadings->{metabolites,reactions}];
MatrixForm[S,TableHeadings->{var,reactions}]
S= (({{-1, 1, 0}, {-1, 1, 1}, {1, -1, -1}, {0, 0, 1}}));

Step2. Conservative quantities.(Left null space).

MatrixForm[NullSpace[Transpose[S]]];
MatrixForm[(({{1, 1}, {0, 1}})).NullSpace[Transpose[S]]]

Step3. Selection of Parameters

k1=1;
K=2;
k1i=0.5;
k2=0.5;
Km=1;

Step4. Construction of fluxes.

v={v1,v1i,v2};
v1=k1*s[t]*e[t];
v1i=k1i*x[t];
v2=k2*x[t];
dxdt=S.v;

Step5. Simulation.

tfinal=1000000;
solution=NDSolve[{s'[t]==dxdt[[1]],e'[t]==dxdt[[2]],x'[t]==dxdt[[3]],p'[t]==dxdt[[4]],s[0]==1,e[0]==0.01,x[0]==0,p[0]==0},{s,e,x,p},{t,0,tfinal}];

Step6. Graphs

Plots

<<"PlotLegends`"

Step8. Homework.

Consider the situation in which  the time scale is given at certain level.

Km=1;
eo=.01;
k2=0.5;

solqst=NDSolve[{s'[t]==-k2*eo*s[t]/(Km+s[t]),s[0]==1},s,{t,0,tfinal}];

graph1=ParametricPlot[Evaluate[{{s[t],eo*s[t]*(s[t]+1)^-1}/.First[solqst],{s[t],x[t]}/.First[solution]}],{t,0,1500},AxesLabel->{"s","x "},PlotStyle->{{RGBColor[0,0,1]},{RGBColor[1,0,0],Dashing[{0.02,0.02}]}},PlotLabel->"Phase portrait",PlotStyle->Automatic,PlotRange->{{0,1.1},{0,.0057}},AspectRatio->.7,ImageSize->500]

graph2=Plot[{s[t]/.solution,s[t]/.solqst},
{t,0,5},AxesLabel->{"Time","s"},PlotStyle->{{RGBColor[0,0,1]},{RGBColor[1,0,0],Dashing[{0.02,0.02}]}},PlotRange->{{0,5},{0,2.3}},AspectRatio->.7,ImageSize->500]

graph3=Plot[{s[t]/.solution,s[t]/.solqst},
{t,0,700},AxesLabel->{"Time","s"},PlotStyle->{{RGBColor[0,0,1]},{RGBColor[1,0,0],Dashing[{0.02,0.02}]}},PlotRange->{{0,700},{0,1}},AspectRatio->.7,ImageSize->500]

graph4=Plot[{x[t]/.solution,eo*s[t]/(Km+s[t])/.solqst/.solqst},
{t,0,5},AxesLabel->{"Time","x"},AxesLabel->{"x","x_stst "},PlotStyle->{{RGBColor[1,0,0],Dashing[{0.02,0.02}]},{RGBColor[0,0,1]}},PlotRange->{{0,5},{0,.01}},AspectRatio->.7,ImageSize->500]

graph5=Plot[{x[t]/.solution,eo*s[t]/(Km+s[t])/.solqst/.solqst},
{t,0,700},AxesLabel->{"Time","x"},PlotStyle->{{RGBColor[0,0,1]},{RGBColor[1,0,0],Dashing[{0.02,0.02}]}},PlotRange->{{0,700},{0,.005}},AspectRatio->.7,ImageSize->500]

Step7. Export Graphs.

(* Export["Section5.3.A.eps",graph1];
Export["Section5.3.B.eps",graph2];
Export["Section5.3.D.eps",graph3];
Export["Section5.3.C.eps",graph4];
Export["Section5.3.E.eps",graph5]; *)

Section 5.3, Figure 5.5 **Clear Kernel Before Continuing**

Step3. Selection of Parameters

tfinal=10000;
k1=1;
K=2;
k1i=0.5;
k2=0.5;
Km=2;

Step4. Construction of fluxes.

v1=k1*s[t]*e[t];
v1i=k1i*x[t];
v2=k2*x[t];

Step5. Simulation.

solution=NDSolve[{s'[t]==-v1+v1i,e'[t]==-v1+v1i+v2,x'[t]==v1-v1i-v2,p'[t]==v2,s[0]==.01,e[0]==0.01,x[0]==0,p[0]==0},{s,e,x,p},{t,0,tfinal}];

Step6. Graphs

Plots

<<"PlotLegends`"

Step8. Homework.
Consider the situation in which  the time scale is given at certain level.

Km=1;
eo=.01;
k2=0.5;

solqst=NDSolve[{s'[t]==-k2*eo*s[t]/(Km+s[t]),s[0]==.01},s,{t,0,tfinal}];

graph1=ParametricPlot[Evaluate[{{s[t],eo*s[t]/(s[t]+1)}/.First[solqst],{s[t],x[t]}/.First[solution]}],{t,0,3000},AxesLabel->{"s","x "},PlotStyle->{{RGBColor[0,0,1]},{RGBColor[1,0,0],Dashing[{0.02,0.02}]}},PlotLabel->"Phase portrait",PlotStyle->Automatic,PlotRange->{{0,0.012},{0,.00012}},AspectRatio->.7,ImageSize->500]

graph2=Plot[{s[t]/.solution,s[t]/.solqst},
{t,0,5},AxesLabel->{"Time","s"},PlotStyle->{{RGBColor[0,0,1]},{RGBColor[1,0,0],Dashing[{0.02,0.02}]}},PlotRange->{{0,5},{0,0.02}}]

graph4=Plot[{s[t]/.solution,s[t]/.solqst},
{t,0,700},AxesLabel->{"Time","s"},PlotStyle->{{RGBColor[0,0,1]},{RGBColor[1,0,0],Dashing[{0.02,0.02}]}},PlotRange->{{0,700},{0,0.01}}]

graph3=Plot[{x[t]/.solution,eo*s[t]/(Km+s[t])/.solqst/.solqst},
{t,0,5},AxesLabel->{"Time","x"},AxesLabel->{"x","x_stst "},PlotStyle->{{RGBColor[1,0,0],Dashing[{0.02,0.02}]},{RGBColor[0,0,1]}},PlotRange->{{0,5},{0,.00012}}]

graph5=Plot[{x[t]/.solution,eo*s[t]*(Km+s[t])/.solqst/.solqst},
{t,0,700},AxesLabel->{"Time","x"},AxesLabel->{"x","x_stst "},PlotStyle->{{RGBColor[0,0,1]},{RGBColor[1,0,0],Dashing[{0.02,0.02}]}},PlotRange->{{0,700},{0,.00011}}]

Step7. Export Graphs.

(* Export["Section5.3.Fig5.5.A.eps",graph1];
Export["Section5.3.Fig5.5.B.eps",graph2];
Export["Section5.3.Fig5.5.D.eps",graph3];
Export["Section5.3.Fig5.5.C.eps",graph4];
Export["Section5.3.Fig5.5.E.eps",graph5]; *)