Production envelopes

Production envelopes determine the flux of the model objective at different values of specific reactions, spanning their variability. We can use the builtin function objective_production_envelope to quickly find such envelopes.

We proceed as usual by loading the necessary models and packages:

using COBREXA

download_model(
    "http://bigg.ucsd.edu/static/models/e_coli_core.json",
    "e_coli_core.json",
    "7bedec10576cfe935b19218dc881f3fb14f890a1871448fc19a9b4ee15b448d8",
)

import JSONFBCModels
import HiGHS

model = load_model("e_coli_core.json")
JSONFBCModels.JSONFBCModel(#= 95 reactions, 72 metabolites =#)

The objective_production_envelope function finds the variability of the given reactons and returns a multidimensional matrix with exact number of breaks in each dimension (positioned in a linear lattice). Here we examine the inter-dependency of oxygen and carbon dioxide exchanges on a matrix of 5×5 individual "conditions" that form the envelope:

envelope = objective_production_envelope(
    model,
    ["EX_o2_e", "EX_co2_e"];
    breaks = 5,
    optimizer = HiGHS.Optimizer,
)
(breaks = Pair{String, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}}["EX_o2_e" => -60.0:15.0:0.0, "EX_co2_e" => -11.104242424242429:17.776060606060632:60.0000000000001], objective_values = Union{Nothing, Float64}[nothing nothing … nothing 1.4356622286820861e-15; nothing nothing … 0.2724440832478481 nothing; … ; nothing 0.6046187247413645 … nothing nothing; 0.0 0.2019262880721721 … nothing nothing])

Documentation of the function describes ways to set custom bounds for the examined reaction flux ranges and several other customizations.


This page was generated using Literate.jl.