0001 function options = drawConc(map,model,conc,options,varargin)
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030 if nargin<4, options=[]; end
0031
0032 if mod(length(varargin),2)==0
0033 for i=1:2:length(varargin)-1
0034 options = setMapOptions(options,map,model,varargin{i},varargin{i+1});
0035
0036
0037
0038
0039
0040
0041
0042 end
0043 else
0044 error('Invalid number of parameters/values');
0045 end
0046 if ~isfield(options,'colorScale')
0047 options.colorScale = cool(100);
0048 end
0049 metListZero = (abs(conc)<=1e-9);
0050 if ~isfield(options,'scaleType'), options.scaleType=1; end
0051 if ~isfield(options,'lb'), lb=[]; else lb = options.lb; end
0052 if ~isfield(options,'ub'), ub=[]; else ub = options.ub; end
0053 switch lower(options.scaleType)
0054 case {1,'linear'}
0055 options.scaleTypeLabel='Linear;';
0056 case {2,'log10'}
0057 conc = log10(abs(conc));
0058 metListZero = model.mets(isinf(conc));
0059 options.scaleTypeLabel='Log10;';
0060 otherwise
0061 error('Invalid scaleType input')
0062 end
0063 if ~isempty(ub)
0064 conc(conc>ub)=ub;
0065 options.overlayUB = [num2str(ub) '+'];
0066 concMax = ub;
0067 else
0068 options.overlayUB = num2str(max(conc));
0069 concMax = max(conc);
0070 end
0071 if ~isempty(lb)
0072 conc(conc<lb)=lb;
0073 if lb==0
0074 options.overlayLB = '0';
0075 else
0076 options.overlayLB = [num2str(lb) '-'];
0077 end
0078 concMin = lb;
0079 else
0080 concMin = min(conc(~isinf(conc)));
0081 options.overlayLB = num2str(concMin);
0082 end
0083 if find(options.colorScale>1)
0084 else
0085 options.colorScale = round(options.colorScale*255);
0086 end
0087 if max(conc)~=0
0088 conc = repmat(conc,1,3)/max(conc);
0089 else
0090 conc=repmat(conc,1,3);
0091 end
0092 color = getColorFromColorScale(conc,options.colorScale);
0093 if isfield('zeroConcColor',options)
0094 color(metListZero,:) = repmat(options.zeroConcColor,length(metListZero),1);
0095 end
0096 options = setMapOptions(options,map,model,'nodeColor',color);
0097 options.overlayType = 'Concentration';
0098 options.lb = concMin;
0099 options.ub = concMax;
0100 drawCbMap(map,options);