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. Reactions are classified as targets with the same rule as RAVEN's FSEOF: the correlation between the absolute flux of a reaction and the enforced production flux.

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).

corrThreshold : double

minimum absolute Pearson correlation between the absolute flux of a reaction and the enforced production flux for the reaction to be a target (default 0.9).

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 whose absolute flux is correlated with the enforced production, with an absolute correlation of at least corrThreshold. Contains ID, name, slope, gene rule, and equation. The slope is the absolute slope of the regression of the absolute flux on the enforced production flux. The list is ordered by the product of slope and correlation, highest first.

  • transportTargets : the same for transport reactions.

  • geneTargets : a list with all genes of the targets. Contains gene, shortName, slope, action, and essentiality.

Only reactions with a gene rule are considered, and not those that are assigned to the standard enzyme. The enforced production reaction is included when it has a gene rule, as its flux follows the enforced production by definition. The reactions that draw enzyme usage (usage_prot_*) take part in the classification and are not reported. A reaction is over expressed (OE) when its flux increases with production, knocked out (KO) when it decreases and is at most 1e-8 at the last step, and knocked down (KD) when it decreases otherwise.

Examples

% optional arguments may be given positionally or as name-value pairs:
fseof = ecFSEOF(model,prodTargetRxn,csRxn,nSteps,outputFile,filePath,modelAdapter,corrThreshold);
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). A value below 1.0 lets the objective fall by (1 - fractionOfOptimum) times the magnitude of its optimum, so it also applies to a negative optimum (for example the exchange flux of a nutrient that is maximised).

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