Home > src > geckomat > utilities > enzymeUsage.m

enzymeUsage

PURPOSE ^

enzymeUsage

SYNOPSIS ^

function usageData = enzymeUsage(ecModel,fluxes,zero)

DESCRIPTION ^

 enzymeUsage
   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, calcuted
       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 (if the model has an
       enzymes field than this order is used, otherwise it is given
       alphabetically.

 Input:
   ecModel     an ecModel in GECKO 3 format (with ecModel.ec structure)
   fluxes      vector of fluxes, for instance sol.x
   zero        logical whether also enzymes with zero absolute usage
               should be included (Optional, default true)

 Output:
   usageData   structure with enzyme usage data
               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

 Usage:
   usageData = enzymeUsage(ecModel,fluxes,zero)

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 function usageData = enzymeUsage(ecModel,fluxes,zero)
0002 % enzymeUsage
0003 %   Gives enzyme usages based on a provided flux distribution, as obtained
0004 %   from a full GECKO model. It can give:
0005 %   1)  absolute usage: the specific enzyme usage in mg/gDCW, which can
0006 %       be given for enzymes with- and without concentration information;
0007 %   2)  capacity usage: the ratio of available enzyme that is used, calcuted
0008 %       by (absUsage/UB) (note that capacity usage is 0 if an enzyme
0009 %       concentration was not constrained in the model);
0010 %   3)  UB: the upper bound of each enzyme exchange reaction, which may not
0011 %       be the same as the enzyme concentration, if it has been
0012 %       flexibilized
0013 %   4)  protID: the protein identifiers for each enzyme (if the model has an
0014 %       enzymes field than this order is used, otherwise it is given
0015 %       alphabetically.
0016 %
0017 % Input:
0018 %   ecModel     an ecModel in GECKO 3 format (with ecModel.ec structure)
0019 %   fluxes      vector of fluxes, for instance sol.x
0020 %   zero        logical whether also enzymes with zero absolute usage
0021 %               should be included (Optional, default true)
0022 %
0023 % Output:
0024 %   usageData   structure with enzyme usage data
0025 %               capUsage    vector of enzyme capacity usages
0026 %               absUsage    vector of absolute enzyme usages
0027 %               UB          vector of enzyme exchange reaction upper bounds
0028 %               protID      string array of matching protein IDs
0029 %               fluxes      vector of fluxes, copy of input fluxes
0030 %
0031 % Usage:
0032 %   usageData = enzymeUsage(ecModel,fluxes,zero)
0033 
0034 if nargin<3
0035     zero=true;
0036 end
0037 if ecModel.ec.geckoLight
0038     error('This function does not work on GECKO light models.')
0039 end
0040 usageData.protID      = ecModel.ec.enzymes;
0041 [~,rxnIdx] = ismember(strcat('usage_prot_',ecModel.ec.enzymes),ecModel.rxns);
0042 
0043 usageData.LB          = ecModel.lb(rxnIdx);
0044 usageData.absUsage    = abs(fluxes(rxnIdx));
0045 usageData.capUsage    = abs(usageData.absUsage./usageData.LB);
0046 usageData.fluxes      = fluxes;
0047 
0048 if ~zero
0049     nonzero               = usageData.absUsage<0;
0050     usageData.absUsage    = usageData.absUsage(nonzero);
0051     usageData.capUsage    = usageData.capUsage(nonzero);
0052     usageData.LB          = usageData.LB(nonzero);
0053     usageData.protID      = usageData.protID(nonzero);
0054 end
0055 end

Generated by m2html © 2005