0001 function compModel = extractCompModel(model,compSymbol,intOnlyFlag)
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018 if (nargin < 3)
0019 intOnlyFlag = true;
0020 end
0021
0022 [baseMetNames,compSymbols] = parseMetNames(model.mets);
0023
0024 selMets = strcmp(compSymbols,compSymbol);
0025
0026 if (sum(selMets) == 0)
0027 warning('Compartment symbol not found');
0028 compModel = [];
0029 return;
0030 end
0031
0032 if (intOnlyFlag)
0033
0034
0035 selRxns = (sum(model.S(selMets,:) ~= 0)' == sum(model.S ~= 0)') & any(model.S(selMets,:) ~= 0,1)';
0036 rxnList = model.rxns(selRxns);
0037
0038 else
0039
0040
0041 selRxns = any(model.S(selMets,:) ~= 0,1)';
0042 rxnList = model.rxns(selRxns);
0043
0044 end
0045
0046
0047 compModel = extractSubNetwork(model,rxnList);
0048
0049 if (isfield(compModel,'description'))
0050 compModel.description = [compModel.description ' Compartment:' compSymbol'];
0051 end