biomassPrecursorCheck Checks if biomass precursors are able to be synthesized. [missingMets,presentMets] = checkBiomassPrecursors(model) INPUT model COBRA model structure OUTPUTS missingMets List of biomass precursors that are not able to be synthesized presentMets List of biomass precursors that are able to be synthesized NOTE: May identify metabolites that are typically recycled within the network such as ATP, NAD, NADPH, ACCOA. Pep Charusanti & Richard Que (July 2010) --------------------------------------------------------------------------
0001 function [missingMets,presentMets] = biomassPrecursorCheck(model) 0002 %biomassPrecursorCheck Checks if biomass precursors are able to be 0003 %synthesized. 0004 % 0005 % [missingMets,presentMets] = checkBiomassPrecursors(model) 0006 % 0007 %INPUT 0008 % model COBRA model structure 0009 % 0010 %OUTPUTS 0011 % missingMets List of biomass precursors that are not able to be synthesized 0012 % presentMets List of biomass precursors that are able to be synthesized 0013 % 0014 % NOTE: May identify metabolites that are typically recycled within the 0015 % network such as ATP, NAD, NADPH, ACCOA. 0016 % 0017 % 0018 % Pep Charusanti & Richard Que (July 2010) 0019 %-------------------------------------------------------------------------- 0020 0021 0022 % FIND COLUMN IN S-MATRIX THAT CORRESPONDS TO BIOMASS EQUATION 0023 colS_biomass = find(model.c); 0024 0025 % LIST ALL METABOLITES IN THE BIOMASS FUNCTION 0026 biomassMetabs = model.mets(model.S(:,colS_biomass)<0); 0027 0028 % ADD DEMAND REACTION, SET OBJECTIVE FUNCTION TO MAXIMIZE ITS PRODUCTION, 0029 % AND OPTIMIZE. NOTE: A CRITICAL ASSUMPTION IS THAT THE ADDED DEMAND 0030 % REACTION IS APPENDED TO THE FAR RIGHT OF THE S-MATRIX. THE CODE NEEDS TO 0031 % BE REVISED IF THIS IS NOT THE CASE. 0032 k=1; 0033 m=1; 0034 % ADD DEMAND REACTIONS 0035 [model_newDemand,addedRxns] = addDemandReaction(model,biomassMetabs); 0036 for i=1:length(biomassMetabs) 0037 % [model_newDemand,addedRxn] = addDemandReaction(model,biomassMetabs(i)); % ADD DEMAND REACTION 0038 model_newDemand.c = zeros(length(model_newDemand.c),1); % CHANGE OBJECTIVE FUNCTION TO NEW DEMAND RXN 0039 model_newDemand.c(strmatch(addedRxns{i},model_newDemand.rxns)) = 1; 0040 solution = optimizeCbModel(model_newDemand); % OPTIMIZE 0041 if solution.f == 0 % MAKE LIST OF WHICH BIOMASS PRECURSORS ARE ... 0042 missingMets(k) = biomassMetabs(i); % SYNTHESIZED AND WHICH ARE NOT 0043 k = k+1; 0044 else 0045 presentMets(m) = biomassMetabs(i); 0046 m = m+1; 0047 end 0048 end 0049 0050 0051 missingMets = columnVector(missingMets); 0052 presentMets = columnVector(presentMets); 0053 0054 0055 0056 0057 0058 0059 0060 0061 0062 0063 0064 0065 0066 0067