0001 function MultiRxnsLib
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011 Pth1 = which ('Bigg2Kegg.m');
0012 tind = find(Pth1=='\',1,'last');
0013 Pth = Pth1(1:tind-1);
0014 Pth2 = fullfile(Pth,'BiGG2KEGG\*.mat');
0015 Pth3 = fullfile(Pth,'BiGG2KEGG');
0016 BMatfiles = dir(Pth2);
0017 BNames = cell(numel(BMatfiles)-2,1);
0018 ct1 = 1;
0019 for ct = 1:numel(BMatfiles)
0020 if ~strcmp(BMatfiles(ct).name,'BiGG2KEGG_HMRbased-RECON1.mat') && ...
0021 ~strcmp(BMatfiles(ct).name,'Multirxns.mat')
0022 BNames{ct1} = BMatfiles(ct).name;
0023 ct1 = ct1 + 1;
0024 end
0025 end
0026 BM = ({}); NotBM = ({}); NotKM = ({});
0027 for count =1:numel(BNames)
0028 load(fullfile(Pth3,BNames{count}))
0029 B=B2Kegg.B;K=B2Kegg.K;
0030 MltLoci = find(ismember(B,'MULTIR'));
0031 NotBM1 = B(1:MltLoci-1); NotKM1 = K(1:MltLoci-1);
0032 BM1 = B(MltLoci+1:end);
0033 NonOverlp = ~ismember(BM1,BM);
0034 BM1 = BM1(NonOverlp);
0035 [NotBM1,NotKM1] = Rxnfinder(BM1,NotBM1,NotKM1);
0036 Len = numel(BM)+1:numel(BM1)+numel(BM);
0037 clear B2Kegg
0038 BM(Len) = BM1;
0039 if ~isempty(NotBM1)
0040 Len1 = numel(NotBM)+1:numel(NotBM1)+numel(NotBM);
0041 NotBM(Len1) = NotBM1; NotKM(Len1) = NotKM1;
0042 end
0043 end
0044 [ParentRxn,ChildRxns] = MultiRxns(NotKM);
0045 Multirxns.P = ParentRxn; Multirxns.C = ChildRxns;
0046 save ([Pth3,'\Multirxns.mat'],'Multirxns')
0047 clear
0048 disp('Multi Reactions Library has been generated successfully!')
0049
0050 function [NotBM,NotKM] = Rxnfinder(BM1,NotBM1,NotKM1)
0051 count = 1; NotBM = ({}); NotKM = ({});
0052 while numel(BM1)
0053 Tfind = find(ismember(BM1,BM1{1}));
0054 Tfind1 = find(ismember(NotBM1,BM1{Tfind(1)}));
0055 for ct = 1:numel(Tfind1)
0056 NotBM{count} = NotBM1{Tfind1(ct)};
0057 NotKM{count} = NotKM1{Tfind1(ct)};
0058 count = count + 1;
0059 end
0060 BM1(Tfind) = [];
0061 end