removeDeadEnds Remove all dead end metabolites and reactions from the model [model,removedMets,removedRxns] = removeDeadEnds(model) INPUT model COBRA model structure OUTPUTS model COBRA model structure w/o dead end metabolites and reactions removedMets List of removed metabolites removedRxns List of removed reactions Markus Herrgard 8/29/06
0001 function [model,removedMets,removedRxns] = removeDeadEnds(model) 0002 %removeDeadEnds Remove all dead end metabolites and reactions from the 0003 %model 0004 % 0005 % [model,removedMets,removedRxns] = removeDeadEnds(model) 0006 % 0007 %INPUT 0008 % model COBRA model structure 0009 % 0010 %OUTPUTS 0011 % model COBRA model structure w/o dead end metabolites and 0012 % reactions 0013 % removedMets List of removed metabolites 0014 % removedRxns List of removed reactions 0015 % 0016 % Markus Herrgard 8/29/06 0017 0018 removedMets = {}; 0019 removedRxns = {}; 0020 0021 while (1) 0022 0023 deadEnd = detectDeadEnds(model); 0024 0025 if (length(deadEnd) == 0) 0026 break; 0027 end 0028 0029 removedMets = union(removedMets,model.mets(deadEnd)); 0030 if (length(deadEnd) > 1) 0031 deadRxns = model.rxns(find(sum(model.S(deadEnd,:) ~= 0) > 0)); 0032 else 0033 deadRxns = model.rxns(find(model.S(deadEnd,:) ~= 0)); 0034 end 0035 0036 model = removeRxns(model,deadRxns); 0037 0038 0039 removedRxns = union(removedRxns,deadRxns); 0040 0041 end