Enzyme usage#
MATLAB functions in GECKO/src/enzyme_usage of the GECKO toolbox.
Functions#
Function |
Summary |
|---|---|
Top-N enzymes limiting the current objective. |
|
Compute enzyme usages from a provided flux distribution. |
|
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 change of the objective
after the upper bound of its usage_prot_
The shadow price of the prot_
Parameters
model: structa 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: doublenumber of enzymes to return (default 10).
foldChange: doublea value how much to increase the usage upper bound of an enzyme that runs at its upper bound; must be greater than 1 (default 2).
Returns
bottlenecks: tableone row per returned enzyme, sorted by descending objectiveGain, with columns uniprot, gene, objectiveGain (objective after raising the bound minus the objective of the unchanged model; 0 for enzymes not at their upper bound, for gains below 1e-10 and for solves that are not optimal), shadowPrice, flux, capUsage (abs(flux)/upperBound, NaN if upperBound is 0), upperBound and multipleActive. An enzyme is at its upper bound when upperBound is above 0 and capUsage is at least 1 - 1e-6. multipleActive is true when at least one other constraint is active: another enzyme at its upper bound, or prot_pool_exchange at its upper bound (within 1e-6 relative). Where it is true, the dual is not informative about a single enzyme. The table property UserData.nResolved holds the number of enzymes that were solved again and UserData.activeConstraints the number of active constraints. When no enzyme is at its usage bound a warning (getEnzymeBottlenecks:noEnzymeAtBound) says that no single enzyme limits the objective; every objectiveGain is then 0 and the rows are in model order.
Examples
bottlenecks = getEnzymeBottlenecks(ecModel);
bottlenecks = getEnzymeBottlenecks(ecModel, 'top', 5, 'foldChange', 3);
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:
absolute usage: the specific enzyme usage in mg/gDCW, which can be given for enzymes with- and without concentration information;
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);
UB: the upper bound of each enzyme exchange reaction, which may not be the same as the enzyme concentration, if it has been flexibilized;
protID: the protein identifiers for each enzyme, in the same order as ecModel.ec.enzymes.
Parameters
ecModel: structan ecModel in GECKO 3 format (with ecModel.ec structure).
fluxes: doublevector of fluxes, for instance sol.x.
Name-Value Arguments
zero: logicalwhether also enzymes with zero absolute usage should be included (default true).
Returns
usageData: structstructure 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. An enzyme without a usage_prot_
reaction in the model is left out, with the warning getEnzymeUsage:missingUsageReaction. 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: structa GECKO3 ecModel.
usageData: structoutput from getEnzymeUsage.
Name-Value Arguments
highCapUsage: doubleminimum fraction of enzyme capacity usage to be listed as high usage (default 0.9, i.e. at least 90% capacity usage).
topAbsUsage: doublehow 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. A negative value raises reportEnzymeUsage:invalidTopAbsUsage.
Returns
usageReport: structhighCapUsage : 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