0001 function [hiCarbonRxns,zeroCarbonRxns,nCarbon] = findHiCarbonRxns(model,nCarbonThr)
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024 currencyMets = {'h2o','co2','o2','h2o2','nh4','no2','no3','no','h2s','so3','so4','h','h2','pi','ppi','coa','accoa','ppcoa','aacoa','butcoa','succoa','atp','gtp','adp','gdp','amp','gmp','nad','nadp','nadh','nadph','fad','fadh','na1','ahcys','amet','thf','mlthf'};
0025
0026 [baseMetNames,compSymbols,uniqueMetNames,uniqueCompSymbols] = parseMetNames(model.mets);
0027
0028 [carbons,tmp] = regexp(model.metFormulas,'^C(\d+)','tokens','match');
0029
0030 nCarbon = [];
0031 for i = 1:length(carbons)
0032 if (~isempty(carbons{i}))
0033 nCarbon(i) = str2num(carbons{i}{1}{1});
0034 else
0035 nCarbon(i) = 0;
0036 end
0037 end
0038
0039 nCarbon = columnVector(nCarbon);
0040
0041 selectMets = (nCarbon >= nCarbonThr) & ~ismember(columnVector(baseMetNames),columnVector(currencyMets));
0042
0043 selectRxns = any(model.S(selectMets,:) ~= 0);
0044
0045 hiCarbonRxns = columnVector(model.rxns(selectRxns));
0046
0047 selectMetsZero = (nCarbon == 0) & ~ismember(columnVector(baseMetNames),columnVector(currencyMets));
0048
0049 selectRxnsZero = sum(model.S ~= 0 & repmat(selectMetsZero,1,size(model.S,2))) == sum(model.S ~= 0);
0050
0051 zeroCarbonRxns = columnVector(model.rxns(selectRxnsZero));