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

Step1. Construction of Stoichiometric matrix.

metabolites={"s","e","x","p"};
 

reactions={"b1","v1","v1i","v2","v3"};
 

var={s,e,x,p};

MatrixForm[ S= (({{1, -1, 1, 0, 0}, {0, -1, 1, 1, 0}, {0, 1, -1, -1, 0}, {0, 0, 0, 1, -1}})),TableHeadings->{metabolites,reactions}];
MatrixForm[S,TableHeadings->{var,reactions}]
Null;

Step2. Conservative quantities.(Left null space).

MatrixForm[NullSpace[S]];
TeXForm[MatrixForm[NullSpace[S]]];
MatrixForm[NullSpace[Transpose[S]]];

Step3. Selection of Parameters

tfinal=1000;
b1=0.01;
k1=1;
K=2;
k1i=0.5;
k2=0.5;
k3=0.1;
Km=1;

Step4. Construction of fluxes.

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

Step5. Simulation.

solution=NDSolve[{s'[t]==b1-v1+v1i,e'[t]==-v1+v1i+v2,x'[t]==v1-v1i-v2,p'[t]==v2-v3,s[0]==0,e[0]==0.01,x[0]==0.00,p[0]==0},{s,e,x,p},{t,0,tfinal}]

Step6. Graphs

Plots

<<"PlotLegends`"

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

graph1=ParametricPlot[Evaluate[{{s[t],x[t]}/.First[solution]}],{t,0,tfinal},AxesLabel->{"s","x"},PlotStyle->{RGBColor[0,0,1]},PlotLabel->"Phase portrait",PlotStyle->Automatic,PlotRange->{{0,10},{0,.01}},AspectRatio->.7,ImageSize->400]

graph2=Plot[{s[t]/.solution},
{t,0,800},AxesLabel->{"Time","s"},PlotStyle->{{RGBColor[0,0,1]}},PlotRange->{{0,800},{0,8}}]

graph3=Plot[{s[t]/.solution},
{t,0,tfinal},AxesLabel->{"Time","s"},PlotStyle->{RGBColor[0,0,1]},PlotRange->{{0,tfinal},{0,10}}]

graph4=Plot[{x[t]/.solution},
{t,0,5},AxesLabel->{"Time","x"},PlotStyle->{{RGBColor[0,0,1]},{RGBColor[1,0,0],Dashing[{0.02,0.02}]}},PlotRange->{{0,10},{0,.004}}]

graph5=Plot[{x[t]/.solution},
{t,0,tfinal},AxesLabel->{"Time","x"},PlotStyle->{{RGBColor[0,0,1]},{RGBColor[1,0,0],Dashing[{0.02,0.02}]}},PlotRange->{{0,tfinal},{0,.01}}]

Step7. Export Graphs.

Export["Section6.3.Figure6.6.A.eps",graph1];