0001 function pathway=trimPathway(pathway, rxnsToKeep, deleteUnconnectedMets)
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019 if nargin<3
0020 deleteUnconnectedMets=true;
0021 end
0022
0023
0024 indexesToDelete=false(numel(pathway.listOfSpecies),1);
0025 aliasesToDelete={};
0026
0027 for i=1:numel(pathway.listOfSpecies)
0028 if strcmpi(pathway.listOfSpecies(i).type,'PROTEIN')
0029
0030 if ~ismember(pathway.listOfSpecies(i).name,rxnsToKeep)
0031 indexesToDelete(i)=true;
0032 aliasesToDelete=[aliasesToDelete;pathway.listOfSpecies(i).alias];
0033 end
0034 end
0035 end
0036
0037
0038
0039 rxnsToDelete=false(numel(pathway.listOfReactions),1);
0040
0041 for i=1:numel(pathway.listOfReactions)
0042
0043
0044 componentsToDelete=zeros(numel(pathway.listOfReactions(i).componentList),1);
0045 for j=1:numel(pathway.listOfReactions(i).componentList)
0046 if strcmpi(pathway.listOfReactions(i).componentList(j).type,'ENZYME')
0047
0048
0049 if ismember(pathway.listOfReactions(i).componentList(j).alias,aliasesToDelete)
0050 componentsToDelete(j)=-1;
0051 else
0052 componentsToDelete(j)=1;
0053 end
0054 end
0055 end
0056
0057
0058 if ~any(componentsToDelete==1)
0059 rxnsToDelete(i)=true;
0060 else
0061 pathway.listOfReactions(i).componentList(componentsToDelete==-1)=[];
0062 end
0063 end
0064
0065
0066 pathway.listOfSpecies(indexesToDelete)=[];
0067 pathway.listOfReactions(rxnsToDelete)=[];
0068
0069
0070
0071 aliasesToKeeep={};
0072 if deleteUnconnectedMets==true
0073 for i=1:numel(pathway.listOfReactions)
0074 for j=1:numel(pathway.listOfReactions(i).componentList)
0075 aliasesToKeeep=[aliasesToKeeep;pathway.listOfReactions(i).componentList(j).alias];
0076 end
0077 end
0078
0079
0080
0081 indexesToDelete=true(numel(pathway.listOfSpecies),1);
0082 for i=1:numel(pathway.listOfSpecies)
0083 if ismember(pathway.listOfSpecies(i).alias,aliasesToKeeep)
0084 indexesToDelete(i)=false;
0085 end
0086 end
0087
0088 pathway.listOfSpecies(indexesToDelete)=[];
0089 end
0090
0091