Cameo provides algorithms to search for genes or reactions that can be over- or down-regulated in order to achieve a given biological objective.
from cameo import models
Load the E. coli core model.
model = models.bigg.e_coli_core
from cameo.strain_design.deterministic.flux_variability_based import FSEOF
fseof = FSEOF(model)
fseof.run(target=model.reactions.EX_succ_e)
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | |
---|---|---|---|---|---|---|---|---|---|---|
ADK1 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.410338 | 1.527283 |
ENO | 15.238892 | 15.761645 | 16.212407 | 16.577535 | 16.942662 | 17.307790 | 17.704415 | 18.602292 | 19.293292 | 19.628048 |
FBA | 7.756941 | 8.036499 | 8.242515 | 8.361048 | 8.479582 | 8.598115 | 8.747793 | 9.393102 | 9.830787 | 9.910940 |
FRD7 | 0.000000 | 0.000000 | 0.000000 | 1.453235 | 3.175302 | 4.897369 | 6.586703 | 7.755141 | 9.127842 | 10.852285 |
GAPD | 16.431132 | 16.838737 | 17.173618 | 17.421989 | 17.670359 | 17.918730 | 18.198431 | 18.976723 | 19.547784 | 19.761991 |
ICL | 0.000000 | 0.000000 | 0.386057 | 1.231342 | 2.076627 | 2.921912 | 3.735322 | 4.041459 | 4.143333 | 3.893465 |
MALS | 0.000000 | 0.000000 | 0.386057 | 1.231342 | 2.076627 | 2.921912 | 3.735322 | 4.041459 | 4.143333 | 3.893465 |
PDH | 8.809270 | 8.336008 | 8.179868 | 8.400957 | 8.622045 | 8.843134 | 9.064539 | 9.290984 | 9.107760 | 8.219084 |
PFK | 7.756941 | 8.036499 | 8.242515 | 8.361048 | 8.479582 | 8.598115 | 8.747793 | 9.393102 | 9.830787 | 9.910940 |
PGI | 5.485630 | 6.110399 | 6.513173 | 6.651876 | 6.790579 | 6.929282 | 7.161108 | 8.874882 | 9.965126 | 9.981645 |
PGK | -16.431132 | -16.838737 | -17.173618 | -17.421989 | -17.670359 | -17.918730 | -18.198431 | -18.976723 | -19.547784 | -19.761991 |
PGM | -15.238892 | -15.761645 | -16.212407 | -16.577535 | -16.942662 | -17.307790 | -17.704415 | -18.602292 | -19.293292 | -19.628048 |
PPC | 3.758320 | 5.012330 | 5.878875 | 6.284516 | 6.690157 | 7.095799 | 7.532996 | 8.472367 | 9.615323 | 11.108854 |
PPS | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.410338 | 1.527283 |
SUCCt3 | 1.474575 | 2.949150 | 4.423725 | 5.898300 | 7.372875 | 8.847450 | 10.322025 | 11.796600 | 13.271175 | 14.745750 |
THD2 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.119674 | 2.143848 | 2.916807 | 1.535161 |
TPI | 7.756941 | 8.036499 | 8.242515 | 8.361048 | 8.479582 | 8.598115 | 8.747793 | 9.393102 | 9.830787 | 9.910940 |
EX_succ_e | 1.474575 | 2.949150 | 4.423725 | 5.898300 | 7.372875 | 8.847450 | 10.322025 | 11.796600 | 13.271175 | 14.745750 |
Compares flux ranges of a reference model to a set of models that have been parametrized to lie on a grid of evenly spaced points in the n-dimensional production envelope (n being the number of reaction bounds to be varied).
from cameo.flux_analysis.analysis import phenotypic_phase_plane
from cameo.strain_design.deterministic import DifferentialFVA
The production envelope looks like this.
production_envelope = phenotypic_phase_plane(model,
variables=[model.reactions.BIOMASS_Ecoli_core_w_GAM],
objective=model.metabolites.succ_e)
production_envelope.plot(height=400)
Set up a model that represents a reference state (in this case a model with a constrained growth rate).
model.reactions.EX_o2_e.lower_bound = 0
reference_model = model.copy()
biomass_rxn = reference_model.reactions.BIOMASS_Ecoli_core_w_GAM
biomass_rxn.lower_bound = 0.
target = reference_model.metabolites.succ_e
Set up the differential flux variability analysis strain design method.
diffFVA = DifferentialFVA(design_space_model=model,
reference_model=reference_model,
objective=target,
variables=[biomass_rxn],
normalize_ranges_by=biomass_rxn,
points=10)
Run differential flux variability analysis (only on the surface of the production envelope)
result = diffFVA.run(surface_only=True)
Failed to display Jupyter Widget of type HBox
.
If you're reading this message in Jupyter Notebook or JupyterLab, it may mean that the widgets JavaScript is still loading. If this message persists, it likely means that the widgets JavaScript library is either not installed or not enabled. See the Jupyter Widgets Documentation for setup instructions.
If you're reading this message in another notebook frontend (for example, a static rendering on GitHub or NBViewer), it may mean that your frontend doesn't currently support widgets.
result.solutions
lower_bound | upper_bound | gaps | normalized_gaps | biomass | production | KO | flux_reversal | suddenly_essential | free_flux | reaction | excluded | |
---|---|---|---|---|---|---|---|---|---|---|---|---|
reaction | ||||||||||||
ACALD | 0.000000 | 0.000000 | -2.339592e+00 | NaN | 0.000000 | 13.905778 | True | False | False | False | ACALD | False |
ACALDt | 0.000000 | 0.000000 | 0.000000e+00 | NaN | 0.000000 | 13.905778 | False | False | False | False | ACALDt | False |
ACKr | -5.664889 | -5.664889 | 0.000000e+00 | NaN | 0.000000 | 13.905778 | False | False | False | False | ACKr | False |
ACONTa | 0.429333 | 0.429333 | 0.000000e+00 | NaN | 0.000000 | 13.905778 | False | False | False | False | ACONTa | False |
ACONTb | 0.429333 | 0.429333 | 0.000000e+00 | NaN | 0.000000 | 13.905778 | False | False | False | False | ACONTb | False |
ACt2r | -5.664889 | -5.664889 | 0.000000e+00 | NaN | 0.000000 | 13.905778 | False | False | False | False | ACt2r | False |
ADK1 | 3.476444 | 3.476444 | 0.000000e+00 | NaN | 0.000000 | 13.905778 | False | False | False | False | ADK1 | False |
AKGDH | 0.000000 | 0.000000 | 0.000000e+00 | NaN | 0.000000 | 13.905778 | False | False | True | False | AKGDH | False |
AKGt2r | 0.000000 | 0.000000 | 0.000000e+00 | NaN | 0.000000 | 13.905778 | False | False | False | False | AKGt2r | False |
ALCD2x | 0.000000 | 0.000000 | -2.339592e+00 | NaN | 0.000000 | 13.905778 | True | False | False | False | ALCD2x | False |
ATPM | 8.390000 | 8.390000 | -3.552714e-15 | NaN | 0.000000 | 13.905778 | False | False | False | False | ATPM | False |
ATPS4r | -0.322000 | -0.322000 | 0.000000e+00 | NaN | 0.000000 | 13.905778 | False | False | False | False | ATPS4r | False |
BIOMASS_Ecoli_core_w_GAM | 0.000000 | 0.000000 | -1.587472e-01 | NaN | 0.000000 | 13.905778 | True | False | True | False | BIOMASS_Ecoli_core_w_GAM | True |
CO2t | 6.952889 | 6.952889 | 1.891755e+00 | NaN | 0.000000 | 13.905778 | False | False | False | False | CO2t | False |
CS | 0.429333 | 0.429333 | 0.000000e+00 | NaN | 0.000000 | 13.905778 | False | False | False | False | CS | False |
CYTBD | 0.000000 | 0.000000 | 0.000000e+00 | NaN | 0.000000 | 13.905778 | False | False | True | False | CYTBD | False |
DM_succ_e | 13.905778 | 13.905778 | 9.128278e+00 | NaN | 0.000000 | 13.905778 | False | False | False | False | DM_succ_e | True |
D_LACt2 | 0.000000 | 0.000000 | 0.000000e+00 | NaN | 0.000000 | 13.905778 | False | False | False | False | D_LACt2 | False |
ENO | 20.000000 | 20.000000 | 6.594835e-01 | NaN | 0.000000 | 13.905778 | False | False | False | False | ENO | False |
ETOHt2r | 0.000000 | 0.000000 | -2.339592e+00 | NaN | 0.000000 | 13.905778 | True | False | False | False | ETOHt2r | False |
FBA | 10.000000 | 10.000000 | 1.579059e-01 | NaN | 0.000000 | 13.905778 | False | False | False | False | FBA | False |
FBP | 0.000000 | 0.000000 | 0.000000e+00 | NaN | 0.000000 | 13.905778 | False | False | True | False | FBP | False |
FORt | 0.000000 | 0.000000 | 0.000000e+00 | NaN | 0.000000 | 13.905778 | False | False | False | False | FORt | False |
FORt2 | 0.000000 | 0.000000 | 0.000000e+00 | NaN | 0.000000 | 13.905778 | False | False | True | False | FORt2 | False |
FRD7 | 13.476444 | 1000.000000 | 0.000000e+00 | NaN | 0.000000 | 13.905778 | False | False | False | False | FRD7 | False |
FRUpts2 | 0.000000 | 0.000000 | 0.000000e+00 | NaN | 0.000000 | 13.905778 | False | False | True | False | FRUpts2 | False |
FUM | -13.476444 | -13.476444 | 8.698944e+00 | NaN | 0.000000 | 13.905778 | False | False | False | False | FUM | False |
FUMt2_2 | 0.000000 | 0.000000 | 0.000000e+00 | NaN | 0.000000 | 13.905778 | False | False | True | False | FUMt2_2 | False |
G6PDH2r | 0.000000 | 0.000000 | 0.000000e+00 | NaN | 0.000000 | 13.905778 | False | False | True | False | G6PDH2r | False |
GAPD | 20.000000 | 20.000000 | 4.219977e-01 | NaN | 0.000000 | 13.905778 | False | False | False | False | GAPD | False |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
ME2 | 0.000000 | 0.000000 | 0.000000e+00 | 0.000000 | 0.188145 | 2.123333 | False | False | True | False | ME2 | False |
NADH16 | 2.123333 | 2.123333 | 0.000000e+00 | 6.508131 | 0.188145 | 2.123333 | False | False | False | False | NADH16 | False |
NADTRHD | 0.000000 | 0.000000 | 0.000000e+00 | 0.000000 | 0.188145 | 2.123333 | False | False | True | False | NADTRHD | False |
NH4t | 1.025916 | 1.025916 | 0.000000e+00 | 2.994683 | 0.188145 | 2.123333 | False | False | False | False | NH4t | False |
O2t | 0.000000 | 0.000000 | 0.000000e+00 | 0.000000 | 0.188145 | 2.123333 | False | False | True | False | O2t | False |
PDH | 0.000000 | 0.000000 | 0.000000e+00 | 0.000000 | 0.188145 | 2.123333 | False | False | True | False | PDH | False |
PFK | 9.812852 | 9.812852 | 0.000000e+00 | 37.536245 | 0.188145 | 2.123333 | False | False | False | False | PFK | False |
PFL | 15.925266 | 15.925266 | 0.000000e+00 | 66.290142 | 0.188145 | 2.123333 | False | False | False | False | PFL | False |
PGI | 9.961430 | 9.961430 | 0.000000e+00 | 42.978083 | 0.188145 | 2.123333 | False | False | False | False | PGI | False |
PGK | -19.499855 | -19.499855 | 0.000000e+00 | 84.064777 | 0.188145 | 2.123333 | False | False | False | False | PGK | False |
PGL | 0.000000 | 0.000000 | 0.000000e+00 | 0.000000 | 0.188145 | 2.123333 | False | False | True | False | PGL | False |
PGM | -19.218390 | -19.218390 | 0.000000e+00 | 82.806263 | 0.188145 | 2.123333 | False | False | False | False | PGM | False |
PIt2r | 0.692128 | 0.692128 | 0.000000e+00 | 2.900056 | 0.188145 | 2.123333 | False | False | False | False | PIt2r | False |
PPC | 2.662481 | 2.662481 | 0.000000e+00 | 7.557877 | 0.188145 | 2.123333 | False | False | False | False | PPC | False |
PPCK | 0.000000 | 0.000000 | 0.000000e+00 | 0.000000 | 0.188145 | 2.123333 | False | False | True | False | PPCK | False |
PPS | 0.000000 | 0.000000 | 0.000000e+00 | 0.000000 | 0.188145 | 2.123333 | False | False | True | False | PPS | False |
PTAr | 8.669854 | 8.669854 | 0.000000e+00 | 37.203051 | 0.188145 | 2.123333 | False | False | False | False | PTAr | False |
PYK | 6.458243 | 6.458243 | 0.000000e+00 | 20.745204 | 0.188145 | 2.123333 | False | False | False | False | PYK | False |
PYRt2 | 0.000000 | 0.000000 | 0.000000e+00 | 0.000000 | 0.188145 | 2.123333 | False | False | False | False | PYRt2 | False |
RPE | -0.135239 | -0.135239 | 0.000000e+00 | -0.566657 | 0.188145 | 2.123333 | False | False | False | False | RPE | False |
RPI | -0.135239 | -0.135239 | 0.000000e+00 | 0.000000 | 0.188145 | 2.123333 | False | False | False | False | RPI | False |
SUCCt2_2 | 0.000000 | 0.000000 | 0.000000e+00 | 0.000000 | 0.188145 | 2.123333 | False | False | True | False | SUCCt2_2 | False |
SUCCt3 | 2.123333 | 2.123333 | 0.000000e+00 | 4.915631 | 0.188145 | 2.123333 | False | False | False | False | SUCCt3 | False |
SUCDi | 0.000000 | 997.876667 | 0.000000e+00 | 0.000000 | 0.188145 | 2.123333 | False | False | False | False | SUCDi | False |
SUCOAS | 0.000000 | 0.000000 | 0.000000e+00 | 0.000000 | 0.188145 | 2.123333 | False | False | False | False | SUCOAS | False |
TALA | -0.033659 | -0.033659 | 0.000000e+00 | -0.141033 | 0.188145 | 2.123333 | False | False | False | False | TALA | False |
THD2 | 3.225950 | 3.225950 | 0.000000e+00 | 4.869204 | 0.188145 | 2.123333 | False | False | False | False | THD2 | False |
TKT1 | -0.033659 | -0.033659 | 0.000000e+00 | -0.141033 | 0.188145 | 2.123333 | False | False | False | False | TKT1 | False |
TKT2 | -0.101579 | -0.101579 | 0.000000e+00 | -0.425623 | 0.188145 | 2.123333 | False | False | False | False | TKT2 | False |
TPI | 9.812852 | 9.812852 | 0.000000e+00 | 42.313745 | 0.188145 | 2.123333 | False | False | False | False | TPI | False |
684 rows × 12 columns
result.plot(5, variables=['FBP', 'G6PDH2r', 'PGL', 'PGK'])
result.display_on_map(2, map_name="iJO1366.Central metabolism")