0001 function abcModel = alphabetizeModel(model)
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018 abcModel = model;
0019
0020 [abcModel.rxns,iRxns] = sort(abcModel.rxns);
0021 [abcModel.mets,iMets] = sort(abcModel.mets);
0022 S = abcModel.S(:,iRxns);
0023 abcModel.S = S(iMets,:);
0024 abcModel.lb = abcModel.lb(iRxns);
0025 abcModel.ub = abcModel.ub(iRxns);
0026 abcModel.c = abcModel.c(iRxns);
0027 abcModel.b = abcModel.b(iMets);
0028
0029 if isfield(model,'rev'), abcModel.rev = abcModel.rev(iRxns); end
0030 if isfield(model,'charges'), abcModel.charges = abcModel.charges(iMets); end
0031 if isfield(model,'metCharge'), abcModel.metCharge = abcModel.metCharge(iMets); end
0032 if isfield(model,'subSystems'), abcModel.subSystems = abcModel.subSystems(iRxns); end
0033 if isfield(model,'rxnNames'), abcModel.rxnNames = abcModel.rxnNames(iRxns); end
0034 if isfield(model,'metNames'), abcModel.metNames = abcModel.metNames(iMets); end
0035 if isfield(model,'metFormulas'), abcModel.metFormulas = abcModel.metFormulas(iMets); end
0036 if isfield(model,'genes')
0037 [abcModel.genes,iGenes] = sort(abcModel.genes);
0038 if isfield(model,'rxnGeneMat')
0039 rxnGeneMat = abcModel.rxnGeneMat(:,iGenes);
0040 abcModel.rxnGeneMat = rxnGeneMat(iRxns,:);
0041 end
0042 end
0043 if isfield(model,'grRules')
0044 abcModel.grRules = abcModel.grRules(iRxns);
0045 if isfield(model,'rules')
0046 for i=1:length(model.grRules)
0047 [genes, rules] = parseBoolean(abcModel.grRules{i});
0048 [tmp geneInd] = ismember(genes,abcModel.genes);
0049 if ~isempty(geneInd)
0050 for j = 1:length(geneInd)
0051 rules = strrep(rules,['x(' num2str(j) ')'],['x(' num2str(geneInd(j)) '_TMP_)']);
0052 end
0053 abcModel.rules{i} = strrep(rules,'_TMP_','');
0054 else
0055 abcModel.rules{i} = '';
0056 end
0057 end
0058 end
0059 end