computeElementalMatrix

PURPOSE ^

computeElementalMatrix Compute elemental matrix

SYNOPSIS ^

function [Ematrix] = computeElementalMatrix(model, metList, warnings)

DESCRIPTION ^

computeElementalMatrix Compute elemental matrix

 [Ematrix] = computeElementalMatrix(model, metList, warnings)

 INPUT
 model             COBRA model structure 
                   (must define .mets and .metFormulas)

 OPTIONAL INPUTS
 metList           Cell array of which metabolites to search for
                   (Default = all metabolites in model)
 warnings          Display warnings if there are errors with the
                   formula.  (Default = true)

 OUTPUT
 Ematrix           m x 6 matrix of order [C N O H P other]

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 function [Ematrix] = computeElementalMatrix(model, metList, warnings)
0002 %computeElementalMatrix Compute elemental matrix
0003 %
0004 % [Ematrix] = computeElementalMatrix(model, metList, warnings)
0005 %
0006 % INPUT
0007 % model             COBRA model structure
0008 %                   (must define .mets and .metFormulas)
0009 %
0010 % OPTIONAL INPUTS
0011 % metList           Cell array of which metabolites to search for
0012 %                   (Default = all metabolites in model)
0013 % warnings          Display warnings if there are errors with the
0014 %                   formula.  (Default = true)
0015 %
0016 % OUTPUT
0017 % Ematrix           m x 6 matrix of order [C N O H P other]
0018 
0019 % Extracted from computeMW. Richard Que (1/22/10)
0020 
0021 if nargin < 3
0022     warnings = true;
0023 end
0024 
0025 if nargin < 2 || isempty(metList)
0026     metIDs = 1:length(model.mets);
0027 else
0028     metIDs = findMetIDs(model,metList);
0029 end
0030 
0031 metIDs = reshape(metIDs, length(metIDs),1);
0032 
0033 Ematrix = zeros(length(metIDs), 6);
0034 for n = 1:length(metIDs)
0035     i = metIDs(n);
0036     formula = model.metFormulas(i);
0037     [compounds, tok] = regexp(formula, '([A-Z][a-z]*)(\d*)', 'match', 'tokens');
0038     tok = tok{1,1};
0039     for j = 1:length(tok) % go through each token.
0040         t = tok{1,j};
0041         comp = t{1,1};
0042         q = str2num(t{1,2});
0043         if (isempty(q))
0044             q = 1;
0045         end
0046         switch comp
0047             case 'H'
0048                 Ematrix(n,4) = q;
0049             case 'C'
0050                 Ematrix(n,1) = q;
0051             case 'N'
0052                 Ematrix(n,2) = q;
0053             case 'O'
0054                 Ematrix(n,3) = q;
0055             case 'Na'
0056                 Ematrix(n,6) = Ematrix(n,6) + q;
0057             case 'Mg'
0058                 Ematrix(n,6) = Ematrix(n,6) + q;
0059             case 'P'
0060                 Ematrix(n,5) = q;
0061             case 'S'
0062                 Ematrix(n,6) = Ematrix(n,6) + q;
0063             case 'Cl'
0064                 Ematrix(n,6) = Ematrix(n,6) + q;
0065             case 'K'
0066                 Ematrix(n,6) = Ematrix(n,6) + q;
0067             case 'Ca'
0068                 Ematrix(n,6) = Ematrix(n,6) + q;
0069             case 'Mn'
0070                 Ematrix(n,6) = Ematrix(n,6) + q;
0071             case 'Fe'
0072                 Ematrix(n,6) = Ematrix(n,6) + q;
0073             case 'Ni'
0074                 Ematrix(n,6) = Ematrix(n,6) + q;                
0075             case 'Co'
0076                 Ematrix(n,6) = Ematrix(n,6) + q;
0077             case 'Cu'
0078                 Ematrix(n,6) = Ematrix(n,6) + q;
0079             case 'Zn'
0080                 Ematrix(n,6) = Ematrix(n,6) + q;
0081             case 'As'
0082                 Ematrix(n,6) = Ematrix(n,6) + q;
0083             case 'Se'
0084                 Ematrix(n,6) = Ematrix(n,6) + q;
0085             case 'Ag'
0086                 Ematrix(n,6) = Ematrix(n,6) + q;
0087             case 'Cd'
0088                 Ematrix(n,6) = Ematrix(n,6) + q;
0089             case 'W'
0090                 Ematrix(n,6) = Ematrix(n,6) + q;
0091             case 'Hg'
0092                 Ematrix(n,6) = Ematrix(n,6) + q;
0093             otherwise
0094                 if warnings
0095                     display('Warning');
0096                     display(formula)
0097                     display(comp);
0098                 end
0099         end
0100     end
0101 
0102 end
0103

Generated on Thu 21-Jun-2012 15:39:23 by m2html © 2003