Files
hartman-server/qhtcp-workflow/apps/matlab/ezview/EZfigTrendOL.m

549 lines
23 KiB
Matlab
Executable File

%EZfigTrendOL.m called from EZviewGui.m LKrTog__ Callback
%Uses data stored from OLay ; Clearing OLay clears data used by this
%Trending Utility
global Exp
global userPars
%try
kfiltLim=userPars.kfiltLim;
%catch
%kfiltLim=str2double(userPars.BPdefault(6));
%end
if get(handles.CompositeTog1, 'Value')
cmpTogFlg=1;
else
cmpTogFlg=0;
end
DexpN=Exp(expN).DexpN;
if strcmp(Exp(expN).DexpType, 'chrono')
maxRows=1; Lmax=1; bpInd=0;
for n=1:length(Exp(expN).Dexp) %LOOP Thru DayExps
for trc=1:Exp(expN).traceN %length(Exp(expN).Trace)
try
if isequal(get(Exp(expN).hOL(trc),'Visible'),'on')
dmSel=Exp(expN).Trace(trc).dmSel;
if iscell(Exp(expN).Trace(trc).Dexp(n).DM(dmSel).UsrLvals)
rows=length(cell2mat(Exp(expN).Trace(trc).Dexp(n).DM(dmSel).UsrLvals));
else
rows=1;
end
if iscell(Exp(expN).Trace(trc).Dexp(n).DM(dmSel).UsrLvals)
if rows> maxRows, maxRows=rows; end
LsmpMax=max(cell2mat(Exp(expN).Trace(trc).Dexp(n).DM(dmSel).UsrLvals));
else
LsmpMax=max(Exp(expN).Trace(trc).Dexp(n).DM(dmSel).UsrLvals);
end
if LsmpMax> Lmax, Lmax=LsmpMax; end
bpInd=bpInd+1;
end % if isequal(get(Exp(1).hOL(trc),'Visible'),'on')
catch
end
end
end
maxCols=bpInd; % length(Exp(expN).Dexp) * length(Exp(expN).Trace)
BPvals(1:maxRows,1:maxCols)=nan; % BoxPlot requires a matrix with uniform length even if data is not of the same length
bpInd=0;
for n=1:length(Exp(expN).Dexp) %LOOP Thru DayExps
for trc=1:Exp(expN).traceN %length(Exp(expN).Trace)
try
if isequal(get(Exp(expN).hOL(trc),'Visible'),'on')
dmSel=Exp(expN).Trace(trc).dmSel;
bpInd=bpInd+1;
if iscell(Exp(expN).Trace(trc).Dexp(n).DM(dmSel).UsrLvals)
kFiltrIndx=find((cell2mat(Exp(expN).Trace(trc).Dexp(n).DM(dmSel).UsrKvals))<=kfiltLim);
tmp=cell2mat(Exp(expN).Trace(trc).Dexp(n).DM(dmSel).UsrLvals);
BPvals(1:length(kFiltrIndx),bpInd)=tmp(kFiltrIndx);
% BPvals(1:length(cell2mat(Exp(expN).Trace(trc).Dexp(n).DM(dmSel).UsrLvals)),bpInd)=cell2mat(Exp(expN).Trace(trc).Dexp(n).DM(dmSel).UsrLvals);
cnt=length(kFiltrIndx); %length(cell2mat(Exp(expN).Trace(trc).Dexp(n).DM(dmSel).UsrLvals));
else
if length(Exp(expN).Trace(trc).Dexp(n).DM(dmSel).UsrLvals)> 1 %>=1
kFiltrIndx=find(((Exp(expN).Trace(trc).Dexp(n).DM(dmSel).UsrKvals))<=kfiltLim);
tmp=Exp(expN).Trace(trc).Dexp(n).DM(dmSel).UsrLvals;
BPvals(1:length(kFiltrIndx),bpInd)=tmp(kFiltrIndx);
cnt=length(kFiltrIndx);
% BPvals(1:length((Exp(expN).Trace(trc).Dexp(n).DM(dmSel).UsrLvals)),bpInd)=Exp(expN).Trace(trc).Dexp(n).DM(dmSel).UsrLvals;
% cnt=length((Exp(expN).Trace(trc).Dexp(n).DM(dmSel).UsrLvals));
else
BPvals(1,bpInd)=Exp(expN).Trace(trc).Dexp(n).DM(dmSel).UsrLvals;
cnt=length(Exp(expN).Trace(trc).Dexp(n).DM(dmSel).UsrLvals);
end
end
% scnt(bpInd)=strcat('[',num2str(cnt),']');
scnt=strcat('[',num2str(cnt),']');
% Get Agar DrugMedia
drug=Exp(expN).Dexp(n).DM.drug{dmSel};
conc=Exp(expN).Dexp(n).DM.conc{dmSel};
media=Exp(expN).Dexp(n).DM.media{dmSel};
mod1=Exp(expN).Dexp(n).DM.mod1{dmSel}; if isnan(cell2mat(mod1)), mod1='';end
conc1=Exp(expN).Dexp(n).DM.conc1{dmSel}; if isnan(cell2mat(conc1)), conc1='';end
mod2=Exp(expN).Dexp(n).DM.mod2{dmSel}; if isnan(cell2mat(mod2)), mod2='';end
conc2=Exp(expN).Dexp(n).DM.conc2{dmSel}; if isnan(cell2mat(conc2)), conc2='';end
dmStr=strcat(drug,conc,'_',media,'_',mod1,conc1,mod2,conc2);
% Extract expDay from ExpName string
dayNpos=max(strfind(Exp(expN).Dexp(n).ExpFoldr, '_D'));
dayLbl=Exp(expN).Dexp(n).ExpFoldr(dayNpos+1:end);
label=strcat(dayLbl,'-', Exp(expN).Trace(trc).UsrGLB, dmStr,scnt); %scnt(bpInd));
tickLabelStr{bpInd}=label;
end
catch
end
end
end
else % if 'single' or 'multi' experiment setup for DM trends
maxRows=1; Lmax=1; bpInd=0;
% for n=1:length(Exp(expN).Dexp) % Loop Thru Multi Experiments
DexpN=Exp(expN).DexpN;
for dm=1:length(Exp(expN).Dexp(DexpN).DM.drug) % LOOP Thru DM perturbations
for trc=1:Exp(expN).traceN %length(Exp(expN).Trace)
% tempLB=Exp(expN).Trace(trc).UsrGLB;
try
if isequal(get(Exp(expN).hOL(trc),'Visible'),'on')
DexpN=Exp(expN).Trace(trc).DexpN;
if iscell(Exp(expN).Trace(trc).Dexp(DexpN).DM(dm).UsrLvals)
rows=length(cell2mat(Exp(expN).Trace(trc).Dexp(DexpN).DM(dm).UsrLvals));
else
rows=1;
end
if iscell(Exp(expN).Trace(trc).Dexp(DexpN).DM(dm).UsrLvals)
if rows> maxRows, maxRows=rows; end
LsmpMax=max(cell2mat(Exp(expN).Trace(trc).Dexp(DexpN).DM(dm).UsrLvals));
else
LsmpMax=max(Exp(expN).Trace(trc).Dexp(DexpN).DM(dm).UsrLvals);
end
if LsmpMax> Lmax, Lmax=LsmpMax; end
bpInd=bpInd+1;
end
catch
end
end
end
% end <- to stop here
maxCols=bpInd; % length(Exp(expN).Dexp) * length(Exp(expN).Trace)
BPvals(1:maxRows,1:maxCols)=nan; % BoxPlot requires a matrix with uniform length even if data is not of the same length
bpInd=0;
for dm=1:length(Exp(expN).Dexp(DexpN).DM.drug) %LOOP Thru DM perturbations
for trc=1:Exp(expN).traceN % length(Exp(expN).Trace)
try
if isequal(get(Exp(expN).hOL(trc),'Visible'),'on')
DexpN=Exp(expN).Trace(trc).DexpN;
bpInd=bpInd+1;
if iscell(Exp(expN).Trace(trc).Dexp(DexpN).DM(dm).UsrLvals)
kFiltrIndx=find((cell2mat(Exp(expN).Trace(trc).Dexp(DexpN).DM(dm).UsrKvals))<=kfiltLim);
tmp=cell2mat(Exp(expN).Trace(trc).Dexp(DexpN).DM(dm).UsrLvals);
BPvals(1:length(kFiltrIndx),bpInd)=tmp(kFiltrIndx);
cnt=length(kFiltrIndx);
%BPvals(1:length(cell2mat(Exp(expN).Trace(trc).Dexp(DexpN).DM(dm).UsrLvals)),bpInd)=cell2mat(Exp(expN).Trace(trc).Dexp(DexpN).DM(dm).UsrLvals);
%cnt=length(cell2mat(Exp(expN).Trace(trc).Dexp(DexpN).DM(dm).UsrLvals));
else
if length(Exp(expN).Trace(trc).Dexp(DexpN).DM(dm).UsrLvals)> 1
kFiltrIndx=find(((Exp(expN).Trace(trc).Dexp(DexpN).DM(dm).UsrKvals))<=kfiltLim);
tmp=Exp(expN).Trace(trc).Dexp(DexpN).DM(dm).UsrLvals;
BPvals(1:length(kFiltrIndx),bpInd)=tmp(kFiltrIndx);
cnt=length(kFiltrIndx);
else
BPvals(1,bpInd)=Exp(expN).Trace(trc).Dexp(DexpN).DM(dm).UsrLvals;
cnt=length(Exp(expN).Trace(trc).Dexp(DexpN).DM(dm).UsrLvals);
end
end
% scnt(bpInd)={strcat('[',num2str(cnt),']')};
scnt={strcat('[',num2str(cnt),']')};
% Get Agar DrugMedia
drug=Exp(expN).Dexp(DexpN).DM.drug{dm};
conc=Exp(expN).Dexp(DexpN).DM.conc{dm};
media=Exp(expN).Dexp(DexpN).DM.media{dm};
mod1=Exp(expN).Dexp(DexpN).DM.mod1{dm}; if isnan(cell2mat(mod1)), mod1='';end
conc1=Exp(expN).Dexp(DexpN).DM.conc1{dm}; if isnan(cell2mat(conc1)), conc1='';end
mod2=Exp(expN).Dexp(DexpN).DM.mod2{dm}; if isnan(cell2mat(mod2)), mod2='';end
conc2=Exp(expN).Dexp(DexpN).DM.conc2{dm}; if isnan(cell2mat(conc2)), conc2='';end
dmStr=strcat(drug,'_',conc,'_',media,'_',mod1,conc1,mod2,conc2);
% Extract expDay from ExpName string
dayNpos=max(strfind(Exp(expN).Dexp(DexpN).ExpFoldr, '_D'));
dayLbl=Exp(expN).Dexp(DexpN).ExpFoldr(dayNpos+1:end);
if ~isempty(dayLbl), dayLbl=strcat(dayLbl,'_'); end
label=strcat(dayLbl,Exp(expN).Trace(trc).UsrGLB, dmStr,scnt);
tickLabelStr{bpInd}=label;
end %if isequal(get(Exp(1).hOL(trc),'Visible'),'on')
catch
end
end
end
%{
if isequal(tempLB(4:6),'cmp')||isequal(tempLB(3:6),'cmpG'),
RFcmpFlg=1;
else
RFcmpFlg=0;
end
%}
end
% Box Plot Plotting section
if userPars.boxplotFlg==1
BPoutliers=userPars.BPoutliers;
BPnotch=userPars.BPnotch;
sh=userPars.BPlblShft;
fontSize=userPars.BPfontSz;
rotation=userPars.BProt;
% fontSize=8;
% tickLabelStr={'Label alpha','Label beta','Label chi','Label delta',...
%'Label epsilon','Label fish','Label gamma','Label hallo','Label ingo'}
% generate data
if size(BPvals,1)==1, BPvals(2,1:maxCols)=nan; end
final_res=BPvals; %10*randn(300,9)+10;
% group boxes
% sh=0.3; %sh is shift value
width=.5*sh;
% pos=[1+sh 2-sh 3+sh 4-sh 5+sh 6-sh 7+sh 8-sh 9+sh];
bpn=1;
if strcmp(Exp(expN).DexpType, 'chrono')
ticDim=length(Exp(expN).Dexp);
else
ticDim=length(Exp(expN).Dexp(DexpN).DM.drug);
end
for dim=1:ticDim % LOOP Thru DM perturbations
shn=0;
for trc=1:Exp(expN).traceN % length(Exp(expN).Trace)
if isequal(get(Exp(expN).hOL(trc),'Visible'),'on')
pos(bpn)=dim + (shn*sh);
shn=shn+1;
bpn=bpn+1;
end
end
end
wid=width * ones(1,length(pos));
% boxplot
figure
set(gcf,'OuterPosition',(get(0,'screensize')))
if strcmpi(BPnotch,'on')
boxplot(final_res, ...
'notch', 'on', ...
'positions', pos,...
'widths', wid)
elseif strcmpi(BPnotch,'off'),
boxplot(final_res, ...
'notch', 'off', ...
'positions', pos,...
'widths', wid)
end
% label, change fontsize
% y-axis
set(gca, 'FontSize', fontSize)
ylim([-.5 (Lmax+10)])
ylabel('L in Hours', 'FontSize', fontSize)
% x-labels
text_h=findobj(gca, 'Type', 'text');
% rotation=45;
for cnt=1:length(text_h)
set(text_h(cnt), ...
'FontSize', fontSize,...
'Rotation', rotation, ...
'String', tickLabelStr{length(tickLabelStr)-cnt+1}, ...
'HorizontalAlignment', 'right')
end
% 'VerticalAlignment', 'cap', ...
% Smaller box for axes, in order to un-hide the labels
squeeze=0.2;
left=0.02;
right=1;
bottom=squeeze;
top=1-squeeze;
set(gca, 'OuterPosition', [left bottom right top])
% Remove outliers
hout=findobj(gca,'tag','Outliers');
for out_cnt=1 : length(hout)
if strcmpi(BPoutliers,'on'),
set(hout(out_cnt), 'Visible', 'on')
elseif strcmpi(BPnotch,'off'),
set(hout(out_cnt), 'Visible', 'off')
end
end
end
% Plot Overlay Code
% Plot Overlay Of Trends For Chrono Or Drug-Media Permutations
try
lnwidth=str2num(Exp(4).plotPars{1});
axisFontSz=str2num(Exp(4).plotPars{2});
legFontSz=str2num(Exp(4).plotPars{3});
markerSz=str2num(Exp(4).plotPars{4});
catch
lnwidth=4;
axisFontSz=36;
legFontSz=10;
markerSz=5;
end
if userPars.boxplotFlg~=1 % PLOT OVERLAY OF TRENDS
figure
set(gcf,'OuterPosition',(get(0,'screensize')))
if strcmp(Exp(expN).DexpType, 'chrono') % Chrono
% Plot median values for each DAY of the selected Trace
% (Gene-Specifics)using single DM of trace
range=0;
for trc=1:Exp(expN).traceN % length(Exp(expN).Trace)
% trcInd=0;
scnt='['; % Init for Sample Count String
if isequal(get(Exp(expN).hOL(trc),'Visible'),'on')
for n=1:length(Exp(expN).Dexp) % LOOP Thru DayExps
tmp=[];
try
%if isequal(get(Exp(expN).hOL(trc),'Visible'),'on')
dmSel=Exp(expN).Trace(trc).dmSel;
if iscell(Exp(expN).Trace(trc).Dexp(n).DM(dmSel).UsrLvals)
kFiltrIndx=find((cell2mat(Exp(expN).Trace(trc).Dexp(n).DM(dmSel).UsrKvals))<=kfiltLim);
tmp=cell2mat(Exp(expN).Trace(trc).Dexp(n).DM(dmSel).UsrLvals);
dayMed(trc,n)=median(tmp(kFiltrIndx)); % median(cell2mat(Exp(expN).Trace(trc).Dexp(n).DM(dmSel).UsrLvals));
dayStd(trc,n)=std(tmp(kFiltrIndx)); % std(cell2mat(Exp(expN).Trace(trc).Dexp(n).DM(dmSel).UsrLvals));
cnt=length(kFiltrIndx); % length(cell2mat(Exp(expN).Trace(trc).Dexp(n).DM(dmSel).UsrLvals));
else
kFiltrIndx=find(((Exp(expN).Trace(trc).Dexp(n).DM(dmSel).UsrKvals))<=kfiltLim);
tmp=(Exp(expN).Trace(trc).Dexp(n).DM(dmSel).UsrLvals);
dayMed(trc,n)=median(tmp(kFiltrIndx)); %median(Exp(expN).Trace(trc).Dexp(n).DM(dmSel).UsrLvals);
dayStd(trc,n)=std(tmp(kFiltrIndx)); %std(Exp(expN).Trace(trc).Dexp(n).DM(dmSel).UsrLvals);
cnt=length(kFiltrIndx); %length(Exp(expN).Trace(trc).Dexp(n).DM(dmSel).UsrLvals);
end
% Make LEGEND list
% Make Sample Count Label item;
if n~=length(Exp(expN).Dexp)
scnt=strcat(scnt,num2str(cnt),',');
else
scnt=strcat(scnt,num2str(cnt),']');
end
%Get Agar DrugMedia;
dm=Exp(expN).Trace(trc).dmSel;
drug=Exp(expN).Dexp(n).DM.drug{dm};
conc=Exp(expN).Dexp(n).DM.conc{dm};
media=Exp(expN).Dexp(n).DM.media{dm};
mod1=Exp(expN).Dexp(n).DM.mod1{dm};
conc1=Exp(expN).Dexp(n).DM.conc1{dm};
mod2=Exp(expN).Dexp(n).DM.mod2{dm};
conc2=Exp(expN).Dexp(n).DM.conc2{dm};
dmStr=strcat(drug,'_',conc,'_',media,'_',mod1,conc1,mod2,conc2);
NmLst(trc)=strcat(Exp(expN).Trace(trc).UsrGLB, dmStr,scnt);
%Determine Actual Exp Day from the ExpDay folder
loc=strfind(Exp(expN).Dexp(n).ExpFoldr,'_D');
daystr=Exp(expN).Dexp(n).ExpFoldr((loc+2):end);
dayNums(n)=str2num(daystr);
%trcInd=trcInd+1;
catch
end
try
upperStd(trc,n)=dayMed(trc,n) + dayStd(trc,n);
lowerStd(trc,n)=dayMed(trc,n) - dayStd(trc,n);
catch
end
end
% end
% Plot Trend Data
% if isequal(get(Exp(expN).hOL(trc),'Visible'),'on')
try
if iscell(Exp(expN).Trace(trc).Dexp(n).DM(dmSel).UsrLvals)
hTrendFig=plot(dayNums,dayMed(trc,1:n),'lineWidth',2); hold on
linecolor(trc)={get(hTrendFig,'color')};
else
clear NmLstStr
if iscell(NmLst(trc)),NmLstStr=cell2mat(NmLst(trc)); else NmLstStr=NmLstStr(trc); end
if isequal(NmLstStr(4:6),'cmp') ||
|| isequal(NmLstStr(3:6),'cmpG') ...
|| isequal(NmLstStr(3:6),'cmpP')
hTrendFig=plot(dayNums,dayMed(trc,1:n),'lineWidth',2); hold on
linecolor(trc)={get(hTrendFig,'color')};
else
hTrendFig=plot(dayNums,dayMed(trc,1:n),'marker','^','lineWidth',2); hold on
linecolor(trc)={get(hTrendFig,'color')};
end
% yTicks=get(gca,'yTickLabel'); Ydelta=max(max(yTicks))-min(min(yTicks));
% spacing=Ydelta* 0.0034; %line spacing for STD marker
end
catch
hTrendFig=plot(1:n,dayMed(trc,1:n),'lineWidth',2); hold on
linecolor(trc)={get(hTrendFig,'color')};
ylabel('Experiment Day Index')
end
end
grid on
% set(gca,'linewidth',4) %0.5 then 1.5 now 6
% set(gca,'fontsize',axisFontSz) % 8 to 15 to 21
hold all
try % if isequal(get(Exp(expN).hOL(trc),'Visible'),'on')
tmpRange=ceil(max(upperStd(trc,1:end))) - floor(min(lowerStd(trc,1:end)));
range=max(range,tmpRange);
catch, end
end
% Standard Deviation range bars
% range=ceil(max(upperStd(trc,1:end))) - floor(min(lowerStd(trc,1:end)));
spacing=range*0.0034; %marker splacing for building range bars
for trc=1:Exp(expN).traceN %length(Exp(expN).Trace)
if isequal(get(Exp(expN).hOL(trc),'Visible'),'on')
for n=1:length(Exp(expN).Dexp) %LOOP Thru DayExps
if isequal(get(Exp(expN).hOL(trc),'Visible'),'on')
try
line(dayNums(n),lowerStd(trc,n):spacing:(dayMed(trc,n)-.05),'marker','^','LineWidth',1,'markerEdgeColor',cell2mat(linecolor(trc))); hold on
line(dayNums(n),(dayMed(trc,n)+0.05):spacing:upperStd(trc,n),'marker','v','LineWidth',1,'markerEdgeColor',cell2mat(linecolor(trc))); hold on
catch
% line(n,lowerStd(trc,n):0.05:(dayMed(trc,n)-.1),'marker','^','LineWidth',1,'markerEdgeColor',cell2mat(linecolor(trc))); hold on
% line(n,(dayMed(trc,n)+0.1):0.05:upperStd(trc,n),'marker','v','LineWidth',1,'markerEdgeColor',cell2mat(linecolor(trc))); hold on
end
end
end
end
end
% legName=strrep(NmLst,'_','-');
mm=1;
for nn=1:length(NmLst)
if iscellstr(NmLst(nn))
legName(mm)=strrep(NmLst(nn),'_','-');
mm=mm+1;
end
end
legName=strrep(legName,'/','-');
hleg=legend((legName),'location','NEO');
set(hleg,'fontsize',legFontSz)
end
xlabel('Days')
ylabel('L in Hours')
title('Chronological Trend Plot with Standard Deviations')
hold off
% Single or Multi Experiment
if ~strcmp(Exp(expN).DexpType, 'chrono') %Single or Multi-Experiment
% Plot median values for each DM of the selected Trace (Gene-DM)
% (Gene-Specifics)using single DAY of trace
for trc=1:Exp(expN).traceN %length(Exp(expN).Trace)
trcInd=0;
DexpN=Exp(expN).Trace(trc).DexpN;
expFolder=Exp(expN).Dexp(DexpN).ExpFoldr;
if ispc
lastSlash=max(strfind(Exp(expN).Dexp(DexpN).ExpFoldr, '\'));
else
lastSlash=max(strfind(Exp(expN).Dexp(DexpN).ExpFoldr, '/'));
end
expName=expFolder(lastSlash+1:end);
if length(expName)>18
expNm=strcat('-',expName(1:18));
else
expNm=strcat('-',expName);
end
scnt='['; %Init for Sample Count String
for n=1:length(Exp(expN).Dexp(DexpN).DM.drug) %LOOP Thru Drug-Media perturbations
tmp=[];
if isequal(get(Exp(expN).hOL(trc),'Visible'),'on')
if iscell(Exp(expN).Trace(trc).Dexp(DexpN).DM(n).UsrLvals)
kFiltrIndx=find((cell2mat(Exp(expN).Trace(trc).Dexp(DexpN).DM(n).UsrKvals))<=kfiltLim);
tmp=(cell2mat(Exp(expN).Trace(trc).Dexp(DexpN).DM(n).UsrLvals));
dmMed(trc,n)=median(tmp(kFiltrIndx)); %median(cell2mat(Exp(expN).Trace(trc).Dexp(DexpN).DM(n).UsrLvals));
dmStd(trc,n)=std(tmp(kFiltrIndx)); %std(cell2mat(Exp(expN).Trace(trc).Dexp(DexpN).DM(n).UsrLvals));
cnt=length(kFiltrIndx); %length(cell2mat(Exp(expN).Trace(trc).Dexp(DexpN).DM(n).UsrLvals));
else
kFiltrIndx=find(((Exp(expN).Trace(trc).Dexp(DexpN).DM(n).UsrKvals))<=kfiltLim);
tmp=((Exp(expN).Trace(trc).Dexp(DexpN).DM(n).UsrLvals));
dmMed(trc,n)=median(tmp(kFiltrIndx)); %median(Exp(expN).Trace(trc).Dexp(DexpN).DM(n).UsrLvals);
dmStd(trc,n)=std(tmp(kFiltrIndx)); %std(Exp(expN).Trace(trc).Dexp(DexpN).DM(n).UsrLvals);
cnt=length(kFiltrIndx); %length(Exp(expN).Trace(trc).Dexp(DexpN).DM(n).UsrLvals);
end
% Make Legend list
% Make Sample Count Label item
if n~=length(Exp(expN).Dexp(DexpN).DM.drug)
scnt=strcat(scnt,num2str(cnt),',');
else
scnt=strcat(scnt,num2str(cnt),']');
end
% Get Agar DrugMedia
drug=Exp(expN).Dexp(DexpN).DM.drug{n};
conc=Exp(expN).Dexp(DexpN).DM.conc{n};
media=Exp(expN).Dexp(DexpN).DM.media{n};
mod1=Exp(expN).Dexp(DexpN).DM.mod1{n};
conc1=Exp(expN).Dexp(DexpN).DM.conc1{n};
mod2=Exp(expN).Dexp(DexpN).DM.mod2{n};
conc2=Exp(expN).Dexp(DexpN).DM.conc2{n};
dmStr=strcat(drug,'_',conc,'_',media,'_',mod1,conc1,mod2,conc2);
NmLst(trc)=strcat(Exp(expN).Trace(trc).UsrGLB, expNm,scnt);
trcInd=trcInd+1;
upperStd(trc,n)=dmMed(trc,n) + dmStd(trc,n);
lowerStd(trc,n)=dmMed(trc,n) - dmStd(trc,n);
end
end
% Plot Trend Data
if isequal(get(Exp(expN).hOL(trc),'Visible'),'on')
if iscell(Exp(expN).Trace(trc).Dexp(DexpN).DM(n).UsrLvals)
hTrendFig=plot(1:n,dmMed(trc,1:n),'lineWidth',2); hold on
linecolor(trc)={get(hTrendFig,'color')};
else
clear NmLstStr
if iscell(NmLst(trc)),NmLstStr=cell2mat(NmLst(trc)); else NmLstStr=NmLst(trc); end
if isequal(NmLstStr(4:6),'cmp'), ...
|| isequal(NmLstStr(3:6),'cmpG'), ...
|| isequal(NmLstStr(3:6),'cmpP')
hTrendFig=plot(1:n,dmMed(trc,1:n),'lineWidth',2); hold on
linecolor(trc)={get(hTrendFig,'color')};
else
hTrendFig=plot(1:n,dmMed(trc,1:n),'marker','^','lineWidth',2); hold on
linecolor(trc)={get(hTrendFig,'color')};
end
end
% yTicks=get(gca,'yTickLabel'); Ydelta=max(max(yTicks))-min(min(yTicks));
% spacing=Ydelta* 0.0034; %line spacing for STD marker
end
grid on
% set(gca,'linewidth',4) %0.5 then 1.5 now 6
% set(gca,'fontsize',axisFontSz) % 8 to 15 to 21
hold all
end
% Standard Deviation range bars
% range=ceil(max(max(upperStd))) - floor(min(min(lowerStd)));
range=ceil(max(upperStd(trc,1:end))) - floor(min(lowerStd(trc,1:end)));
spacing=range*0.0034;
for trc=1:Exp(expN).traceN %length(Exp(expN).Trace)
for n=1:length(Exp(expN).Dexp(DexpN).DM.drug) %LOOP Thru Drug-Media perturbations
if isequal(get(Exp(expN).hOL(trc),'Visible'),'on')
try
line(n,lowerStd(trc,n):spacing:(dmMed(trc,n)-.05),'marker','^','LineWidth',1,'markerEdgeColor',cell2mat(linecolor(trc))); hold on
line(n,(dmMed(trc,n)+0.05):spacing:upperStd(trc,n),'marker','v','LineWidth',1,'markerEdgeColor',cell2mat(linecolor(trc))); hold on
catch
end
end
end
end
mm=1;
for nn=1:length(NmLst)
if iscellstr(NmLst(nn))
legName(mm)=strrep(NmLst(nn),'_','-');
mm=mm+1;
end
end
legName=strrep(legName,'/','-');
hleg=legend((legName),'location','NEO');
set(hleg,'fontsize',legFontSz)
xlabel('Drug-Media Index')
ylabel('L in Hours')
title('Drug-Media Trend Plot with Standard Deviations')
hold off
end
hold off
end %if userPars.boxplotFlg~=1 %PLOT OVERLAY OF TRENDS 266