Predict expression modulation targets

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

Flux Scanning based on Enforced Objective Flux

from cameo.strain_design.deterministic.flux_variability_based import FSEOF
fseof = FSEOF(model)
fseof.run(target=model.reactions.EX_succ_e)
Model: e_coli_core
Enforced objective: EX_succ_e
Primary objective: Maximize -1.0*BIOMASS_Ecoli_core_w_GAM_reverse_712e5 + 1.0*BIOMASS_Ecoli_core_w_GAM

Reaction fluxes

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

Differential flux variability analysis

Compares flux ranges of a reference model to a set of models that have been parameterized 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

Succinate production

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)
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 inf 0.000000 13.905778 False False False False ACKr False
ACONTa 0.429333 0.429333 0.000000e+00 inf 0.000000 13.905778 False False False False ACONTa False
ACONTb 0.429333 0.429333 0.000000e+00 inf 0.000000 13.905778 False False False False ACONTb False
ACt2r -5.664889 -5.664889 0.000000e+00 inf 0.000000 13.905778 False False False False ACt2r False
ADK1 3.476444 3.476444 0.000000e+00 inf 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 inf 0.000000 13.905778 False False False False ATPM False
ATPS4r -0.322000 -0.322000 0.000000e+00 inf 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 inf 0.000000 13.905778 False False False False CO2t False
CS 0.429333 0.429333 0.000000e+00 inf 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 inf 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 inf 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 inf 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
FORt2 0.000000 0.000000 0.000000e+00 NaN 0.000000 13.905778 False False True False FORt2 False
FORti 0.000000 0.000000 0.000000e+00 NaN 0.000000 13.905778 False False True False FORti False
FRD7 13.476444 1000.000000 0.000000e+00 inf 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 inf 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 inf 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")