Enzyme usage#

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

Functions#

Function

Summary

getEnzymeBottlenecks

Top-N enzymes limiting the current objective.

getEnzymeUsage

Compute enzyme usages from a provided flux distribution.

reportEnzymeUsage

Summarize the results from getEnzymeUsage.

Reference#

getEnzymeBottlenecks#

function bottlenecks = getEnzymeBottlenecks(model, varargin)

Top-N enzymes limiting the current objective.

Solves the model and ranks every enzyme by the absolute shadow price of its prot_ mass-balance constraint --- the enzymes whose extra availability would help the objective the most.

Parameters

model : struct

a full ecModel in GECKO 3 format (with ecModel.ec structure). Not supported for gecko-light models, which have no per-enzyme prot_ / usage_prot_ machinery.

Name-Value Arguments

top : double

number of enzymes to return (default 10).

Returns

bottlenecks : table

one row per returned enzyme, sorted by descending absolute shadow price, with columns uniprot, gene, shadowPrice, flux, capUsage (abs(flux)/upperBound, NaN if upperBound is 0) and upperBound.

Examples

bottlenecks = getEnzymeBottlenecks(ecModel);
bottlenecks = getEnzymeBottlenecks(ecModel, 'top', 5);

getEnzymeUsage#

function usageData = getEnzymeUsage(ecModel,fluxes,varargin)

Compute enzyme usages from a provided flux distribution.

Gives enzyme usages based on a provided flux distribution, as obtained from a full GECKO model. It can give:

  1. absolute usage: the specific enzyme usage in mg/gDCW, which can be given for enzymes with- and without concentration information;

  2. capacity usage: the ratio of available enzyme that is used, calculated by (absUsage/UB) (note that capacity usage is 0 if an enzyme concentration was not constrained in the model);

  3. UB: the upper bound of each enzyme exchange reaction, which may not be the same as the enzyme concentration, if it has been flexibilized;

  4. protID: the protein identifiers for each enzyme, in the same order as ecModel.ec.enzymes.

Parameters

ecModel : struct

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

fluxes : double

vector of fluxes, for instance sol.x.

Name-Value Arguments

zero : logical

whether also enzymes with zero absolute usage should be included (default true).

Returns

usageData : struct

structure with enzyme usage data.

Notes

The usageData structure has the following fields:

  • capUsage : vector of enzyme capacity usages.

  • absUsage : vector of absolute enzyme usages.

  • UB : vector of enzyme exchange reaction upper bounds.

  • protID : string array of matching protein IDs.

  • fluxes : vector of fluxes, copy of input fluxes.

Examples

% optional arguments may be given positionally or as name-value pairs:
usageData = getEnzymeUsage(ecModel,fluxes,zero);
usageData = getEnzymeUsage(ecModel,fluxes,'zero',false);

See also

reportEnzymeUsage

reportEnzymeUsage#

function usageReport = reportEnzymeUsage(ecModel, usageData, varargin)

Summarize the results from getEnzymeUsage.

Ranks the enzymes from getEnzymeUsage into two tables: those with the highest capacity usage, and those with the highest absolute usage.

Parameters

ecModel : struct

a GECKO3 ecModel.

usageData : struct

output from getEnzymeUsage.

Name-Value Arguments

highCapUsage : double

minimum fraction of enzyme capacity usage to be listed as high usage (default 0.9, i.e. at least 90% capacity usage).

topAbsUsage : double

how many top enzymes by absolute usage to list (default 10). Use 0 or Inf to list all enzymes instead. Enzymes whose reactions carry no flux are never listed here, as they do not contribute to the solution.

Returns

usageReport : struct

highCapUsage : table enzymes at or above the highCapUsage threshold. topAbsUsage : table the topAbsUsage enzymes with the highest absolute usage. totalUsageFlux : double total protein pool used, i.e. the upper bound of prot_pool_exchange.

Examples

% optional arguments may be given positionally or as name-value pairs:
usageReport = reportEnzymeUsage(ecModel, usageData, highCapUsage, topAbsUsage);
usageReport = reportEnzymeUsage(ecModel, usageData, 'topAbsUsage', 20);

See also

getEnzymeUsage