drawFluxVariability

PURPOSE ^

drawFluxVariablity Overlay flux variability data on a metabolic map

SYNOPSIS ^

function options = drawFluxVariability(map,model,minFlux,maxFlux,options,varargin)

DESCRIPTION ^

drawFluxVariablity Overlay flux variability data on a metabolic map

 options = drawFluxVariability(map,model,minFlux,maxflux,options,varargin)

INPUTS
 map           COBRA map structure
 model         COBRA model structure
 minFlux       Vector containing minimum flux values for each reaction
 maxFlux       Vector containing maximum flux values for each reaction

OPTIONAL INPUTS
 options       options structure
 varargin      parameter, parameter value inputs for optional parameters

OUTPUT
 options       options structure used to generate map

Richard Que (03/2010)

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 function options = drawFluxVariability(map,model,minFlux,maxFlux,options,varargin)
0002 %drawFluxVariablity Overlay flux variability data on a metabolic map
0003 %
0004 % options = drawFluxVariability(map,model,minFlux,maxflux,options,varargin)
0005 %
0006 %INPUTS
0007 % map           COBRA map structure
0008 % model         COBRA model structure
0009 % minFlux       Vector containing minimum flux values for each reaction
0010 % maxFlux       Vector containing maximum flux values for each reaction
0011 %
0012 %OPTIONAL INPUTS
0013 % options       options structure
0014 % varargin      parameter, parameter value inputs for optional parameters
0015 %
0016 %OUTPUT
0017 % options       options structure used to generate map
0018 %
0019 %Richard Que (03/2010)
0020 
0021 if nargin<5, options = []; end
0022 if ~isfield(options,'fluxVarColor'), options.fluxVarColor = []; end
0023 if mod(length(varargin),2)==0
0024     for i=1:2:length(varargin)-1
0025         options = setMapOptions(options,map,model,varargin{i},varargin{i+1});
0026 %         switch lower(varargin{i})
0027 %             case 'bidircolor', options.fluxVarColor.biDirColor = varargin{i+1};
0028 %             case 'unidirirrcolor', options.fluxVarColor.uniDirIrrColor = varargin{i+1};
0029 %             case 'unidirfwdcolor', options.fluxVarColor.uniDirFwdColor = varargin{i+1};
0030 %             case 'unidirrevcolor', options.fluxVarColor.uniDirRevColor = varargin{i+1};
0031 %             case 'filename', options.fileName = varargin{i+1};
0032 %             case 'rxndirflag', options.rxnDirFlag = varargin{i+1};
0033 %             case 'rxndirmultiplier', options.rxnDirMultiplier = varargin{i+1};
0034 %             otherwise
0035 %                 options.(varargin{i}) = varargin{i+1};
0036 %                 fprintf('Unrecognized parameter %s\n',varargin{i});
0037 %         end
0038     end
0039 else
0040     error('Invalid number of parameters/values');
0041 end
0042 color = zeros(length(model.rxns),3);
0043 %set defaults
0044 if ~isfield(options.fluxVarColor,'biDirColor')
0045     options.fluxVarColor.biDirColor = [0 255 0];
0046 end
0047 if ~isfield(options.fluxVarColor,'uniDirIrrColor')
0048     options.fluxVarColor.uniDirIrrColor = [0 0 255];
0049 end
0050 if ~isfield(options.fluxVarColor,'uniDirFwdColor')
0051     options.fluxVarColor.uniDirFwdColor = [255 0 255];
0052 end
0053 if ~isfield(options.fluxVarColor,'uniDirRevColor')
0054     options.fluxVarColor.uniDirRevColor = [0 255 255];
0055 end
0056 if isfield(options,'rxnDirMultiplier')
0057     options.rxnDirFlag = true;
0058 end
0059 if ~isfield(options,'rxnDirFlag')
0060     rxnDirFlag = false;
0061 else
0062     rxnDirFlag = options.rxnDirFlag;
0063 end
0064 
0065 
0066 %assign colors
0067 for i=1:length(model.rxns)
0068     if minFlux(i)*maxFlux(i)>=0 
0069         %unidirectional
0070         if model.rev(i) 
0071             %reversible
0072             if minFlux(i)<0 || maxFlux(i)<0
0073                 %reverse direction: Cyan 0 255 255
0074                 color(i,:) = options.fluxVarColor.uniDirRevColor;
0075             else
0076                 %forward direction: Magenta 255 0 255
0077                 color(i,:) = options.fluxVarColor.uniDirFwdColor;
0078             end
0079         else
0080             %irreversible: Blue 0 0 255
0081             color(i,:) = options.fluxVarColor.uniDirIrrColor;
0082         end    
0083     else
0084         %bidirectional: Green 0 255 0
0085         color(i,:) = options.fluxVarColor.biDirColor;        
0086     end
0087 end
0088 
0089 if rxnDirFlag
0090     options.rxnDir = zeros(length(map.rxnIndex),1);
0091     options.rxnDir(ismember(map.connectionAbb,model.rxns((maxFlux>0) & (minFlux>=0)))) = 1;
0092     options.rxnDir(ismember(map.connectionAbb,model.rxns((maxFlux<=0) & (minFlux<0)))) = -1;
0093 end
0094 
0095 options = setMapOptions(options,map,model,'edgeColor',color);
0096 drawCbMap(map,options);

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