This notebook shows how to use subplots and phase portraits in Tellurium via COMBINE archives. Since SED-ML does not include subplotting, we have created our own functions (`newTiledFigure`

and `newLowerTriFigure`

) to cause the next series of figures to be plotted as subplots. The model is from BIOMD0000000107.

Novak, B., & Tyson, J. J. (1993). **Numerical analysis of a comprehensive model of M-phase control in Xenopus oocyte extracts and intact embryos.** *Journal of cell science*, 106(4), 1153-1168.

```
In [3]:
```import tellurium as te
te.newTiledFigure(rows=2, cols=1)

```
In [4]:
```// Created by libAntimony v2.9.3
model *novak()
// Compartments and Species:
compartment cytoplasm;
species cyclin in cytoplasm, dimer in cytoplasm, dimer_p in cytoplasm, p_dimer in cytoplasm;
species p_dimer_p in cytoplasm, cdc25_p in cytoplasm, wee1_p in cytoplasm;
species IE_p in cytoplasm, UbE_star in cytoplasm, $cdc2 in cytoplasm, $cdc25 in cytoplasm;
species $wee1 in cytoplasm, $IE in cytoplasm, $UbE in cytoplasm;
// Assignment Rules:
cdc2 := total_cdc2 - (dimer + p_dimer + p_dimer_p + dimer_p);
cdc25 := total_cdc25 - cdc25_p;
wee1 := total_wee1 - wee1_p;
IE := total_IE - IE_p;
UbE := total_UbE - UbE_star;
k25 := V25_prime*(total_cdc25 - cdc25_p) + V25_double_prime*cdc25_p;
kwee := Vwee_prime*wee1_p + Vwee_double_prime*(total_wee1 - wee1_p);
k2 := V2_prime*(total_UbE - UbE_star) + V2_double_prime*UbE_star;
total_cyclin := cyclin + dimer + dimer_p + p_dimer + p_dimer_p;
Y15P := p_dimer + p_dimer_p;
// Reactions:
R1: => cyclin; k1AA;
R2: cyclin => ; k2*cyclin;
R3: cyclin + $cdc2 => dimer; k3*cyclin*cdc2;
R4: dimer_p => dimer; kinh*dimer_p;
R5: dimer => p_dimer; kwee*dimer;
R6: dimer => dimer_p; kcak*dimer;
R7: dimer => ; k2*dimer;
R8: p_dimer => dimer; k25*p_dimer;
R9: p_dimer => p_dimer_p; kcak*p_dimer;
R10: p_dimer => ; k2*p_dimer;
R11: p_dimer_p => p_dimer; kinh*p_dimer_p;
R12: dimer_p => p_dimer_p; kwee*dimer_p;
R13: p_dimer_p => dimer_p; k25*p_dimer_p;
R14: p_dimer_p => ; k2*p_dimer_p;
R15: dimer_p => ; k2*dimer_p;
R17: $cdc25 => cdc25_p; ka*dimer_p*(total_cdc25 - cdc25_p)/(K_a + total_cdc25 - cdc25_p);
R18: cdc25_p => $cdc25; kbPPase*cdc25_p/(K_b + cdc25_p);
R19: $wee1 => wee1_p; ke*dimer_p*(total_wee1 - wee1_p)/(K_e + total_wee1 - wee1_p);
R20: wee1_p => $wee1; kfPPase*wee1_p/(K_f + wee1_p);
R21: $IE => IE_p; kg*dimer_p*(total_IE - IE_p)/(K_g + total_IE - IE_p);
R22: IE_p => $IE; khPPAse*IE_p/(K_h + IE_p);
R23: $UbE => UbE_star; kc*IE_p*(total_UbE - UbE_star)/(K_c + total_UbE - UbE_star);
R24: UbE_star => $UbE; kd_anti_IE*UbE_star/(K_d + UbE_star);
// Species initializations:
cyclin = 100;
dimer = 0;
dimer_p = 0;
p_dimer = 0;
p_dimer_p = 0;
cdc25_p = 0;
wee1_p = 0;
IE_p = 0;
UbE_star = 0;
// Compartment initializations:
cytoplasm = 1;
// Variable initializations:
total_cdc2 = 100;
total_cdc25 = 1;
total_wee1 = 1;
total_IE = 1;
total_UbE = 1;
V25_prime = 0.1;
V25_double_prime = 2;
Vwee_prime = 0.1;
Vwee_double_prime = 1;
V2_prime = 0.015;
V2_double_prime = 1;
k1AA = 1;
k3 = 0.01;
kinh = 0.025;
kcak = 0.25;
ka = 0.01;
K_a = 0.1;
kbPPase = 0.125;
K_b = 0.1;
ke = 0.0133;
K_e = 0.3;
kfPPase = 0.1;
K_f = 0.3;
kg = 0.0065;
K_g = 0.01;
khPPAse = 0.087;
K_h = 0.01;
kc = 0.1;
K_c = 0.01;
kd_anti_IE = 0.095;
K_d = 0.01;
// Other declarations:
var k25, kwee, k2, total_cyclin, Y15P;
const cytoplasm, total_cdc2, total_cdc25, total_wee1, total_IE, total_UbE;
const V25_prime, V25_double_prime, Vwee_prime, Vwee_double_prime, V2_prime;
const V2_double_prime, k1AA, k3, kinh, kcak, ka, K_a, kbPPase, K_b, ke;
const K_e, kfPPase, K_f, kg, K_g, khPPAse, K_h, kc, K_c, kd_anti_IE, K_d;
// Unit definitions:
unit substance = 1e-9 mole;
unit time_unit = 60 second;
// Display Names:
substance is "nanomole";
time_unit is "minutes";
dimer is "cyclin-cdc2 dimer";
dimer_p is "Thr161 phosphorylated dimer(active MPF)";
p_dimer is "Tyr15 phosphorylated dimer";
p_dimer_p is "Thr161-Tyr15 phosphorylated dimer";
cdc25_p is "phosphorylated cdc25";
wee1_p is "phosphorylated wee1";
IE_p is "phosphorylated intermediary enzyme";
UbE_star is "ubiquitin conjugating enzyme";
IE is "intermediary enzyme";
UbE is "ubiquitin conjugating enzyme";
R1 is "cyclin synthesis";
R2 is "cyclin degradation";
R3 is "cyclin-cdc2 dimer formation";
R4 is "Thr161 dephosphorylation";
R5 is "Tyr15 phosphorylation";
R6 is "Thr161 phosphorylation";
R7 is "cyclin degradation";
R8 is "Tyr15 dephosphorylation";
R9 is "Thr161 phosphorylation";
R10 is "cyclin degradation";
R11 is "Thr161 dephosphorylation";
R12 is "Tyr15 phosphorylation";
R13 is "Tyr15 dephosphorylation";
R14 is "cyclin degradation";
R15 is "cyclin degradation";
R17 is "cdc25 activation";
R18 is "cdc25 deactivation";
R19 is "wee1 deactivation";
R20 is "wee1 activation";
R21 is "intermediary enzyme activation";
R22 is "intermediary enzyme deactivation";
R23 is "ubiquitin conjugating enzyme activation";
R24 is "ubiquitin conjugating enzyme deactivation";
end
extract_mod = model "novak"
intact_mod = model "novak" with k1AA = 1.8, V2_prime = 0.03, ka = 0.05, kc = 0.4, ke = 0.0067, kg = 0.02, kbPPase = 0.0375, kd_anti_IE = 0.25, kfPPase = 0.05, khPPAse = 0.27
sim1 = simulate uniform(0, 200, 1000)
sim1.algorithm.variable_step_size = true
sim1.algorithm.absolute_tolerance = 1e-8
sim1.algorithm.relative_tolerance = 1e-4
extract_task = run sim1 on extract_mod
intact_task = run sim1 on intact_mod
plot "M-phase Control, Extract (Novak, 1993)" extract_task.time vs extract_task.total_cyclin, extract_task.p_dimer_p, extract_task.dimer_p
plot "M-phase Control, Intact Embryo (Novak, 1993)" intact_task.time vs intact_task.total_cyclin, intact_task.p_dimer_p, intact_task.dimer_p

```
In [5]:
```import tellurium as te
te.newLowerTriFigure(rows=3, cols=3)

```
In [6]:
```// Archive author information:
// - Name: Kyle Medley
// - Email: medleyj@uw.edu
// - Organization: University of Washington
// -- Begin Antimony block converted from novak.xml
// Created by libAntimony v2.9.3
model *novak()
// Compartments and Species:
compartment cytoplasm;
species cyclin in cytoplasm, dimer in cytoplasm, dimer_p in cytoplasm, p_dimer in cytoplasm;
species p_dimer_p in cytoplasm, cdc25_p in cytoplasm, wee1_p in cytoplasm;
species IE_p in cytoplasm, UbE_star in cytoplasm, $cdc2 in cytoplasm, $cdc25 in cytoplasm;
species $wee1 in cytoplasm, $IE in cytoplasm, $UbE in cytoplasm;
// Assignment Rules:
cdc2 := total_cdc2 - (dimer + p_dimer + p_dimer_p + dimer_p);
cdc25 := total_cdc25 - cdc25_p;
wee1 := total_wee1 - wee1_p;
IE := total_IE - IE_p;
UbE := total_UbE - UbE_star;
k25 := V25_prime*(total_cdc25 - cdc25_p) + V25_double_prime*cdc25_p;
kwee := Vwee_prime*wee1_p + Vwee_double_prime*(total_wee1 - wee1_p);
k2 := V2_prime*(total_UbE - UbE_star) + V2_double_prime*UbE_star;
total_cyclin := cyclin + dimer + dimer_p + p_dimer + p_dimer_p;
Y15P := p_dimer + p_dimer_p;
// Reactions:
R1: => cyclin; k1AA;
R2: cyclin => ; k2*cyclin;
R3: cyclin + $cdc2 => dimer; k3*cyclin*cdc2;
R4: dimer_p => dimer; kinh*dimer_p;
R5: dimer => p_dimer; kwee*dimer;
R6: dimer => dimer_p; kcak*dimer;
R7: dimer => ; k2*dimer;
R8: p_dimer => dimer; k25*p_dimer;
R9: p_dimer => p_dimer_p; kcak*p_dimer;
R10: p_dimer => ; k2*p_dimer;
R11: p_dimer_p => p_dimer; kinh*p_dimer_p;
R12: dimer_p => p_dimer_p; kwee*dimer_p;
R13: p_dimer_p => dimer_p; k25*p_dimer_p;
R14: p_dimer_p => ; k2*p_dimer_p;
R15: dimer_p => ; k2*dimer_p;
R17: $cdc25 => cdc25_p; ka*dimer_p*(total_cdc25 - cdc25_p)/(K_a + total_cdc25 - cdc25_p);
R18: cdc25_p => $cdc25; kbPPase*cdc25_p/(K_b + cdc25_p);
R19: $wee1 => wee1_p; ke*dimer_p*(total_wee1 - wee1_p)/(K_e + total_wee1 - wee1_p);
R20: wee1_p => $wee1; kfPPase*wee1_p/(K_f + wee1_p);
R21: $IE => IE_p; kg*dimer_p*(total_IE - IE_p)/(K_g + total_IE - IE_p);
R22: IE_p => $IE; khPPAse*IE_p/(K_h + IE_p);
R23: $UbE => UbE_star; kc*IE_p*(total_UbE - UbE_star)/(K_c + total_UbE - UbE_star);
R24: UbE_star => $UbE; kd_anti_IE*UbE_star/(K_d + UbE_star);
// Species initializations:
cyclin = 100;
dimer = 0;
dimer_p = 0;
p_dimer = 0;
p_dimer_p = 0;
cdc25_p = 0;
wee1_p = 0;
IE_p = 0;
UbE_star = 0;
// Compartment initializations:
cytoplasm = 1;
// Variable initializations:
total_cdc2 = 100;
total_cdc25 = 1;
total_wee1 = 1;
total_IE = 1;
total_UbE = 1;
V25_prime = 0.1;
V25_double_prime = 2;
Vwee_prime = 0.1;
Vwee_double_prime = 1;
V2_prime = 0.015;
V2_double_prime = 1;
k1AA = 1;
k3 = 0.01;
kinh = 0.025;
kcak = 0.25;
ka = 0.01;
K_a = 0.1;
kbPPase = 0.125;
K_b = 0.1;
ke = 0.0133;
K_e = 0.3;
kfPPase = 0.1;
K_f = 0.3;
kg = 0.0065;
K_g = 0.01;
khPPAse = 0.087;
K_h = 0.01;
kc = 0.1;
K_c = 0.01;
kd_anti_IE = 0.095;
K_d = 0.01;
// Other declarations:
var k25, kwee, k2, total_cyclin, Y15P;
const cytoplasm, total_cdc2, total_cdc25, total_wee1, total_IE, total_UbE;
const V25_prime, V25_double_prime, Vwee_prime, Vwee_double_prime, V2_prime;
const V2_double_prime, k1AA, k3, kinh, kcak, ka, K_a, kbPPase, K_b, ke;
const K_e, kfPPase, K_f, kg, K_g, khPPAse, K_h, kc, K_c, kd_anti_IE, K_d;
// Unit definitions:
unit substance = 1e-9 mole;
unit time_unit = 6e1 second;
// Display Names:
substance is "nanomole";
time_unit is "minutes";
dimer is "cyclin-cdc2 dimer";
dimer_p is "Thr161 phosphorylated dimer(active MPF)";
p_dimer is "Tyr15 phosphorylated dimer";
p_dimer_p is "Thr161-Tyr15 phosphorylated dimer";
cdc25_p is "phosphorylated cdc25";
wee1_p is "phosphorylated wee1";
IE_p is "phosphorylated intermediary enzyme";
UbE_star is "ubiquitin conjugating enzyme";
IE is "intermediary enzyme";
UbE is "ubiquitin conjugating enzyme";
R1 is "cyclin synthesis";
R2 is "cyclin degradation";
R3 is "cyclin-cdc2 dimer formation";
R4 is "Thr161 dephosphorylation";
R5 is "Tyr15 phosphorylation";
R6 is "Thr161 phosphorylation";
R7 is "cyclin degradation";
R8 is "Tyr15 dephosphorylation";
R9 is "Thr161 phosphorylation";
R10 is "cyclin degradation";
R11 is "Thr161 dephosphorylation";
R12 is "Tyr15 phosphorylation";
R13 is "Tyr15 dephosphorylation";
R14 is "cyclin degradation";
R15 is "cyclin degradation";
R17 is "cdc25 activation";
R18 is "cdc25 deactivation";
R19 is "wee1 deactivation";
R20 is "wee1 activation";
R21 is "intermediary enzyme activation";
R22 is "intermediary enzyme deactivation";
R23 is "ubiquitin conjugating enzyme activation";
R24 is "ubiquitin conjugating enzyme deactivation";
end
// -- End Antimony block
// -- Begin PhraSEDML block converted from main.xml
// Created by libphrasedml v1.0.9
// Models
extract_mod = model "novak"
// Simulations
sim1 = simulate uniform(0, 150, 1000)
// Tasks
extract_task = run sim1 on extract_mod
// Outputs
plot "Tot. Cyclin vs Act. MPF" total_cyclin vs dimer_p
plot "PPMPF vs Act. MPF" p_dimer_p vs dimer_p
plot "PPMPF vs Tot. Cyclin" p_dimer_p vs total_cyclin
plot "Time vs Act. MPF" time vs dimer_p
# plot "Total Cyclin vs Active MPF" dimer_p vs total_cyclin
plot "Time vs Tot. Cyclin" time vs total_cyclin
# plot "Inactive MPF vs Active MPF" dimer_p vs p_dimer_p
# plot "Inactive MPF vs Total Cyclin" total_cyclin vs p_dimer_p
plot "Time vs PPMPF" time vs p_dimer_p
// -- End PhraSEDML block