Notes for the August 2009 Physiology Course

Download and software notes

Jarnac Models

Model 1

p = defn model
     J1: S1 -> S2; k1*S1;
end;

p.S1 = 10;
p.S2 = 0;
p.k1 = 0.1;

m = p.sim.eval (0, 60, 100, [<p.time>, <p.S1>]);
graph (m);

Model 2

p = defn model
     J1: S1 -> S2; k1*S1;
     J2: S2 -> S3; k2*S2;
end;

p.S1 = 10;
p.S2 = 0;
p.k1 = 0.1;
p.k2 = 0.2;

m = p.sim.eval (0, 60, 100, [<p.time>, <p.S1>, <p.S2>, <p.S3>]);
graph (m);

Model 3

p = defn model
     J1: S1 -> S2; k11*S1 - k12*S2;
     J2: S2 -> S3; k21*S2 - k22*S3;
end;

p.S1 = 10;
p.S2 = 0;
p.k11 = 0.1; p.k12 = 0.08;
p.k21 = 0.2; p.k22 = 0.06;

m = p.sim.eval (0, 60, 100, [<p.time>, <p.S1>, <p.S2>, <p.S3>]);
graph (m);

Model 4

p = defn model
     J1: S1 -> S2; k11*S1 - k12*S2;
     J2: S2 -> S3; k21*S2 - k22*S3;
end;

p.S1 = 10;
p.S2 = 0;
p.k11 = 0.1; p.k12 = 0.08;
p.k21 = 0.2; p.k22 = 0.06;

m = p.sim.eval (0, 60, 100, [<p.time>, <p.S1>, <p.S2>, <p.S3>, <p.J1>, <p.J2>]);
graph (m);

Model 5

p = defn model
     J1: $Xo -> S1;  k0*Xo;
     J2:  S1 -> S2;  k1*S1;
     J3:  S2 -> S3;  k2*S2;
     J4:  S3 -> $X1; k3*S3;
end;

p.Xo = 10;
p.S1 = 0;
p.S2 = 0;
p.S3 = 0;
p.X1 = 0;

p.k0 = 0.05;
p.k1 = 0.1;
p.k2 = 0.2;
p.k3 = 0.34;

m = p.sim.eval (0, 60, 100, [<p.time>, <p.S1>, <p.S2>, <p.S3>, <p.J1>, <p.J2>]);
graph (m);

Model 6

p = defn model
     J1: $Xo -> S1;  (Vm1/Km1)*(Xo - S1/Keq1)/(1 + Xo/Km1 + S1/Km2);
     J2:  S1 -> S2;  (Vm2/Km3)*(S1 - S2/Keq2)/(1 + S1/Km3 + S2/Km4);
     J3:  S2 -> S3;  (Vm3/Km4)*(S2 - S3/Keq3)/(1 + S2/Km5 + S3/Km6);
     J4: S3 -> $X1;  (Vm4/Km7)*(S3 - X1/Keq4)/(1 + S3/Km7 + X1/Km8);
end;

p.Xo = 10;
p.S1 = 0;
p.S2 = 0;
p.S3 = 0;
p.X1 = 0;

p.Vm1 = 1.5; p.Vm2 = 2.9; p.Vm3 = 10.5; p.Vm4 = 7.3;
p.Km1 = 1; p.Km2 = 1;
p.Km3 = 0.2; p.Km4 = 3.4;
p.Km5 = 0.9; p.Km6 = 1.2;
p.Km7 = 6.7; p.Km8 = 1.1;

p.Keq1 = 3.2;
p.Keq2 = 2.1;
p.Keq3 = 14.6;
p.Keq4 = 5.3;

m = p.sim.eval (0, 140, 200, [<p.time>, <p.S1>, <p.S2>, <p.S3>, <p.J1>, <p.J2>]);
graph (m);
p.ss.eval;

println p.J1;

Model 7

p = defn model
     J1: $Xo -> S1;  (Vm1/Km1)*(Xo - S1/Keq1)/(1 + Xo/Km1 + S1/Km2 + pow(S3,J0_h));
     J2:  S1 -> S2;  (Vm2/Km3)*(S1 - S2/Keq2)/(1 + S1/Km3 + S2/Km4);
     J3:  S2 -> S3;  (Vm3/Km4)*(S2 - S3/Keq3)/(1 + S2/Km5 + S3/Km6);
     J4: S3 -> $X1;  (Vm4/Km7)*(S3 - X1/Keq4)/(1 + S3/Km7 + X1/Km8);
end;

p.Xo = 10;
p.S1 = 0;
p.S2 = 0;
p.S3 = 0;
p.X1 = 0;
p.J0_h = 0;  // This controls the strength of the feedback

p.Vm1 = 1.5; p.Vm2 = 2.9; p.Vm3 = 10.5; p.Vm4 = 7.3;
p.Km1 = 1; p.Km2 = 1;
p.Km3 = 0.2; p.Km4 = 3.4;
p.Km5 = 0.9; p.Km6 = 1.2;
p.Km7 = 6.7; p.Km8 = 1.1;

p.Keq1 = 3.2;
p.Keq2 = 2.1;
p.Keq3 = 14.6;
p.Keq4 = 5.3;

m = p.sim.eval (0, 140, 200,
       [<p.time>, <p.S1>, <p.S2>, <p.S3>, <p.J1>, <p.J2>]);
graph (m);
p.ss.eval;
println p.cc (<p.J1>, p.Vm1);
println p.cc (<p.J1>, p.Vm2);
println p.cc (<p.J1>, p.Vm3);
println p.cc (<p.J1>, p.Vm4);

Model 8

p = defn feedback

J0: $X0 -> S1; J0_VM1*(X0-S1/J0_Keq1)/(1+X0+S1+pow(S4,J0_h));
J1: S1 -> S2; (10*S1-2*S2)/(1+S1+S2);
J2: S2 -> S3; (10*S2-2*S3)/(1+S2+S3);
J3: S3 -> S4; (10*S3-2*S4)/(1+S3+S4);
J4: S4 -> $X1; J4_V4*S4/(J4_KS4+S4);

end;

p.X0 = 10;
p.X1 = 0;
p.S1 = 0;
p.S2 = 0;
p.S3 = 0;
p.S4 = 0;
p.J0_VM1 = 10;
p.J0_Keq1 = 10;
p.J0_h = 1;
p.J4_V4 = 2.5;
p.J4_KS4 = 0.5;

m = p.sim.eval (0, 100, 200, [<p.time>, <p.S4>]);
graph (m);