Flux analysis#

MATLAB functions in GECKO/src/flux_analysis of the GECKO toolbox.

Functions#

Function

Summary

ecFSEOF

Run Flux-Scanning with Enforced Objective Function for a target.

ecFVA

Run flux variability analysis on an ecModel.

getPfbaEnzymes

Parsimonious FBA minimising total enzyme usage.

plotEcFVA

Plot cumulative distribution functions of ecFVA results.

Reference#

ecFSEOF#

function fseof = ecFSEOF(model,prodTargetRxn,csRxn,varargin)

Run Flux-Scanning with Enforced Objective Function for a target.

Runs Flux-Scanning with Enforced Objective Function (FSEOF) for a specified production target, to identify reaction and gene targets for metabolic engineering.

Parameters

model : struct

an ecModel in GECKO 3 format (with ecModel.ec structure).

prodTargetRxn : char

rxn ID for the production target reaction, an exchange reaction is recommended.

csRxn : char

rxn ID for the main carbon source uptake reaction.

Name-Value Arguments

nSteps : double

number of steps for suboptimal objective in FSEOF (default 16).

outputFile : logical

boolean option to save results in a file (default false).

filePath : char

file path for results output. It will store two files: at the genes level, ecFSEOF_genes.tsv; and at the reactions level, ecFSEOF_rxns.tsv (default: the 'output' sub-folder taken from modelAdapter, e.g. output/ecFSEOF_rxns.tsv).

modelAdapter : ModelAdapter

a loaded model adapter (default: the current default model adapter).

Returns

fseof : struct

a structure with all results.

Notes

The fseof structure has the following fields:

  • alpha : target production used for enforced objective limits (from minimum to maximum production).

  • v_matrix : fluxes for each target reaction predicted and each alpha.

  • rxnTargets : a list with all reactions with fluxes that change consistently as target production increases. Contains ID, name, slope, gene rule, and equation.

  • transportTargets : a list with all transport reactions with fluxes that change consistently as target production increases. Contains ID, name, slope, gene rule, and equation.

  • geneTargets : a list with all selected targets that increase production. Contains gene, shortName, slope, action, and essentiality.

Examples

% optional arguments may be given positionally or as name-value pairs:
fseof = ecFSEOF(model,prodTargetRxn,csRxn,nSteps,outputFile,filePath,modelAdapter);
fseof = ecFSEOF(model,prodTargetRxn,csRxn,'nSteps',32);

ecFVA#

function [minFlux, maxFlux] = ecFVA(ecModel, model, varargin)

Run flux variability analysis on an ecModel.

Flux variability analysis is performed on the ecModel, and isozymic reactions are combined to construct output minFlux and maxFlux vectors, which follow the same order of model.rxns. The output from this function does not include enzyme usage reactions; to observe these, one could consider running flux variability directly on the ecModel.

Parameters

ecModel : struct

an ecModel in GECKO 3 format (with ecModel.ec structure).

model : struct

non-ecModel variant of the ecModel, to which the minFlux and maxFlux will be mapped.

Name-Value Arguments

runParallel : logical

speed up calculations by parallel processing. Requires the MATLAB Parallel Computing Toolbox. If this is not installed, the calculations will not be parallelized, regardless of what is indicated as runParallel (default true).

Returns

minFlux : double

vector of minimum flux rates, corresponding to model.rxns.

maxFlux : double

vector of maximum flux rates, corresponding to model.rxns.

Examples

[minFlux, maxFlux] = ecFVA(ecModel, model);

See also

mapRxnsToConv, plotEcFVA

getPfbaEnzymes#

function solution = getPfbaEnzymes(model, varargin)

Parsimonious FBA minimising total enzyme usage.

Among all flux distributions at (or within a fraction of) the optimal value of the current objective, finds the one that minimises total enzyme usage: the smallest sum of usage_prot_* fluxes. This is the enzyme-aware analogue of classical pFBA, which minimises total flux instead --- for ecModels this usually picks the most parsimonious proteome, not just the most parsimonious fluxes.

Parameters

model : struct

a full ecModel in GECKO 3 format (with ecModel.ec structure and usage_prot_ reactions). Not supported for gecko-light models.

Name-Value Arguments

rxnId : char

reaction id to use as the objective instead of model.c as given (default: use model.c as given).

fractionOfOptimum : double

fraction of the optimal objective value to fix before minimising enzyme usage (default 1.0).

Returns

solution : struct
  • x : flux distribution (indexed by model.rxns) at the enzyme-usage-minimising solution.

  • getEnzymeUsage : the minimised sum of usage_prot_* fluxes.

  • objectiveValue : the fixed objective's own value at this solution.

  • stat : solveLP exit flag.

Examples

solution = getPfbaEnzymes(ecModel);
solution = getPfbaEnzymes(ecModel, 'fractionOfOptimum', 0.9);

Notes

usage_prot_ reactions must be forward-only (lb=0), the standard GECKO 3 layout; if any has a negative lower bound (reverse flux enabled), getPfbaEnzymes errors instead of building an objective that would fail to minimise |flux| for that reaction.

See also

getEnzymeBottlenecks

plotEcFVA#

function plotEcFVA(minFlux, maxFlux)

Plot cumulative distribution functions of ecFVA results.

Plots cumulative distribution functions of ecFVA results from one or more ecModel(s) and/or GEM(s).

Parameters

minFlux : double

vector of minimum flux values, coming from ecFVA. If multiple ecModels/GEMs are to be visualized, then each column represents a separate model.

maxFlux : double

vector of maximum flux values, matching minFlux.

See also

ecFVA