parseMetNames Figure out the base metabolite names and compartments for each metabolite [baseMetNames,compSymbols,uniqueMetNames,uniqueCompSymbols] = parseMetNames(metNames) INPUT metNames List of metabolite names OUTPUTS baseMetNames List of met names without compartment symbol compSymbols Compartment symbols for each metabolite uniqueMetNames Unique metabolite names (w/o comp symbol) uniqueCompSymbols Unique compartment symbols Metabolite names should describe the compartment assignment in either the form "metName[compName]" or "metName(compName)" Markus Herrgard 10/4/06
0001 function [baseMetNames,compSymbols,uniqueMetNames,uniqueCompSymbols] = parseMetNames(metNames) 0002 %parseMetNames Figure out the base metabolite names and compartments for each metabolite 0003 % 0004 % [baseMetNames,compSymbols,uniqueMetNames,uniqueCompSymbols] = parseMetNames(metNames) 0005 % 0006 %INPUT 0007 % metNames List of metabolite names 0008 % 0009 %OUTPUTS 0010 % baseMetNames List of met names without compartment symbol 0011 % compSymbols Compartment symbols for each metabolite 0012 % uniqueMetNames Unique metabolite names (w/o comp symbol) 0013 % uniqueCompSymbols Unique compartment symbols 0014 % 0015 % Metabolite names should describe the compartment assignment in either the 0016 % form "metName[compName]" or "metName(compName)" 0017 % 0018 % Markus Herrgard 10/4/06 0019 0020 uniqueCompSymbols = {}; 0021 uniqueMetNames = {}; 0022 for metNo = 1:length(metNames) 0023 metName = metNames{metNo}; 0024 if (~isempty(regexp(metName,'\['))) 0025 [tokens,tmp] = regexp(metName,'(.+)\[(.+)\]','tokens','match'); 0026 else 0027 [tokens,tmp] = regexp(metName,'(.+)\((.+)\)','tokens','match'); 0028 end 0029 if ~isempty(tokens) 0030 compSymbol = tokens{1}{2}; 0031 baseMetName = tokens{1}{1}; 0032 else 0033 compSymbol = ''; 0034 baseMetName = metName; 0035 end 0036 compSymbols{metNo} = compSymbol; 0037 baseMetNames{metNo} = baseMetName; 0038 end 0039 0040 % Get the list of unique compartment symbols and unique metabolite base 0041 % names 0042 uniqueCompSymbols = columnVector(unique(compSymbols)); 0043 uniqueMetNames = columnVector(unique(baseMetNames)); 0044 0045 compSymbols = columnVector(compSymbols); 0046 baseMetNames = columnVector(baseMetNames);