123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549 |
- %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
-
|