Squashed initial commit
This commit is contained in:
23
qhtcp-workflow/apps/matlab/ezview/Axes2FigPrint.m
Executable file
23
qhtcp-workflow/apps/matlab/ezview/Axes2FigPrint.m
Executable file
@@ -0,0 +1,23 @@
|
||||
close all
|
||||
figure('units','pix','pos',[200 200 850 750])
|
||||
ax=axes;
|
||||
plot((1:10).^2)
|
||||
set(ax,'units','pix')
|
||||
legend('x^2')
|
||||
xlabel('X Label','fontsize',12)
|
||||
ylabel('Y Label','fontsize',12)
|
||||
title('Title','fontsize',24)
|
||||
drawnow
|
||||
|
||||
% Now capture the axes and labels.
|
||||
P=get(ax,'pos');
|
||||
T=get(ax,'tightinset');
|
||||
h=[P(1)-T(1)-5 P(2)-T(2)-5 P(3)+P(1)/2+T(3)+15 P(4)+P(2)/2+T(4)+10];
|
||||
F=getframe(gcf,h);
|
||||
[X,Map]=frame2im(F);
|
||||
% I put the funny background color so the captured area stands out.
|
||||
figure('color',[.6 .2 .2],'units','pix','pos',[26 33 1184 925])
|
||||
image(X)
|
||||
set(gca,'visible','off')
|
||||
axis normal
|
||||
imwrite(X,'myimage.jpg') % save the image
|
||||
133
qhtcp-workflow/apps/matlab/ezview/EZRFs4DayComp.m
Executable file
133
qhtcp-workflow/apps/matlab/ezview/EZRFs4DayComp.m
Executable file
@@ -0,0 +1,133 @@
|
||||
% EZRFs4DayComp Called by EZmDayComp.m
|
||||
% For this multiDay Exp series the actual perturbation being studied is
|
||||
% Aging as related in the time series experiment i.e.,(nn) or DexpN
|
||||
% That is holding the DrugMedia pert constant(at the DM slider number) and plotting
|
||||
RFconfig=Exp(zoneSel).Dexp(DexpN).RFconfig;
|
||||
RFsel=Exp(zoneSel).htmapRFanswer;
|
||||
j=pertSel; m=MPsel;
|
||||
if RFconfig==1
|
||||
try
|
||||
RF1mdIndx(nn)=Exp(zoneSel).Dexp(nn).RFmd1indx(pertSel);
|
||||
RF1mdPltN(nn)=Exp(zoneSel).Dexp(nn).RFmd1pltN; %This is the MP number for RF1
|
||||
RFmdVal(nn)=Exp(zoneSel).Dexp(nn).RFmd1val(pertSel);
|
||||
catch, end
|
||||
try
|
||||
RF2mdIndx(nn)=Exp(zoneSel).Dexp(nn).RFmd2indx(pertSel);
|
||||
RF2mdPltN(nn)=Exp(zoneSel).Dexp(nn).RFmd2pltN;
|
||||
% special case for 'RFmd2val' See Calc. at EZmDayComp ~ln139
|
||||
catch, end
|
||||
try Rn(nn)=Exp(expN).Dexp(nn).RFmean(pertSel); catch, Rn(nn)=0; end
|
||||
try Rs(nn)=Exp(expN).Dexp(nn).RFstd(pertSel); catch, Rs(nn)=0; end
|
||||
end
|
||||
if RFconfig==2
|
||||
ctrlRF=RFsel{1};
|
||||
j=pertSel; m=MPsel;
|
||||
switch ctrlRF
|
||||
case {'G','g'}
|
||||
% Set to (nn) day as these median values are being plotted directly
|
||||
RFmdIndx(nn)=Exp(zoneSel).Dexp(nn).RFmdGindx(pertSel);
|
||||
RFmdPltN(nn)=Exp(zoneSel).Dexp(nn).RFmdGpltN(pertSel); %G could have a different MP for each DM;At any rate it is stored for each DM regardless.
|
||||
RFmdVal(nn)=Exp(zoneSel).Dexp(nn).RFmedianG(pertSel);
|
||||
% Set mean values to Day 1 as these are used in Interaction Calc.
|
||||
% as the first reference ctrlRF 'Aging Perturbation'
|
||||
Rn(nn)=Exp(expN).Dexp(nn).RFmeanG(pertSel);
|
||||
Rs(nn)=Exp(expN).Dexp(nn).RFstdG(pertSel);
|
||||
case {'L','l'}
|
||||
% Set to (nn) day as these median values are being plotted directly
|
||||
RFmdVal(nn)=Exp(zoneSel).Dexp(nn).RFmedianP(pertSel);
|
||||
% Set mean values to Day 1 as these are used in Interaction Calc.
|
||||
% as the first reference ctrlRF 'Aging Perturbation'
|
||||
if Exp(expN).Dexp(nn).meanP(j,m)~=0
|
||||
Rn(nn)=Exp(expN).Dexp(nn).meanP(j,m);
|
||||
Rs(nn)=Exp(expN).Dexp(nn).stdP(j,m);
|
||||
elseif Exp(expN).Dexp(nn).meanP(j,m)==0||isempty(Exp(expN).Dexp(nn).meanP(j,m)) ...
|
||||
&& strcmpi(ctrlRF,'G')
|
||||
Rn(nn)=Exp(expN).Dexp(nn).RFmeanG(pertSel);
|
||||
Rs(nn)=Exp(expN).Dexp(nn).RFstdG(pertSel);
|
||||
end
|
||||
end
|
||||
pertRF=RFsel{2}; % These results are only used for N2 future Interaction Calc.
|
||||
% nn is ordered number of the selected chronological day Experiment
|
||||
% In the chronological study, Age (day sequence results) is the
|
||||
% 'Perturbation' of interest instead of DrugMedia concentration.
|
||||
switch pertRF
|
||||
case {'G','g'}
|
||||
Rn(nn)=Exp(expN).Dexp(nn).RFmeanG(pertSel);
|
||||
Rs(nn)=Exp(expN).Dexp(nn).RFstdG(pertSel);
|
||||
case {'L','l'}
|
||||
j=pertSel; m=MPsel;
|
||||
if Exp(expN).Dexp(nn).meanP(j,m)~=0
|
||||
Rn(nn)=Exp(expN).Dexp(nn).meanP(j,m);
|
||||
Rs(nn)=Exp(expN).Dexp(nn).stdP(j,m);
|
||||
elseif Exp(expN).Dexp(nn).meanP(j,m)==0||isempty(Exp(expN).Dexp(nn).meanP(j,m)) ...
|
||||
&& strcmpi(ctrlRF,'G')
|
||||
Rn(nn)=Exp(expN).Dexp(nn).RFmeanG(j);
|
||||
Rs(nn)=Exp(expN).Dexp(nn).RFstdG(j);
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
if RFconfig==3
|
||||
j=pertSel; m=MPsel;
|
||||
ctrlRF=RFsel{1};
|
||||
|
||||
switch ctrlRF
|
||||
case {'F','f'}
|
||||
try
|
||||
RF1mdIndx(nn)=Exp(zoneSel).Dexp(nn).RFmd1indx(pertSel);
|
||||
RF1mdPltN(nn)=Exp(zoneSel).Dexp(nn).RFmd1pltN;
|
||||
RFmdVal(nn)=Exp(zoneSel).Dexp(nn).RFmd1val(pertSel);
|
||||
catch, end
|
||||
try
|
||||
RF2mdIndx(nn)=Exp(zoneSel).Dexp(nn).RFmd2indx(pertSel);
|
||||
RF2mdPltN(nn)=Exp(zoneSel).Dexp(nn).RFmd2pltN(pertSel);
|
||||
%special case for 'RFmd2val' See Calc. at EZmDayComp ~ln139
|
||||
catch, end
|
||||
try Rn(nn)=Exp(expN).Dexp(nn).RFmean; catch, Rn(nn)=0; end
|
||||
try Rs(nn)=Exp(expN).Dexp(nn).RFstd; catch, Rs(nn)=0; end
|
||||
Rn(nn)=Exp(expN).Dexp(nn).RFmean(nn);
|
||||
Rs(nn)=Exp(expN).Dexp(nn).RFstd(nn);
|
||||
case {'G','g'}
|
||||
Rn(nn)=Exp(expN).Dexp(nn).RFmeanG(nn);
|
||||
Rs(nn)=Exp(expN).Dexp(nn).RFstdG(nn);
|
||||
case {'L','l'}
|
||||
Rn(nn)=Exp(expN).Dexp(nn).meanP(j,m);
|
||||
Rs(nn)=Exp(expN).Dexp(nn).stdP(j,m);
|
||||
if Exp(expN).Dexp(nn).meanP(j,m)~=0
|
||||
Rn(nn)=Exp(expN).Dexp(nn).meanP(j,m);
|
||||
Rs(nn)=Exp(expN).Dexp(nn).stdP(j,m);
|
||||
elseif Exp(expN).Dexp(nn).meanP(j,m)==0 && strcmpi(ctrlRF,'G')
|
||||
Rn(nn)=Exp(expN).Dexp(nn).RFmeanG(j);
|
||||
Rs(nn)=Exp(expN).Dexp(nn).RFstdG(j);
|
||||
elseif Exp(expN).Dexp(nn).meanP(j,m)==0 && strcmpi(ctrlRF,'F')
|
||||
Rn(nn)=Exp(expN).Dexp(nn).RFmean(j);
|
||||
Rs(nn)=Exp(expN).Dexp(nn).RFstd(j);
|
||||
elseif Exp(expN).Dexp(nn).meanP(1,m)==0 && strcmpi(ctrlRF,'L')
|
||||
Rn(nn)=Exp(expN).Dexp(nn).RFmeanG(1);
|
||||
Rs(nn)=Exp(expN).Dexp(nn).RFstdG(1);
|
||||
end
|
||||
end
|
||||
pertRF=RFsel{2};
|
||||
switch pertRF
|
||||
case {'F','f'}
|
||||
Rn(nn)=Exp(expN).Dexp(nn).RFmean(pertSel);
|
||||
Rs(nn)=Exp(expN).Dexp(nn).RFstd(pertSel);
|
||||
case {'G','g'}
|
||||
Rn(nn)=Exp(expN).Dexp(nn).RFmeanG(pertSel);
|
||||
Rs(nn)=Exp(expN).Dexp(nn).RFstdG(pertSel);
|
||||
case {'L','l'}
|
||||
if Exp(expN).Dexp(nn).meanP(j,m)~=0,
|
||||
Rn(nn)=Exp(expN).Dexp(nn).meanP(j,m);
|
||||
Rs(nn)=Exp(expN).Dexp(nn).stdP(j,m);
|
||||
elseif Exp(expN).Dexp(nn).meanP(j,m)==0 && strcmpi(ctrlRF,'G')
|
||||
Rn(nn)=Exp(expN).Dexp(nn).RFmeanG(j);
|
||||
Rs(nn)=Exp(expN).Dexp(nn).RFstdG(j);
|
||||
elseif Exp(expN).Dexp(nn).meanP(j,m)==0 && strcmpi(ctrlRF,'F')
|
||||
Rn(nn)=Exp(expN).Dexp(nn).RFmean(j);
|
||||
Rs(nn)=Exp(expN).Dexp(nn).RFstd(j);
|
||||
elseif Exp(expN).Dexp(nn).meanP(j,m)==0 && strcmpi(ctrlRF,'L')
|
||||
Rn(nn)=Exp(expN).Dexp(nn).RFmeanG(j);
|
||||
Rs(nn)=Exp(expN).Dexp(nn).RFstdG(j);
|
||||
end
|
||||
end
|
||||
end
|
||||
227
qhtcp-workflow/apps/matlab/ezview/EZVimDisplay.m
Executable file
227
qhtcp-workflow/apps/matlab/ezview/EZVimDisplay.m
Executable file
@@ -0,0 +1,227 @@
|
||||
% ImageDisplay
|
||||
global Exp
|
||||
global ghandles
|
||||
global zonePB
|
||||
|
||||
prntHt=0;
|
||||
% Test for Bad MP cell array (usually 384 [NaN}'s)
|
||||
% replaced length(Exp(expN).Dexp(1).MP) with MPnum
|
||||
for mx=1:length(Exp(expN).Dexp(1).MP)
|
||||
try
|
||||
char((Exp(expN).Dexp(1).MP(mx).genename{1}(384)))
|
||||
MPnum=mx;
|
||||
catch
|
||||
break
|
||||
end
|
||||
end
|
||||
|
||||
if expN==1,DexpN=(get(handles.DN1,'value')); end
|
||||
if expN==2,DexpN=(get(handles.DN2,'value')); end
|
||||
if expN==3,DexpN=(get(handles.DN3,'value')); end
|
||||
Exp(expN).DexpN=DexpN;
|
||||
if strcmp(Exp(expN).DexpType,'single')
|
||||
DexpN=1;
|
||||
elseif ~strcmp(Exp(expN).DexpType,'single')
|
||||
if expN==1
|
||||
set(handles.MPsldr1,'min',1,'max',MPnum)
|
||||
DMnum=length(Exp(expN).Dexp(DexpN).DM.drug);
|
||||
set(handles.DMsldr1,'min',1,'max',DMnum)
|
||||
tPtsSize=size(Exp(expN).Dexp(DexpN).FexpScanBMtp{1,1},(3));
|
||||
set(handles.Tptsldr1,'min',1,'max',tPtsSize)
|
||||
end
|
||||
if expN==2
|
||||
set(handles.MPsldr2,'min',1,'max',MPnum)
|
||||
DMnum=length(Exp(expN).Dexp(DexpN).DM.drug);
|
||||
set(handles.DMsldr2,'min',1,'max',DMnum)
|
||||
tPtsSize=size(Exp(expN).Dexp(DexpN).FexpScanBMtp{1,1},(3));
|
||||
set(handles.Tptsldr2,'min',1,'max',tPtsSize)
|
||||
end
|
||||
if expN==3
|
||||
set(handles.MPsldr3,'min',1,'max',MPnum)
|
||||
DMnum=length(Exp(expN).Dexp(DexpN).DM.drug);
|
||||
set(handles.DMsldr3,'min',1,'max',DMnum)
|
||||
tPtsSize=size(Exp(expN).Dexp(DexpN).FexpScanBMtp{1,1},(3));
|
||||
set(handles.Tptsldr3,'min',1,'max',tPtsSize)
|
||||
end
|
||||
end
|
||||
|
||||
ghandles=handles;
|
||||
scan=Exp(expN).Dexp(DexpN).scan;
|
||||
destPerMP=length(Exp(expN).Dexp(DexpN).DM.drug);
|
||||
|
||||
if expN==1,MPsel=floor(get(handles.MPsldr1,'value')); end
|
||||
if expN==2,MPsel=floor(get(handles.MPsldr2,'value')); end
|
||||
if expN==3,MPsel=floor(get(handles.MPsldr3,'value')); end
|
||||
if expN==1,pertSel=floor(get(handles.DMsldr1,'value')); end
|
||||
if expN==2,pertSel=floor(get(handles.DMsldr2,'value')); end
|
||||
if expN==3,pertSel=floor(get(handles.DMsldr3,'value')); end
|
||||
if expN==1,tPtSel=floor(get(handles.Tptsldr1,'value')); end
|
||||
if expN==2,tPtSel=floor(get(handles.Tptsldr2,'value')); end
|
||||
if expN==3,tPtSel=floor(get(handles.Tptsldr3,'value')); end
|
||||
plateNum=(MPsel-1)*destPerMP + pertSel;
|
||||
tPtsSize=[];
|
||||
tPtsSize=length(Exp(expN).Dexp(DexpN).scan(plateNum).plate(1).tSeries(:))
|
||||
n=1;
|
||||
for ii=1:tPtsSize
|
||||
if exist(fullfile(Exp(expN).Dexp(DexpN).ExpFoldr,num2str(plateNum),strcat((num2str(ii)),'.bmp'))) ==2; %the .bmp file exists
|
||||
bmpLst(n)=ii
|
||||
n=n+1
|
||||
end
|
||||
end
|
||||
|
||||
if tPtSel> tPtsSize
|
||||
tPtSel=tPtsSize
|
||||
end
|
||||
|
||||
if exist(fullfile(Exp(expN).Dexp(DexpN).ExpFoldr,num2str(plateNum),strcat((num2str(tPtSel)),'.bmp'))) ==0; %the .bmp file exists
|
||||
tPtSel=bmpLst(find(bmpLst>tPtSel,1,'first'))
|
||||
end
|
||||
|
||||
if expN==1,
|
||||
set(handles.Tptsldr1,'max',tPtsSize);
|
||||
set(ghandles.Tptsldr1,'max',tPtsSize);
|
||||
set(handles.Tpted1,'string', num2str(tPtSel));
|
||||
set(ghandles.Tpted1,'string', num2str(tPtSel));
|
||||
if tPtsSize<=tPtSel,
|
||||
set(handles.Tptsldr1,'value', tPtsSize)
|
||||
set(ghandles.Tptsldr1,'value', tPtsSize)
|
||||
tPtSel=tPtsSize
|
||||
set(handles.Tpted1,'string', num2str(tPtsSize))
|
||||
set(ghandles.Tpted1,'string', num2str(tPtsSize))
|
||||
end
|
||||
end
|
||||
if expN==2
|
||||
set(handles.Tptsldr2,'max',tPtsSize);
|
||||
set(ghandles.Tptsldr2,'max',tPtsSize);
|
||||
set(handles.Tpted2,'string', num2str(tPtSel));
|
||||
set(ghandles.Tpted2,'string', num2str(tPtSel));
|
||||
if tPtsSize<=tPtSel,
|
||||
set(handles.Tptsldr2,'value', tPtsSize)
|
||||
set(ghandles.Tptsldr2,'value', tPtsSize)
|
||||
tPtSel=tPtsSize
|
||||
set(handles.Tpted2,'string', num2str(tPtsSize))
|
||||
set(ghandles.Tpted2,'string', num2str(tPtsSize))
|
||||
end
|
||||
end
|
||||
if expN==3
|
||||
set(handles.Tptsldr3,'max',tPtsSize);
|
||||
set(ghandles.Tptsldr3,'max',tPtsSize);
|
||||
set(handles.Tpted3,'string', num2str(tPtSel));
|
||||
set(ghandles.Tpted3,'string', num2str(tPtSel));
|
||||
if tPtsSize<=tPtSel,
|
||||
set(handles.Tptsldr3,'value', tPtsSize)
|
||||
set(ghandles.Tptsldr3,'value', tPtsSize)
|
||||
tPtSel=tPtsSize
|
||||
set(handles.Tpted3,'string', num2str(tPtsSize))
|
||||
set(ghandles.Tpted3,'string', num2str(tPtsSize))
|
||||
end
|
||||
end
|
||||
|
||||
Exp(expN).Dexp(DexpN).MPsel=MPsel;
|
||||
Exp(expN).Dexp(DexpN).destPerMP=destPerMP;
|
||||
Exp(expN).Dexp(DexpN).pertSel=pertSel;
|
||||
Exp(expN).Dexp(DexpN).tPtSel=tPtSel;
|
||||
Exp(expN).Dexp(DexpN).plateNum=plateNum;
|
||||
%try
|
||||
I=imread(fullfile(Exp(expN).Dexp(DexpN).ExpFoldr,num2str(plateNum),strcat(num2str(tPtSel),'.bmp')));
|
||||
|
||||
%set(ghandles.Iaxes1,'CurrentAxes')
|
||||
if expN==1, expAxes=ghandles.Iaxes1;end
|
||||
if expN==2, expAxes=ghandles.Iaxes2;end
|
||||
if expN==3, expAxes=ghandles.Iaxes3;end
|
||||
|
||||
axes(expAxes)
|
||||
imshow(I)
|
||||
set(expAxes,'xtick',[],'ytick',[])
|
||||
|
||||
DMstr=char(strcat('Agar-',Exp(expN).Dexp(DexpN).DM.media{pertSel},' ', ...
|
||||
Exp(expN).Dexp(DexpN).DM.drug{pertSel},Exp(expN).Dexp(DexpN).DM.conc{pertSel},' ', ...
|
||||
Exp(expN).Dexp(DexpN).DM.mod1{pertSel},Exp(expN).Dexp(DexpN).DM.conc1{pertSel},' ', ...
|
||||
Exp(expN).Dexp(DexpN).DM.mod2{pertSel},Exp(expN).Dexp(DexpN).DM.conc2{pertSel}))
|
||||
|
||||
if expN==1,set(handles.DM1,'string',DMstr); end
|
||||
if expN==2,set(handles.DM2,'string',DMstr); end
|
||||
if expN==3,set(handles.DM3,'string',DMstr); end
|
||||
|
||||
tPtStr=strcat('T=', num2str(scan(1,plateNum).plate(1).t0Series(tPtSel)));
|
||||
if expN==1,set(handles.tptTm1,'string',tPtStr); end
|
||||
if expN==2,set(handles.tptTm2,'string',tPtStr); end
|
||||
if expN==3,set(handles.tptTm3,'string',tPtStr); end
|
||||
|
||||
xp=char(Exp(expN).Dexp(DexpN).resDir);
|
||||
if ispc
|
||||
slashPos=strfind(char(Exp(expN).Dexp(DexpN).resDir),'\');
|
||||
else
|
||||
slashPos=strfind(char(Exp(expN).Dexp(DexpN).resDir),'/');
|
||||
end
|
||||
|
||||
startPos=slashPos(length(slashPos)-2) +1;
|
||||
endPos=(slashPos(length(slashPos)) -1);
|
||||
expStrg=xp(startPos:end);
|
||||
|
||||
if expN==1,set(handles.expName1,'string',expStrg); end
|
||||
if expN==2,set(handles.expName2,'string',expStrg); end
|
||||
if expN==3,set(handles.expName3,'string',expStrg); end
|
||||
|
||||
try
|
||||
htMapTogPBfg=0;
|
||||
EZhtMap
|
||||
catch
|
||||
end
|
||||
|
||||
% zonePB handle control from left graph spot side to communicate to right side 23_0818
|
||||
% This section was based on the zoneRad Section for Radiobuttons which were
|
||||
% unusable with the new form of Radio Buttons in AppDesigner.
|
||||
if expN==1
|
||||
zonesel=1;
|
||||
zonePB=1;
|
||||
set(handles. zonePB1,'value',1)
|
||||
set(handles. zonePB2,'value',0)
|
||||
set(handles. zonePB3,'value',0)
|
||||
set(handles.zonePB1,'BackgroundColor',[1.0 0.6 0.6])
|
||||
set(handles.zonePB2,'BackgroundColor',[1.0 1.0 1.0])
|
||||
set(handles.zonePB3,'BackgroundColor',[1.0 1.0 1.0])
|
||||
orfLstSel=get(handles.GeneOrfTog,'value');
|
||||
if orfLstSel==1
|
||||
set(handles.listboxGnOrf,'string',Exp(1).Dexp(DexpN).srtOrfLst)
|
||||
else
|
||||
set(handles.listboxGnOrf,'string',Exp(1).Dexp(DexpN).srtGnLst)
|
||||
end
|
||||
end
|
||||
|
||||
if expN==2
|
||||
zonesel=2;
|
||||
zonePB=2;
|
||||
set(handles. zonePB2,'value',1)
|
||||
set(handles. zonePB1,'value',0)
|
||||
set(handles. zonePB3,'value',0)
|
||||
set(handles.zonePB2,'BackgroundColor',[1.0 0.6 0.6])
|
||||
set(handles.zonePB1,'BackgroundColor',[1.0 1.0 1.0])
|
||||
set(handles.zonePB3,'BackgroundColor',[1.0 1.0 1.0])
|
||||
orfLstSel=get(handles.GeneOrfTog,'value');
|
||||
if orfLstSel==1
|
||||
set(handles.listboxGnOrf,'string',Exp(2).Dexp(DexpN).srtOrfLst)
|
||||
else
|
||||
set(handles.listboxGnOrf,'string',Exp(2).Dexp(DexpN).srtGnLst)
|
||||
end
|
||||
end
|
||||
|
||||
if expN==3
|
||||
zonesel=3;
|
||||
zonePB=3;
|
||||
set(handles. zonePB3,'value',1)
|
||||
set(handles. zonePB2,'value',0)
|
||||
set(handles. zonePB1,'value',0)
|
||||
set(handles.zonePB3,'BackgroundColor',[1.0 0.6 0.6]);
|
||||
set(handles.zonePB1,'BackgroundColor',[1.0 1.0 1.0]);
|
||||
set(handles.zonePB2,'BackgroundColor',[1.0 1.0 1.0]);
|
||||
orfLstSel=get(handles.GeneOrfTog,'value');
|
||||
if orfLstSel==1
|
||||
set(handles.listboxGnOrf,'string',Exp(3).Dexp(DexpN).srtOrfLst)
|
||||
else
|
||||
set(handles.listboxGnOrf,'string',Exp(3).Dexp(DexpN).srtGnLst)
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
|
||||
122
qhtcp-workflow/apps/matlab/ezview/EZcompositePlot.m
Executable file
122
qhtcp-workflow/apps/matlab/ezview/EZcompositePlot.m
Executable file
@@ -0,0 +1,122 @@
|
||||
%EZcompositePlot
|
||||
global Exp
|
||||
global ghandles
|
||||
|
||||
if (Exp(expN).cTraceN>1 && length(Exp(expN).ll)<=(Exp(expN).cTraceIndx((Exp(expN).cTraceN)))) ||...
|
||||
isempty(Exp(expN).ll)
|
||||
return;
|
||||
end
|
||||
Exp(expN).CompositPlot=1;
|
||||
|
||||
if expN==1, OLaxes=ghandles.OLaxes1; end
|
||||
if expN==2, OLaxes=ghandles.OLaxes2; end
|
||||
if expN==3, OLaxes=ghandles.OLaxes3; end
|
||||
|
||||
cTraceN=mod(Exp(expN).cTraceN,10);
|
||||
%cTraceN=Exp(expN).cTraceN;
|
||||
if cTraceN==1, colour='b';
|
||||
elseif cTraceN==2, colour='g';
|
||||
elseif cTraceN==3, colour='r';
|
||||
elseif cTraceN==4, colour='c';
|
||||
elseif cTraceN==5, colour='m';
|
||||
elseif cTraceN==6, colour='b';
|
||||
elseif cTraceN==7, colour='g';
|
||||
elseif cTraceN==8, colour='r';
|
||||
elseif cTraceN==9, colour='c';
|
||||
elseif cTraceN==0, colour='m';
|
||||
end
|
||||
|
||||
AddCplot=1; %Test need for user question dialog boxS
|
||||
if AddCplot==1,
|
||||
cTraceN=Exp(expN).cTraceN
|
||||
cTraceIndx=Exp(expN).cTraceIndx(cTraceN)
|
||||
cTstart=cTraceIndx;
|
||||
cTend=length(Exp(expN).ll);
|
||||
|
||||
jj=0; ii=0; RFcmpTraces=0; maxRFcmpLStd=0; maxRFcmpKStd=0; maxRFcmprStd=0;
|
||||
for ic=cTstart:cTend
|
||||
if strcmp(get(Exp(expN).hOL(ic),'visible'), 'on')
|
||||
jj=jj+1;
|
||||
mlstL(jj)=Exp(expN).ll(ic); mlstR(jj)=Exp(expN).rr(ic); mlstK(jj)=Exp(expN).kk(ic);
|
||||
LBcheck=char(Exp(expN).hOLname(ic))
|
||||
if isequal(LBcheck(4:6),'cmp'),
|
||||
if Exp(expN).lstd(ic)> maxRFcmpLStd
|
||||
maxRFcmpLStd=Exp(expN).lstd(ic);
|
||||
ii=ii+1;
|
||||
lstds(ii)=Exp(expN).lstd(ic);
|
||||
RFcmpTraces(ii)=ic;
|
||||
end
|
||||
if Exp(expN).kstd(ic)> maxRFcmpKStd
|
||||
maxRFcmpKStd=Exp(expN).kstd(ic);
|
||||
end
|
||||
if Exp(expN).rstd(ic)> maxRFcmprStd
|
||||
maxRFcmprStd=Exp(expN).rstd(ic);
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
maxLstd=max(std(mlstL), maxRFcmpLStd);
|
||||
maxKstd=max(std(mlstK), maxRFcmpKStd);
|
||||
maxrstd=max(std(mlstR), maxRFcmprStd);
|
||||
Exp(expN).cLmean(cTraceN)=mean(mlstL); Exp(expN).cLstd(cTraceN)=maxLstd;
|
||||
Exp(expN).cRmean(cTraceN)=mean(mlstR); Exp(expN).cKstd(cTraceN)=maxKstd; %std(mlstR);
|
||||
Exp(expN).cKmean(cTraceN)=mean(mlstK); Exp(expN).cRstd(cTraceN)=maxrstd; %std(mlstK);
|
||||
|
||||
% Mean calculation plot
|
||||
l=Exp(expN).cLmean(cTraceN);
|
||||
r=Exp(expN).cRmean(cTraceN);
|
||||
K=Exp(expN).cKmean(cTraceN);
|
||||
lslow=l + Exp(expN).cLstd(cTraceN); lfast=l - Exp(expN).cLstd(cTraceN);
|
||||
rl=r - Exp(expN).cRstd(cTraceN); ru=r + Exp(expN).cRstd(cTraceN);
|
||||
Kl=K - Exp(expN).cKstd(cTraceN); Ku=K + Exp(expN).cKstd(cTraceN);
|
||||
clear g;
|
||||
t=1:200;
|
||||
g=K ./ (1 + exp(-r.* (t - l )));
|
||||
gSlow=Kl ./ (1 + exp(-rl.* (t - lslow )));
|
||||
gFast=Ku ./ (1 + exp(-ru.* (t - lfast )));
|
||||
if K==0||r==0||l==0
|
||||
g(1:200)=1;gSlow(1:200)=1;gFast(1:200)=1;
|
||||
end
|
||||
|
||||
Exp(expN).hCmean(cTraceN)=plot(OLaxes,t,g);hold on; % plot the composit mean of traces
|
||||
Exp(expN).hBound1(cTraceN)=plot(OLaxes,t,gSlow,'y');
|
||||
Exp(expN).hBound2(cTraceN)=plot(OLaxes,t,gFast,'y');
|
||||
%c1=c1-((cTraceN-1)*0.2); c2=c2+((cTraceN-1)*0.2); c3=c3+((cTraceN-1)*0.2);
|
||||
set(Exp(expN).hCmean(cTraceN),'color',colour) %[c1 c2 c3]) %Set latest trace red
|
||||
set(Exp(expN).hCmean(cTraceN),'linewidth',3)
|
||||
Lstr=num2str(Exp(expN).cLmean(cTraceN)); Lsstr=num2str(Exp(expN).cLstd(cTraceN));
|
||||
Rstr=num2str(Exp(expN).cRmean(cTraceN)); Rsstr=num2str(Exp(expN).cRstd(cTraceN));
|
||||
Kstr=num2str(Exp(expN).cKmean(cTraceN)); Ksstr=num2str(Exp(expN).cKstd(cTraceN));
|
||||
|
||||
try
|
||||
cPlotLB=strcat('Composite', num2str(cTraceN),'->','L=',Lstr(1:4),';','Ls=',Lsstr(1:4),';',...
|
||||
'r=',Rstr(1:4),';','rs=',Rsstr(2:6),';','K=',Kstr(1:4),';','Ks=',Ksstr(1:4))
|
||||
catch
|
||||
try
|
||||
cPlotLB=strcat('Composite', num2str(cTraceN),'->','L=',Lstr(1:4),';','r=',Rstr(1:4),';','K=',Kstr(1:4),'-SingleSource');
|
||||
catch
|
||||
end
|
||||
end
|
||||
|
||||
Exp(expN).cName(cTraceN)={cPlotLB};
|
||||
if expN==1, set(ghandles.OLay1,'string', cPlotLB); end
|
||||
if expN==2, set(ghandles.OLay2,'string', cPlotLB); end
|
||||
if expN==3, set(ghandles.OLay3,'string', cPlotLB); end
|
||||
|
||||
% Hide source traces leaving only the Composite traces and STD traces
|
||||
for i=1:length(Exp(expN).hOL)
|
||||
set(Exp(expN).hOL(i),'Visible','off')
|
||||
try set(Exp(expN).hOLb(i),'Visible','off')
|
||||
catch
|
||||
msg='No raw data RFcmp'
|
||||
end
|
||||
end
|
||||
|
||||
% Increment the CompositeTrace count and update the correlated reference OLAY cTraceIndx
|
||||
Exp(expN).cTraceN=(Exp(expN).cTraceN) + 1 ;
|
||||
Exp(expN).cTraceIndx(Exp(expN).cTraceN)=length(Exp(expN).hOL(:))+1;
|
||||
|
||||
%cPlotLB=strcat('Composite', num2str(cTraceN),'L=',num2str(Exp(expN).cLmean(cTraceN)),'Ls=',num2str(Exp(expN).cLstd(cTraceN))) %,'-',(Exp(expN).hOLname(cTraceIndx)))
|
||||
%Exp(expN).cName(cTraceN)={cPlotLB};
|
||||
558
qhtcp-workflow/apps/matlab/ezview/EZdestComp.m
Executable file
558
qhtcp-workflow/apps/matlab/ezview/EZdestComp.m
Executable file
@@ -0,0 +1,558 @@
|
||||
%EZdestConp.m GraphicDestinationPertibationComparison**15_821
|
||||
%Produces Trend plots across perturbation (DrugMedia) plates
|
||||
%Called by EZvDatatip.m and EZlstBoxExt.m
|
||||
%Provides Trace data storage for use by EZfigTrendOL.m
|
||||
|
||||
if lstBoxCmpFlg==1
|
||||
Exp(zoneSel).seltraceN=traceN;
|
||||
seltraceN=traceN;
|
||||
end
|
||||
if expN==1 && get(ghandles.CompositeTog1,'value')==1 ||...
|
||||
expN==2 && get(ghandles.CompositeTog2,'value')==1 ||...
|
||||
expN==3 && get(ghandles.CompositeTog3,'value')==1
|
||||
CompositeTrendFlg=1; else CompositeTrendFlg=0;
|
||||
end
|
||||
|
||||
destPerMP=Exp(expN).Dexp(DexpN).destPerMP;
|
||||
if EZdatatip==1 %adaptation for image spot selection
|
||||
% plNums=plateNum;
|
||||
% destPerMP=Exp(expN).Dexp(DexpN).destPerMP;
|
||||
plNums=(MPsel-1)*destPerMP + (1:destPerMP)
|
||||
zoneSel=expN;
|
||||
tracN=Exp(zoneSel).traceN;
|
||||
if zoneSel==1,Dlaxes=ghandles.Dlaxes1;Dkaxes=ghandles.Dkaxes1;Draxes=ghandles.Draxes1; end
|
||||
if zoneSel==2,Dlaxes=ghandles.Dlaxes2;Dkaxes=ghandles.Dkaxes2;Draxes=ghandles.Draxes2; end
|
||||
if zoneSel==3,Dlaxes=ghandles.Dlaxes3;Dkaxes=ghandles.Dkaxes3;Draxes=ghandles.Draxes3; end
|
||||
if zoneSel==1,DNLaxes=ghandles.DNLaxes1;end
|
||||
if zoneSel==2,DNLaxes=ghandles.DNLaxes2;end
|
||||
if zoneSel==3,DNLaxes=ghandles.DNLaxes3;end
|
||||
elseif EZdatatip==2 % adaption for Overlay plot selection
|
||||
% destPerMP=Exp(expN).Dexp(DexpN).destPerMP;
|
||||
MPlateN=ceil(OLplateNum/destPerMP);
|
||||
plNums=(MPlateN-1)*destPerMP + (1:destPerMP);
|
||||
zoneSel=expN;
|
||||
tracN=Exp(zoneSel).traceN;
|
||||
if zoneSel==1,Dlaxes=ghandles.Dlaxes1;Dkaxes=ghandles.Dkaxes1;Draxes=ghandles.Draxes1; end
|
||||
if zoneSel==2,Dlaxes=ghandles.Dlaxes2;Dkaxes=ghandles.Dkaxes2;Draxes=ghandles.Draxes2; end
|
||||
if zoneSel==3,Dlaxes=ghandles.Dlaxes3;Dkaxes=ghandles.Dkaxes3;Draxes=ghandles.Draxes3; end
|
||||
if zoneSel==1,DNLaxes=ghandles.DNLaxes1;end %2016_0222
|
||||
if zoneSel==2,DNLaxes=ghandles.DNLaxes2;end %2016_0222
|
||||
if zoneSel==3,DNLaxes=ghandles.DNLaxes3;end %2016_0222
|
||||
elseif EZdatatip==0
|
||||
if lstBoxCmpFlg~=1
|
||||
DexpN=Exp(expN).DexpN;
|
||||
plNums=(LBmp-1)*destPerMP + (1:destPerMP);
|
||||
tracN=Exp(zoneSel).traceN;
|
||||
Exp(expN).Trace(traceN).DexpN=DexpN;
|
||||
elseif lstBoxCmpFlg==1
|
||||
DexpN=Exp(expN).DexpN;
|
||||
tracN=Exp(zoneSel).traceN;
|
||||
end
|
||||
% determin if selection is a User chosen RF-****-mdG or RF-****-mdP
|
||||
Lbl=cell2mat(selGnOrf);
|
||||
if ~isempty(strfind(Lbl,'RF')) && ~isempty(strfind(Lbl,'md'))
|
||||
strLoc=strfind(Lbl,'md');
|
||||
MPloc=strfind(Lbl,':');
|
||||
dMP=str2double(Lbl((MPloc(1)+1):(MPloc(2)-1)));
|
||||
if strcmp(Lbl(strLoc:strLoc+3),'-mdG(');
|
||||
RFmdFlg='mdG';
|
||||
elseif strcmp(Lbl(strLoc:strLoc+3),'-mdP(')
|
||||
RFmdFlg='mdP';
|
||||
elseif strcmp(Lbl(strLoc:strLoc+2),'md(')
|
||||
RFmdFlg='md';
|
||||
end
|
||||
end
|
||||
|
||||
if zoneSel==1,DNLaxes=ghandles.DNLaxes1;end %2016_0222
|
||||
if zoneSel==2,DNLaxes=ghandles.DNLaxes2;end %2016_0222
|
||||
if zoneSel==3,DNLaxes=ghandles.DNLaxes3;end %2016_0222
|
||||
end % if EZdatatip==1 %adaptation for image spot selection
|
||||
|
||||
if EZdatatip==2 % Response to Overlay click
|
||||
% seltraceN comes from EZvDatatip;
|
||||
% Exp(OLay).seltraceN iscaptured from EZvDatatip
|
||||
% if an OLay trace is selected
|
||||
% else it is captured below if EZdatatip is not equal to 2
|
||||
|
||||
try
|
||||
set(Exp(zoneSel).hLRF1(seltraceN),'visible','on'); set(Exp(zoneSel).hLRF2(seltraceN),'visible','on');
|
||||
catch, end
|
||||
try
|
||||
set(Exp(zoneSel).hL(seltraceN),'visible','on'); set(Exp(zoneSel).hLb(seltraceN),'visible','on');
|
||||
catch, end
|
||||
|
||||
% Plot new intL
|
||||
try
|
||||
set(Exp(zoneSel).hintL(seltraceN),'visible','on'); set(Exp(zoneSel).hintLb(seltraceN),'visible','on');
|
||||
catch, end
|
||||
try
|
||||
set(Exp(zoneSel).hintLadj(seltraceN),'visible','on'); set(Exp(zoneSel).hintLadjb(seltraceN),'visible','on');
|
||||
catch, end
|
||||
if zoneSel==1,set(ghandles.DNLaxes1,'xlim',[-75,75]); end
|
||||
|
||||
for J=1:(tracN)
|
||||
try
|
||||
set(Exp(zoneSel).hKRF1(J),'visible','off'); set(Exp(zoneSel).hKRF2(J),'visible','off');
|
||||
catch, end
|
||||
try
|
||||
set(Exp(zoneSel).hK(J),'visible','off'); set(Exp(zoneSel).hKb(J),'visible','off');
|
||||
catch, end
|
||||
end
|
||||
try
|
||||
set(Exp(zoneSel).hKRF1(seltraceN),'visible','on'); set(Exp(zoneSel).hKRF2(seltraceN),'visible','on');
|
||||
catch, end
|
||||
try
|
||||
set(Exp(zoneSel).hK(seltraceN),'visible','on'); set(Exp(zoneSel).hKb(seltraceN),'visible','on');
|
||||
catch, end
|
||||
|
||||
for J=1:(tracN),
|
||||
try
|
||||
set(Exp(zoneSel).hrRF1(J),'visible','off'); set(Exp(zoneSel).hrRF2(J),'visible','off');
|
||||
catch, end
|
||||
try
|
||||
set(Exp(zoneSel).hr(J),'visible','off'); set(Exp(zoneSel).hrb(J),'visible','off');
|
||||
catch, end
|
||||
end
|
||||
try
|
||||
set(Exp(zoneSel).hrRF1(seltraceN),'visible','on'); set(Exp(zoneSel).hrRF2(seltraceN),'visible','on');
|
||||
catch, end
|
||||
try
|
||||
set(Exp(zoneSel).hr(seltraceN),'visible','on'); set(Exp(zoneSel).hrb(seltraceN),'visible','on');
|
||||
catch, end
|
||||
else
|
||||
% Plot RFmd1 and RFmd2 indexes
|
||||
if EZdatatip==0
|
||||
end
|
||||
%if ~exist(RFmdFlg)
|
||||
RF1mdIndx=Exp(zoneSel).Dexp(DexpN).RFmd1indx;
|
||||
RF1mdPltN=Exp(zoneSel).Dexp(DexpN).RFmd1pltN;
|
||||
RF2mdIndx=Exp(zoneSel).Dexp(DexpN).RFmd2indx;
|
||||
RF2mdPltN=Exp(zoneSel).Dexp(DexpN).RFmd2pltN;
|
||||
try Rn=Exp(expN).Dexp(DexpN).RFmean; catch, Rn=0; end
|
||||
try Rs=Exp(expN).Dexp(DexpN).RFstd; catch, Rs=0; end
|
||||
if isempty(RF1mdIndx)
|
||||
try Rn=Exp(expN).Dexp(DexpN).RFmeanG; catch, Rn=0; end
|
||||
try Rs=Exp(expN).Dexp(DexpN).RFstdG; catch, Rs=0; end
|
||||
end
|
||||
|
||||
|
||||
if lstBoxCmpFlg~=1
|
||||
Exp(zoneSel).seltraceN=tracN;
|
||||
seltraceN=tracN;
|
||||
end
|
||||
% Plot L K r for all pertibation(destination) Plates
|
||||
if lstBoxCmpFlg~=1 % If selection is a "normal" item with a location in the label
|
||||
try RF1mdNums=(RF1mdPltN-1)*destPerMP + (1:destPerMP); catch, end %RF1mdPltN %
|
||||
try RF2mdNums=(RF2mdPltN-1)*destPerMP + (1:destPerMP); catch, end %RF2mdPltN %
|
||||
for I=1:length(plNums),
|
||||
if CompositeTrendFlg==0 || EZdatatip==1 %'Normal' gene/orf spot image or listbox item with location data
|
||||
Exp(expN).Trace(traceN).dmSel=pertSel;
|
||||
Exp(expN).Trace(traceN).DexpN=DexpN;
|
||||
Exp(expN).Trace(traceN).UsrGLB=selGnOrf; %usrGnSp;
|
||||
if ~exist('RFmdFlg')
|
||||
lvals(I)=scan(1,plNums(I)).plate(1).CFout(indx,5);
|
||||
if lvals(I)==0, lvals(I)=140; end
|
||||
kvals(I)=scan(1,plNums(I)).plate(1).CFout(indx,3);
|
||||
rvals(I)=scan(1,plNums(I)).plate(1).CFout(indx,4);
|
||||
Exp(expN).Trace(tracN).Dexp(DexpN).DM(I).UsrLvals=lvals(I);
|
||||
Exp(expN).Trace(tracN).Dexp(DexpN).DM(I).UsrKvals=kvals(I);
|
||||
Exp(expN).Trace(tracN).Dexp(DexpN).DM(I).Usrrvals=rvals(I);
|
||||
elseif strcmp(RFmdFlg,'mdG')
|
||||
lvals(I)=Exp(expN).Dexp(DexpN).RFcmpGL.dm(I).med;
|
||||
if lvals(I)==0, lvals(I)=140; end
|
||||
kvals(I)=Exp(expN).Dexp(DexpN).RFcmpGK.dm(I).med;
|
||||
rvals(I)=Exp(expN).Dexp(DexpN).RFcmpGr.dm(I).med;
|
||||
Exp(expN).Trace(tracN).Dexp(DexpN).DM(I).UsrLvals=lvals(I);
|
||||
Exp(expN).Trace(tracN).Dexp(DexpN).DM(I).UsrKvals=kvals(I);
|
||||
Exp(expN).Trace(tracN).Dexp(DexpN).DM(I).Usrrvals=rvals(I);
|
||||
elseif strcmp(RFmdFlg,'mdP')
|
||||
lvals(I)=Exp(expN).Dexp(DexpN).RFmedianP(I,dMP);
|
||||
if lvals(I)==0, lvals(I)=140; end
|
||||
kvals(I)=scan(1,plNums(I)).plate(1).CFout(indx,3); %No P med.Kvals /dms currently avail.
|
||||
rvals(I)=scan(1,plNums(I)).plate(1).CFout(indx,4); %No P med.rvals /dms currently avail.
|
||||
Exp(expN).Trace(tracN).Dexp(DexpN).DM(I).UsrLvals=lvals(I);
|
||||
Exp(expN).Trace(tracN).Dexp(DexpN).DM(I).UsrKvals=kvals(I);
|
||||
Exp(expN).Trace(tracN).Dexp(DexpN).DM(I).Usrrvals=rvals(I);
|
||||
elseif strcmp(RFmdFlg,'md')
|
||||
lvals(I)=Exp(expN).Dexp(DexpN).RFmean(I);
|
||||
if lvals(I)==0, lvals(I)=140; end
|
||||
kvals(I)=scan(1,plNums(I)).plate(1).CFout(indx,3); %No P med.Kvals /dms currently avail.
|
||||
rvals(I)=scan(1,plNums(I)).plate(1).CFout(indx,4); %No P med.rvals /dms currently avail.
|
||||
Exp(expN).Trace(tracN).Dexp(DexpN).DM(I).UsrLvals=lvals(I);
|
||||
Exp(expN).Trace(tracN).Dexp(DexpN).DM(I).UsrKvals=kvals(I);
|
||||
Exp(expN).Trace(tracN).Dexp(DexpN).DM(I).Usrrvals=rvals(I);
|
||||
end
|
||||
elseif CompositeTrendFlg==1 && EZdatatip==0 %Gene-Specifics Composite from listBox
|
||||
lvals(I)=median(cell2mat(Exp(expN).Trace(tracN).Dexp(DexpN).DM(I).UsrLvals));
|
||||
if lvals(I)==0, lvals(I)=140; end
|
||||
kvals(I)=median(cell2mat(Exp(expN).Trace(tracN).Dexp(DexpN).DM(I).UsrKvals));
|
||||
rvals(I)=median(cell2mat(Exp(expN).Trace(tracN).Dexp(DexpN).DM(I).Usrrvals));
|
||||
end
|
||||
try
|
||||
if ~isempty(RF1mdIndx)
|
||||
lvalsRF1md(I)=scan(1,RF1mdNums(I)).plate(1).CFout(RF1mdIndx(I),5);
|
||||
if lvalsRF1md(I)==0, lvalsRF1md(I)=140; end
|
||||
kvalsRF1md(I)=scan(1,RF1mdNums(I)).plate(1).CFout(RF1mdIndx(I),3);
|
||||
rvalsRF1md(I)=scan(1,RF1mdNums(I)).plate(1).CFout(RF1mdIndx(I),4);
|
||||
elseif ~isempty(Exp(expN).Dexp(DexpN).RFcmpGL.dm(I).med)
|
||||
lvalsRF1md(I)=Exp(expN).Dexp(DexpN).RFcmpGL.dm(I).med;
|
||||
if lvalsRF1md(I)==0, lvalsRF1md(I)=140; end
|
||||
kvalsRF1md(I)=Exp(expN).Dexp(DexpN).RFcmpGK.dm(I).med;
|
||||
rvalsRF1md(I)=Exp(expN).Dexp(DexpN).RFcmpGr.dm(I).med;
|
||||
end
|
||||
catch
|
||||
end
|
||||
try
|
||||
lvalsRF2md(I)=scan(1,RF2mdNums(I)).plate(1).CFout(RF2mdIndx(I),5);
|
||||
if lvalsRF2md(I)==0, lvalsRF2md(I)=140; end
|
||||
kvalsRF2md(I)=scan(1,RF2mdNums(I)).plate(1).CFout(RF2mdIndx(I),3);
|
||||
rvalsRF2md(I)=scan(1,RF2mdNums(I)).plate(1).CFout(RF2mdIndx(I),4);
|
||||
catch
|
||||
end
|
||||
% Added for INTERACTION Calculating Utility 2016_0219
|
||||
try
|
||||
if CompositeTrendFlg==0 || EZdatatip==1
|
||||
Xn(I)=Exp(expN).Dexp(DexpN).scan(plNums(I)).plate(1).CFout(indx,5);
|
||||
Xln(I)=Exp(expN).Dexp(DexpN).scan(plNums(I)).plate(1).CFout(indx,11);
|
||||
Xhn(I)=Exp(expN).Dexp(DexpN).scan(plNums(I)).plate(1).CFout(indx,12);
|
||||
elseif CompositeTrendFlg==1 && EZdatatip~=1
|
||||
Xn(I)=median(cell2mat(Exp(expN).Trace(tracN).Dexp(DexpN).DM(I).UsrLvals));
|
||||
Xln(I)=Xn(I) - std(cell2mat(Exp(expN).Trace(tracN).Dexp(DexpN).DM(I).UsrLvals));
|
||||
Xhn(I)=Xn(I) + std(cell2mat(Exp(expN).Trace(tracN).Dexp(DexpN).DM(I).UsrLvals));
|
||||
end
|
||||
if Xn(I)==0, deltaXR(I)=140; end
|
||||
if isnan(Xhn(I))||isnan(Xln(I))|| Xhn(I)==0||Xln(I)==0||isnan(Rs(I))
|
||||
deltaXR(I)=140;
|
||||
elseif Xn(I) >=Rn(I)
|
||||
deltaXR(I)=Xln(I)-(Rn(I)+Rs(I));
|
||||
else
|
||||
deltaXR(I)=Xhn(I)-(Rn(I)-Rs(I));
|
||||
end
|
||||
catch
|
||||
msg='No Refs! ->No Interaction Calculations!'
|
||||
end
|
||||
end
|
||||
elseif lstBoxCmpFlg==1 %Determine values of RF1cmp or RFcmpG or RFcmpP composites
|
||||
for dm=1:destPerMP
|
||||
if RFcmpGFlg==0 %RF1cmp or RF2cmp clicked
|
||||
lvals(dm)=Exp(expN).Dexp(DexpN).RFcmpL(RFnum).dm(dm).med;
|
||||
if lvals(dm)==0, lvals(dm)=140; end
|
||||
kvals(dm)=Exp(expN).Dexp(DexpN).RFcmpK(RFnum).dm(dm).med;
|
||||
rvals(dm)=Exp(expN).Dexp(DexpN).RFcmpr(RFnum).dm(dm).med;
|
||||
elseif RFcmpGFlg==1
|
||||
lvals(dm)=Exp(expN).Dexp(DexpN).RFcmpGL.dm(inDM).med;% Ls=num2str(l);
|
||||
if lvals(dm)==0, lvals(dm)=140; end
|
||||
kvals(dm)=Exp(expN).Dexp(DexpN).RFcmpGK.dm(inDM).med; %Ks=num2str(K);
|
||||
rvals(dm)=Exp(expN).Dexp(DexpN).RFcmpGr.dm(inDM).med; %rs=num2str(r);
|
||||
end
|
||||
% Added for INTERACTION Calculating Utility 2016_0219
|
||||
try
|
||||
Xn(dm)=lvals(dm);
|
||||
Xln(dm)=lvals(dm)- Exp(expN).Dexp(DexpN).RFcmpL(RFnum).dm(inDM).std ;
|
||||
Xhn(dm)=lvals(dm)+ Exp(expN).Dexp(DexpN).RFcmpL(RFnum).dm(inDM).std;
|
||||
if Xn(dm)==0, deltaXR(dm)=140; end
|
||||
if isnan(Xhn(dm))||isnan(Xln(dm))|| Xhn(dm)==0||Xln(dm)==0||isnan(Rs(dm))
|
||||
deltaXR(dm)=140;
|
||||
elseif Xn(dm) >=Rn(dm)
|
||||
deltaXR(dm)=Xln(dm)-(Rn(dm)+Rs(dm));
|
||||
else
|
||||
deltaXR(dm)=Xhn(dm)-(Rn(dm)-Rs(dm));
|
||||
end
|
||||
catch
|
||||
msg='No Refs! ->No Interaction Calculations!'
|
||||
end
|
||||
end % for dm=1:destPerMP
|
||||
Exp(expN).Trace(traceN).UsrGLB=selGnOrf; %Added 18_0118 for tickLabelStr issue in EZfigTrendOL.m assoc'd with RFcmpG(-)
|
||||
end
|
||||
|
||||
% INTERACTION Plotting Utility 2016_021
|
||||
try
|
||||
if Rn(1)==0 % if Ref mean is zero
|
||||
intL=0; proGrIntL=0; intLadj=0; proGrIntLadj=0;
|
||||
intNormL=6.66;intNormLadj=6.66; proGrIntNormL=6.66;proGrIntNormLadj=6.66;
|
||||
else
|
||||
% if Xn(I)==0 || Xn(I)==140,intL =140; else intL=(Xn-Rn); end
|
||||
intL=(Xn-Rn);
|
||||
intL(Xn==0)=140;
|
||||
intLadj=(deltaXR);
|
||||
Exp(expN).Trace(tracN).Dexp(DexpN).UsrIntL=intL;
|
||||
%{
|
||||
intNormL=(intL) ./ Rn(1)
|
||||
intNormLadj=((deltaXR)./ Rn(1))
|
||||
proGrIntL=-(intL)
|
||||
proGrIntLadj=-(deltaXR)
|
||||
proGrIntNormL=-(intL ./ Rn(1))
|
||||
proGrIntNormLadj=-((deltaXR)./ Rn(1))
|
||||
%find where Xn(j)==0 and set interactL to a fixed Max interaction value
|
||||
intNormL(find(Xn==0))=2
|
||||
intNormLadj(find(Xn==0))=2
|
||||
proGrIntLadj(find(Xn==0))=-2
|
||||
proGrIntNormLadj(find(Xn==0))=-2
|
||||
%}
|
||||
end
|
||||
catch
|
||||
FailMessage='Problem with Reference Rn value; Unable to produce Interaction values! Ln119 EZdestComp'
|
||||
end
|
||||
|
||||
hidem(ghandles.Daxes1)
|
||||
if zoneSel==1,showm(ghandles.Dlaxes1);showm(ghandles.Dkaxes1);showm(ghandles.Draxes1);end
|
||||
if zoneSel==2,showm(ghandles.Dlaxes2);showm(ghandles.Dkaxes2);showm(ghandles.Draxes2);end
|
||||
if zoneSel==3,showm(ghandles.Dlaxes3);showm(ghandles.Dkaxes3);showm(ghandles.Draxes3);end
|
||||
set(Dlaxes,'NextPlot','add'); set(Dkaxes,'NextPlot','add'); set(Draxes,'NextPlot','add')
|
||||
if zoneSel==1,showm(ghandles.DNLaxes1); end
|
||||
if zoneSel==2,showm(ghandles.DNLaxes2); end
|
||||
if zoneSel==3,showm(ghandles.DNLaxes3); end
|
||||
set(DNLaxes,'NextPlot','add');
|
||||
% Make visible the current L plot and store it for retrieval by OLay code
|
||||
if verLessThan('matlab','8.4')
|
||||
else % accomodate new matlab changes after 2014a fix 23_0807
|
||||
tempFig2=figure;
|
||||
end
|
||||
try % some experiments do not have ref. plates
|
||||
Exp(zoneSel).hLRF1(tracN)=plot(Dlaxes,lvalsRF1md,1:destPerMP,'b'); hold on
|
||||
catch
|
||||
end
|
||||
try
|
||||
Exp(zoneSel).hLRF2(tracN)=plot(Dlaxes,lvalsRF2md,1:destPerMP,'c'); hold on
|
||||
catch
|
||||
end
|
||||
try
|
||||
Exp(zoneSel).hL(tracN)=plot(Dlaxes,lvals,1:destPerMP); Exp(zoneSel).hLb(tracN)=plot(Dlaxes,lvals,1:destPerMP,'rs');
|
||||
catch
|
||||
end
|
||||
if zoneSel==1,set(ghandles.Dlaxes1,'xlim',[0,140]); end
|
||||
if zoneSel==2,set(ghandles.Dlaxes2,'xlim',[0,140]); end
|
||||
if zoneSel==3,set(ghandles.Dlaxes3,'xlim',[0,140]); end
|
||||
% Make visible Plot for Interaction Data, Store and Hide unless a N (InteractionPBsel) set that plot on Top of the RawData Plots.
|
||||
% Plot new intL
|
||||
try
|
||||
% zeroCLn=zeros(1,destPerMP)
|
||||
% Exp(zoneSel).hzeroCLn=plot(DNLaxes,zeroCLn,1:destPerMP,'y');
|
||||
Exp(zoneSel).hintL(tracN)=plot(DNLaxes,intL,1:destPerMP); Exp(zoneSel).hintLb(tracN)=plot(DNLaxes,intL,1:destPerMP,'rs');
|
||||
Exp(zoneSel).hintLadj(tracN)=plot(DNLaxes,intLadj,1:destPerMP,'g'); Exp(zoneSel).hintLadjb(tracN)=plot(DNLaxes,intLadj,1:destPerMP,'gs');
|
||||
catch
|
||||
end
|
||||
if zoneSel==1,set(ghandles.DNLaxes1,'xlim',[-75,75]); end
|
||||
if zoneSel==2,set(ghandles.DNLaxes2,'xlim',[-75,75]); end
|
||||
if zoneSel==3,set(ghandles.DNLaxes3,'xlim',[-75,75]); end
|
||||
|
||||
% intNormL
|
||||
% intNormLadj
|
||||
% ProGrIntLadj Plot
|
||||
% ProGrintLadj Plot
|
||||
% ProGrintNormL
|
||||
% proGrintNormLadj
|
||||
% Hide all K plots
|
||||
|
||||
for J=1:(tracN-1),
|
||||
try
|
||||
set(Exp(zoneSel).hKRF1(J),'visible','off'); set(Exp(zoneSel).hKRF2(J),'visible','off');
|
||||
catch
|
||||
end
|
||||
try
|
||||
set(Exp(zoneSel).hK(J),'visible','off'); set(Exp(zoneSel).hKb(J),'visible','off');
|
||||
catch
|
||||
end
|
||||
end
|
||||
|
||||
% Make visible the current L plot and store it for retrieval by OLay code
|
||||
try % some experiments do not have ref. plates
|
||||
Exp(zoneSel).hKRF1(tracN)=plot(Dkaxes,kvalsRF1md,1:destPerMP,'b');
|
||||
Exp(zoneSel).hKRF2(tracN)=plot(Dkaxes,kvalsRF2md,1:destPerMP,'c');
|
||||
catch
|
||||
end
|
||||
try
|
||||
Exp(zoneSel).hK(tracN)=plot(Dkaxes,kvals,1:destPerMP,'b'); Exp(zoneSel).hKb(tracN)=plot(Dkaxes,kvals,1:destPerMP,'rs');
|
||||
catch
|
||||
end
|
||||
set(Dkaxes,'xlim',[0,200]) % max(kvals+20)
|
||||
set(Dkaxes,'ycolor',[.9,.9,1])
|
||||
|
||||
% Hide all r plots
|
||||
for J=1:(tracN-1),
|
||||
try
|
||||
set(Exp(zoneSel).hrRF1(J),'visible','off'); set(Exp(zoneSel).hrRF2(J),'visible','off');
|
||||
catch, end
|
||||
try
|
||||
set(Exp(zoneSel).hr(J),'visible','off'); set(Exp(zoneSel).hrb(J),'visible','off');
|
||||
catch, end
|
||||
end
|
||||
|
||||
% Make visible the current r plot and store it for retrieval by OLay code
|
||||
try %Some experiments do not have ref. plates
|
||||
Exp(zoneSel).hrRF1(tracN)=plot(Draxes,rvalsRF1md,1:destPerMP,'b');
|
||||
Exp(zoneSel).hrRF2(tracN)=plot(Draxes,rvalsRF2md,1:destPerMP,'c');
|
||||
catch, end
|
||||
try
|
||||
Exp(zoneSel).hr(tracN)=plot(Draxes,rvals,1:destPerMP,'b'); Exp(zoneSel).hrb(tracN)=plot(Draxes,rvals,1:destPerMP,'rs');
|
||||
catch, end
|
||||
set(Draxes,'xlim',[0,1])
|
||||
set(Draxes,'ycolor',[.9,.9,1])
|
||||
end
|
||||
|
||||
if zoneSel==1, set(ghandles.geneOrfLKr1,'string', grfgenestr);end
|
||||
if zoneSel==2, set(ghandles.geneOrfLKr2,'string', grfgenestr);end
|
||||
if zoneSel==3, set(ghandles.geneOrfLKr3,'string', grfgenestr);end
|
||||
|
||||
% Display Selection PlotFilter
|
||||
if Exp(4).interacPBsel==0
|
||||
% replace ghandles.DNLaxes1 (Dlaxes2)etc. with a single
|
||||
% Exp(zoneSel).DNLaxes,....
|
||||
set(ghandles.Dlaxes1,'Visible','on')
|
||||
set(ghandles.Dlaxes2,'Visible','on')
|
||||
set(ghandles.Dlaxes3,'Visible','on')
|
||||
set(ghandles.DNLaxes1,'Visible','off')
|
||||
set(ghandles.DNLaxes2,'Visible','off')
|
||||
set(ghandles.DNLaxes3,'Visible','off')
|
||||
|
||||
for n=1:Exp(zoneSel).traceN
|
||||
try
|
||||
set(Exp(zoneSel).hLRF1(n),'visible','off'); set(Exp(zoneSel).hLRF2(n),'visible','off');
|
||||
catch, end
|
||||
try
|
||||
set(Exp(zoneSel).hL(n),'visible','off'); set(Exp(zoneSel).hLb(n),'visible','off');
|
||||
catch, end
|
||||
try
|
||||
set(Exp(zoneSel).hintL(n),'visible','off'); set(Exp(zoneSel).hintLb(n),'visible','off');
|
||||
catch, end
|
||||
try
|
||||
set(Exp(zoneSel).hintLadj(n),'visible','off'); set(Exp(zoneSel).hintLadjb(n),'visible','off');
|
||||
catch, end
|
||||
end
|
||||
|
||||
try
|
||||
set(Exp(zoneSel).hLRF1(seltraceN),'visible','on'); set(Exp(zoneSel).hLRF2(seltraceN),'visible','on');
|
||||
catch, end
|
||||
try
|
||||
set(Exp(zoneSel).hL(seltraceN),'visible','on'); set(Exp(zoneSel).hLb(seltraceN),'visible','on');
|
||||
catch, end
|
||||
for i=1:Exp(zoneSel).expLoadCnt,
|
||||
try set(Exp(zoneSel).hzeroCLn(i),'visible','off'); catch ME, end
|
||||
end
|
||||
elseif Exp(4).interacPBsel==1
|
||||
set(ghandles.DNLaxes1,'Visible','on')
|
||||
set(ghandles.DNLaxes2,'Visible','on')
|
||||
set(ghandles.DNLaxes3,'Visible','on')
|
||||
set(ghandles.Dlaxes1,'Visible','off')
|
||||
set(ghandles.Dlaxes2,'Visible','off')
|
||||
set(ghandles.Dlaxes3,'Visible','off')
|
||||
|
||||
|
||||
for n=1:Exp(zoneSel).traceN
|
||||
try set(Exp(zoneSel).hLRF1(n),'visible','off'); catch, end
|
||||
try set(Exp(zoneSel).hLRF2(n),'visible','off'); catch, end
|
||||
try set(Exp(zoneSel).hL(n),'visible','off'); set(Exp(zoneSel).hLb(n),'visible','off'); catch, end
|
||||
try set(Exp(zoneSel).hintL(n),'visible','off'); set(Exp(zoneSel).hintLb(n),'visible','off'); catch, end
|
||||
try set(Exp(zoneSel).hintLadj(n),'visible','off'); set(Exp(zoneSel).hintLadjb(n),'visible','off'); catch, end
|
||||
end
|
||||
try set(Exp(zoneSel).hintL(seltraceN),'visible','on'); set(Exp(zoneSel).hintLb(seltraceN),'visible','on'); catch, end
|
||||
try set(Exp(zoneSel).hintLadj(seltraceN),'visible','on'); set(Exp(zoneSel).hintLadjb(seltraceN),'visible','on'); catch, end
|
||||
for i=1:Exp(zoneSel).expLoadCnt,
|
||||
try set(Exp(zoneSel).hzeroCLn(i),'visible','on'); catch ME, end
|
||||
end
|
||||
elseif Exp(4).interacPBsel==2
|
||||
end
|
||||
|
||||
if verLessThan('matlab','8.4')
|
||||
else % accomodate new matlab changes after 2014a fix update 23_0807
|
||||
close(tempFig2)
|
||||
end
|
||||
|
||||
|
||||
% Deprecated functions
|
||||
|
||||
%{
|
||||
for J=1:(tracN),
|
||||
try
|
||||
set(Exp(zoneSel).hintL(J),'visible','off'); set(Exp(zoneSel).hintLb(J),'visible','off');
|
||||
catch, end
|
||||
try
|
||||
set(Exp(zoneSel).hintLadj(J),'visible','off'); set(Exp(zoneSel).hintLadjb(J),'visible','off');
|
||||
catch, end
|
||||
end
|
||||
%}
|
||||
%{
|
||||
for J=1:(tracN),
|
||||
try
|
||||
set(Exp(zoneSel).hLRF1(J),'visible','off'); set(Exp(zoneSel).hLRF2(J),'visible','off');
|
||||
catch, end
|
||||
try
|
||||
set(Exp(zoneSel).hL(J),'visible','off'); set(Exp(zoneSel).hLb(J),'visible','off');
|
||||
catch, end
|
||||
end
|
||||
%}
|
||||
|
||||
%Hide all L plots
|
||||
%{
|
||||
for J=1:(tracN-1),
|
||||
try
|
||||
set(Exp(zoneSel).hLRF1(J),'visible','off'); set(Exp(zoneSel).hLRF2(J),'visible','off');
|
||||
catch, end
|
||||
try
|
||||
set(Exp(zoneSel).hL(J),'visible','off'); set(Exp(zoneSel).hLb(J),'visible','off');
|
||||
catch, end
|
||||
end
|
||||
%}
|
||||
%Hide all intL plots
|
||||
%{
|
||||
for J=1:(tracN),
|
||||
try
|
||||
set(Exp(zoneSel).hintL(J),'visible','off'); set(Exp(zoneSel).hintLb(J),'visible','off');
|
||||
catch, end
|
||||
try
|
||||
set(Exp(zoneSel).hintLadj(J),'visible','off'); set(Exp(zoneSel).hintLadjb(J),'visible','off');
|
||||
catch, end
|
||||
end
|
||||
%}
|
||||
|
||||
|
||||
|
||||
% set(Dlaxes,'xlim',[0,max(lvals+20)])
|
||||
% catch
|
||||
% set(Dlaxes,'NextPlot','add');
|
||||
% Exp(zoneSel).hL(tracN)=plot(Dlaxes,lvals,1:destPerMP);
|
||||
% Exp(zoneSel).hLb(tracN)=plot(Dlaxes,lvals,1:destPerMP,'rs');
|
||||
|
||||
%hDaxL=plot(Dlaxes,lvals,1:destPerMP);hold(Dlaxes); plot(Dlaxes,lvals,1:destPerMP,'rs');...
|
||||
% hold(Dlaxes);
|
||||
%{
|
||||
if max(lvals)>90
|
||||
set(Dlaxes,'xlim',[0,max(lvals+20)])
|
||||
else
|
||||
set(Dlaxes,'xlim',[0,90])
|
||||
end
|
||||
%}
|
||||
|
||||
%end
|
||||
|
||||
%{
|
||||
try
|
||||
hDaxK=plot(Dkaxes,kvalsRF1md,1:destPerMP,'y'); hold(Dkaxes); plot(Dkaxes,kvalsRF2md,1:destPerMP,'y');...
|
||||
plot(Dkaxes,kvals,1:destPerMP); plot(Dkaxes,kvals,1:destPerMP,'rs');...
|
||||
hold(Dkaxes);
|
||||
set(Dkaxes,'xlim',[0,200]) %max(kvals+20)
|
||||
set(Dkaxes,'ycolor',[.9,.9,1])
|
||||
catch
|
||||
set(Dkaxes,'NextPlot','replace');
|
||||
hDaxK=plot(Dkaxes,kvals,1:destPerMP); hold(Dkaxes); plot(Dkaxes,kvals,1:destPerMP,'rs');...
|
||||
hold(Dkaxes);
|
||||
set(Dkaxes,'xlim',[0,200]) %max(kvals+20)
|
||||
set(Dkaxes,'ycolor',[.9,.9,1])
|
||||
end
|
||||
%}
|
||||
|
||||
%{
|
||||
try
|
||||
hDaxR=plot(Draxes,rvalsRF1md,1:destPerMP,'y'); hold(Draxes); plot(Draxes,rvalsRF2md,1:destPerMP,'y');...
|
||||
plot(Draxes,rvals,1:destPerMP); plot(Draxes,rvals,1:destPerMP,'rs');...
|
||||
hold(Draxes);
|
||||
set(Draxes,'xlim',[0,1])
|
||||
set(Draxes,'ycolor',[.9,.9,1])
|
||||
catch
|
||||
set(Draxes,'NextPlot','replace')
|
||||
hDaxR=plot(Draxes,rvals,1:destPerMP); hold(Draxes); plot(Draxes,rvals,1:destPerMP,'rs');...
|
||||
hold(Draxes);
|
||||
set(Draxes,'xlim',[0,1])
|
||||
set(Draxes,'ycolor',[.9,.9,1])
|
||||
end
|
||||
%}
|
||||
105
qhtcp-workflow/apps/matlab/ezview/EZdiagRFsSheet.m
Executable file
105
qhtcp-workflow/apps/matlab/ezview/EZdiagRFsSheet.m
Executable file
@@ -0,0 +1,105 @@
|
||||
global Exp
|
||||
try % Try the whole routine
|
||||
|
||||
if strcmp(Exp(expN).DexpType,'multi') ||...
|
||||
strcmp(Exp(expN).DexpType,'chrono')
|
||||
DexpN=n;
|
||||
end
|
||||
rnames=[];
|
||||
data=[];
|
||||
try
|
||||
cnames={'RF Name','Median','Mean','STD','Minimum','Maximum'};
|
||||
rCnt=0;
|
||||
RFfilename= fullfile(Exp(expN).Dexp(DexpN).resDir,'PrintResults','!RFsDiagnostics.txt');
|
||||
fid=fopen(RFfilename,'w'); %('RFdiagnostic.txt','w');
|
||||
ftitle= strcat(ExpPath,':::Reference Diagnostic Values');
|
||||
try
|
||||
fprintf(fid,'%s\n',ftitle);
|
||||
catch mErr
|
||||
errorMessage=mErr.message
|
||||
msg='Check Permissions of PrintResult folder. !RFsDiagnostics.txt may not be created';
|
||||
warning((msg));
|
||||
warndlg('Check Permissions of PrintResult folder. !RFsDiagnostics.txt may not be created');
|
||||
end
|
||||
fprintf(fid,'%s\t %s\t %s\t %s\t %s\t %s','RF Name','Median','Mean','STD','Min','Max');
|
||||
fprintf(fid,'\n');
|
||||
|
||||
rnames= cell(1,1);
|
||||
for d=1:DMnum
|
||||
try
|
||||
% RF1 MasterPlate Stats
|
||||
RFmd1LB=Exp(expN).Dexp(DexpN).RFmd1LB(d);
|
||||
mval1=Exp(expN).Dexp(DexpN).RFmd1val(d);
|
||||
mean1=Exp(expN).Dexp(DexpN).mean1(d);
|
||||
std1=Exp(expN).Dexp(DexpN).std1(d);
|
||||
min1=Exp(expN).Dexp(DexpN).min1(d);
|
||||
max1=Exp(expN).Dexp(DexpN).max1(d);
|
||||
fprintf(fid,'%s\t %7.2f\t %7.4f\t %7.4f\t %7.4f\t %7.4f\t\n',...
|
||||
cell2mat(RFmd1LB), mval1,mean1,std1,min1,max1)
|
||||
rCnt=rCnt+1;
|
||||
data(rCnt,1:5)=[mval1,mean1,std1,min1,max1];
|
||||
rnames(rCnt)=RFmd1LB;
|
||||
catch
|
||||
message='No RF1 MasterPlate'
|
||||
end
|
||||
try
|
||||
% RF2 MasterPlate Stats
|
||||
RFmd2LB=Exp(expN).Dexp(DexpN).RFmd2LB(d);
|
||||
mval2=Exp(expN).Dexp(DexpN).RFmd2val(d);
|
||||
mean2=Exp(expN).Dexp(DexpN).mean2(d);
|
||||
std2=Exp(expN).Dexp(DexpN).std2(d);
|
||||
min2=Exp(expN).Dexp(DexpN).min2(d);
|
||||
max2=Exp(expN).Dexp(DexpN).max2(d);
|
||||
fprintf(fid,'%s\t %7.2f\t %7.4f\t %7.4f\t %7.4f\t %7.4f\t\n', cell2mat(RFmd2LB),mval2,mean2,std2,min2,max2)
|
||||
rCnt=rCnt+1;
|
||||
data(rCnt,1:5)= [mval2,mean2,std2,min2,max2];
|
||||
rnames(rCnt)= RFmd2LB;
|
||||
catch
|
||||
message='No RF2 MasterPlate'
|
||||
end
|
||||
% Distributed Global stats
|
||||
try
|
||||
RFmdGLB=Exp(expN).Dexp(DexpN).RFmdGLB(d);
|
||||
mvalsDG=Exp(expN).Dexp(DexpN).RFmedianG(d);
|
||||
RFmeanG=Exp(expN).Dexp(DexpN).RFmeanG(d);
|
||||
RFstdG=Exp(expN).Dexp(DexpN).RFstdG(d);
|
||||
maxG=Exp(expN).Dexp(DexpN).RFmaxG(d);
|
||||
minG=Exp(expN).Dexp(DexpN).RFminG(d);
|
||||
fprintf(fid,'%s\t %7.2f\t %7.4f\t %7.4f\t %7.4f\t %7.4f\t\n', cell2mat(RFmdGLB),mvalsDG,RFmeanG,RFstdG,minG,maxG)
|
||||
rCnt=rCnt+1;
|
||||
data(rCnt,1:5)=[mvalsDG,RFmeanG,RFstdG,minG,maxG];
|
||||
rnames(rCnt)=RFmdGLB;
|
||||
catch
|
||||
message='No RF2 MasterPlate'
|
||||
end
|
||||
end
|
||||
|
||||
% Distributed RF1 Plates Stats Print
|
||||
try
|
||||
for d=1:DMnum
|
||||
for mm=1:length(dMPs)
|
||||
% RFmd1posD= Exp(expN).Dexp(DexpN).RFmdPindx(d,dMPs(mm));
|
||||
% dMP= Exp(expN).Dexp(DexpN).RFmdPpltN(d,dMPs(mm)); %This is a storage of the MasterPlate used NOT the ScanPlate? WeMight wish to store the ScanPlateNumber also???
|
||||
% rf1scNdisp= Exp(expN).Dexp(DexpN).RFmdPscanN(d,dMPs(mm));
|
||||
RFmdPLB=Exp(expN).Dexp(DexpN).RFmdPLB(d,dMPs(mm));
|
||||
mval1Disp=Exp(expN).Dexp(DexpN).RFmedianP(d,dMPs(mm));
|
||||
mean1Disp=Exp(expN).Dexp(DexpN).meanP(d,dMPs(mm));
|
||||
std1Disp=Exp(expN).Dexp(DexpN).stdP(d,dMPs(mm));
|
||||
minDisp=Exp(expN).Dexp(DexpN).minP(d,dMPs(mm));
|
||||
maxDisp=Exp(expN).Dexp(DexpN).maxP(d,dMPs(mm));
|
||||
fprintf(fid,'%s\t %7.2f\t %7.4f\t %7.4f\t %7.4f\t %7.4f\t\n', cell2mat(RFmdPLB),mval1Disp,mean1Disp,std1Disp,minDisp,maxDisp);
|
||||
rCnt=rCnt+1;
|
||||
data(rCnt,1:5)=expjobsfld[mval1Disp,mean1Disp,std1Disp,minDisp,maxDisp];
|
||||
rnames(rCnt)=RFmdPLB;
|
||||
end
|
||||
end
|
||||
catch
|
||||
message='No Distributed RF1 MasterPlates'
|
||||
end
|
||||
catch
|
||||
Warndlg('Problem writing the RFdiagnosticSheet.txt file')
|
||||
end
|
||||
fclose(fid)
|
||||
catch
|
||||
msg='EZdiagRFsSheet.m failed. Check Permissions'
|
||||
end
|
||||
63
qhtcp-workflow/apps/matlab/ezview/EZdiagRFsSheetwImport.m
Executable file
63
qhtcp-workflow/apps/matlab/ezview/EZdiagRFsSheetwImport.m
Executable file
@@ -0,0 +1,63 @@
|
||||
% Diagnostic sheet called by EZvInitLoad.m, EZexpSel.m ?EZinteractDev_.m?
|
||||
global Exp
|
||||
|
||||
intLfilename1=fullfile(Exp(expN).resDir,'PrintResults','!RFsDiagnostics.txt');
|
||||
fid=fopen(RFdiagnostic,'w');
|
||||
ln=1;
|
||||
fprintf(fid,'%d\t',ln);
|
||||
fprintf(fid,'%s\ExpName:::','Reference Diagnostic Values');
|
||||
|
||||
% Will need to reverse the equals pulling data from the Exp source as needed
|
||||
% to populate the printout diagnostice sheet.
|
||||
for d=1:DMnum
|
||||
fprintf(fid,'RF Name\Median\Mean\STD\Max\Min');
|
||||
fprintf(fid,'\n')
|
||||
fprintf(fid,'\n')
|
||||
RFmd1pos= Exp(expN).RFmd1indx(d+1);
|
||||
RF1mp= Exp(expN).RFmd1pltN;
|
||||
std1= Exp(expN).std1(:);
|
||||
mean1= Exp(expN).mean1(:);
|
||||
min1= Exp(expN).min1(:);
|
||||
max1= Exp(expN).max1(:);
|
||||
|
||||
RFmd2pos= Exp(expN).RFmd2indx(d+1);
|
||||
RF2mp= Exp(expN).RFmd2pltN;
|
||||
std2= Exp(expN).std2(d+1);
|
||||
mean2= Exp(expN).mean2(d+1);
|
||||
min2= Exp(expN).min2(d,dMPs(mm));
|
||||
max2= Exp(expN).max2(d,dMPs(mm));
|
||||
|
||||
nzPosIndxDG= Exp(expN).RFmdGindx(d);
|
||||
dMP= Exp(expN).RFmdGpltN(d);
|
||||
rf1scNdisp= Exp(expN).RFmdGscanN(d);
|
||||
mvalsDGx= Exp(expN).RFmedianG(d);
|
||||
RFstdGx= Exp(expN).RFstdG(d);
|
||||
RFmeanGx= Exp(expN).RFmeanG(d);
|
||||
RFmeanG=Exp(expN).minG(d,dMPs(mm));
|
||||
maxG= Exp(expN).maxG(d,dMPs(mm));
|
||||
minG= Exp(expN).minG(d,dMPs(mm));
|
||||
end
|
||||
|
||||
for mm=1:length(dMPs)
|
||||
for d=1:DMnum
|
||||
RFmd1posD= Exp(expN).RFmdPindx(d,dMPs(mm));
|
||||
dMP= Exp(expN).RFmdPpltN(d,dMPs(mm)); % This is a storage of the MasterPlate used NOT the ScanPlate? WeMight wish to store the ScanPlateNumber also???
|
||||
rf1scNdisp= Exp(expN).RFmdPscanN(d,dMPs(mm));
|
||||
mval1Disp= Exp(expN).RFmedianP(d,dMPs(mm));
|
||||
std1Disp= Exp(expN).stdP(d,dMPs(mm));
|
||||
mean1Disp= Exp(expN).meanP(d,dMPs(mm));
|
||||
minDisp= Exp(expN).minP(d,dMPs(mm));
|
||||
maxDisp= Exp(expN).maxP(d,dMPs(mm));
|
||||
end
|
||||
end
|
||||
|
||||
%{
|
||||
RFcombValList= cat(1,medValList1{d+1},medValList2{d+1});
|
||||
rf12mean(RFcombValList)= Exp(expN).RFmean(d+1);
|
||||
std12(RFcombValList)= Exp(expN).RFstd(d+1);
|
||||
Exp(expN).RFmin(d+1)=min(RFcombValList);
|
||||
Exp(expN).RFmax(d+1)=max(RFcombValList);
|
||||
%}
|
||||
|
||||
|
||||
fclose(fid)
|
||||
1125
qhtcp-workflow/apps/matlab/ezview/EZexpSel.m
Executable file
1125
qhtcp-workflow/apps/matlab/ezview/EZexpSel.m
Executable file
File diff suppressed because it is too large
Load Diff
549
qhtcp-workflow/apps/matlab/ezview/EZfigTrendOL.m
Executable file
549
qhtcp-workflow/apps/matlab/ezview/EZfigTrendOL.m
Executable file
@@ -0,0 +1,549 @@
|
||||
%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
|
||||
|
||||
405
qhtcp-workflow/apps/matlab/ezview/EZhtMap.m
Executable file
405
qhtcp-workflow/apps/matlab/ezview/EZhtMap.m
Executable file
@@ -0,0 +1,405 @@
|
||||
%EZhtMap
|
||||
global Exp
|
||||
global ghandles
|
||||
global adj
|
||||
global flip
|
||||
|
||||
if isempty(adj), adj=1.5; flip='T'; end
|
||||
load('MyColormap1','modJet1')
|
||||
load('MyColormap2','modJet2')
|
||||
%load('MyColormap2','modJet0')
|
||||
%adj=1.5;
|
||||
cleanPallet=zeros(24,16);
|
||||
if expN==1,DexpN=(get(handles.DN1,'value')); end
|
||||
if expN==2,DexpN=(get(handles.DN2,'value')); end
|
||||
if expN==3,DexpN=(get(handles.DN3,'value')); end
|
||||
Exp(expN).DexpN=DexpN;
|
||||
try
|
||||
if expN==1,MPsel=floor(get(ghandles.MPsldr1,'value')); end
|
||||
if expN==2,MPsel=floor(get(ghandles.MPsldr2,'value')); end
|
||||
if expN==3,MPsel=floor(get(ghandles.MPsldr3,'value')); end
|
||||
if expN==1,pertSel=floor(get(ghandles.DMsldr1,'value')); end
|
||||
if expN==2,pertSel=floor(get(ghandles.DMsldr2,'value')); end
|
||||
if expN==3,pertSel=floor(get(ghandles.DMsldr3,'value')); end
|
||||
catch
|
||||
MPsel=1;
|
||||
pertSel=1;
|
||||
end
|
||||
|
||||
if expN==1, expAxes=ghandles.Iaxes1;end
|
||||
if expN==2, expAxes=ghandles.Iaxes2;end
|
||||
if expN==3, expAxes=ghandles.Iaxes3;end
|
||||
|
||||
dmN=length(Exp(expN).Dexp(DexpN).DM.drug);
|
||||
mpSel=Exp(expN).Dexp(DexpN).MPsel;
|
||||
dmSel=Exp(expN).Dexp(DexpN).pertSel;
|
||||
scnN=dmSel + (dmN*(mpSel-1));
|
||||
|
||||
if expN==1,htTog=Exp(1).htmapPBsel;end
|
||||
if expN==2,htTog=Exp(2).htmapPBsel;end
|
||||
if expN==3,htTog=Exp(3).htmapPBsel;end
|
||||
|
||||
if htTog==0
|
||||
colormap(flipud(modJet1)) % colormap(modJet2)
|
||||
L=Exp(expN).Dexp(DexpN).scan(scnN).plate.CFout(:,5);
|
||||
L=reshape(L,24,16);
|
||||
LpStd=mean(nonzeros(L(:)))+(adj*std(nonzeros(L(:))));
|
||||
LnStd=mean(nonzeros(L(:))-(adj*std(nonzeros(L(:)))));
|
||||
|
||||
% Data rescaling for Heatmap display (color range- mean+/std*adjustment)
|
||||
for i=1:size(L,1)
|
||||
for j=1:size(L,2)
|
||||
if L(i,j)>LpStd,
|
||||
L4hMap(i,j)=LpStd;
|
||||
elseif L(i,j)<LnStd && L(i,j)~=0
|
||||
L4hMap(i,j)=LnStd;
|
||||
elseif L(i,j)==0
|
||||
L4hMap(i,j)=LpStd+0.2*std(L(:));
|
||||
else
|
||||
L4hMap(i,j)=L(i,j);
|
||||
end
|
||||
end
|
||||
end
|
||||
% L4hMap=1-(L4hMap/(max(L4hMap(:))));
|
||||
|
||||
if prntHt==0
|
||||
hTogHt=figure;
|
||||
h=image(cleanPallet); % hTogHt=image(cleanPallet);
|
||||
h=image(L4hMap); % hTogHt=image(L4hMap);
|
||||
if isequal(char(flip) , 'T')
|
||||
colormap(flipud(modJet1)) %(flipud(hot)) %(jet); % invert heat map for L so that fastgrowth is 'hotter' red
|
||||
else
|
||||
colormap(modJet2)
|
||||
end
|
||||
set(h,'CDataMapping','scale') %set(hTogHt,'CDataMapping','scale')
|
||||
else
|
||||
figure
|
||||
h=image(cleanPallet); %hTogHt=image(cleanPallet);
|
||||
h=image(L4hMap); %hTogHt=image(L4hMap);
|
||||
if isequal(char(flip) , 'T')
|
||||
colormap(flipud(modJet1)) %(flipud(hot)) %(jet); % invert heat map for L so that fastgrowth is 'hotter' red
|
||||
else
|
||||
colormap(modJet2)
|
||||
end
|
||||
set(h,'CDataMapping','scale')
|
||||
end
|
||||
|
||||
% h=image(L);
|
||||
% colormap(flipud(hot)) %(jet); % invert heat map for L so that fastgrowth is 'hotter' red
|
||||
% set(h,'CDataMapping','scale')
|
||||
if expN==1,cla(handles.HtMap1);copyobj(h,ghandles.HtMap1);end
|
||||
if expN==2,cla(handles.HtMap2);copyobj(h,ghandles.HtMap2);end
|
||||
if expN==3,cla(handles.HtMap3);copyobj(h,ghandles.HtMap3);end
|
||||
|
||||
if prntHt==0
|
||||
%if expN==1,cla(handles.HtMap1);copyobj(hTogHt,ghandles.HtMap1);end
|
||||
%if expN==2,cla(handles.HtMap2);copyobj(hTogHt,ghandles.HtMap2);end
|
||||
%if expN==3,cla(handles.HtMap3);copyobj(hTogHt,ghandles.HtMap3);end
|
||||
close(hTogHt)
|
||||
else %if clicking to produce a 'printable' save display
|
||||
set(gca,'XDir','reverse')
|
||||
set(gca,'XTickMode','manual')
|
||||
%set(gca,'XTickLabel',{'2';'4';'6';'8';'10';'12';'14';'16'})
|
||||
%set(gca,'XTickLabel',{'16';'14';'12';'10';'8';'6';'4';'2'})
|
||||
%set(gca,'XTick',{0;2;4;6;8;10;12;14;16;18})
|
||||
colorbar
|
||||
expLblHtmap=Exp(expN).Dexp.ExpFoldr;
|
||||
mediaLBhtmap=char(strcat(', Agar-',Exp(expN).Dexp(DexpN).DM.media{pertSel},' ',...
|
||||
Exp(expN).Dexp(DexpN).DM.drug{pertSel},Exp(expN).Dexp(DexpN).DM.conc{pertSel},' ',...
|
||||
Exp(expN).Dexp(DexpN).DM.mod1{pertSel},Exp(expN).Dexp(DexpN).DM.conc1{pertSel},' ',...
|
||||
Exp(expN).Dexp(DexpN).DM.mod2{pertSel},Exp(expN).Dexp(DexpN).DM.conc2{pertSel}));
|
||||
title({strcat('L HeatMap for - ',expLblHtmap),strcat('MP=',num2str(mpSel),' ,DM=',num2str(dmSel),mediaLBhtmap)})
|
||||
end
|
||||
colormap(modJet1)
|
||||
elseif htTog==1
|
||||
colormap(modJet1);
|
||||
K=Exp(expN).Dexp(DexpN).scan(scnN).plate.CFout(:,3);
|
||||
K=reshape(K,24,16);
|
||||
%Data rescaling for Heatmap display (color ranged mean+/std*multiplier)
|
||||
pStd=mean(nonzeros(K(:)))+(adj*std(nonzeros(K(:))));
|
||||
nStd=mean(nonzeros(K(:)))-(adj*std(nonzeros(K(:))));
|
||||
for i=1:size(K,1)
|
||||
for j=1:size(K,2)
|
||||
if K(i,j)>pStd,
|
||||
hMap(i,j)=pStd;
|
||||
elseif K(i,j)<nStd && K(i,j)~=0
|
||||
hMap(i,j)=nStd;
|
||||
elseif K(i,j)==0
|
||||
hMap(i,j)=nStd-0.2*std(K(:));
|
||||
else
|
||||
hMap(i,j)=K(i,j);
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
if prntHt==0
|
||||
hTogHt=figure;
|
||||
h=image(cleanPallet);
|
||||
else
|
||||
figure
|
||||
h=image(cleanPallet);
|
||||
end
|
||||
% h=image(cleanPallet);
|
||||
h=image(hMap);
|
||||
colormap(modJet1); % heat map
|
||||
set(h,'CDataMapping','scale')
|
||||
if expN==1,cla(handles.HtMap1);copyobj(h,ghandles.HtMap1);end
|
||||
if expN==2,cla(handles.HtMap2);copyobj(h,ghandles.HtMap2);end
|
||||
if expN==3,cla(handles.HtMap3);copyobj(h,ghandles.HtMap3);end
|
||||
|
||||
if prntHt==0
|
||||
close(hTogHt)
|
||||
else
|
||||
set(gca,'XDir','reverse')
|
||||
set(gca,'XTickMode','manual')
|
||||
%set(gca,'XTickLabel',{'2';'4';'6';'8';'10';'12';'14';'16'})
|
||||
%set(gca,'XTickLabel',{'16';'14';'12';'10';'8';'6';'4';'2'})
|
||||
%set(gca,'XTick',{0;2;4;6;8;10;12;14;16;18})
|
||||
colorbar
|
||||
expLblHtmap=Exp(expN).Dexp.ExpFoldr;
|
||||
mediaLBhtmap=char(strcat(', Agar-',Exp(expN).Dexp(DexpN).DM.media{pertSel},' ',...
|
||||
Exp(expN).Dexp(DexpN).DM.drug{pertSel},Exp(expN).Dexp(DexpN).DM.conc{pertSel},' ',...
|
||||
Exp(expN).Dexp(DexpN).DM.mod1{pertSel},Exp(expN).Dexp(DexpN).DM.conc1{pertSel},' ',...
|
||||
Exp(expN).Dexp(DexpN).DM.mod2{pertSel},Exp(expN).Dexp(DexpN).DM.conc2{pertSel}));
|
||||
title({strcat('K HeatMap for - ',expLblHtmap),strcat('MP=',num2str(mpSel),' ,DM=',num2str(dmSel),mediaLBhtmap)})
|
||||
end
|
||||
elseif htTog==2
|
||||
colormap(modJet1);
|
||||
r=Exp(expN).Dexp(DexpN).scan(scnN).plate.CFout(:,4);
|
||||
r=reshape(r,24,16);
|
||||
% Data rescaling for Heatmap display (color ranged mean+/std*multiplier)
|
||||
pStd=mean(nonzeros(r(:)))+(adj*std(nonzeros(r(:))));
|
||||
nStd=mean(nonzeros(r(:)))-(adj*std(nonzeros(r(:))));
|
||||
for i=1:size(r,1)
|
||||
for j=1:size(r,2)
|
||||
if r(i,j)>pStd,
|
||||
hMap(i,j)=pStd;
|
||||
elseif r(i,j)<nStd && r(i,j)~=0,
|
||||
hMap(i,j)=nStd;
|
||||
elseif r(i,j)==0
|
||||
hMap(i,j)=nStd-0.2*std(r(:));
|
||||
else
|
||||
hMap(i,j)=r(i,j);
|
||||
end
|
||||
end
|
||||
end
|
||||
if prntHt==0
|
||||
hTogHt=figure;
|
||||
h=image(cleanPallet);
|
||||
else
|
||||
figure
|
||||
h=image(cleanPallet);
|
||||
end
|
||||
% h=image(cleanPallet);
|
||||
h=image(hMap);
|
||||
colormap(modJet1); % heat map
|
||||
set(h,'CDataMapping','scale')
|
||||
if expN==1,cla(handles.HtMap1);copyobj(h,ghandles.HtMap1);end
|
||||
if expN==2,cla(handles.HtMap2);copyobj(h,ghandles.HtMap2);end
|
||||
if expN==3,cla(handles.HtMap3);copyobj(h,ghandles.HtMap3);end
|
||||
if prntHt==0
|
||||
close(hTogHt)
|
||||
else
|
||||
set(gca,'XDir','reverse')
|
||||
set(gca,'XTickMode','manual')
|
||||
%set(gca,'XTickLabel',{'2';'4';'6';'8';'10';'12';'14';'16'})
|
||||
%set(gca,'XTickLabel',{'16';'14';'12';'10';'8';'6';'4';'2'})
|
||||
%set(gca,'XTick',{0;2;4;6;8;10;12;14;16;18})
|
||||
colorbar
|
||||
expLblHtmap=Exp(expN).Dexp.ExpFoldr;
|
||||
mediaLBhtmap=char(strcat(', Agar-',Exp(expN).Dexp(DexpN).DM.media{pertSel},' ',...
|
||||
Exp(expN).Dexp(DexpN).DM.drug{pertSel},Exp(expN).Dexp(DexpN).DM.conc{pertSel},' ',...
|
||||
Exp(expN).Dexp(DexpN).DM.mod1{pertSel},Exp(expN).Dexp(DexpN).DM.conc1{pertSel},' ',...
|
||||
Exp(expN).Dexp(DexpN).DM.mod2{pertSel},Exp(expN).Dexp(DexpN).DM.conc2{pertSel}));
|
||||
title({strcat('r HeatMap for - ',expLblHtmap),strcat('MP=',num2str(mpSel),' ,DM=',num2str(dmSel),mediaLBhtmap)})
|
||||
end
|
||||
elseif htTog==3
|
||||
RFconfig=Exp(expN).RFconfig; %ZoneRelated
|
||||
if htMapTogPBfg==1
|
||||
if RFconfig==2,
|
||||
QctrlRF='Select Distributed Control RF option: (G)Global, (L)Local';
|
||||
QpertRF='Select Distributed Perturbation RF option: (G)Global, (L)Local';
|
||||
defaultanswer={'G','L'}; %{'80','60','100','3,4,5','N','39','Y','G','L'};
|
||||
try defaultanswer=Exp(expN).htmapRFanswer; catch, defaultanswer={'G','L'};end %ZoneRelated
|
||||
end
|
||||
if RFconfig==3,
|
||||
QctrlRF='Select Control RF option: (F)FullPlate, (G)GlobalDistributed, (L)LocalDistributed';
|
||||
QpertRF='Select Perturbation RF option: (F)FullPlate, (G)GlobalDistributed, (L)LocalDistributed';
|
||||
defaultanswer={'F','L'}; %{'80','60','100','3,4,5','N','39','Y','F','L'};
|
||||
try defaultanswer=Exp(expN).htmapRFanswer; catch, defaultanswer={'F','L'}; end %ZoneRelated
|
||||
end
|
||||
if RFconfig~=1,
|
||||
prompt={QctrlRF,QpertRF};
|
||||
name='Interaction User Input';
|
||||
numlines=1;
|
||||
answer=inputdlg(prompt,name,numlines,defaultanswer);
|
||||
if RFconfig==2,
|
||||
if ~ismember(answer{1},['g' 'G' 'l' 'L']), answer(1)=defaultanswer(1); end
|
||||
if ~ismember(answer{2},['g' 'G' 'l' 'L']), answer(2)=defaultanswer(2); end
|
||||
end
|
||||
if RFconfig==3,
|
||||
if ~ismember(answer{1},['f' 'F' 'g' 'G' 'l' 'L']), answer(1)=defaultanswer(1); end
|
||||
if ~ismember(answer{2},['f' 'F' 'g' 'G' 'l' 'L']), answer(2)=defaultanswer(2); end
|
||||
end
|
||||
answer(1)=strrep(answer(1),'f','F'); answer(1)=strrep(answer(1),'g','G'); answer(1)=strrep(answer(1),'l','L');
|
||||
answer(2)=strrep(answer(2),'f','F'); answer(2)=strrep(answer(2),'g','G'); answer(2)=strrep(answer(2),'l','L');
|
||||
Exp(expN).htmapRFanswer=answer; %ZoneRelated %store user last selections
|
||||
end
|
||||
end
|
||||
htMapTogPBfg=0;
|
||||
answer=Exp(expN).htmapRFanswer; %ZoneRelated
|
||||
|
||||
% for j=1:1 %dmN
|
||||
% for m=1:1 %mpN
|
||||
j=dmSel;
|
||||
DM0=dmSel; DMj=dmSel;
|
||||
m=mpSel;
|
||||
anN=[1 2];
|
||||
% Call subroutine to interpret user RF inputs & det. Rn and Rs values
|
||||
EZintRFs
|
||||
scnNdm1=1 + (dmN*(m-1))
|
||||
scnN=j + (dmN*(m-1)) % 1,6,11..; 2,7,12 ..; 3,8,13..;
|
||||
Xn{m,j,1}=[];
|
||||
Xln{m,j,1}=[];
|
||||
Xhn{m,j,1}=[];
|
||||
Xn{m,1,:}=Exp(expN).Dexp(DexpN).scan(scnNdm1).plate(1).CFout(:,5);
|
||||
Xln{m,1,:}=Exp(expN).Dexp(DexpN).scan(scnNdm1).plate(1).CFout(:,11); %Exp(expN).Dexp(DexpN).scan(DM{j}(m)).plate(1).CFout(:,11);
|
||||
Xhn{m,1,:}=Exp(expN).Dexp(DexpN).scan(scnNdm1).plate(1).CFout(:,12); %Exp(expN).Dexp(DexpN).scan(DM{j}(m)).plate(1).CFout(:,12);
|
||||
Xn{m,j,:}=Exp(expN).Dexp(DexpN).scan(scnN).plate(1).CFout(:,5); %Exp(expN).Dexp(DexpN).scan(DM{j}(m)).plate(1).CFout(:,5);
|
||||
htmpCpyXn=Xn{m,j,:}'; % Use to find and delineate no growth spots with 999 in text field (infinite interaction) value;
|
||||
Xn{m,j,:}(Xn{m,j,:}==0)=1.2*(max(Xn{m,j,:})); %to keep the colormap scale tighter %=140;
|
||||
Xln{m,j,:}=Exp(expN).Dexp(DexpN).scan(scnN).plate(1).CFout(:,11); %Exp(expN).Dexp(DexpN).scan(DM{j}(m)).plate(1).CFout(:,11);
|
||||
Xhn{m,j,:}=Exp(expN).Dexp(DexpN).scan(scnN).plate(1).CFout(:,12); %Exp(expN).Dexp(DexpN).scan(DM{j}(m)).plate(1).CFout(:,12);
|
||||
%intL{m,j,:}=((Xn{m,j,:} - Xn{m,1,:}) - (Rn(j)-Rn(1)));
|
||||
intL=((Xn{m,j,:} - Xn{m,1,:}) - (Rn(j)-Rn(1)));
|
||||
Exp(expN).HtMpIntN2=intL; %ZoneRelated
|
||||
%{
|
||||
intL{m,j,:}(Xn{m,j,:}==1.2*(max(Xn{m,j,:})))=100;
|
||||
intL{m,j,:}(intL{m,j,:}==0)=-0.0001;
|
||||
%}
|
||||
percentRs=100;
|
||||
RsReduced(j)=percentRs/100* Rs(j);
|
||||
deltaRp(j)=(Rn(j)+RsReduced(j))-(Rn(1)+RsReduced(1));
|
||||
deltaRn(j)=(Rn(j)-RsReduced(j))-(Rn(1)-RsReduced(1));
|
||||
if deltaRp(j)==0, deltaRp(j)=0.0002; end
|
||||
if deltaRn(j)==0, deltaRn(j)=0.0002; end
|
||||
deltaYp=zeros(1,384); deltaYn=zeros(1,384);
|
||||
deltaXRp=zeros(1,384); deltaXRn=zeros(1,384);
|
||||
deltaXR{m,j}=zeros(1,384);
|
||||
for i=1:384
|
||||
% Select lower or upper boundary value based on Yn(1)
|
||||
if Xn{m,j}(i) >=(Rn(j)+RsReduced(j));
|
||||
deltaYp(i)= Xln{m,j}(i)-Xln{m,1}(i);
|
||||
elseif Xn{m,j}(i) < (Rn(j)-RsReduced(j));
|
||||
deltaYn(i)= Xhn{m,j}(i)-Xhn{m,1}(i);
|
||||
% Insert else
|
||||
end
|
||||
% Calculate deltaXRp and deltaXRn for each plate based on growth relative to deltaRp or deltaRn
|
||||
if deltaYp(i)>=deltaRp(j)
|
||||
deltaXRp(i)=deltaYp(i)-deltaRp(j);
|
||||
deltaXR{m,j}(i)=deltaXRp(i); %Consoludate into deltaXR{m,j}(i) cell array
|
||||
elseif deltaYn(i) < deltaRn(j)
|
||||
deltaXRn(i)=deltaYn(i)-deltaRn(j);
|
||||
deltaXR{m,j}(i)=deltaXRn(i); %Consoludate into deltaXR{m,j}(i) cell array
|
||||
if deltaYn(i)==0, deltaXR{m,j}(i)=0; end
|
||||
end
|
||||
% Ambiguous results that have delta gene values that are less than the variance of Reference+/-std
|
||||
end
|
||||
|
||||
deltaXRl=deltaXR{m,j,:};
|
||||
htMpN1Lzeros999=deltaXR{m,j,:};
|
||||
deltaXRl(htmpCpyXn==0)=1.2*max(deltaXRl);
|
||||
htMpN1Lzeros999(htmpCpyXn==0)=999;
|
||||
Exp(expN).HtMpIntN1=htMpN1Lzeros999';
|
||||
|
||||
I=reshape(deltaXRl,24,16);
|
||||
if prntHt==0
|
||||
hTogHt=figure;
|
||||
h=image(cleanPallet);
|
||||
else
|
||||
figure
|
||||
h=image(cleanPallet);
|
||||
end
|
||||
% h=figure;
|
||||
h=image(I);
|
||||
colormap(jet); % heat map
|
||||
set(h,'CDataMapping','scale')
|
||||
|
||||
if expN==1,cla(handles.HtMap1);copyobj(h,ghandles.HtMap1);end
|
||||
if expN==2,cla(handles.HtMap2);copyobj(h,ghandles.HtMap2);end
|
||||
if expN==3,cla(handles.HtMap3);copyobj(h,ghandles.HtMap3);end
|
||||
|
||||
if prntHt==0
|
||||
close(hTogHt)
|
||||
else
|
||||
set(gca,'XDir','reverse')
|
||||
set(gca,'XTickMode','manual')
|
||||
% set(gca,'XTickLabel',{'2';'4';'6';'8';'10';'12';'14';'16'})
|
||||
% set(gca,'XTickLabel',{'16';'14';'12';'10';'8';'6';'4';'2'})
|
||||
% set(gca,'XTick',{0;2;4;6;8;10;12;14;16;18})
|
||||
colorbar
|
||||
expLblHtmap=Exp(expN).Dexp.ExpFoldr;
|
||||
mediaLBhtmap=char(strcat(', Agar-',Exp(expN).Dexp(DexpN).DM.media{pertSel},' ',...
|
||||
Exp(expN).Dexp(DexpN).DM.drug{pertSel},Exp(expN).Dexp(DexpN).DM.conc{pertSel},' ',...
|
||||
Exp(expN).Dexp(DexpN).DM.mod1{pertSel},Exp(expN).Dexp(DexpN).DM.conc1{pertSel},' ',...
|
||||
Exp(expN).Dexp(DexpN).DM.mod2{pertSel},Exp(expN).Dexp(DexpN).DM.conc2{pertSel}));
|
||||
title({strcat('N1 HeatMap for - ',expLblHtmap),strcat('MP=',num2str(mpSel),' ,DM=',num2str(dmSel),mediaLBhtmap)})
|
||||
end
|
||||
elseif htTog==4
|
||||
answer=Exp(expN).htmapRFanswer; % ZoneRelated
|
||||
RFconfig=Exp(expN).RFconfig; % ZoneRelated
|
||||
answer=Exp(expN).htmapRFanswer; % ZoneRelated
|
||||
j=dmSel;
|
||||
DM0=dmSel; DMj=dmSel;
|
||||
m=mpSel;
|
||||
anN=[1 2];
|
||||
EZintRFs % Call subroutine to interpret user RF inputs
|
||||
scnNdm1=1 + (dmN*(m-1))
|
||||
scnN=j + (dmN*(m-1)) % 1,6,11..; 2,7,12 ..; 3,8,13..;
|
||||
Xn{m,j,1}=[];
|
||||
Xn{m,1,:}=Exp(expN).Dexp(DexpN).scan(scnNdm1).plate(1).CFout(:,5);
|
||||
Xn{m,j,:}=Exp(expN).Dexp(DexpN).scan(scnN).plate(1).CFout(:,5);
|
||||
htmpCpyXn=Xn{m,j,:}'; % Use to find and delineate no growth spots with 999 in text field (infinite interaction) value;
|
||||
intL=((Xn{m,j,:} - Xn{m,1,:}) - (Rn(j)-Rn(1)));
|
||||
Exp(expN).HtMpIntN2=intL; % ZoneRelated
|
||||
intL=Exp(expN).HtMpIntN2; % ZoneRelated
|
||||
I=reshape(intL,24,16);
|
||||
|
||||
if prntHt==0
|
||||
hTogHt=figure;
|
||||
h=image(cleanPallet);
|
||||
elseif
|
||||
figure
|
||||
h=image(cleanPallet);
|
||||
end
|
||||
%h=figure
|
||||
h=image(I)
|
||||
colormap(jet); % heat map
|
||||
set(h,'CDataMapping','scale')
|
||||
if expN==1,cla(handles.HtMap1);copyobj(h,ghandles.HtMap1);end
|
||||
if expN==2,cla(handles.HtMap2);copyobj(h,ghandles.HtMap2);end
|
||||
if expN==3,cla(handles.HtMap3);copyobj(h,ghandles.HtMap3);end
|
||||
|
||||
if prntHt==0
|
||||
close(hTogHt)
|
||||
else
|
||||
set(gca,'XDir','reverse')
|
||||
set(gca,'XTickMode','manual')
|
||||
% set(gca,'XTickLabel',{'2';'4';'6';'8';'10';'12';'14';'16'})
|
||||
% set(gca,'XTickLabel',{'16';'14';'12';'10';'8';'6';'4';'2'})
|
||||
% set(gca,'XTick',{0;2;4;6;8;10;12;14;16;18})
|
||||
colorbar
|
||||
expLblHtmap=Exp(expN).Dexp.ExpFoldr;
|
||||
mediaLBhtmap=char(strcat(', Agar-',Exp(expN).Dexp(DexpN).DM.media{pertSel},' ',...
|
||||
Exp(expN).Dexp(DexpN).DM.drug{pertSel},Exp(expN).Dexp(DexpN).DM.conc{pertSel},' ',...
|
||||
Exp(expN).Dexp(DexpN).DM.mod1{pertSel},Exp(expN).Dexp(DexpN).DM.conc1{pertSel},' ',...
|
||||
Exp(expN).Dexp(DexpN).DM.mod2{pertSel},Exp(expN).Dexp(DexpN).DM.conc2{pertSel}));
|
||||
title({strcat('N2 HeatMap for - ',expLblHtmap),strcat('MP=',num2str(mpSel),' ,DM=',num2str(dmSel),mediaLBhtmap)})
|
||||
end
|
||||
end
|
||||
|
||||
prntHt=0;
|
||||
|
||||
% Update htMapText for location on the first 'roll thru of htMapPB
|
||||
EZhtMapText
|
||||
|
||||
79
qhtcp-workflow/apps/matlab/ezview/EZhtMapText.m
Executable file
79
qhtcp-workflow/apps/matlab/ezview/EZhtMapText.m
Executable file
@@ -0,0 +1,79 @@
|
||||
%EZhtMapText.m
|
||||
% HeatMap Text Field
|
||||
try
|
||||
indx=Exp(expN).Dexp(DexpN).spotIndx;
|
||||
l=Exp(expN).Dexp(DexpN).scan(scnN).plate.CFout(indx,5);
|
||||
k=Exp(expN).Dexp(DexpN).scan(scnN).plate.CFout(indx,3);
|
||||
r=Exp(expN).Dexp(DexpN).scan(scnN).plate.CFout(indx,4);
|
||||
try
|
||||
ll=num2str(l);
|
||||
if length(ll)>5,htl=ll(1:5);else htl=ll;end
|
||||
if ~isempty(htl), htl=strcat('_L=',htl);else htl=' ';end
|
||||
catch
|
||||
htl=' ';
|
||||
end
|
||||
|
||||
try
|
||||
kk=num2str(k);
|
||||
if length(kk)>5,htk=kk(1:5);else htk=kk;end
|
||||
if ~isempty(htk), htk=strcat('_K=',htk);else htk=' ';end
|
||||
catch
|
||||
htk=' ';
|
||||
end
|
||||
|
||||
try
|
||||
rr=num2str(r);
|
||||
if length(rr)>5,htr=rr(1:5);else htr=rr;end
|
||||
if ~isempty(htr), htr=strcat('_r=',htr);else htr=' ';end
|
||||
catch
|
||||
htr=' ';
|
||||
end
|
||||
|
||||
try
|
||||
n1=num2str(Exp(expN).HtMpIntN1(indx)); %num2str(Exp(expN).Dexp(DexpN).HtMpIntN1(indx));
|
||||
if length(n1)>5,N1=n1(1:5);else N1=n1; end
|
||||
if ~isempty(N1), htN1=strcat('_N1=',N1);else htN1=' ';end
|
||||
catch
|
||||
htN1=' ';
|
||||
end
|
||||
|
||||
try
|
||||
n2=num2str(Exp(expN).HtMpIntN2(indx)); %num2str(Exp(expN).Dexp(DexpN).HtMpIntN2(indx));
|
||||
if length(n2)>5,N2=n2(1:5);else N2=n2; end
|
||||
if ~isempty(N2), htN2=strcat('_N2=',N2);else htN2=' ';end %htN2=strcat('_N2=',N2);
|
||||
catch
|
||||
htN2=' ';
|
||||
end
|
||||
|
||||
try
|
||||
if htTog==0 || htTog> 2
|
||||
htmapStr=strcat(htl, htN1,htN2)
|
||||
if expN==1,set(ghandles.HtMapVals1,'string',htmapStr);end
|
||||
if expN==2,set(ghandles.HtMapVals2,'string',htmapStr);end
|
||||
if expN==3,set(ghandles.HtMapVals3,'string',htmapStr);end
|
||||
end
|
||||
catch
|
||||
end
|
||||
|
||||
try
|
||||
if htTog==1
|
||||
htmapStr=htk %strcat(htl, htN1,htN2)
|
||||
if expN==1,set(ghandles.HtMapVals1,'string',htmapStr);end
|
||||
if expN==2,set(ghandles.HtMapVals2,'string',htmapStr);end
|
||||
if expN==3,set(ghandles.HtMapVals3,'string',htmapStr);end
|
||||
end
|
||||
catch
|
||||
end
|
||||
|
||||
try
|
||||
if htTog==2
|
||||
htmapStr=htr %strcat(htl, htN1,htN2)
|
||||
if expN==1,set(ghandles.HtMapVals1,'string',htmapStr);end
|
||||
if expN==2,set(ghandles.HtMapVals2,'string',htmapStr);end
|
||||
if expN==3,set(ghandles.HtMapVals3,'string',htmapStr);end
|
||||
end
|
||||
catch
|
||||
end
|
||||
catch
|
||||
msg='No spot selected (indx=Exp(expN).Dexp(DexpN).spotIndx)'
|
||||
end
|
||||
150
qhtcp-workflow/apps/matlab/ezview/EZintPrint.m
Executable file
150
qhtcp-workflow/apps/matlab/ezview/EZintPrint.m
Executable file
@@ -0,0 +1,150 @@
|
||||
%print Interaction Data Output file
|
||||
%resDir=Exp(expN).Dexp(DexpN).resDir;
|
||||
%expN=1; %temp entry
|
||||
if strcmp(Exp(expN).DexpType, 'single') || strcmp(Exp(expN).DexpType,'multi')
|
||||
pertTypeLB= '; DMselections:';
|
||||
Rsmax=max(Rs(1),Rs(1:dmN));
|
||||
intLfilename1= fullfile(Exp(expN).Dexp(DexpN).resDir,'PrintResults','!AggrevatingL-DM.txt'); %Longer shorter
|
||||
intLfilename2= fullfile(Exp(expN).Dexp(DexpN).resDir,'PrintResults','!AlleviatingL-DM.txt');
|
||||
intLfilename3= fullfile(Exp(expN).Dexp(DexpN).resDir,'PrintResults','!AggrevatingLadjusted-DM.txt');
|
||||
intLfilename4= fullfile(Exp(expN).Dexp(DexpN).resDir,'PrintResults','!AlleviatingLadjusted-DM.txt');
|
||||
elseif strcmp(Exp(expN).DexpType, 'chrono')
|
||||
pertTypeLB= '; Dayselections:';
|
||||
Rsmax=max(Rs(1),Rs(1:dmN));
|
||||
%MKDIR for ChonologicalStudy results in Exp Group folder
|
||||
%For chrono studies, put the interaction results in the first Exp of selected group. i.e., DexpN=1;
|
||||
intLfilename1= fullfile(Exp(expN).Dexp(1).resDir,'PrintResults','!AggrevatingL-Chrono.txt');
|
||||
intLfilename2= fullfile(Exp(expN).Dexp(1).resDir,'PrintResults','!AlleviatingL-Chrono.txt');
|
||||
intLfilename3= fullfile(Exp(expN).Dexp(1).resDir,'PrintResults','!AggrevatingLadjusted-Chrono.txt');
|
||||
intLfilename4= fullfile(Exp(expN).Dexp(1).resDir,'PrintResults','!AlleviatingLadjusted-Chrono.txt');
|
||||
end
|
||||
|
||||
userInputs=cell2mat(strcat( 'ExpZone:',num2str(expN), '; LeftPercent',answer(1),'; RightPercent:',answer(2),...
|
||||
'; RFstdPercent:',answer(3),pertTypeLB,answer(4),'; RemoveNoGrowthInfLs:',answer(5),...
|
||||
'; NumberOfHistogramBins:',answer(6),'; Subplots:',answer(7))); %answer(7)
|
||||
|
||||
% Interaction Printout for Positive (longer L interaction values) Non-Adjusted for Ref std and curve fit boundaries
|
||||
fid=fopen(intLfilename1,'w');
|
||||
ln=1;
|
||||
fprintf(fid,'%d\t',ln);
|
||||
fprintf(fid,'%s\userInputs',strcat('AggrevatingInteractionResults for User Input: ',userInputs));
|
||||
for j=1:dmN, fprintf(fid,'%s',strcat(', Rstd',num2str(j),'_',num2str(Rs(j)))); end
|
||||
fprintf(fid, '\n');
|
||||
ln=2;
|
||||
fprintf(fid,'%d\t',ln);
|
||||
fprintf(fid, 'Orf\tGene\t');
|
||||
for j=1:length(DMsel), fprintf(fid,'%s\t',strcat('IntLdm',num2str(DMsel(j)))); end
|
||||
%fprintf(fid, 'L\tLlower\tLupper\t')
|
||||
fprintf(fid,'Specifics\tReplicate\tStrain\tMP\tRow\tCol\tIndex');
|
||||
fprintf(fid, '\n');
|
||||
if ~isempty(InterslstPos{1})
|
||||
for i=1:size(selIntP,1)
|
||||
ln=ln+1;
|
||||
fprintf(fid,'%d\t',ln);
|
||||
fprintf(fid,'%s\t%s\t',cell2mat(IPorf(i)),cell2mat(IPgene(i)));
|
||||
for j=1:length(DMsel) % 'Scan\tPlate\tRow\tCol\t');
|
||||
fprintf(fid,'%.5f\t',IntersValsPos(i,j))
|
||||
end
|
||||
% fprintf(fid,'%.5f\t%.5f\t%.5f\t',ipL(i),ipLlower(i),ipLupper(i))
|
||||
fprintf(fid,'%s\t%s\t%s\t',cell2mat(IPspecifics(i)),cell2mat(IPorfRep(i)),cell2mat(IPstrain(i)));
|
||||
fprintf(fid,'%.5f\t%.5f\t%.5f\t',selIntPx{1}(i,2),selIntPx{1}(i,4),selIntPx{1}(i,5),InterslstPos{1}(i))
|
||||
fprintf(fid, '\n');
|
||||
end
|
||||
else
|
||||
ln=ln+1;
|
||||
fprintf(fid,'%d\t',ln);
|
||||
fprintf(fid,'%s\t','Empty Set, No interaction found within set range.');
|
||||
end
|
||||
% fprintf(fid, 'Num.\tDiagnostics\tDrug\tConc\tMedia\tModifier1\tConc1\tModifier2\tConc2\tORF\tGene\tAUC\triseTm\tK\tr\tl\tR-squared\tK-lower\tK-upper\tr-lower\tr-upper\tl-lower\tl-upper\tArea\tLastInten\tSplineMaxRateTm\tLastFitTm\t1stFitTm\tMedianBase\tFitBase\tMinTm\tThreshTm\tTotFitPts\tPostThreshFitPts\t1stBackgrd\tLstBackgrd\t1stMeanTotBackgrd\tLstMeanTotBackgrd');
|
||||
fclose(fid)
|
||||
|
||||
% Interaction Printout for Negative (shorter L interaction values) Non-Adjusted for Ref std and curve fit boundaries
|
||||
fid=fopen(intLfilename2,'w');
|
||||
ln=1;
|
||||
fprintf(fid,'%d\t',ln);
|
||||
fprintf(fid,'%s\userInputs',strcat('AlleviatingInteractionResults for User Input: ',userInputs)); %fprintf(fid,'%s\userInputs',userInputs);
|
||||
for j=1:dmN, fprintf(fid,'%s',strcat(', Rstd',num2str(j),'_',num2str(Rs(j)))); end
|
||||
fprintf(fid, '\n');
|
||||
ln=2;
|
||||
fprintf(fid,'%d\t',ln);
|
||||
fprintf(fid, 'Orf\tGene\t');
|
||||
for j=1:length(DMsel), fprintf(fid,'%s\t',strcat('IntLdm',num2str(DMsel(j)))); end
|
||||
%fprintf(fid, 'L\tLlower\tLupper\t')
|
||||
fprintf(fid,'Specifics\tReplicate\tStrain\tMP\tRow\tCol\tIndex');
|
||||
fprintf(fid, '\n');
|
||||
if ~isempty(InterslstNeg{1})
|
||||
for i=1:size(selIntN,1)
|
||||
ln=ln+1;
|
||||
fprintf(fid,'%d\t',ln);
|
||||
fprintf(fid,'%s\t%s\t',cell2mat(INorf(i)),cell2mat(INgene(i)));
|
||||
for j=1:length(DMsel) % 'Scan\tPlate\tRow\tCol\t');
|
||||
fprintf(fid,'%.5f\t',IntersValsNeg(i,j))
|
||||
end
|
||||
% fprintf(fid,'%.5f\t%.5f\t%.5f\t',ipL(i),ipLlower(i),ipLupper(i))
|
||||
fprintf(fid,'%s\t%s\t%s\t',cell2mat(INspecifics(i)),cell2mat(INorfRep(i)),cell2mat(INstrain(i)));
|
||||
fprintf(fid,'%.5f\t%.5f\t%.5f\t%.5f\t',selIntNx{1}(i,2),selIntNx{1}(i,4),selIntNx{1}(i,5),InterslstNeg{1}(i))
|
||||
fprintf(fid, '\n');
|
||||
end
|
||||
end
|
||||
|
||||
fclose(fid)
|
||||
|
||||
% Interaction Printout for Positive (longer L interaction values) "ADJUSTED" for Ref std and curve fit boundaries
|
||||
fid=fopen(intLfilename3,'w');
|
||||
ln=1;
|
||||
fprintf(fid,'%d\t',ln);
|
||||
fprintf(fid,'%s\userInputs',strcat('Adjusted AggrevatingInteractionResults for User Input: ',userInputs));
|
||||
for j=1:dmN, fprintf(fid,'%s',strcat(', Rstd',num2str(j),'_',num2str(Rs(j)))); end
|
||||
fprintf(fid, '\n');
|
||||
ln=2;
|
||||
fprintf(fid,'%d\t',ln);
|
||||
fprintf(fid, 'Orf\tGene\t');
|
||||
for j=1:length(DMsel), fprintf(fid,'%s\t',strcat('IntLdm',num2str(DMsel(j)))); end
|
||||
% fprintf(fid, 'L\tLlower\tLupper\t')
|
||||
fprintf(fid,'Specifics\tReplicate\tStrain\tMP\tRow\tCol\tIndex');
|
||||
fprintf(fid, '\n');
|
||||
for i=1:size(selIntPAdj,1)
|
||||
ln=ln+1;
|
||||
fprintf(fid,'%d\t',ln);
|
||||
fprintf(fid,'%s\t%s\t',cell2mat(IPorfAdj(i)),cell2mat(IPgeneAdj(i)));
|
||||
for j=1:length(DMsel) %'Scan\tPlate\tRow\tCol\t');
|
||||
fprintf(fid,'%.5f\t',IntersValsPosAdj(i,j))
|
||||
end
|
||||
% fprintf(fid,'%.5f\t%.5f\t%.5f\t',ipL(i),ipLlower(i),ipLupper(i))
|
||||
fprintf(fid,'%s\t%s\t%s\t',cell2mat(IPspecificsAdj(i)),cell2mat(IPorfRepAdj(i)),cell2mat(IPstrainAdj(i)));
|
||||
fprintf(fid,'%.5f\t%.5f\t%.5f\t',selIntPxAdj{1}(i,2),selIntPxAdj{1}(i,4),selIntPxAdj{1}(i,5),InterslstPosAdj{1}(i))
|
||||
fprintf(fid, '\n');
|
||||
end
|
||||
% fprintf(fid, 'Num.\tDiagnostics\tDrug\tConc\tMedia\tModifier1\tConc1\tModifier2\tConc2\tORF\tGene\tAUC\triseTm\tK\tr\tl\tR-squared\tK-lower\tK-upper\tr-lower\tr-upper\tl-lower\tl-upper\tArea\tLastInten\tSplineMaxRateTm\tLastFitTm\t1stFitTm\tMedianBase\tFitBase\tMinTm\tThreshTm\tTotFitPts\tPostThreshFitPts\t1stBackgrd\tLstBackgrd\t1stMeanTotBackgrd\tLstMeanTotBackgrd');
|
||||
fclose(fid)
|
||||
|
||||
fid=fopen(intLfilename4,'w');
|
||||
ln=1;
|
||||
fprintf(fid,'%d\t',ln);
|
||||
fprintf(fid,'%s\userInputs',strcat('AlleviatingInteractionResults for User Input: ',userInputs)); %fprintf(fid,'%s\userInputs',userInputs);
|
||||
for j=1:dmN, fprintf(fid,'%s',strcat(', Rstd',num2str(j),'_',num2str(Rs(j)))); end
|
||||
fprintf(fid, '\n');
|
||||
ln=2;
|
||||
fprintf(fid,'%d\t',ln);
|
||||
fprintf(fid, 'Orf\tGene\t');
|
||||
if ~isempty(InterslstNegAdj{1})
|
||||
for j=1:length(DMsel), fprintf(fid,'%s\t',strcat('IntLdm',num2str(DMsel(j)))); end
|
||||
%fprintf(fid, 'L\tLlower\tLupper\t')
|
||||
fprintf(fid,'Specifics\tReplicate\tStrain\tMP\tRow\tCol\tIndex');
|
||||
fprintf(fid, '\n');
|
||||
for i=1:size(selIntNAdj,1)
|
||||
i
|
||||
ln=ln+1;
|
||||
fprintf(fid,'%d\t',ln);
|
||||
fprintf(fid,'%s\t%s\t',cell2mat(INorfAdj(i)),cell2mat(INgeneAdj(i)));
|
||||
for j=1:length(DMsel) %'Scan\tPlate\tRow\tCol\t');
|
||||
fprintf(fid,'%.5f\t',IntersValsNegAdj(i,j))
|
||||
end
|
||||
% fprintf(fid,'%.5f\t%.5f\t%.5f\t',ipL(i),ipLlower(i),ipLupper(i))
|
||||
fprintf(fid,'%s\t%s\t%s\t',cell2mat(INspecificsAdj(i)),cell2mat(INorfRepAdj(i)),cell2mat(INstrainAdj(i)));
|
||||
fprintf(fid,'%.5f\t%.5f\t%.5f\t',selIntNxAdj{1}(i,2),selIntNxAdj{1}(i,4),selIntNxAdj{1}(i,5),InterslstNegAdj{1}(i))
|
||||
fprintf(fid, '\n');
|
||||
end
|
||||
end
|
||||
|
||||
fclose(fid)
|
||||
87
qhtcp-workflow/apps/matlab/ezview/EZintRFs.m
Executable file
87
qhtcp-workflow/apps/matlab/ezview/EZintRFs.m
Executable file
@@ -0,0 +1,87 @@
|
||||
if RFconfig==1
|
||||
Rn=Exp(expN).Dexp(DexpN).RFmean; Rs=Exp(expN).Dexp(DexpN).RFstd;
|
||||
end
|
||||
|
||||
if RFconfig==2
|
||||
ctrlRF=cell2mat(answer(anN(1)))
|
||||
switch ctrlRF
|
||||
case {'G','g'}
|
||||
Rn(1)=Exp(expN).Dexp(DexpN).RFmeanG(DM0);
|
||||
Rs(1)=Exp(expN).Dexp(DexpN).RFstdG(DM0);
|
||||
case {'L','l'}
|
||||
if Exp(expN).Dexp(DexpN).meanP(DMj,m)~=0
|
||||
Rn(1)=Exp(expN).Dexp(DexpN).meanP(DN0,m);
|
||||
Rs(1)=Exp(expN).Dexp(DexpN).stdP(DM0,m);
|
||||
elseif Exp(expN).Dexp(DexpN).meanP(DMj,m)==0||isempty(Exp(expN).Dexp(DexpN).meanP(DMj,m)) &&...
|
||||
strcmpi(ctrlRF,'G')
|
||||
Rn(1)=Exp(expN).Dexp(DexpN).RFmeanG(DM0);
|
||||
Rs(1)=Exp(expN).Dexp(DexpN).RFstdG(DM0);
|
||||
end
|
||||
end
|
||||
pertRF=cell2mat(answer(anN(2)))
|
||||
switch pertRF
|
||||
case {'G','g'}
|
||||
Rn(2:dmN)=Exp(expN).Dexp(DexpN).RFmeanG(2:end);
|
||||
Rs(2:dmN)=Exp(expN).Dexp(DexpN).RFstdG(2:end);
|
||||
case {'L','l'}
|
||||
if Exp(expN).Dexp(DexpN).meanP(DMj,m)~=0
|
||||
Rn(j)=Exp(expN).Dexp(DexpN).meanP(DMj,m);
|
||||
Rs(j)=Exp(expN).Dexp(DexpN).stdP(DMj,m);
|
||||
elseif Exp(expN).Dexp(DexpN).meanP(DMj,m)==0||isempty(Exp(expN).Dexp(DexpN).meanP(DMj,m)) &&...
|
||||
strcmpi(ctrlRF,'G')
|
||||
Rn(j)=Exp(expN).Dexp(DexpN).RFmeanG(DMj);
|
||||
Rs(j)=Exp(expN).Dexp(DexpN).RFstdG(DMj);
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
if RFconfig==3
|
||||
ctrlRF=cell2mat(answer(anN(1)))
|
||||
switch ctrlRF
|
||||
case {'F','f'}
|
||||
Rn(1)=Exp(expN).Dexp(DexpN).RFmean(DM0);
|
||||
Rs(1)=Exp(expN).Dexp(DexpN).RFstd(DM0);
|
||||
case {'G','g'}
|
||||
Rn(1)=Exp(expN).Dexp(DexpN).RFmeanG(DM0);
|
||||
Rs(1)=Exp(expN).Dexp(DexpN).RFstdG(DM0);
|
||||
case {'L','l'}
|
||||
Rn(1)=Exp(expN).Dexp(DexpN).meanP(DM0,m);
|
||||
Rs(1)=Exp(expN).Dexp(DexpN).stdP(DM0,m);
|
||||
if Exp(expN).Dexp(DexpN).meanP(DMj,m)~=0,
|
||||
Rn(1)=Exp(expN).Dexp(DexpN).meanP(DM0,m);
|
||||
Rs(1)=Exp(expN).Dexp(DexpN).stdP(DM0,m);
|
||||
elseif Exp(expN).Dexp(DexpN).meanP(DM0,m)==0 && strcmpi(ctrlRF,'G')
|
||||
Rn(1)=Exp(expN).Dexp(DexpN).RFmeanG(DM0);
|
||||
Rs(1)=Exp(expN).Dexp(DexpN).RFstdG(DMj);
|
||||
elseif Exp(expN).Dexp(DexpN).meanP(DM0,m)==0 && strcmpi(ctrlRF,'F')
|
||||
Rn(1)=Exp(expN).Dexp(DexpN).RFmean(DM0);
|
||||
Rs(1)=Exp(expN).Dexp(DexpN).RFstd(DM0);
|
||||
elseif Exp(expN).Dexp(DexpN).meanP(DM0,m)==0 && strcmpi(ctrlRF,'L')
|
||||
Rn(1)=Exp(expN).Dexp(DexpN).RFmeanG(DM0);
|
||||
Rs(1)=Exp(expN).Dexp(DexpN).RFstdG(DM0);
|
||||
end
|
||||
end
|
||||
pertRF=cell2mat(answer(anN(2)))
|
||||
switch pertRF
|
||||
case {'F','f'}
|
||||
Rn(2:dmN)=Exp(expN).Dexp(DexpN).RFmean(2:end);
|
||||
Rs(2:dmN)=Exp(expN).Dexp(DexpN).RFstd(2:end);
|
||||
case {'G','g'}
|
||||
Rn(2:dmN)=Exp(expN).Dexp(DexpN).RFmeanG(2:end);
|
||||
Rs(2:dmN)=Exp(expN).Dexp(DexpN).RFstdG(2:end);
|
||||
case {'L','l'}
|
||||
if Exp(expN).Dexp(DexpN).meanP(DMj,m)~=0,
|
||||
Rn(j)=Exp(expN).Dexp(DexpN).meanP(DMj,m);
|
||||
Rs(j)=Exp(expN).Dexp(DexpN).stdP(DMj,m);
|
||||
elseif Exp(expN).Dexp(DexpN).meanP(DMj,m)==0 && strcmpi(ctrlRF,'G')
|
||||
Rn(j)=Exp(expN).Dexp(DexpN).RFmeanG(DMj);
|
||||
Rs(j)=Exp(expN).Dexp(DexpN).RFstdG(DMj);
|
||||
elseif Exp(expN).Dexp(DexpN).meanP(DMj,m)==0 && strcmpi(ctrlRF,'F')
|
||||
Rn(j)=Exp(expN).Dexp(DexpN).RFmean(DMj);
|
||||
Rs(j)=Exp(expN).Dexp(DexpN).RFstd(DMj);
|
||||
elseif Exp(expN).Dexp(DexpN).meanP(DMj,m)==0 && strcmpi(ctrlRF,'L')
|
||||
Rn(j)=Exp(expN).Dexp(DexpN).RFmeanG(DMj);
|
||||
Rs(j)=Exp(expN).Dexp(DexpN).RFstdG(DMj);
|
||||
end
|
||||
end
|
||||
end
|
||||
393
qhtcp-workflow/apps/matlab/ezview/EZinterAgingDev0.m
Executable file
393
qhtcp-workflow/apps/matlab/ezview/EZinterAgingDev0.m
Executable file
@@ -0,0 +1,393 @@
|
||||
%single gene L based interaction shift display
|
||||
function EZinterAgingDev0
|
||||
global Exp
|
||||
global matFile
|
||||
|
||||
[matFile,scansDir]=uigetfile('.mat','Open Experiment folder and data storage .mat file name','MultiSelect','on');
|
||||
AgMPDM=load(fullfile(scansDir,'MasterPlateFiles','MPDMmat.mat'));
|
||||
|
||||
for i=1:size(matFile,2)
|
||||
ExpOutmat{i}=fullfile(scansDir,matFile{i});
|
||||
EScan{i}=load(ExpOutmat{1});
|
||||
end
|
||||
|
||||
% single gene L based interaction shift display
|
||||
% function EZinteractDev3
|
||||
% expN=1;
|
||||
|
||||
% User Input decode for application
|
||||
prompt={...
|
||||
'Enter LeftSide Central Boundary in Percent:',...
|
||||
'Enter RightSide Central Boundary in Percent:', ...
|
||||
'Enter Perturbation Numbers for set intersect:' ...
|
||||
'Remove No Growth Infinite Interactors:' ...
|
||||
'Number of Bins for Histograms'...
|
||||
'Subplots(Y), Multiple Plots(N), Suspend Plots(S)'};
|
||||
% 'Select Experiment(zone) number:'
|
||||
|
||||
name='Interaction User Input';
|
||||
numlines=1;
|
||||
defaultanswer={'80','60','1','N','39','Y'};
|
||||
answer=inputdlg(prompt,name,numlines,defaultanswer);
|
||||
|
||||
negPercent=str2double(cell2mat(answer(1)));
|
||||
posPercent=str2double(cell2mat(answer(2)));
|
||||
DMstr=cell2mat(answer(3));
|
||||
DMcomas=strfind((cell2mat(answer(3))),',');
|
||||
removInfinL=answer(4);
|
||||
numBins=str2double(cell2mat(answer(5)));
|
||||
subplotX=answer(6);
|
||||
% expN=str2double(cell2mat(answer(7)));
|
||||
n=0;
|
||||
for i=DMcomas,
|
||||
n=n+1
|
||||
DMsel(n)=str2double(DMstr(i-1:i))
|
||||
if i==max(DMcomas)
|
||||
DMsel(n+1)=str2double(DMstr(i:end))
|
||||
end
|
||||
end
|
||||
|
||||
Rn=Exp(expN).RFmean;
|
||||
Rs=Exp(expN).RFstd;
|
||||
dmN=length(Exp(expN).DM.drug);
|
||||
mpN=length(Exp(expN).MP);
|
||||
% Intc1=3; IntcLst=5;
|
||||
% Calculate Interaction values (with and without
|
||||
% standardDeviation/Upper-Lower boundary compensation
|
||||
for j=1:dmN
|
||||
for m=1:mpN
|
||||
scnN=j + (dmN*(m-1)) % 1,6,11..; 2,7,12 ..; 3,8,13..;
|
||||
Xn{m,j,:}=Exp(expN).scan(scnN).plate(1).CFout(:,5); % Exp(expN).scan(DM{j}(m)).plate(1).CFout(:,5);
|
||||
Xn{m,j,:}(Xn{m,j,:}==0)=140;
|
||||
Xln{m,j,:}=Exp(expN).scan(scnN).plate(1).CFout(:,11); % Exp(expN).scan(DM{j}(m)).plate(1).CFout(:,11);
|
||||
Xhn{m,j,:}=Exp(expN).scan(scnN).plate(1).CFout(:,12); % Exp(expN).scan(DM{j}(m)).plate(1).CFout(:,12);
|
||||
intL{m,j,:}=(Xn{m,j,:} - Rn(j));
|
||||
intL{m,j,:}(Xn{m,j,:}==140)=100;
|
||||
intLhw{m,j,:}=((Xn{m,1,:}-Xn{m,j,:}) - Rn(1)-Rn(j));
|
||||
intLhw{m,j,:}(Xn{m,j,:}==140)=100;
|
||||
deltaXR{m,j}(Xn{m,j} >=(Rn(j)+Rs(j)))=( Xln{m,j}(Xn{m,j} >=(Rn(j)+Rs(j))))- (Rn(j)+Rs(j));
|
||||
deltaXR{m,j}(Xn{m,j} < (Rn(j)-Rs(j)))=( Xhn{m,j}(Xn{m,j} < (Rn(j)-Rs(j))))- (Rn(j)-Rs(j));
|
||||
Xneg=Xhn{m,j}- (Rn(j)-Rs(j));
|
||||
Xpos=Xln{m,j}- (Rn(j)+Rs(j));
|
||||
deltaXR{m,j}=zeros(1,384);
|
||||
|
||||
for i=1:length(Xpos(:))
|
||||
% deltaXR{m,j}(i)=Xpos(i);
|
||||
if deltaXR{m,j}(i)==0
|
||||
try
|
||||
if abs(Xpos(i))<abs(Xneg(i)), deltaXR{m,j}(i)=Xpos(i);end
|
||||
catch
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
for i=1:length(Xneg(:))
|
||||
if deltaXR{m,j}(i)==0, deltaXR{m,j}(i)=Xneg(i); end
|
||||
try
|
||||
if abs(Xpos(i))>abs(Xneg(i)), deltaXR{m,j}(i)=Xneg(i); end
|
||||
catch
|
||||
end
|
||||
end
|
||||
|
||||
deltaXR{m,j,:}(Xln{m,j,:}==0)=100;
|
||||
deltaXR{m,j,:}(isnan(Xln{m,j,:}))=120;
|
||||
deltaXR{m,j,:}(Xhn{m,j,:}==0)=100;
|
||||
deltaXR{m,j,:}(isnan(Xhn{m,j,:}))=120;
|
||||
|
||||
% Compile all gene related L values for the each pert-DM (j).
|
||||
addend=(1+((m-1)*384)) % ((((m-1)*j)*384)+1);
|
||||
intLcmp(addend:addend+383,j)=cell2mat(intL(m,j,:)); % ((addend:addend+383),j)=cell2mat(intL(j,m,:));
|
||||
intLadjcmp(addend:addend+383,j)=cell2mat(deltaXR(m,j,:)); % ((addend:addend+383),j)=cell2mat(deltaXR(j,m,:));
|
||||
end
|
||||
% Remove RFs and Blank (or non annotated ' ') orf data Then
|
||||
% Filter data per user intput
|
||||
intLc{j}=intLcmp(:,j);
|
||||
intLwoRFs{j}(1,:)=intLcmp(Exp(expN).mutSpotIndx.woRFs,j);
|
||||
intLwoRFs{j}(2,:)=Exp(expN).mutSpotIndx.woRFs; % index of non-RF non-blank spots %Crude early intLcmp(385:(mpN-1)*384,j);
|
||||
if strcmpi(removInfinL,'Y')
|
||||
intLwoRFs0{j}(1,:)=intLwoRFs{j}(1,(intLwoRFs{j}(1,:)~=100)); % intLcmp(Exp(1).mutSpotIndx.woRFs,j);
|
||||
intLwoRFs0{j}(2,:)=intLwoRFs{j}(2,(intLwoRFs{j}(1,:)~=100)); % intLcmp(385:(mpN-1)*384,j);
|
||||
clear intLwoRFs
|
||||
intLwoRFs{j}(1,:)=intLwoRFs0{j}(1,:);
|
||||
intLwoRFs{j}(2,:)=intLwoRFs0{j}(2,:);
|
||||
end
|
||||
|
||||
intLwoRFsorted{j}=sortrows(intLwoRFs{j}',1);
|
||||
clear intLcmpSortGT0 intLcmpSortLT0
|
||||
tempIntL=intLwoRFsorted{j}(:,1);
|
||||
intLcmpSortGT0=tempIntL((tempIntL) >=0);
|
||||
intLcmpSortLT0=tempIntL((tempIntL) <0);
|
||||
centPosCnt=round(posPercent/100 * length(intLcmpSortGT0));
|
||||
centNegCnt=round(negPercent/100 * length(intLcmpSortLT0));
|
||||
intLposSel{j}=intLwoRFsorted{j}((length(intLcmpSortLT0)+centPosCnt): end,:);
|
||||
intLnegSel{j}=intLwoRFsorted{j}((1:(length(intLcmpSortLT0)-centNegCnt)),:);
|
||||
posIntboundryCentralVal(j)=intLcmpSortGT0((centPosCnt),:); % For Histogram use
|
||||
negIntboundryCentralVal(j)=intLcmpSortLT0(((length(intLcmpSortLT0))-(centNegCnt)),:); % For Histogram use
|
||||
|
||||
% Find potential Interactors within selected range
|
||||
if j==DMsel(1) % Intc1,
|
||||
InterslstPos{1}=intLposSel{DMsel(1)}(:,2) % intLcmpposInd{Intc1}
|
||||
InterslstNeg{1}=intLnegSel{DMsel(1)}(:,2) % intLcmpnegInd{Intc1}
|
||||
elseif sum(ismember(DMsel,j))==1 %Intc1 && j<=IntcLst
|
||||
InterslstPos{1}=(intersect(InterslstPos{1},intLposSel{j}(:,2))); % ,intLcmpposInd{j}))
|
||||
InterslstNeg{1}=(intersect(InterslstNeg{1},intLnegSel{j}(:,2))); % ,intLcmpnegInd{j}))
|
||||
end
|
||||
|
||||
% Convolute experiment spot index to get scan#, MP# and plateIndx needed
|
||||
% later to obtain genename and other descriptors and correlate data
|
||||
intLposDIndx{j}(:,2)=ceil((intLposSel{j}(:,2))/384); % mp plate numb column
|
||||
intLposDIndx{j}(:,3)=(rem(intLposSel{j}(:,2),384));
|
||||
nn=(intLposDIndx{j}(:,3)==0);
|
||||
intLposDIndx{j}(nn,3)=384;
|
||||
intLposDIndx{j}(:,1)=j + (dmN*((intLposDIndx{j}(:,2))-1)); % scan numb column %intLposDIndx(:,2)* intLposDIndx(:,3);
|
||||
|
||||
intLnegDIndx{j}(:,2)=ceil((intLnegSel{j}(:,2))/384); % mp plate numb column
|
||||
intLnegDIndx{j}(:,3)=(rem(intLnegSel{j}(:,2),384));
|
||||
nn=(intLposDIndx{j}(:,3)==0);
|
||||
intLnegDIndx{j}(nn,3)=384;
|
||||
intLnegDIndx{j}(:,1)=j + (dmN*((intLnegDIndx{j}(:,2))-1)); % scan numb
|
||||
|
||||
% ADJUSTED L for Reference Standard deviation(More conservative) Interaction List compilation
|
||||
intLadjwoRFs{j}(1,:)=intLadjcmp(Exp(expN).mutSpotIndx.woRFs,j);
|
||||
intLadjwoRFs{j}(2,:)=Exp(expN).mutSpotIndx.woRFs; % intLadjcmp(385:(mpN-1)*384,j); %intLadjcmp(Exp(expN).mutSpotIndx.woRFs,j);
|
||||
|
||||
if strcmpi(removInfinL,'Y')
|
||||
intLadjwoRFs0{j}(1,:)=intLadjwoRFs{j}(1,(intLadjwoRFs{j}(1,:)~=100)) ; %intLcmp(Exp(1).mutSpotIndx.woRFs,j);
|
||||
intLadjwoRFs0{j}(2,:)=intLadjwoRFs{j}(2,(intLadjwoRFs{j}(1,:)~=100)) ; % Remove Index where spots are infinite (=100);
|
||||
clear intLadjwoRFs
|
||||
intLadjwoRFs{j}(1,:)=intLadjwoRFs0{j}(1,:);
|
||||
intLadjwoRFs{j}(2,:)=intLadjwoRFs0{j}(2,:);
|
||||
end
|
||||
|
||||
intLwoRFsortedAdj{j}=sortrows(intLadjwoRFs{j}',1);
|
||||
clear intLadjSortGT0 intLadjSortLT0
|
||||
tempIntLadj=intLwoRFsortedAdj{j}(:,1);
|
||||
intLadjSortGT0=tempIntLadj((tempIntLadj) >=0);
|
||||
intLadjSortLT0=tempIntLadj((tempIntLadj) <0);
|
||||
centPosCntAdj=round(posPercent/100 * length(intLadjSortGT0));
|
||||
centNegCntAdj=round(negPercent/100 * length(intLadjSortLT0));
|
||||
intLposSelAdj{j}=intLwoRFsortedAdj{j}((length(intLadjSortLT0)+centPosCntAdj): end,:);
|
||||
intLnegSelAdj{j}=intLwoRFsortedAdj{j}((1:(length(intLadjSortLT0)-centNegCntAdj)),:);
|
||||
posIntboundryCentralValAdj(j)=intLadjSortGT0((centPosCntAdj),:);
|
||||
negIntboundryCentralValAdj(j)=intLadjSortLT0(((length(intLadjSortLT0))-(centNegCntAdj)),:);
|
||||
|
||||
if j==DMsel(1) % Intc1
|
||||
InterslstPosAdj{1}=intLposSelAdj{DMsel(1)}(:,2) % intLcmpposInd{Intc1}
|
||||
InterslstNegAdj{1}=intLnegSelAdj{DMsel(1)}(:,2) % intLcmpnegInd{Intc1}
|
||||
elseif sum(ismember(DMsel,j))==1 % j>Intc1 && j<=IntcLst
|
||||
InterslstPosAdj{1}=(intersect(InterslstPosAdj{1},intLposSelAdj{j}(:,2))); % ,intLcmpposInd{j}))
|
||||
InterslstNegAdj{1}=(intersect(InterslstNegAdj{1},intLnegSelAdj{j}(:,2))); % ,intLcmpnegInd{j}))
|
||||
end
|
||||
|
||||
% Convolute experiment spot index to get scan#, MP# and plateIndx needed
|
||||
% later to obtain genename and other descriptors and correlate data
|
||||
intLposDIndxAdj{j}(:,2)=ceil((intLposSelAdj{j}(:,2))/384); % mp plate numb column
|
||||
intLposDIndxAdj{j}(:,3)=(rem(intLposSelAdj{j}(:,2),384));
|
||||
nn=(intLposDIndxAdj{j}(:,3)==0);
|
||||
intLposDIndx{j}(nn,3)=384;
|
||||
intLposDIndxAdj{j}(:,1)=j + (dmN*((intLposDIndxAdj{j}(:,2))-1)); % scan numb column %intLposDIndx(:,2)* intLposDIndx(:,3);
|
||||
|
||||
intLnegDIndxAdj{j}(:,2)=ceil((intLnegSelAdj{j}(:,2))/384); % mp plate numb column
|
||||
intLnegDIndxAdj{j}(:,3)=(rem(intLnegSelAdj{j}(:,2),384));
|
||||
nn=(intLposDIndxAdj{j}(:,3)==0);
|
||||
intLnegDIndxAdj{j}(nn,3)=384;
|
||||
intLnegDIndxAdj{j}(:,1)=j + (dmN*((intLnegDIndxAdj{j}(:,2))-1)); % scan numb
|
||||
end
|
||||
|
||||
% Get interaction values for each DM drugmedia agar type
|
||||
IntersValsPos=intLcmp(InterslstPos{1},DMsel);
|
||||
IntersValsNeg=intLcmp(InterslstNeg{1},DMsel);
|
||||
IntersValsPosAdj=intLadjcmp(InterslstPosAdj{1},DMsel);
|
||||
IntersValsNegAdj=intLadjcmp(InterslstNegAdj{1},DMsel);
|
||||
|
||||
% Build 'genelist' data sheet for interactors
|
||||
selIntPx{1}(:,6)=InterslstPos{1};
|
||||
selIntPx{1}(:,2)=ceil((InterslstPos{1})/384); % mp plate numb column
|
||||
selIntPx{1}(:,3)=(rem(InterslstPos{1},384));
|
||||
nn=(selIntPx{1}(:,3)==0);
|
||||
selIntPx{1}(nn,3)=384;
|
||||
selIntPx{1}(:,4)=ceil(selIntPx{1}(:,3)/24); % row numb
|
||||
selIntPx{1}(:,5)=rem(selIntPx{1}(:,3),24);
|
||||
mm=(selIntPx{1}(:,5)==0);
|
||||
selIntPx{1}(mm,5)=24;
|
||||
selIntPx{1}(:,1)=j + (dmN*((selIntPx{1}(:,2))-1)); % scan numb column %intLposDIndx(:,2)* intLposDIndx(:,3);
|
||||
selIntP=cell2mat(selIntPx);
|
||||
selIntNx{1}(:,6)=InterslstNeg{1};
|
||||
selIntNx{1}(:,2)=ceil((InterslstNeg{1})/384); % mp plate numb column
|
||||
selIntNx{1}(:,3)=(rem(InterslstNeg{1},384));
|
||||
nn=(selIntNx{1}(:,3)==0);
|
||||
selIntNx{1}(nn,3)=384;
|
||||
selIntNx{1}(:,4)=ceil(selIntNx{1}(:,3)/24); % row numb
|
||||
selIntNx{1}(:,5)=rem(selIntNx{1}(:,3),24);
|
||||
mm=(selIntNx{1}(:,5)==0);
|
||||
selIntNx{1}(mm,5)=24;
|
||||
selIntNx{1}(:,1)=j + (dmN*((selIntNx{1}(:,2))-1)); % scan numb
|
||||
selIntN=cell2mat(selIntNx);
|
||||
|
||||
for i=1:size(selIntP,1)
|
||||
IPgene(i)=Exp(expN).MP(selIntP(i,2)).genename{1}(selIntP(i,3));
|
||||
IPorf(i)=Exp(expN).MP(selIntP(i,2)).orf{1}(selIntP(i,3));
|
||||
IPstrain(i)=Exp(expN).MP(selIntP(i,2)).strain{1}(selIntP(i,3));
|
||||
IPspecifics(i)=Exp(expN).MP(selIntP(i,2)).specifics{1}(selIntP(i,3));
|
||||
IPorfRep(i)=Exp(expN).MP(selIntP(i,2)).orfRep{1}(selIntP(i,3));
|
||||
|
||||
% Bad this is the L data for only the last selected DM perturbation
|
||||
% Would need to calculate each scan# for each DMsel value
|
||||
ipL(i)=Exp(expN).scan(selIntP(i,1)).plate(1).CFout(selIntP(i,3),5);
|
||||
ipLlower(i)=Exp(expN).scan(selIntP(i,1)).plate(1).CFout(selIntP(i,3),11);
|
||||
ipLupper(i)=Exp(expN).scan(selIntP(i,1)).plate(1).CFout(selIntP(i,3),12);
|
||||
end
|
||||
|
||||
for i=1:size(selIntN,1)
|
||||
INgene(i)=Exp(expN).MP(selIntN(i,2)).genename{1}(selIntN(i,3));
|
||||
INorf(i)=Exp(expN).MP(selIntN(i,2)).orf{1}(selIntN(i,3));
|
||||
INstrain(i)=Exp(expN).MP(selIntN(i,2)).strain{1}(selIntN(i,3));
|
||||
INspecifics(i)=Exp(expN).MP(selIntN(i,2)).specifics{1}(selIntN(i,3));
|
||||
INorfRep(i)=Exp(expN).MP(selIntN(i,2)).orfRep{1}(selIntN(i,3));
|
||||
|
||||
% Bad this is the L data for only the last selected DM perturbation
|
||||
% Would need to calculate each scan# for each DMsel value
|
||||
inL(i)=Exp(expN).scan(selIntN(i,1)).plate(1).CFout(selIntN(i,3),5);
|
||||
inLlower(i)=Exp(expN).scan(selIntN(i,1)).plate(1).CFout(selIntN(i,3),11);
|
||||
inLupper(i)=Exp(expN).scan(selIntN(i,1)).plate(1).CFout(selIntN(i,3),12);
|
||||
end
|
||||
|
||||
% ADJUSTED with STD and curve fit boundaries to produce more conservative interaction values
|
||||
% Build 'genelist' data sheet for interactors
|
||||
selIntPxAdj{1}(:,2)=ceil((InterslstPosAdj{1})/384); %mp plate numb column
|
||||
selIntPxAdj{1}(:,3)=(rem(InterslstPosAdj{1},384));
|
||||
nn=(selIntPxAdj{1}(:,3)==0);
|
||||
selIntPxAdj{1}(nn,3)=384;
|
||||
selIntPxAdj{1}(:,4)=ceil(selIntPxAdj{1}(:,3)/24); %row numb
|
||||
selIntPxAdj{1}(:,5)=rem(selIntPxAdj{1}(:,3),24);
|
||||
mm=(selIntPxAdj{1}(:,5)==0);
|
||||
selIntPxAdj{1}(mm,5)=24;
|
||||
selIntPxAdj{1}(:,1)=j + (dmN*((selIntPxAdj{1}(:,2))-1)); %scan numb column %intLposDIndx(:,2)* intLposDIndx(:,3);
|
||||
selIntPAdj=cell2mat(selIntPxAdj);
|
||||
selIntNxAdj{1}(:,2)=ceil((InterslstNegAdj{1})/384); %mp plate numb column
|
||||
selIntNxAdj{1}(:,3)=(rem(InterslstNegAdj{1},384));
|
||||
nn=(selIntNxAdj{1}(:,3)==0);
|
||||
selIntNxAdj{1}(nn,3)=384;
|
||||
selIntNxAdj{1}(:,4)=ceil(selIntNxAdj{1}(:,3)/24); %row numb
|
||||
selIntNxAdj{1}(:,5)=rem(selIntNxAdj{1}(:,3),24);
|
||||
mm=(selIntNxAdj{1}(:,5)==0);
|
||||
selIntNxAdj{1}(mm,5)=24;
|
||||
selIntNxAdj{1}(:,1)=j + (dmN*((selIntNxAdj{1}(:,2))-1)); %scan numb
|
||||
selIntNAdj=cell2mat(selIntNxAdj);
|
||||
|
||||
for i=1:size(selIntPAdj,1)
|
||||
IPgeneAdj(i)=Exp(expN).MP(selIntPAdj(i,2)).genename{1}(selIntPAdj(i,3));
|
||||
IPorfAdj(i)=Exp(expN).MP(selIntPAdj(i,2)).orf{1}(selIntPAdj(i,3));
|
||||
IPstrainAdj(i)=Exp(expN).MP(selIntPAdj(i,2)).strain{1}(selIntPAdj(i,3));
|
||||
IPspecificsAdj(i)=Exp(expN).MP(selIntPAdj(i,2)).specifics{1}(selIntPAdj(i,3));
|
||||
IPorfRepAdj(i)=Exp(expN).MP(selIntPAdj(i,2)).orfRep{1}(selIntPAdj(i,3));
|
||||
% Bad this is the L data for only the last selected DM perturbation
|
||||
% Would need to calculate each scan# for each DMsel value
|
||||
ipLAdj(i)=Exp(expN).scan(selIntPAdj(i,1)).plate(1).CFout(selIntPAdj(i,3),5);
|
||||
ipLlowerAdj(i)=Exp(expN).scan(selIntPAdj(i,1)).plate(1).CFout(selIntPAdj(i,3),11);
|
||||
ipLupperAdj(i)=Exp(expN).scan(selIntPAdj(i,1)).plate(1).CFout(selIntPAdj(i,3),12);
|
||||
end
|
||||
|
||||
for i=1:size(selIntNAdj,1)
|
||||
INgeneAdj(i)=Exp(expN).MP(selIntNAdj(i,2)).genename{1}(selIntNAdj(i,3));
|
||||
INorfAdj(i)=Exp(expN).MP(selIntNAdj(i,2)).orf{1}(selIntNAdj(i,3));
|
||||
INstrainAdj(i)=Exp(expN).MP(selIntNAdj(i,2)).strain{1}(selIntNAdj(i,3));
|
||||
INspecificsAdj(i)=Exp(expN).MP(selIntNAdj(i,2)).specifics{1}(selIntNAdj(i,3));
|
||||
INorfRepAdj(i)=Exp(expN).MP(selIntNAdj(i,2)).orfRep{1}(selIntNAdj(i,3));
|
||||
%Bad this is the L data for only the last selected DM perturbation
|
||||
%Would need to calculate each scan# for each DMsel value
|
||||
inLAdj(i)=Exp(expN).scan(selIntNAdj(i,1)).plate(1).CFout(selIntNAdj(i,3),5);
|
||||
inLlowerAdj(i)=Exp(expN).scan(selIntNAdj(i,1)).plate(1).CFout(selIntNAdj(i,3),11);
|
||||
inLupperAdj(i)=Exp(expN).scan(selIntNAdj(i,1)).plate(1).CFout(selIntNAdj(i,3),12);
|
||||
end
|
||||
|
||||
|
||||
% Plot Histogram
|
||||
% subplotX=1;
|
||||
figure
|
||||
if strcmpi(subplotX,'Y')
|
||||
for j=1:dmN
|
||||
histLdata=intLwoRFsorted{j}(:,1); % intLcmp(385:(mpN-1)*384,j);
|
||||
% histLadjData=intLadjcmp(385:(mpN-1)*384,j);
|
||||
hgLdat{j}=histfitJR(histLdata,numBins,'kernel');
|
||||
x{j}=get(hgLdat{j}(2),'xdata');
|
||||
y{j}=get(hgLdat{j}(2),'ydata');
|
||||
xb{j}=get(hgLdat{j}(1),'xdata');
|
||||
yb{j}=get(hgLdat{j}(1),'ydata');
|
||||
ybpostot{j}=sum(yb{j}(2,(xb{j}(1,:)>=0)));
|
||||
ybnegtot{j}=sum(yb{j}(2,(xb{j}(1,:) <0)));
|
||||
xbb(j,:)=xb{j}(2,:);
|
||||
ybb(j,:)=yb{j}(2,:);
|
||||
clf
|
||||
end
|
||||
|
||||
% Figure
|
||||
for j=1:dmN
|
||||
histLdata=intLwoRFsorted{j}(:,1); % intLcmp(385:(mpN-1)*384,j);
|
||||
hgL{j}=subplot(2, 4, j), histfitJR(histLdata,numBins,'kernel') ; hold %hgL{j}=histfit(intLcmp(:,j),31,'kernel')
|
||||
subplot(2, 4, j),plot(posIntboundryCentralVal(j), 1:3000,'--r')
|
||||
subplot(2, 4, j),plot(negIntboundryCentralVal(j), 1:3000,'--g')
|
||||
hold off
|
||||
end
|
||||
scnsize=get(0,'screensize')
|
||||
pos1=[round(scnsize(3)/40), round(scnsize(4)/2 +(scnsize(3)/80)),...
|
||||
round(scnsize(3) -round(scnsize(3)/80)),round(scnsize(4)/2 -round(scnsize(4)/80))]
|
||||
set(gcf,'outerposition',pos1)
|
||||
set(gcf,'Name', 'Interaction Values ');
|
||||
|
||||
figure
|
||||
for j=1:dmN
|
||||
histLadjData=intLwoRFsortedAdj{j}(:,1); %intLadjcmp(385:(mpN-1)*384,j);
|
||||
hgLadj{j}=subplot(2, 4, j),histfitJR(histLadjData,numBins,'kernel') ; hold %hgLadj{j}=histfit(intLadjcmp(:,j),31,'kernel')
|
||||
subplot(2, 4, j),plot(posIntboundryCentralValAdj(j), 1:3000,'--r')
|
||||
subplot(2, 4, j),plot(negIntboundryCentralValAdj(j), 1:3000,'--g')
|
||||
hold off
|
||||
end
|
||||
pos2=[round(scnsize(3)/40), round(scnsize(4)/30),...
|
||||
round(scnsize(3) -scnsize(3)/80),round(scnsize(4)/2 -scnsize(4)/80)]
|
||||
set(gcf,'outerposition',pos2)
|
||||
set(gcf,'Name', 'Interaction Compensated by Standard Deviation and Upper/Lower Curvefit boundaries')
|
||||
elseif strcmpi(subplotX,'N')
|
||||
for j=1:dmN
|
||||
histLdata=intLwoRFsorted{j}(:,1); %intLcmp(385:(mpN-1)*384,j);
|
||||
histLadjData=intLwoRFsortedAdj{j}(:,1); %intLadjcmp(385:(mpN-1)*384,j);%intLadjcmp(385:(mpN-1)*384,j); %intLcmp(:,j); %intLadjcmp(:,j);
|
||||
figure
|
||||
hgL{j}=histfitJR(histLdata,numBins,'kernel') ; hold %hgL{j}=histfit(intLcmp(:,j),31,'kernel')
|
||||
plot(posIntboundryCentralVal(j), 1:3000,'--r')
|
||||
plot(negIntboundryCentralVal(j), 1:3000,'--g')
|
||||
hold off
|
||||
figure
|
||||
hgLadj{j}=histfitJR(histLadjData,numBins,'kernel') ; hold %hgLadj{j}=histfit(intLadjcmp(:,j),31,'kernel')
|
||||
plot(posIntboundryCentralValAdj(j), 1:3000,'--r')
|
||||
plot(negIntboundryCentralValAdj(j), 1:3000,'--g')
|
||||
hold off
|
||||
x{j}=get(hgL{j}(2),'xdata')
|
||||
y{j}=get(hgL{j}(2),'ydata');
|
||||
xb{j}=get(hgL{j}(1),'xdata')
|
||||
yb{j}=get(hgL{j}(1),'ydata')
|
||||
ybpostot{j}=sum(yb{j}(2,(xb{j}(1,:)>=0)))
|
||||
ybnegtot{j}=sum(yb{j}(2,(xb{j}(1,:) <0)))
|
||||
xbb(j,:)=xb{j}(2,:);
|
||||
ybb(j,:)=yb{j}(2,:);
|
||||
end
|
||||
if strcmpi(subplotX,'N')
|
||||
figure
|
||||
bar3(ybb);
|
||||
% xxbb=yb{1}(2,:);
|
||||
% figure
|
||||
end
|
||||
else
|
||||
end
|
||||
% histograms placed in subplot figure else multiple histogram plots
|
||||
|
||||
if strcmpi(subplotX,'Y')
|
||||
figure
|
||||
bar3(ybb);
|
||||
set(gcf,'Name', 'Unfiltered Interaction Histogram for all DrugMedias; NoGrowth Interactors set to 100hr (highest bin)')
|
||||
%xxbb=yb{1}(2,:);
|
||||
%figure
|
||||
end
|
||||
|
||||
EZintPrint
|
||||
a=1 % TODO what is this for
|
||||
end
|
||||
217
qhtcp-workflow/apps/matlab/ezview/EZlstBoxCmpExt.m
Executable file
217
qhtcp-workflow/apps/matlab/ezview/EZlstBoxCmpExt.m
Executable file
@@ -0,0 +1,217 @@
|
||||
%EZlstBoxExtCmp.m
|
||||
%Called by EZviewGui.m NOT by EZvDatatip.m and EZlstBoxExt.m
|
||||
%Provides Trace data storage for use by EZfigTrendOL.m
|
||||
|
||||
RFcmpGFlg=0;
|
||||
if isequal(tempLB(4:6),'cmp')
|
||||
RFnum=str2double(tempLB(3));
|
||||
elseif isequal(tempLB(3:6),'cmpG')
|
||||
RFcmpGFlg=1;
|
||||
elseif isequal(tempLB(3:6),'cmpP')
|
||||
RFcmpGFlg=1; %I beleive handling will be the same as RFcmpG
|
||||
end
|
||||
Exp(expN).cLmdEven=0; %Added for Cummulative Median and Mean 'C' plot
|
||||
RFDMflg=0;
|
||||
if zoneSel==1,DexpN=(get(ghandles.DN1,'value')); end
|
||||
if zoneSel==2,DexpN=(get(ghandles.DN2,'value')); end
|
||||
if zoneSel==3,DexpN=(get(ghandles.DN3,'value')); end
|
||||
|
||||
try
|
||||
p1=cell2mat(strfind(selGnOrf,'('));
|
||||
p2=cell2mat(strfind(selGnOrf,')'));
|
||||
dmNum=str2num(selGnOrf{1}(p1+1:p2-1));
|
||||
inDM=str2num(selGnOrf{1}(p1+1:p2-1));
|
||||
if (~isempty(dmNum)&& isnumeric(dmNum)),RFDMflg=1; end
|
||||
catch
|
||||
end
|
||||
|
||||
if RFDMflg, Exp(zoneSel).Dexp(DexpN).pertSel=dmNum; end %pertSel=pert;
|
||||
|
||||
sgdInfoOnly=get(handles.InfoToggle,'value');
|
||||
if sgdInfoOnly==1
|
||||
EZviewInfoBox
|
||||
else % Runs to end of EZlstBoxExt.m within this else condition
|
||||
|
||||
% Plot Selected Gene/Orf Spot
|
||||
%try
|
||||
if RFcmpGFlg==0
|
||||
K=Exp(expN).Dexp(DexpN).RFcmpK(RFnum).dm(inDM).med; Ks=num2str(K);
|
||||
r=Exp(expN).Dexp(DexpN).RFcmpr(RFnum).dm(inDM).med; rs=num2str(r);
|
||||
l=Exp(expN).Dexp(DexpN).RFcmpL(RFnum).dm(inDM).med; Ls=num2str(l);
|
||||
Kl=K - Exp(expN).Dexp(DexpN).RFcmpK(RFnum).dm(inDM).std;
|
||||
Ku=K + Exp(expN).Dexp(DexpN).RFcmpK(RFnum).dm(inDM).std;
|
||||
rl=r - Exp(expN).Dexp(DexpN).RFcmpr(RFnum).dm(inDM).std;
|
||||
ru=r + Exp(expN).Dexp(DexpN).RFcmpr(RFnum).dm(inDM).std;
|
||||
lfast=l - Exp(expN).Dexp(DexpN).RFcmpL(RFnum).dm(inDM).std;
|
||||
lslow=l + Exp(expN).Dexp(DexpN).RFcmpL(RFnum).dm(inDM).std;
|
||||
elseif RFcmpGFlg==1
|
||||
K=Exp(expN).Dexp(DexpN).RFcmpGK.dm(inDM).med; Ks=num2str(K);
|
||||
r=Exp(expN).Dexp(DexpN).RFcmpGr.dm(inDM).med; rs=num2str(r);
|
||||
l=Exp(expN).Dexp(DexpN).RFcmpGL.dm(inDM).med; Ls=num2str(l);
|
||||
Kl=K - Exp(expN).Dexp(DexpN).RFcmpGK.dm(inDM).std;
|
||||
Ku=K + Exp(expN).Dexp(DexpN).RFcmpGK.dm(inDM).std;
|
||||
rl=r - Exp(expN).Dexp(DexpN).RFcmpGr.dm(inDM).std;
|
||||
ru=r + Exp(expN).Dexp(DexpN).RFcmpGr.dm(inDM).std;
|
||||
lfast=l - Exp(expN).Dexp(DexpN).RFcmpGL.dm(inDM).std;
|
||||
lslow=l + Exp(expN).Dexp(DexpN).RFcmpGL.dm(inDM).std;
|
||||
end
|
||||
try Kstr=Ks(1:5); catch, Kstr=Ks(1:length(Ks)); end
|
||||
try rstr=rs(1:5); catch, rstr=rs(1:length(rs)); end
|
||||
try Lstr=Ls(1:5); catch, Lstr=Ls(1:length(Ls)); end
|
||||
|
||||
t=1:200;
|
||||
clear g;
|
||||
|
||||
%try
|
||||
g=K ./ (1 + exp(-r.* (t - l )));
|
||||
gSlow=Kl ./ (1 + exp(-rl.* (t - lslow )));
|
||||
gFast=Ku ./ (1 + exp(-ru.* (t - lfast )));
|
||||
if K==0||r==0||l==0, g(1:200)=1;gSlow(1:200)=1;gFast(1:200)=1;end
|
||||
%tser=(scan(1,plateNum).plate(1).t0Series(:));
|
||||
%rawData=scan(1,plateNum).plate(1).intens(indx,:)/scan(1,plateNum).plate(1).Ag(indx);
|
||||
if zoneSel==1
|
||||
plotAxes=ghandles.Paxes1; OLaxes=ghandles.OLaxes1;
|
||||
Dlaxes=ghandles.Dlaxes1;Dkaxes=ghandles.Dkaxes1;Draxes=ghandles.Draxes1;
|
||||
Exp(1).traceN=Exp(1).traceN+1;
|
||||
traceN=Exp(1).traceN;
|
||||
end
|
||||
if zoneSel==2
|
||||
plotAxes=ghandles.Paxes2; OLaxes=ghandles.OLaxes2;Daxes=ghandles.Daxes2;
|
||||
Dlaxes=ghandles.Dlaxes2;Dkaxes=ghandles.Dkaxes2;Draxes=ghandles.Draxes2;
|
||||
Exp(2).traceN=Exp(2).traceN+1;
|
||||
traceN=Exp(2).traceN;
|
||||
end
|
||||
if zoneSel==3
|
||||
plotAxes=ghandles.Paxes3; OLaxes=ghandles.OLaxes3;Daxes=ghandles.Daxes3;
|
||||
Dlaxes=ghandles.Dlaxes3;Dkaxes=ghandles.Dkaxes3;Draxes=ghandles.Draxes3;
|
||||
Exp(3).traceN=Exp(3).traceN+1;
|
||||
traceN=Exp(3).traceN;
|
||||
end
|
||||
plot(plotAxes,t,g);hold (plotAxes,'on'); % plot(plotAxes,tser,rawData,'g*');
|
||||
plot(plotAxes,t,gSlow,'y'); plot(plotAxes,t,gFast,'r');hold (plotAxes,'off');
|
||||
|
||||
% Store L R and K valves for Composite [C] plots
|
||||
Exp(expN).ll(traceN)=l; Exp(expN).rr(traceN)=r; Exp(expN).kk(traceN)=K;
|
||||
if RFcmpGFlg==0
|
||||
Exp(expN).lstd(traceN)=Exp(expN).Dexp(DexpN).RFcmpL(RFnum).dm(inDM).std;
|
||||
Exp(expN).kstd(traceN)=Exp(expN).Dexp(DexpN).RFcmpK(RFnum).dm(inDM).std;
|
||||
Exp(expN).rstd(traceN)=Exp(expN).Dexp(DexpN).RFcmpr(RFnum).dm(inDM).std;
|
||||
for dm=1:length(Exp(expN).Dexp(DexpN).DM.drug)
|
||||
Exp(expN).Trace(traceN).Dexp(DexpN).DM(dm).UsrLvals={Exp(expN).Dexp(DexpN).RFcmpL(RFnum).dm(dm).Lvals};
|
||||
Exp(expN).Trace(traceN).Dexp(DexpN).DM(dm).UsrKvals={Exp(expN).Dexp(DexpN).RFcmpK(RFnum).dm(dm).Kvals};
|
||||
Exp(expN).Trace(traceN).Dexp(DexpN).DM(dm).Usrrvals={Exp(expN).Dexp(DexpN).RFcmpr(RFnum).dm(dm).rvals};
|
||||
end
|
||||
Exp(expN).Trace(traceN).dmSel=inDM;
|
||||
Exp(expN).Trace(traceN).DexpN=DexpN;
|
||||
Exp(expN).Trace(traceN).UsrGLB=selGnOrf;
|
||||
elseif RFcmpGFlg==1
|
||||
Exp(expN).lstd(traceN)=Exp(expN).Dexp(DexpN).RFcmpGL.dm(inDM).std;
|
||||
Exp(expN).kstd(traceN)=Exp(expN).Dexp(DexpN).RFcmpGK.dm(inDM).std;
|
||||
Exp(expN).rstd(traceN)=Exp(expN).Dexp(DexpN).RFcmpGr.dm(inDM).std;
|
||||
if strcmp(Exp(expN).DexpType,'chrono')
|
||||
for nn=1:length(Exp(expN).Dexp) %replaced dmSel with inDM for 'chrono' and RFcmpGFlg
|
||||
Exp(expN).Trace(traceN).Dexp(nn).DM(inDM).UsrLvals=Exp(expN).Dexp(nn).RFcmpGL.dm(inDM).Lvals;
|
||||
Exp(expN).Trace(traceN).Dexp(nn).DM(inDM).UsrKvals=Exp(expN).Dexp(nn).RFcmpGK.dm(inDM).Kvals;
|
||||
Exp(expN).Trace(traceN).Dexp(nn).DM(inDM).Usrrvals=Exp(expN).Dexp(nn).RFcmpGr.dm(inDM).rvals;
|
||||
end
|
||||
else
|
||||
for dm=1:length(Exp(expN).Dexp(DexpN).DM.drug)
|
||||
Exp(expN).Trace(traceN).Dexp(DexpN).DM(dm).UsrLvals=Exp(expN).Dexp(DexpN).RFcmpGL.dm(dm).Lvals;
|
||||
Exp(expN).Trace(traceN).Dexp(DexpN).DM(dm).UsrKvals=Exp(expN).Dexp(DexpN).RFcmpGK.dm(dm).Kvals;
|
||||
Exp(expN).Trace(traceN).Dexp(DexpN).DM(dm).Usrrvals=Exp(expN).Dexp(DexpN).RFcmpGr.dm(dm).rvals;
|
||||
end
|
||||
end
|
||||
Exp(expN).Trace(traceN).dmSel=inDM;
|
||||
Exp(expN).Trace(traceN).DexpN=DexpN;
|
||||
Exp(expN).Trace(traceN).UsrGLB=selGnOrf;
|
||||
end
|
||||
|
||||
Exp(expN).lslow(traceN)=lslow; Exp(expN).lfast(traceN)=lfast;
|
||||
Exp(expN).lKl(traceN)=Kl; Exp(expN).Ku(traceN)=Ku;
|
||||
Exp(expN).lrl(traceN)=rl; Exp(expN).ru(traceN)=ru;
|
||||
|
||||
try
|
||||
for i=1:length(Exp(zoneSel).hOL(:))
|
||||
set(Exp(zoneSel).hOL(i),'color',[0 0 1]);
|
||||
end
|
||||
catch
|
||||
end
|
||||
Exp(zoneSel).hOL(traceN)=plot(OLaxes,t,g);hold on;
|
||||
set(Exp(zoneSel).hOL(traceN),'color',[1 0 0])
|
||||
% Exp(zoneSel).hOLb(traceN)=plot(OLaxes,tser,rawData,'g*'); %No Raw Data, Ref Composite 17_1009
|
||||
% catch
|
||||
% catchissue='Ln68 EZlstBoxCmpExt'
|
||||
% end %trycatch
|
||||
|
||||
% Get the DM agar description
|
||||
if expN==1,DMstr=char(get(handles.DM1,'string'));end
|
||||
if expN==2,DMstr=char(get(handles.DM2,'string'));end
|
||||
if expN==3,DMstr=char(get(handles.DM3,'string'));end
|
||||
|
||||
if isequal(selGnOrf{1}(1:3),'RF1')|| isequal(selGnOrf{1}(1:3),'RF2')|| RFcmpGFlg==1
|
||||
gene={selGnOrf{1}(1:p2)};
|
||||
geneOrfstr=gene;
|
||||
grfgenestr=gene;
|
||||
else
|
||||
gene=MP(1,LBmp).genename{1,1}(indx); orf=MP(1,LBmp).orf{1,1}(indx);
|
||||
geneOrfstr=strcat(gene,'_',orf,'_','m',num2str(LBmp),'r',num2str(LBr),'c',num2str(LBc),'_',tPtStr);
|
||||
grfgenestr=strcat(gene,'_',orf,'_','m',num2str(LBmp),'r',num2str(LBr),'c',num2str(LBc));
|
||||
end
|
||||
%spec=MP(1,LBmp).specifics{1,1}(indx); %orfrep=MP(1,plateNum).orfRep{1,1}(indx);
|
||||
%tPtStr=strcat('T=', num2str(scan(1,plateNum).plate(1).t0Series(tPtSel)));
|
||||
graphStr=strcat(grfgenestr,'_','L=',Lstr,'_','r=',rstr,'_','K=',Kstr);
|
||||
spotDescrip=strcat(graphStr,'->',DMstr);
|
||||
|
||||
xp=char(Exp(zoneSel).Dexp(DexpN).resDir);
|
||||
if ispc,
|
||||
slashPos=strfind(char(Exp(zoneSel).Dexp(DexpN).resDir),'\');
|
||||
else
|
||||
slashPos=strfind(char(Exp(zoneSel).Dexp(DexpN).resDir),'/');
|
||||
end
|
||||
|
||||
startPos=slashPos(length(slashPos)-1) +1;
|
||||
endPos=slashPos(length(slashPos)) -1;
|
||||
expStr={xp(startPos:endPos)}
|
||||
|
||||
Exp(zoneSel).hOLname(traceN)=spotDescrip; %graphStr; %ghandles.Exp(zoneSel).hOLname(traceN)=graphStr;
|
||||
Exp(zoneSel).hOLexpNm(traceN)=expStr; %ghandles.Exp(expN).hOLexpNm(traceN)=expStr;
|
||||
Exp(zoneSel).hOLresDir(traceN)={Exp(zoneSel).Dexp(DexpN).resDir};
|
||||
%Exp(zoneSel).hOLplateNum(traceN)=plateNum;
|
||||
%traceData=vertcat(get(Exp(OLay).hOL(traceN),'XData'),get(ghandles.Exp(OLay).hOL(traceN),'YData'));
|
||||
if zoneSel==1,set(ghandles.GeneOrfLoc1,'string',geneOrfstr);end % Displays the value.
|
||||
if zoneSel==2,set(ghandles.GeneOrfLoc2,'string',geneOrfstr);end
|
||||
if zoneSel==3,set(ghandles.GeneOrfLoc3,'string',geneOrfstr);end
|
||||
if zoneSel==1,set(ghandles.graphStrLoc1,'string',spotDescrip);end %graphStr);end % Displays the value.
|
||||
if zoneSel==2,set(ghandles.graphStrLoc2,'string',spotDescrip);end %graphStr);end
|
||||
if zoneSel==3,set(ghandles.graphStrLoc3,'string',spotDescrip);end %graphStr);end
|
||||
|
||||
% Write Spot and Exp Info to OLay title areas
|
||||
|
||||
if zoneSel==1, %&& get(ghandles.rotPB1,'value')~=1
|
||||
if length(char(Exp(zoneSel).hOLname(traceN)))>40,set(ghandles.OLay1,'FontSize',8);end
|
||||
set(ghandles.OLay1,'string', Exp(zoneSel).hOLname(traceN));
|
||||
if length(char(Exp(zoneSel).hOLexpNm(traceN)))>40,set(ghandles.OLexp1,'FontSize',8);end
|
||||
set(ghandles.OLexp1,'string',Exp(zoneSel).hOLexpNm(traceN));
|
||||
end
|
||||
if zoneSel==2 %&& get(ghandles.rotPB2,'value') ~=1
|
||||
if length(char(Exp(zoneSel).hOLname(traceN)))>40,set(ghandles.OLay2,'FontSize',8);end
|
||||
set(ghandles.OLay2,'string', Exp(zoneSel).hOLname(traceN));
|
||||
if length(char(Exp(zoneSel).hOLexpNm(traceN)))>40,set(ghandles.OLexp2,'FontSize',8);end
|
||||
set(ghandles.OLexp2,'string',Exp(zoneSel).hOLexpNm(traceN));
|
||||
end
|
||||
if zoneSel==3 %&& get(ghandles.rotPB3,'value') ~=1
|
||||
if length(char(Exp(zoneSel).hOLname(traceN)))>40,set(ghandles.OLay3,'FontSize',8);end
|
||||
set(ghandles.OLay3,'string', Exp(OLay).hOLname(traceN));
|
||||
if length(char(Exp(zoneSel).hOLexpNm(traceN)))>40,set(ghandles.OLexp3,'FontSize',8);end
|
||||
set(ghandles.OLexp3,'string',Exp(OLay).hOLexpNm(traceN));
|
||||
end
|
||||
end
|
||||
|
||||
% GraphicDestinationPerturbationComparison**15_0821
|
||||
lstBoxCmpFlg=1;
|
||||
EZdatatip=0;
|
||||
if strcmp((Exp(expN).DexpType),'single') || strcmp((Exp(expN).DexpType),'multi')
|
||||
EZdestComp
|
||||
elseif strcmp((Exp(expN).DexpType),'chrono')
|
||||
EZmDayTrend
|
||||
end
|
||||
277
qhtcp-workflow/apps/matlab/ezview/EZlstBoxExt.m
Executable file
277
qhtcp-workflow/apps/matlab/ezview/EZlstBoxExt.m
Executable file
@@ -0,0 +1,277 @@
|
||||
%EZlstBoxExt.m
|
||||
% Calls either EZdestComp.m
|
||||
% or if 'Chrono' EZmDayPlotUCmp.m and EZmDayTrend.m and if ghandles.CompositeTog_,EZmDayPlotUcomposite
|
||||
% or by EZviewGui.m (listboxGnOrf_Callback)
|
||||
|
||||
% Replace get(ghandles.CompositeTog1,'value')==1 ... with get(handles....
|
||||
if expN==1 && get(handles.CompositeTog1,'value')==1 ...
|
||||
|| expN==2 && get(handles.CompositeTog2,'value')==1 ...
|
||||
|| expN==3 && get(handles.CompositeTog3,'value')==1
|
||||
CompositeTrendFlg=1; else CompositeTrendFlg=0;
|
||||
end
|
||||
|
||||
Exp(expN).cLmdEven=0; % Added for Cummulative Median and Mean 'C' plot
|
||||
RFDMflg=0;
|
||||
if zoneSel==1,DexpN=(get(handles.DN1,'value')); end
|
||||
if zoneSel==2,DexpN=(get(handles.DN2,'value')); end
|
||||
if zoneSel==3,DexpN=(get(handles.DN3,'value')); end
|
||||
try
|
||||
p1=cell2mat(strfind(selGnOrf,'('));
|
||||
p2=cell2mat(strfind(selGnOrf,')'));
|
||||
dmNum=str2num(selGnOrf{1}(p1+1:p2-1));
|
||||
inDM=selGnOrf{1}(p1+1:p2-1);
|
||||
if (~isempty(dmNum)&& isnumeric(dmNum)),RFDMflg=1; end
|
||||
catch
|
||||
end
|
||||
if RFDMflg, Exp(zoneSel).Dexp(DexpN).pertSel=dmNum; end % pertSel=pert;
|
||||
inMP=selGnOrf{1}((LBdlims{:,:}(1))+1:(LBdlims{:,:}(2))-1)
|
||||
% LBmp=str2double(inMP);
|
||||
sgdInfoOnly=get(handles.InfoToggle,'value');
|
||||
if sgdInfoOnly==1
|
||||
EZviewInfoBox
|
||||
else % Runs to end of EZlstBoxExt.m within this else condition
|
||||
if zoneSel==1
|
||||
Max=floor(get(handles.MPsldr1,'max'));
|
||||
Min=floor(get(handles.MPsldr1,'min'));
|
||||
if str2num(inMP) >=Min && str2num(inMP) <=Max
|
||||
set(handles.MPed1,'string',inMP)
|
||||
set(handles.MPsldr1,'value',str2double(inMP));
|
||||
else
|
||||
if str2num(inMP) >=Max, set(handles.MPsldr1,'value',Max); set(handles.MPed1,'string',num2str(Max));end
|
||||
if str2num(inMP) <=Min, set(handles.MPsldr1,'value',Min),set(handles.MPed1,'string',num2str(Min));end
|
||||
end
|
||||
end
|
||||
if zoneSel==2
|
||||
Max=floor(get(handles.MPsldr2,'max'));
|
||||
Min=floor(get(handles.MPsldr2,'min'));
|
||||
if str2num(inMP) >=Min && str2num(inMP) <=Max
|
||||
set(handles.MPed2,'string',inMP)
|
||||
set(handles.MPsldr2,'value',str2double(inMP));
|
||||
else
|
||||
if str2num(inMP) >=Max, set(handles.MPsldr2,'value',Max); set(handles.MPed2,'string',num2str(Max));end
|
||||
if str2num(inMP) <=Min, set(handles.MPsldr2,'value',Min),set(handles.MPed2,'string',num2str(Min));end
|
||||
end
|
||||
end
|
||||
if zoneSel==3
|
||||
Max=floor(get(handles.MPsldr3,'max'));
|
||||
Min=floor(get(handles.MPsldr3,'min'));
|
||||
if str2num(inMP) >=Min && str2num(inMP) <=Max
|
||||
set(handles.MPed3,'string',inMP)
|
||||
set(handles.MPsldr3,'value',str2double(inMP));
|
||||
else
|
||||
if str2num(inMP) >=Max, set(handles.MPsldr3,'value',Max); set(handles.MPed3,'string',num2str(Max));end
|
||||
if str2num(inMP) <=Min, set(handles.MPsldr3,'value',Min),set(handles.MPed3,'string',num2str(Min));end
|
||||
end
|
||||
end
|
||||
if RFDMflg
|
||||
if zoneSel==1
|
||||
Max=floor(get(handles.DMsldr1,'max'));
|
||||
Min=floor(get(handles.DMsldr1,'min'));
|
||||
if str2num(inDM) >=Min && str2num(inDM) <=Max
|
||||
set(handles.DMed1,'string',inDM)
|
||||
set(handles.DMsldr1,'value',str2double(inDM));
|
||||
else
|
||||
if str2num(inDM) >=Max, set(handles.DMsldr1,'value',Max); set(handles.DMed1,'string',num2str(Max));end
|
||||
if str2num(inDM) <=Min, set(handles.DMsldr1,'value',Min),set(handles.DMed1,'string',num2str(Min));end
|
||||
end
|
||||
end
|
||||
if zoneSel==2
|
||||
Max=floor(get(handles.DMsldr2,'max'));
|
||||
Min=floor(get(handles.DMsldr2,'min'));
|
||||
if str2num(inDM) >=Min && str2num(inDM) <=Max
|
||||
set(handles.DMed2,'string',inDM)
|
||||
set(handles.DMsldr2,'value',str2double(inDM));
|
||||
else
|
||||
if str2num(inDM) >=Max, set(handles.DMsldr2,'value',Max); set(handles.DMed2,'string',num2str(Max));end
|
||||
if str2num(inDM) <=Min, set(handles.DMsldr2,'value',Min),set(handles.DMed2,'string',num2str(Min));end
|
||||
end
|
||||
end
|
||||
if zoneSel==3
|
||||
Max=floor(get(handles.DMsldr3,'max'));
|
||||
Min=floor(get(handles.DMsldr3,'min'));
|
||||
if str2num(inDM) >=Min && str2num(inDM) <=Max
|
||||
set(handles.DMed3,'string',inDM)
|
||||
set(handles.DMsldr3,'value',str2double(inDM));
|
||||
else
|
||||
if str2num(inDM) >=Max, set(handles.DMsldr3,'value',Max); set(handles.DMed3,'string',num2str(Max));end
|
||||
if str2num(inDM) <=Min, set(handles.DMsldr3,'value',Min),set(handles.DMed3,'string',num2str(Min));end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
EZVimDisplay
|
||||
|
||||
% 17_111 If CompositeTog_ set, Routine called to find all gene replicates and produce composite values
|
||||
if CompositeTrendFlg==1
|
||||
if strcmp(Exp(expN).DexpType, 'chrono')
|
||||
EZmDayPlotUcmp
|
||||
else
|
||||
EZplotUcmp
|
||||
end
|
||||
% Plot Selected Gene/Orf Spot
|
||||
% if non-Composite ("normal") then - ...
|
||||
elseif CompositeTrendFlg~=1
|
||||
destPerMP=Exp(zoneSel).Dexp(DexpN).destPerMP; %length(gS.DM1.drug);
|
||||
pertSel=Exp(zoneSel).Dexp(DexpN).pertSel; %floor(get(handles.DMsldr1,'value'));
|
||||
plateNum=(LBmp-1)*destPerMP + pertSel;
|
||||
indx=((LBr-1)*24) +LBc
|
||||
MP=Exp(zoneSel).Dexp(DexpN).MP;
|
||||
try
|
||||
K=scan(1,plateNum).plate(1).CFout(indx,3); Ks=num2str(K);
|
||||
r=scan(1,plateNum).plate(1).CFout(indx,4); rs=num2str(r);
|
||||
l=scan(1,plateNum).plate(1).CFout(indx,5); Ls=num2str(l);
|
||||
try Kstr=Ks(1:5); catch, Kstr=Ks(1:length(Ks)); end
|
||||
try rstr=rs(1:5); catch, rstr=rs(1:length(rs)); end
|
||||
try Lstr=Ls(1:5); catch, Lstr=Ls(1:length(Ls)); end
|
||||
Kl=scan(1,plateNum).plate(1).CFout(indx,7);
|
||||
Ku=scan(1,plateNum).plate(1).CFout(indx,8);
|
||||
rl=scan(1,plateNum).plate(1).CFout(indx,9);
|
||||
ru=scan(1,plateNum).plate(1).CFout(indx,10);
|
||||
lfast=scan(1,plateNum).plate(1).CFout(indx,11);
|
||||
lslow=scan(1,plateNum).plate(1).CFout(indx,12);
|
||||
t=1:200;
|
||||
clear g;
|
||||
try
|
||||
g=K ./ (1 + exp(-r.* (t - l )));
|
||||
gSlow=Kl ./ (1 + exp(-rl.* (t - lslow )));
|
||||
gFast=Ku ./ (1 + exp(-ru.* (t - lfast )));
|
||||
if K==0||r==0||l==0, g(1:200)=1;gSlow(1:200)=1;gFast(1:200)=1;end
|
||||
tser=(scan(1,plateNum).plate(1).t0Series(:));
|
||||
rawData=scan(1,plateNum).plate(1).intens(indx,:)/scan(1,plateNum).plate(1).Ag(indx);
|
||||
if zoneSel==1, plotAxes=ghandles.Paxes1; OLaxes=ghandles.OLaxes1;
|
||||
Dlaxes=ghandles.Dlaxes1;Dkaxes=ghandles.Dkaxes1;Draxes=ghandles.Draxes1;
|
||||
Exp(1).traceN=Exp(1).traceN+1;
|
||||
traceN=Exp(1).traceN;
|
||||
end
|
||||
if zoneSel==2, plotAxes=ghandles.Paxes2; OLaxes=ghandles.OLaxes2;Daxes=ghandles.Daxes2;
|
||||
Dlaxes=ghandles.Dlaxes2;Dkaxes=ghandles.Dkaxes2;Draxes=ghandles.Draxes2;
|
||||
Exp(2).traceN=Exp(2).traceN+1;
|
||||
traceN=Exp(2).traceN;
|
||||
end
|
||||
if zoneSel==3, plotAxes=ghandles.Paxes3; OLaxes=ghandles.OLaxes3;Daxes=ghandles.Daxes3;
|
||||
Dlaxes=ghandles.Dlaxes3;Dkaxes=ghandles.Dkaxes3;Draxes=ghandles.Draxes3;
|
||||
Exp(3).traceN=Exp(3).traceN+1;
|
||||
traceN=Exp(3).traceN;
|
||||
end
|
||||
plot(plotAxes,t,g);hold (plotAxes,'on');plot(plotAxes,tser,rawData,'g*');
|
||||
plot(plotAxes,t,gSlow,'y');plot(plotAxes,t,gFast,'r');hold (plotAxes,'off');
|
||||
% Store L R and K valves for Composite [C] plots
|
||||
Exp(expN).ll(traceN)=l; Exp(expN).rr(traceN)=r; Exp(expN).kk(traceN)=K;
|
||||
Exp(expN).lslow(traceN)=lslow; Exp(expN).lfast(traceN)=lfast;
|
||||
try for i=1:length(Exp(zoneSel).hOL(:)),set(Exp(zoneSel).hOL(i),'color',[0 0 1]); end, catch; end
|
||||
Exp(zoneSel).hOL(traceN)=plot(OLaxes,t,g);hold on;
|
||||
set(Exp(zoneSel).hOL(traceN),'color',[1 0 0])
|
||||
Exp(zoneSel).hOLb(traceN)=plot(OLaxes,tser,rawData,'g*');
|
||||
catch
|
||||
catchissue='Ln100 EZlstBoxExt'
|
||||
end
|
||||
|
||||
% Get the DM agar description
|
||||
if expN==1,DMstr=char(get(handles.DM1,'string'));end
|
||||
if expN==2,DMstr=char(get(handles.DM2,'string'));end
|
||||
if expN==3,DMstr=char(get(handles.DM3,'string'));end
|
||||
|
||||
if isequal(selGnOrf{1}(1:3),'RF1')
|
||||
gene={selGnOrf{1}(1:p2)};
|
||||
geneOrfstr=strcat(gene,'_','m',num2str(LBmp),'r',num2str(LBr),'c',num2str(LBc),'_',tPtStr);
|
||||
grfgenestr=strcat(gene,'_','m',num2str(LBmp),'r',num2str(LBr),'c',num2str(LBc));
|
||||
else
|
||||
gene=MP(1,LBmp).genename{1,1}(indx); orf=MP(1,LBmp).orf{1,1}(indx);
|
||||
geneOrfstr=strcat(gene,'_',orf,'_','m',num2str(LBmp),'r',num2str(LBr),'c',num2str(LBc),'_',tPtStr);
|
||||
grfgenestr=strcat(gene,'_',orf,'_','m',num2str(LBmp),'r',num2str(LBr),'c',num2str(LBc));
|
||||
end
|
||||
spec=MP(1,LBmp).specifics{1,1}(indx); %orfrep=MP(1,plateNum).orfRep{1,1}(indx);
|
||||
tPtStr=strcat('T=', num2str(scan(1,plateNum).plate(1).t0Series(tPtSel)));
|
||||
graphStr=strcat(grfgenestr,'_','L=',Lstr,'_','r=',rstr,'_','K=',Kstr);
|
||||
spotDescrip=strcat(graphStr,'->',DMstr);
|
||||
|
||||
xp=char(Exp(zoneSel).Dexp(DexpN).resDir);
|
||||
if ispc,
|
||||
slashPos=strfind(char(Exp(zoneSel).Dexp(DexpN).resDir),'\');
|
||||
else
|
||||
slashPos=strfind(char(Exp(zoneSel).Dexp(DexpN).resDir),'/');
|
||||
end
|
||||
|
||||
startPos=slashPos(length(slashPos)-1) +1;
|
||||
endPos=slashPos(length(slashPos)) -1
|
||||
expStr={xp(startPos:endPos)}
|
||||
|
||||
Exp(zoneSel).hOLname(traceN)=spotDescrip; % graphStr; %ghandles.Exp(zoneSel).hOLname(traceN)=graphStr;
|
||||
Exp(zoneSel).hOLexpNm(traceN)=expStr; % ghandles.Exp(expN).hOLexpNm(traceN)=expStr;
|
||||
Exp(zoneSel).hOLresDir(traceN)={Exp(zoneSel).Dexp(DexpN).resDir};
|
||||
Exp(zoneSel).hOLplateNum(traceN)=plateNum;
|
||||
|
||||
% traceData=vertcat(get(Exp(OLay).hOL(traceN),'XData'),get(ghandles.Exp(OLay).hOL(traceN),'YData'));
|
||||
if zoneSel==1,set(ghandles.GeneOrfLoc1,'string',geneOrfstr);end % Displays the value.
|
||||
if zoneSel==2,set(ghandles.GeneOrfLoc2,'string',geneOrfstr);end
|
||||
if zoneSel==3,set(ghandles.GeneOrfLoc3,'string',geneOrfstr);end
|
||||
if zoneSel==1,set(ghandles.graphStrLoc1,'string',spotDescrip);end %graphStr);end % Displays the value.
|
||||
if zoneSel==2,set(ghandles.graphStrLoc2,'string',spotDescrip);end %graphStr);end
|
||||
if zoneSel==3,set(ghandles.graphStrLoc3,'string',spotDescrip);end %graphStr);end
|
||||
catch
|
||||
catchissue='Ln141 EZlstBoxExt'
|
||||
msg='Error'
|
||||
end
|
||||
end
|
||||
|
||||
% Write Spot and Exp Info to OLay title areas
|
||||
if zoneSel==1 %&& get(ghandles.rotPB1,'value')~=1
|
||||
if length(char(Exp(zoneSel).hOLname(traceN)))>40,set(ghandles.OLay1,'FontSize',8);end
|
||||
set(ghandles.OLay1,'string', Exp(zoneSel).hOLname(traceN));
|
||||
if length(char(Exp(zoneSel).hOLexpNm(traceN)))>40,set(ghandles.OLexp1,'FontSize',8);end
|
||||
set(ghandles.OLexp1,'string',Exp(zoneSel).hOLexpNm(traceN));
|
||||
end
|
||||
if zoneSel==2 %&& get(ghandles.rotPB2,'value') ~=1
|
||||
if length(char(Exp(zoneSel).hOLname(traceN)))>40,set(ghandles.OLay2,'FontSize',8);end
|
||||
set(ghandles.OLay2,'string', Exp(zoneSel).hOLname(traceN));
|
||||
if length(char(Exp(zoneSel).hOLexpNm(traceN)))>40,set(ghandles.OLexp2,'FontSize',8);end
|
||||
set(ghandles.OLexp2,'string',Exp(zoneSel).hOLexpNm(traceN));
|
||||
end
|
||||
if zoneSel==3 %&& get(ghandles.rotPB3,'value') ~=1
|
||||
if length(char(Exp(zoneSel).hOLname(traceN)))>40,set(ghandles.OLay3,'FontSize',8);end
|
||||
set(ghandles.OLay3,'string', Exp(OLay).hOLname(traceN));
|
||||
if length(char(Exp(zoneSel).hOLexpNm(traceN)))>40,set(ghandles.OLexp3,'FontSize',8);end
|
||||
set(ghandles.OLexp3,'string',Exp(OLay).hOLexpNm(traceN));
|
||||
end
|
||||
|
||||
% Highlight gene/orf select Spot on Image
|
||||
tPtSel=Exp(zoneSel).Dexp(DexpN).tPtSel;
|
||||
Rim=16-(LBr-1); Cim =LBc;
|
||||
spotCoor=Exp(zoneSel).Dexp(DexpN).FexpScanSpots{1,plateNum}{Cim,Rim,tPtSel};
|
||||
if zoneSel==1, expAxes=ghandles.Iaxes1;end
|
||||
if zoneSel==2, expAxes=ghandles.Iaxes2;end
|
||||
if zoneSel==3, expAxes=ghandles.Iaxes3;end
|
||||
%axes(ghandles.Iaxes1)
|
||||
plot(expAxes,(spotCoor(2)+24),(spotCoor(1)+24),'.y')
|
||||
|
||||
% GraphicDestinationPerturbationComparison**15_0821
|
||||
EZdatatip=0; %**
|
||||
if strcmp((Exp(expN).DexpType),'single') ...
|
||||
|| strcmp((Exp(expN).DexpType),'multi')
|
||||
EZdestComp
|
||||
elseif strcmp((Exp(expN).DexpType),'chrono')
|
||||
EZmDayTrend
|
||||
end
|
||||
|
||||
% HeatMap Text Field
|
||||
try
|
||||
ll=num2str(l);
|
||||
if length(ll)>5,htl=ll(1:5);else htl=ll;end
|
||||
catch
|
||||
htl=' ';
|
||||
end
|
||||
try
|
||||
n1=num2str(Exp(expN).Dexp(DexpN).HtMpIntN1(indx));
|
||||
if length(n1)>5,N1=n1(1:5);else N1=n1; end
|
||||
htN1=strcat('_N1=',N1);
|
||||
catch,
|
||||
htN1=' ';
|
||||
end
|
||||
try
|
||||
htmapStr=strcat('L=',htl, htN1)
|
||||
if expN==1,set(ghandles.HtMapVals1,'string',htmapStr);end
|
||||
if expN==2,set(ghandles.HtMapVals2,'string',htmapStr);end
|
||||
if expN==3,set(ghandles.HtMapVals3,'string',htmapStr);end
|
||||
catch
|
||||
end
|
||||
end
|
||||
251
qhtcp-workflow/apps/matlab/ezview/EZmDayPlotUcmp.m
Executable file
251
qhtcp-workflow/apps/matlab/ezview/EZmDayPlotUcmp.m
Executable file
@@ -0,0 +1,251 @@
|
||||
% User find and build composite of Selected Gene Composite and
|
||||
% Plot it on OLay Plot and Trend plot DNLaxles
|
||||
% For Chonological Studies (multi Day Studies)
|
||||
% Called when Composite_ toggle button is clicked.
|
||||
% Data stored for printable Trend Plot production (click [L] in DNLaxes )
|
||||
|
||||
global ghandles
|
||||
global Exp
|
||||
global exDlst
|
||||
global exFolder
|
||||
|
||||
traceN=Exp(expN).traceN;
|
||||
DexpN=Exp(expN).DexpN; % Temp input for development
|
||||
patrnN=strfind(selGnOrf{1},':'); %Extract Gene-Orf Name
|
||||
patrndash=strfind(selGnOrf{1},'-');
|
||||
selStrNm=char(selGnOrf)
|
||||
if strcmpi(selStrNm(1:3),'RF-')
|
||||
usrGene=selStrNm(4:(patrndash(2)-1));
|
||||
else
|
||||
usrGene=selStrNm(1:(patrnN(1)-1));
|
||||
end
|
||||
|
||||
prompt={'Enter Specifics Term if used to futher specify selection '}
|
||||
dlg_title='User Specifics Term for Refinement Composite';
|
||||
num_lines=1;
|
||||
def={'None'};
|
||||
answer=inputdlg(prompt,dlg_title,num_lines,def);
|
||||
usrSpec=cell2mat(answer(1));
|
||||
if strcmpi(usrSpec,'None')
|
||||
usrGnSp={strcat(usrGene,'-')};
|
||||
elseif length(usrSpec)> 8,
|
||||
trimUspec=usrSpec(1:8);
|
||||
usrGnSp=strcat(usrGene,',',{trimUspec});
|
||||
else
|
||||
trimUspec=usrSpec;
|
||||
usrGnSp=strcat(usrGene,',',{trimUspec});
|
||||
end
|
||||
|
||||
for n=1:Exp(expN).DexpLength % LOOP Thru DayExps
|
||||
|
||||
MPnum=length(Exp(expN).Dexp(n).MP);
|
||||
DMnum=length(Exp(expN).Dexp(n).DM.drug);
|
||||
%Extract expDay from ExpName string
|
||||
dayNpos=max(strfind(Exp(expN).Dexp(n).ExpFoldr, '_D'))
|
||||
dayLbl=Exp(expN).Dexp(n).ExpFoldr(dayNpos+1:end);
|
||||
dRF1indx=0;
|
||||
usrSp=usrSpec; %user entry of Specifics for Ref selection
|
||||
|
||||
for mp=1:length(Exp(expN).Dexp(n).MP)
|
||||
for ind384=1:384
|
||||
try
|
||||
% Insert test for numeric in genename and orf if isnumeric
|
||||
% Correct common EXCEL problem of converting OCT1 into a date numeric
|
||||
if cell2mat(Exp(expN).Dexp(n).MP(mp).genename{1}(ind384))==38991,
|
||||
Exp(expN).Dexp(n).MP(mp).genename{1}(ind384)={'OCT1_'};
|
||||
elseif isnumeric(cell2mat(Exp(expN).Dexp(n).MP(mp).genename{1}(ind384)))
|
||||
Exp(expN).Dexp(n).MP(mp).genename{1}(ind384)={' '};
|
||||
end
|
||||
|
||||
% DISPersed REFerence capture and find Medians
|
||||
if ( ((strcmpi((Exp(expN).Dexp(n).MP(mp).genename{1}(ind384)),usrGene) ...
|
||||
&& strcmpi((Exp(expN).Dexp(n).MP(mp).specifics{1}(ind384)),usrSp))) ...
|
||||
|| ((strcmpi((Exp(expN).Dexp(n).MP(mp).genename{1}(ind384)),usrGene) ...
|
||||
&& strcmpi(usrSp,'None'))) )
|
||||
dRF1indx=dRF1indx+1;
|
||||
Exp(expN).Dexp(n).MP(mp).genename{1}(ind384)=strrep((Exp(expN).Dexp(n).MP(mp).genename{1}(ind384)),':',' ');
|
||||
drf(dRF1indx,1)=(Exp(expN).Dexp(n).MP(mp).genename{1}(ind384));
|
||||
drf(dRF1indx,2)={mp}; drfMP(dRF1indx,mp)=mp;
|
||||
drf(dRF1indx,3)={ind384}; drfPindx(dRF1indx,mp)=ind384;
|
||||
%drf(dRF1indx,7)=(Exp(expN).Dexp(n).MP(mp).specifics{1}(ind384));
|
||||
end
|
||||
catch
|
||||
msgBadGeneName=strcat('check genename at mp=',num2str(mp),' indx=',num2str(ind384))
|
||||
end
|
||||
end % end associated with for ind384=1:384
|
||||
mp
|
||||
end
|
||||
|
||||
vvL=[]; %Initialize to cover case where all spot are Zero NoGrowth See NIGrowthflg==0
|
||||
if exist('drf','var')
|
||||
% Det. index of change from one MP to the next
|
||||
i=2;
|
||||
clear chgIndx
|
||||
chgIndx(1)=1;
|
||||
for j=1:length(drf(:,3))
|
||||
if j>1
|
||||
if cell2mat(drf(j,2))~=cell2mat(drf((j-1),2)), chgIndx(i)=j; i=i+1; end
|
||||
end
|
||||
end
|
||||
chgIndx(length(chgIndx)+1)=size(drf,1) +1; %length(drf)+1;
|
||||
vvL=zeros(size(drf,1),1 ); %length(drf)+1;
|
||||
dMPs=unique(cell2mat(drf(:,2)));
|
||||
|
||||
for mm=1:length(dMPs) % length(chgIndx)
|
||||
usrScNdisp=((dMPs(mm)-1)*DMnum)+(dmSel);
|
||||
NZusrIndx=drfPindx((find(drfPindx(:,dMPs(mm)))),dMPs(mm)); medianIndxDisp=NZusrIndx;
|
||||
vvL(chgIndx(mm):(chgIndx(mm+1)-1))=Exp(expN).Dexp(n).scan(usrScNdisp).plate(1).CFout(NZusrIndx,5);
|
||||
% For Global Ref Composite 17_1009
|
||||
vvK(chgIndx(mm):(chgIndx(mm+1)-1))=Exp(expN).Dexp(n).scan(usrScNdisp).plate(1).CFout(NZusrIndx,3);
|
||||
vvr(chgIndx(mm):(chgIndx(mm+1)-1))=Exp(expN).Dexp(n).scan(usrScNdisp).plate(1).CFout(NZusrIndx,4);
|
||||
end
|
||||
|
||||
% Calc. Global Mean, Std, And Median For Distributed References
|
||||
for d=dmSel:dmSel
|
||||
NZusrIndxG=[];
|
||||
NZusrIndxG=find(vvL);
|
||||
|
||||
if isempty(nonzeros(vvL))
|
||||
nonZeroCntD=0;
|
||||
else
|
||||
nonZeroCntD=length(nonzeros(vvL));
|
||||
end
|
||||
|
||||
% Calc. of median value for composite doesn't require and odd number of Indx items
|
||||
NZusrIndxG=NZusrIndxG(:);
|
||||
if ~isempty(NZusrIndxG) && length(NZusrIndxG) > 0 %(.15*size(drf,1)) %To calc. a median, more than 15% of spots must be nonZero
|
||||
UsrLvals{n}=vvL(NZusrIndxG);
|
||||
UsrKvals{n}=vvK(NZusrIndxG);
|
||||
Usrrvals{n}=vvr(NZusrIndxG);
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
if ~exist('drf','var'),
|
||||
errordlg('Gene-Specifics combination not found. Check spelling of Specifics entry.','Entry Warning');
|
||||
break;
|
||||
end
|
||||
|
||||
NoGrowthflg=0;
|
||||
if isempty(vvL),
|
||||
warndlg('No Growth condition found for Gene-Specifics combination. . ','No Growth warning');
|
||||
NoGrowthflg=1;
|
||||
end
|
||||
|
||||
%Exp(expN).UgeneCnt=Exp(expN).UgeneCnt +1;
|
||||
%Exp(expN).UgeneSpLst(Exp(expN).UgeneCnt)=usrGnSp;
|
||||
% Plot Values Selected Gene-Specifics Composite
|
||||
if NoGrowthflg==0
|
||||
smpSz=size(NZusrIndxG,1);
|
||||
K=median(cell2mat((UsrKvals(DexpN)))); Ks=num2str(K); Kstd=std(cell2mat((UsrKvals(DexpN)))); KstdStr=num2str(Kstd);
|
||||
r=median(cell2mat((Usrrvals(DexpN)))); rs=num2str(r); rstd=std(cell2mat((Usrrvals(DexpN)))); rstdStr=num2str(rstd);
|
||||
l=median(cell2mat((UsrLvals(DexpN)))); Ls=num2str(l); Lstd=std(cell2mat((UsrLvals(DexpN)))); LstdStr=num2str(Lstd);
|
||||
Kl=K - Kstd; %std(UsrKvals(DexpN));
|
||||
Ku=K + Kstd; %std(UsrKvals(DexpN));
|
||||
rl=r - rstd; %std(Usrrvals(DexpN));
|
||||
ru=r + rstd; %std(UsrKvals(DexpN));
|
||||
lfast=l - Lstd;
|
||||
lslow=l + Lstd;
|
||||
elseif NoGrowth==1 %if all data is zero (NoGrowth)
|
||||
smpSz=size(NZusrIndxG,1);
|
||||
K=0; Ks=num2str(K); Kstd=0; KstdStr=num2str(0);
|
||||
r=0; rs=num2str(r); rstd=0; rstdStr=num2str(0);
|
||||
l=0; Ls=num2str(l); Lstd=0; LstdStr=num2str(0);
|
||||
Kl=K - Kstd;
|
||||
Ku=K + Kstd;
|
||||
rl=r - rstd;
|
||||
ru=r + rstd;
|
||||
lfast=l - Lstd;
|
||||
lslow=l + Lstd;
|
||||
end
|
||||
|
||||
try Kstr=Ks(1:5); catch, Kstr=Ks(1:length(Ks)); end
|
||||
try rstr=rs(1:5); catch, rstr=rs(1:length(rs)); end
|
||||
try Lstr=Ls(1:5); catch, Lstr=Ls(1:length(Ls)); end
|
||||
|
||||
pertSel=Exp(zoneSel).Dexp(DexpN).pertSel; %floor(get(handles.DMsldr1,'value'));
|
||||
plateNum=(LBmp-1)*destPerMP + pertSel;
|
||||
MP=Exp(zoneSel).Dexp(DexpN).MP;
|
||||
|
||||
try
|
||||
t=1:200;
|
||||
clear g;
|
||||
try
|
||||
g=K ./ (1 + exp(-r.* (t - l )));
|
||||
gSlow=Kl ./ (1 + exp(-rl.* (t - lslow )));
|
||||
gFast=Ku ./ (1 + exp(-ru.* (t - lfast )));
|
||||
if K==0||r==0||l==0, g(1:200)=1;gSlow(1:200)=1;gFast(1:200)=1;end
|
||||
if zoneSel==1, plotAxes=ghandles.Paxes1; OLaxes=ghandles.OLaxes1;
|
||||
Dlaxes=ghandles.Dlaxes1;Dkaxes=ghandles.Dkaxes1;Draxes=ghandles.Draxes1;
|
||||
Exp(1).traceN=Exp(1).traceN+1;
|
||||
traceN=Exp(1).traceN;
|
||||
end
|
||||
if zoneSel==2
|
||||
plotAxes=ghandles.Paxes2; OLaxes=ghandles.OLaxes2;Daxes=ghandles.Daxes2;
|
||||
Dlaxes=ghandles.Dlaxes2;Dkaxes=ghandles.Dkaxes2;Draxes=ghandles.Draxes2;
|
||||
Exp(2).traceN=Exp(2).traceN+1;
|
||||
traceN=Exp(2).traceN;
|
||||
end
|
||||
if zoneSel==3
|
||||
plotAxes=ghandles.Paxes3; OLaxes=ghandles.OLaxes3;Daxes=ghandles.Daxes3;
|
||||
Dlaxes=ghandles.Dlaxes3;Dkaxes=ghandles.Dkaxes3;Draxes=ghandles.Draxes3;
|
||||
Exp(3).traceN=Exp(3).traceN+1;
|
||||
traceN=Exp(3).traceN;
|
||||
end
|
||||
plot(plotAxes,t,g);hold (plotAxes,'on');
|
||||
plot(plotAxes,t,gSlow,'y');plot(plotAxes,t,gFast,'r');hold (plotAxes,'off');
|
||||
Exp(expN).Trace(traceN).UsrGLB=usrGnSp;
|
||||
Exp(expN).Trace(traceN).dmSel=dmSel;
|
||||
for n=1:Exp(expN).DexpLength % Loop Thru DayExps
|
||||
Exp(expN).Trace(traceN).Dexp(n).DM(dmSel).UsrLvals=UsrLvals(n);
|
||||
Exp(expN).Trace(traceN).Dexp(n).DM(dmSel).UsrKvals=UsrKvals(n);
|
||||
Exp(expN).Trace(traceN).Dexp(n).DM(dmSel).Usrrvals=Usrrvals(n);
|
||||
end
|
||||
|
||||
% Store L R and K valves for manual selected Composite [C] plots
|
||||
Exp(expN).ll(traceN)=l; Exp(expN).rr(traceN)=r; Exp(expN).kk(traceN)=K;
|
||||
Exp(expN).lslow(traceN)=lslow; Exp(expN).lfast(traceN)=lfast;
|
||||
|
||||
try for i=1:length(Exp(zoneSel).hOL(:)),set(Exp(zoneSel).hOL(i),'color',[0 0 1]); end, catch; end
|
||||
Exp(zoneSel).hOL(traceN)=plot(OLaxes,t,g);hold on;
|
||||
set(Exp(zoneSel).hOL(traceN),'color',[1 0 0])
|
||||
catch
|
||||
catchissue='Ln100 EZlstBoxExt'
|
||||
end
|
||||
|
||||
%Get the DM agar description
|
||||
if expN==1,DMstr=char(get(handles.DM1,'string'));end
|
||||
if expN==2,DMstr=char(get(handles.DM2,'string'));end
|
||||
if expN==3,DMstr=char(get(handles.DM3,'string'));end
|
||||
gene=usrGnSp; orf='' %MP(1,LBmp).orf{1,1}(indx);
|
||||
geneOrfstr=strcat(gene,'_',orf,'_');
|
||||
grfgenestr=strcat(gene,'_',orf,'_');
|
||||
graphStr=strcat(usrGnSp,'_','L=',Lstr,'_','Ls=',LstdStr,'_','r=',rstr,'_','rs=',rstdStr,'_','K=',Kstr,'Ks=',KstdStr);
|
||||
spotDescrip=strcat(graphStr,'->',DMstr);
|
||||
|
||||
xp=char(Exp(zoneSel).Dexp(DexpN).resDir);
|
||||
if ispc,
|
||||
slashPos=strfind(char(Exp(zoneSel).Dexp(DexpN).resDir),'\');
|
||||
else
|
||||
slashPos=strfind(char(Exp(zoneSel).Dexp(DexpN).resDir),'/');
|
||||
end
|
||||
|
||||
startPos=slashPos(length(slashPos)-1) +1;
|
||||
endPos=slashPos(length(slashPos)) -1;
|
||||
expStr={xp(startPos:endPos)};
|
||||
|
||||
Exp(zoneSel).hOLname(traceN)=spotDescrip;
|
||||
Exp(zoneSel).hOLexpNm(traceN)=expStr;
|
||||
Exp(zoneSel).hOLresDir(traceN)={Exp(zoneSel).Dexp(DexpN).resDir};
|
||||
Exp(zoneSel).hOLplateNum(traceN)=plateNum;
|
||||
|
||||
if zoneSel==1,set(ghandles.GeneOrfLoc1,'string',geneOrfstr);end % Displays the value.
|
||||
if zoneSel==2,set(ghandles.GeneOrfLoc2,'string',geneOrfstr);end
|
||||
if zoneSel==3,set(ghandles.GeneOrfLoc3,'string',geneOrfstr);end
|
||||
if zoneSel==1,set(ghandles.graphStrLoc1,'string',spotDescrip);end %graphStr);end % Displays the value.
|
||||
if zoneSel==2,set(ghandles.graphStrLoc2,'string',spotDescrip);end %graphStr);end
|
||||
if zoneSel==3,set(ghandles.graphStrLoc3,'string',spotDescrip);end %graphStr);end
|
||||
catch
|
||||
msg='Error'
|
||||
end
|
||||
590
qhtcp-workflow/apps/matlab/ezview/EZmDayPlotUcomposite.m
Executable file
590
qhtcp-workflow/apps/matlab/ezview/EZmDayPlotUcomposite.m
Executable file
@@ -0,0 +1,590 @@
|
||||
% User find and build composite of Selected Gene Composite and
|
||||
% Plot it on OLay Plot and Trend plot DNLaxles
|
||||
% For Chonological Studies (multi Day Studies)
|
||||
% Called when Composite_ toggle button is clicked.
|
||||
% Data stored for printable Trend Plot production (click [L] in DNLaxes )
|
||||
|
||||
global ghandles
|
||||
global Exp
|
||||
global exDlst
|
||||
global exFolder
|
||||
|
||||
tracN=Exp(expN).traceN;
|
||||
n=Exp(expN).DexpN; % Temp input for development
|
||||
% UmDayaa=cell(3,n); UmDaybb=cell(3,n);
|
||||
patrnN=strfind(selGnOrf{1},':'); % Extract Gene-Orf Name
|
||||
selStrNm=char(selGnOrf)
|
||||
usrGene=selStrNm(1:(patrnN(1)-1))
|
||||
prompt={'Enter Specifics Term if used to futher specify selection '}
|
||||
dlg_title='User Specifics Term for Refinement Composite';
|
||||
num_lines=1;
|
||||
def={'None'};
|
||||
answer=inputdlg(prompt,dlg_title,num_lines,def);
|
||||
% usrGene=cell2mat(answer(1));
|
||||
usrSpec=answer(1);
|
||||
usrGnSp=strcat(usrGene,usrSpec);
|
||||
if strcmpi(usrSpec,'None'), usrGnSp={strcat(usrGene,'-')}; end
|
||||
|
||||
% if strfind(Exp(expN).UgeneSpLst,usrGnSp), break; end
|
||||
Exp(expN).Dexp(n).UsrmdPLB={[]};
|
||||
Exp(expN).Dexp(n).UsrMedianG=[];
|
||||
Exp(expN).Dexp(n).UsrminG=[];
|
||||
Exp(expN).Dexp(n).UsrmaxG=[];
|
||||
Exp(expN).Dexp(n).UsrstdG=[];
|
||||
Exp(expN).Dexp(n).UsrmeanG=[];
|
||||
Exp(expN).Dexp(n).UsrCmpGL=[]; % For Ref Composite 17_1026
|
||||
Exp(expN).Dexp(n).UsrCmpGK=[]; % For Ref Composite 17_1026
|
||||
Exp(expN).Dexp(n).UsrCmpGr=[]; % For Ref Composite 17_1026
|
||||
Exp(expN).Dexp(n).UsrGLB={};
|
||||
|
||||
for n=1:Exp(expN).DexpLength % Loop Thru Dayexps
|
||||
MPnum=length(Exp(expN).Dexp(n).MP);
|
||||
DMnum=length(Exp(expN).Dexp(n).DM.drug);
|
||||
tPtsSize=size(Exp(expN).Dexp(n).FexpScanBMtp{1,1},(3));
|
||||
% lstindx=size(aa,1);
|
||||
% lstindxOrf=size(bb,1);
|
||||
spN=0;
|
||||
rfcnt=0;
|
||||
dRF1indx=0;
|
||||
% usrGene=cell2mat(usrGene); %user entry of Specifics for Ref selection
|
||||
usrSp=cell2mat(usrSpec); %user entry of Specifics for Ref selection
|
||||
|
||||
for mp=1:length(Exp(expN).Dexp(n).MP)
|
||||
% RF1fullPlate=0;
|
||||
for ind384=1:384
|
||||
spN=spN+1;
|
||||
try
|
||||
r=ceil(ind384/24);
|
||||
if rem(ind384,24)==0, c=24; else c=rem(ind384,24); end
|
||||
% Insert test for numeric in genename and orf if isnumeric
|
||||
% Correct common EXCEL problem of converting OCT1 into a date numeric
|
||||
if cell2mat(Exp(expN).Dexp(n).MP(mp).genename{1}(ind384))==38991
|
||||
Exp(expN).Dexp(n).MP(mp).genename{1}(ind384)={'OCT1_'};
|
||||
elseif isnumeric(cell2mat(Exp(expN).Dexp(n).MP(mp).genename{1}(ind384)))
|
||||
Exp(expN).Dexp(n).MP(mp).genename{1}(ind384)={' '};
|
||||
end
|
||||
|
||||
% DISPersed REFerence capture and find Medians
|
||||
if ( ((strcmpi((Exp(expN).Dexp(n).MP(mp).genename{1}(ind384)),usrGene) ...
|
||||
&& strcmpi((Exp(expN).Dexp(n).MP(mp).specifics{1}(ind384)),usrSp))) ...
|
||||
|| ((strcmpi((Exp(expN).Dexp(n).MP(mp).genename{1}(ind384)),usrGene) ...
|
||||
&& strcmpi(usrSp,'None'))) )
|
||||
dRF1indx=dRF1indx+1;
|
||||
Exp(expN).Dexp(n).MP(mp).genename{1}(ind384)=strrep((Exp(expN).Dexp(n).MP(mp).genename{1}(ind384)),':',' ');
|
||||
drf(dRF1indx,1)=(Exp(expN).Dexp(n).MP(mp).genename{1}(ind384));
|
||||
drf(dRF1indx,2)={strcat(':',num2str(mp),':',num2str(r),':',num2str(c))};
|
||||
drf(dRF1indx,3)={mp}; drfMP(dRF1indx,mp)=mp;
|
||||
drf(dRF1indx,4)={r}; drfr(dRF1indx,mp)=r;
|
||||
drf(dRF1indx,5)={c}; drfc(dRF1indx,mp)=c;
|
||||
drf(dRF1indx,6)={ind384}; drfPindx(dRF1indx,mp)=ind384;
|
||||
%drf(dRF1indx,7)=(Exp(expN).Dexp(n).MP(mp).specifics{1}(ind384));
|
||||
end
|
||||
catch
|
||||
error='EZexpSel lineAfter 24 EZmultiGeneLst.m'
|
||||
mp %Disable in future to prevent a bomb out OR put into a nested TryCatch
|
||||
ind384 %Disable in future to prevent a bomb out OR put into a nested TryCatch
|
||||
msgBadGeneName=strcat('check genename at mp=',num2str(mp),' indx=',num2str(ind384))
|
||||
end
|
||||
end
|
||||
mp
|
||||
end
|
||||
|
||||
% Exp(expN).Dexp(n).UsrmdPindx=[];
|
||||
% Exp(expN).Dexp(n).UsrmdPpltN=[];
|
||||
if exist('drf','var')
|
||||
% Det. index of change from one MP to the next
|
||||
i=2;
|
||||
clear chgIndx
|
||||
chgIndx(1)=1;
|
||||
for j=1:length(drf(:,3))
|
||||
if j>1
|
||||
if cell2mat(drf(j,3))~=cell2mat(drf((j-1),3)), chgIndx(i)=j; i=i+1; end
|
||||
end
|
||||
end
|
||||
chgIndx(length(chgIndx)+1)=length(drf)+1;
|
||||
uu=zeros(size(drf,1),4);
|
||||
uu(:,1:4)=cell2mat(drf(:,3:6));
|
||||
vv=zeros(length(drf),1 ); % DMnum);
|
||||
dMPs=unique(cell2mat(drf(:,3)));
|
||||
|
||||
for mm=1:length(dMPs) % length(chgIndx)
|
||||
usrScNdisp=((dMPs(mm)-1)*DMnum)+(dmSel);
|
||||
NZrefIndxP=drfPindx((find(drfPindx(:,dMPs(mm)))),dMPs(mm)); medianIndxDisp=NZrefIndxP;
|
||||
vv(chgIndx(mm):(chgIndx(mm+1)-1),dmSel)=Exp(expN).Dexp(n).scan(usrScNdisp).plate(1).CFout(NZrefIndxP,5);
|
||||
% For Global Ref Composite 17_1009
|
||||
vvK(chgIndx(mm):(chgIndx(mm+1)-1),dmSel)=Exp(expN).Dexp(n).scan(usrScNdisp).plate(1).CFout(NZrefIndxP,3);
|
||||
vvr(chgIndx(mm):(chgIndx(mm+1)-1),dmSel)=Exp(expN).Dexp(n).scan(usrScNdisp).plate(1).CFout(NZrefIndxP,4);
|
||||
end % for mm=1:length(dMPs)
|
||||
% Calc. Global Mean, Std, And Median For Distributed References
|
||||
uu=horzcat(uu,vv);
|
||||
for d=dmSel:dmSel
|
||||
medianIndxG=[];
|
||||
NZusrIndxG=[];
|
||||
minG=min(nonzeros(vv(:,d)));
|
||||
maxG=max(nonzeros(vv(:,d)));
|
||||
usrmeanG=mean(nonzeros(vv(:,d)));
|
||||
usrStdG=std(nonzeros(vv(:,d)));
|
||||
NZusrIndxG=find(vv(:,d));
|
||||
if isempty(usrmeanG)
|
||||
nonZeroCntD=0 % medianIndxDisp=RFmeanG(d);
|
||||
else
|
||||
nonZeroCntD=length(nonzeros(vv(:,d)));
|
||||
end
|
||||
% Calc. of median value for composite doesn't require and odd number of Indx items
|
||||
medianIndxG=NZusrIndxG(:);
|
||||
if ~isempty(NZusrIndxG) && length(medianIndxG) > 0 %(.15*size(drf,1)) %To calc. a median, more than 15% of spots must be nonZero
|
||||
Exp(expN).Dexp(n).UsrGLB(d)=usrGnSp; % strcat(aa(lstindx,1),aa(lstindx,2));
|
||||
Exp(expN).Dexp(n).UsrLvals=vv(medianIndxG);
|
||||
Exp(expN).Dexp(n).UsrKvals=vvK(medianIndxG);
|
||||
Exp(expN).Dexp(n).Usrrvals=vvr(medianIndxG);
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Exp(expN).UgeneCnt=Exp(expN).UgeneCnt +1;
|
||||
Exp(expN).UgeneSpLst(Exp(expN).UgeneCnt)=usrGnSp;
|
||||
|
||||
% PLOT Values Selected Gene-Specifics Composite
|
||||
smpSz=size(medianIndxG,1);
|
||||
K=median(vvK(medianIndxG,dmSel)); Ks=num2str(K); Kstd=std(vvK(medianIndxG,dmSel)); KstdStr=num2str(Kstd);
|
||||
r=median(vvr(medianIndxG,dmSel)); rs=num2str(r); rstd=std(vvr(medianIndxG,dmSel)); rstdStr=num2str(rstd);
|
||||
l=median(vv(medianIndxG,dmSel)); Ls=num2str(l); Lstd=std(vv(medianIndxG,dmSel)); LstdStr=num2str(Lstd);
|
||||
Kl=K - std(vvK(medianIndxG,dmSel)); %K - Exp(expN).Dexp(DexpN).RFcmpK(RFnum).dm(inDM).std;
|
||||
Ku=K + std(vvK(medianIndxG,dmSel)); %K + Exp(expN).Dexp(DexpN).RFcmpK(RFnum).dm(inDM).std;
|
||||
rl=r - std(vvr(medianIndxG,dmSel)); %r - Exp(expN).Dexp(DexpN).RFcmpr(RFnum).dm(inDM).std;
|
||||
ru=r + std(vvr(medianIndxG,dmSel)); %r + Exp(expN).Dexp(DexpN).RFcmpr(RFnum).dm(inDM).std;
|
||||
lfast=l - std(vv(medianIndxG,dmSel)); %l - Exp(expN).Dexp(DexpN).RFcmpL(RFnum).dm(inDM).std;
|
||||
lslow=l + std(vv(medianIndxG,dmSel)); %l + Exp(expN).Dexp(DexpN).RFcmpL(RFnum).dm(inDM).std;
|
||||
|
||||
try Kstr=Ks(1:5); catch, Kstr=Ks(1:length(Ks)); end
|
||||
try rstr=rs(1:5); catch, rstr=rs(1:length(rs)); end
|
||||
try Lstr=Ls(1:5); catch, Lstr=Ls(1:length(Ls)); end
|
||||
|
||||
pertSel=Exp(zoneSel).Dexp(DexpN).pertSel; %floor(get(handles.DMsldr1,'value'));
|
||||
plateNum=(LBmp-1)*destPerMP + pertSel;
|
||||
indx=((LBr-1)*24) +LBc
|
||||
MP=Exp(zoneSel).Dexp(DexpN).MP;
|
||||
|
||||
try
|
||||
t=1:200;
|
||||
clear g;
|
||||
try
|
||||
g=K ./ (1 + exp(-r.* (t - l )));
|
||||
gSlow=Kl ./ (1 + exp(-rl.* (t - lslow )));
|
||||
gFast=Ku ./ (1 + exp(-ru.* (t - lfast )));
|
||||
if K==0||r==0||l==0, g(1:200)=1;gSlow(1:200)=1;gFast(1:200)=1;end
|
||||
if zoneSel==1, plotAxes=ghandles.Paxes1; OLaxes=ghandles.OLaxes1;
|
||||
Dlaxes=ghandles.Dlaxes1;Dkaxes=ghandles.Dkaxes1;Draxes=ghandles.Draxes1;
|
||||
Exp(1).traceN=Exp(1).traceN+1;
|
||||
traceN=Exp(1).traceN;
|
||||
end
|
||||
if zoneSel==2, plotAxes=ghandles.Paxes2; OLaxes=ghandles.OLaxes2;Daxes=ghandles.Daxes2;
|
||||
Dlaxes=ghandles.Dlaxes2;Dkaxes=ghandles.Dkaxes2;Draxes=ghandles.Draxes2;
|
||||
Exp(2).traceN=Exp(2).traceN+1;
|
||||
traceN=Exp(2).traceN;
|
||||
end
|
||||
if zoneSel==3, plotAxes=ghandles.Paxes3; OLaxes=ghandles.OLaxes3;Daxes=ghandles.Daxes3;
|
||||
Dlaxes=ghandles.Dlaxes3;Dkaxes=ghandles.Dkaxes3;Draxes=ghandles.Draxes3;
|
||||
Exp(3).traceN=Exp(3).traceN+1;
|
||||
traceN=Exp(3).traceN;
|
||||
end
|
||||
plot(plotAxes,t,g);hold (plotAxes,'on');
|
||||
plot(plotAxes,t,gSlow,'y');plot(plotAxes,t,gFast,'r');hold (plotAxes,'off');
|
||||
% Store L R and K valves for Composite [C] plots
|
||||
Exp(expN).ll(traceN)=l; Exp(expN).rr(traceN)=r; Exp(expN).kk(traceN)=K;
|
||||
Exp(expN).lslow(traceN)=lslow; Exp(expN).lfast(traceN)=lfast;
|
||||
try
|
||||
for i=1:length(Exp(zoneSel).hOL(:))
|
||||
set(Exp(zoneSel).hOL(i),'color',[0 0 1]);
|
||||
end
|
||||
catch
|
||||
end
|
||||
Exp(zoneSel).hOL(traceN)=plot(OLaxes,t,g);hold on;
|
||||
set(Exp(zoneSel).hOL(traceN),'color',[1 0 0])
|
||||
catch
|
||||
catchissue='Ln100 EZlstBoxExt'
|
||||
end
|
||||
|
||||
% Get the DM agar description
|
||||
if expN==1,DMstr=char(get(handles.DM1,'string'));end
|
||||
if expN==2,DMstr=char(get(handles.DM2,'string'));end
|
||||
if expN==3,DMstr=char(get(handles.DM3,'string'));end
|
||||
gene=usrGnSp; orf='' % MP(1,LBmp).orf{1,1}(indx);
|
||||
geneOrfstr=strcat(gene,'_',orf,'_');
|
||||
grfgenestr=strcat(gene,'_',orf,'_');
|
||||
|
||||
% spec=MP(1,LBmp).specifics{1,1}(indx); %orfrep=MP(1,plateNum).orfRep{1,1}(indx);
|
||||
% tPtStr=strcat('T=', num2str(scan(1,plateNum).plate(1).t0Series(tPtSel)));
|
||||
% graphStr=strcat(grfgenestr,'_','L=',Lstr,'_','r=',rstr,'_','K=',Kstr);
|
||||
graphStr=strcat(usrGnSp,'_','L=',Lstr,'_','Ls=',LstdStr,'_','r=',rstr,'_','rs=',rstdStr,'_','K=',Kstr,'Ks=',KstdStr);
|
||||
spotDescrip=strcat(graphStr,'->',DMstr);
|
||||
xp=char(Exp(zoneSel).Dexp(DexpN).resDir);
|
||||
if ispc,
|
||||
slashPos=strfind(char(Exp(zoneSel).Dexp(DexpN).resDir),'\');
|
||||
else
|
||||
slashPos=strfind(char(Exp(zoneSel).Dexp(DexpN).resDir),'/');
|
||||
end
|
||||
|
||||
startPos=slashPos(length(slashPos)-1) +1;
|
||||
endPos=slashPos(length(slashPos)) -1
|
||||
expStr={xp(startPos:endPos)}
|
||||
|
||||
Exp(zoneSel).hOLname(traceN)=spotDescrip; %graphStr; %ghandles.Exp(zoneSel).hOLname(traceN)=graphStr;
|
||||
Exp(zoneSel).hOLexpNm(traceN)=expStr; %ghandles.Exp(expN).hOLexpNm(traceN)=expStr;
|
||||
Exp(zoneSel).hOLresDir(traceN)={Exp(zoneSel).Dexp(DexpN).resDir};
|
||||
Exp(zoneSel).hOLplateNum(traceN)=plateNum;
|
||||
|
||||
% traceData=vertcat(get(Exp(OLay).hOL(traceN),'XData'),get(ghandles.Exp(OLay).hOL(traceN),'YData'));
|
||||
|
||||
if zoneSel==1,set(ghandles.GeneOrfLoc1,'string',geneOrfstr);end % Displays the value.
|
||||
if zoneSel==2,set(ghandles.GeneOrfLoc2,'string',geneOrfstr);end
|
||||
if zoneSel==3,set(ghandles.GeneOrfLoc3,'string',geneOrfstr);end
|
||||
if zoneSel==1,set(ghandles.graphStrLoc1,'string',spotDescrip);end %graphStr);end % Displays the value.
|
||||
if zoneSel==2,set(ghandles.graphStrLoc2,'string',spotDescrip);end %graphStr);end
|
||||
if zoneSel==3,set(ghandles.graphStrLoc3,'string',spotDescrip);end %graphStr);end
|
||||
catch ME
|
||||
msg='ME.message';
|
||||
end % trycatch zoneSel<4 datatip selection from Image (not from an OverLay Plot)
|
||||
|
||||
|
||||
% Deprecated functions
|
||||
%{
|
||||
% If a specific spot median is ever needed
|
||||
%Calc. of EXACT median specific culture requires an odd number of indx items
|
||||
if ~isempty(NZusrIndxG) && mod(nonZeroCntD,2)==0, medianIndxOdd= NZusrIndxG(1:(size(NZusrIndxG,1)-1)); end
|
||||
if ~isempty(NZusrIndxG) && mod(nonZeroCntD,2)~=0, medianIndxOdd=NZusrIndxG(:); end
|
||||
mvalsDG=median(vv(medianIndxOdd,d)); %(nonzeros(vv(:,d)));
|
||||
nzPosIndxDG=find(mvalsDG==vv(:,d));
|
||||
Exp(expN).Dexp(n).UsrMedianG(d)=mvalsDG;
|
||||
Exp(expN).Dexp(n).UsrminG(d)=minG;
|
||||
Exp(expN).Dexp(n).UsrmaxG(d)=maxG;
|
||||
Exp(expN).Dexp(n).UsrstdG(d)=usrStdG;
|
||||
Exp(expN).Dexp(n).UsrmeanG(d)=usrmeanG;
|
||||
%}
|
||||
%{
|
||||
Exp(expN).Dexp(n).UsrCmpGL.dm(d).med=median(vv(medianIndxP,d)); %For Ref Composite 17_1026
|
||||
Exp(expN).Dexp(n).UsrCmpGL.dm(d).mean=mean(vv(medianIndxP,d)); %For Ref Composite 17_1026
|
||||
Exp(expN).Dexp(n).UsrCmpGL.dm(d).std=std(vv(medianIndxP,d)); %For Ref Composite 17_1026
|
||||
Exp(expN).Dexp(n).UsrCmpGL.dm(d).min=min(vv(medianIndxP,d)); %For Ref Composite 17_1026
|
||||
Exp(expN).Dexp(n).UsrCmpGL.dm(d).max=max(vv(medianIndxP,d)); %For Ref Composite 17_1026
|
||||
Exp(expN).Dexp(n).UsrCmpGK.dm(d).med=median(vvK(medianIndxP,d)); %For Ref Composite 17_1026
|
||||
Exp(expN).Dexp(n).UsrCmpGK.dm(d).mean=mean(vvK(medianIndxP,d)); %For Ref Composite 17_1026
|
||||
Exp(expN).Dexp(n).UsrCmpGK.dm(d).std=std(vvK(medianIndxP,d)); %For Ref Composite 17_1026
|
||||
Exp(expN).Dexp(n).UsrCmpGK.dm(d).min=min(vvK(medianIndxP,d)); %For Ref Composite 17_1026
|
||||
Exp(expN).Dexp(n).UsrCmpGK.dm(d).max=max(vvK(medianIndxP,d)); %For Ref Composite 17_1026
|
||||
Exp(expN).Dexp(n).UsrCmpGr.dm(d).med=median(vvr(medianIndxP,d)); %For Ref Composite 17_1026
|
||||
Exp(expN).Dexp(n).UsrCmpGr.dm(d).mean=mean(vvr(medianIndxP,d)); %For Ref Composite 17_1026
|
||||
Exp(expN).Dexp(n).UsrCmpGr.dm(d).std=std(vvr(medianIndxP,d)); %For Ref Composite 17_1026
|
||||
Exp(expN).Dexp(n).UsrCmpGr.dm(d).min=min(vvr(medianIndxP,d)); %For Ref Composite 17_1026
|
||||
Exp(expN).Dexp(n).UsrCmpGr.dm(d).max=max(vvr(medianIndxP,d)); %For Ref Composite 17_1026
|
||||
%}
|
||||
|
||||
|
||||
%{
|
||||
for mm=1:length(dMPs) % length(chgIndx)
|
||||
|
||||
for d=selDM:selDM %1:(DMnum)
|
||||
medianIndxDisp=[];
|
||||
NZrefIndxP=[];
|
||||
nonZeroValsP=[];
|
||||
medValLstDisp=[];
|
||||
usrScNdisp=((dMPs(mm)-1)*DMnum)+(d);
|
||||
|
||||
try % Determine the dispersed User Gene median mean and std if such exist
|
||||
NZrefIndxP=drfPindx((find(drfPindx(:,dMPs(mm)))),dMPs(mm)); medianIndxDisp=NZrefIndxP
|
||||
vv(chgIndx(mm):(chgIndx(mm+1)-1),d)=Exp(expN).Dexp(n).scan(usrScNdisp).plate(1).CFout(NZrefIndxP,5);
|
||||
%For Global Ref Composite 17_1009 %**************************************************************************
|
||||
vvK(chgIndx(mm):(chgIndx(mm+1)-1),d)=Exp(expN).Dexp(n).scan(usrScNdisp).plate(1).CFout(NZrefIndxP,3);
|
||||
vvr(chgIndx(mm):(chgIndx(mm+1)-1),d)=Exp(expN).Dexp(n).scan(usrScNdisp).plate(1).CFout(NZrefIndxP,4);
|
||||
%*****************************************************************************************************
|
||||
%{
|
||||
nonZeroValsP=nonzeros(Exp(expN).Dexp(n).scan(usrScNdisp).plate(1).CFout(NZrefIndxP,5));
|
||||
std1Disp=std(nonZeroValsP);
|
||||
mean1Disp=mean(nonZeroValsP);
|
||||
minDisp=min(nonZeroValsP);
|
||||
maxDisp=max(nonZeroValsP);
|
||||
drfVals=Exp(expN).Dexp(n).scan(usrScNdisp).plate(1).CFout(NZrefIndxP,5);
|
||||
|
||||
%nzValsAcc(mm).DM(d,:)=nonZeroValsP;
|
||||
|
||||
%MEDIAN Determination for PLATES with Dispersed RFs
|
||||
%NZrefIndxP=NZrefIndxP %find(Exp(expN).Dexp(n).scan(usrScNdisp).plate(1).CFout(NZrefIndxP,5));
|
||||
if isempty(NZrefIndxP), nonZeroCntDisp=0, medianIndxDisp=NZrefIndxP;
|
||||
else nonZeroCntDisp=length(NZrefIndxP);
|
||||
end
|
||||
if ~isempty(NZrefIndxP) && mod(nonZeroCntDisp,2)==0, medianIndxDisp= NZrefIndxP(1:nonZeroCntDisp-1); end
|
||||
if ~isempty(NZrefIndxP) && mod(nonZeroCntDisp,2)~=0, medianIndxDisp=NZrefIndxP; end
|
||||
%}
|
||||
if ~isempty(NZrefIndxP) && length(medianIndxDisp) > 0 %(.15*384) %To calc. a median, more than 15% of spots must be nonZero
|
||||
medValLstDisp=Exp(expN).Dexp(n).scan(usrScNdisp).plate(1).CFout(medianIndxDisp,5);
|
||||
mval1Disp=median(medValLstDisp);
|
||||
nzMedPosIndx=find(mval1Disp==nonZeroValsP);
|
||||
medianIndxP=NZrefIndxP(nzMedPosIndx);
|
||||
%UsrmdlocP(1)=ceil(medianIndxP/24); %calc r value
|
||||
%UsrmdlocP(2)=medianIndxP - ((UsrmdlocP(1)-1)*24); %calc c value
|
||||
|
||||
meanKval=mean(nonzeros((Exp(expN).Dexp(n).scan(usrScNdisp).plate(1).CFout(NZrefIndxP,3))));
|
||||
meanrval=mean(nonzeros((Exp(expN).Dexp(n).scan(usrScNdisp).plate(1).CFout(NZrefIndxP,4))));
|
||||
else
|
||||
% Need to set L r K values to zeros or pick the first spot with zeros
|
||||
%Spot 1 could be other than zero as the median isn't calculated if fewer than some percent are nonzero
|
||||
medianCalcFailedD='To Few nonZero spots for valid median RF1 selection'
|
||||
firstZeroDindx=find(((Exp(expN).Dexp(n).scan(usrScNdisp).plate(1).CFout(NZrefIndxP,5))==0),1,'first');
|
||||
firstZeroD=drfPindx((firstZeroDindx),dMPs(mm));
|
||||
%Exp(expN).Dexp(n).UsrmdPindx(d,dMPs(mm))=firstZeroD;
|
||||
%Exp(expN).Dexp(n).UsrmdPpltN(d,dMPs(mm))=dMPs(mm); %RF1mp; %Is this supposed to be the MP number or the ScanPlate number???
|
||||
|
||||
|
||||
end %~isempty(NZrefIndxP) && length(medianIndxPisp) > 3 ln584
|
||||
catch %try ln565
|
||||
medianCalcTryFailed1D='Failed! Failed! {Dispersed RF1s}'
|
||||
try
|
||||
firstZeroindxD=find(vv((chgIndx(d):chgIndx(d+1)-1),5)==0,1,'first');
|
||||
firstZeroPindx=uu(firstZeroindxD,4);
|
||||
catch
|
||||
end
|
||||
end %try ~ln565
|
||||
end %for d=0:DMnum
|
||||
end %for mm=1:length(dMPs)
|
||||
%}
|
||||
|
||||
%{
|
||||
%Code Template taken from EZlstBoxCmpExt.m
|
||||
try
|
||||
%if RFcmpGFlg==0
|
||||
smpSz=size(medianIndxP,1);
|
||||
K=median(vvK(medianIndxP,dmSel)); Ks=num2str(K); Kstd=std(vvK(medianIndxP,dmSel)); KstdStr=num2str(Kstd);
|
||||
r=median(vvr(medianIndxP,dmSel)); rs=num2str(r); rstd=std(vvr(medianIndxP,dmSel)); rstdStr=num2str(rstd);
|
||||
l=median(vv(medianIndxP,dmSel)); Ls=num2str(l); Lstd=std(vv(medianIndxP,dmSel)); LstdStr=num2str(Lstd);
|
||||
Kl=K - std(vvK(medianIndxP,dmSel)); %K - Exp(expN).Dexp(DexpN).RFcmpK(RFnum).dm(inDM).std;
|
||||
Ku=K + std(vvK(medianIndxP,dmSel)); %K + Exp(expN).Dexp(DexpN).RFcmpK(RFnum).dm(inDM).std;
|
||||
rl=r - std(vvr(medianIndxP,dmSel)); %r - Exp(expN).Dexp(DexpN).RFcmpr(RFnum).dm(inDM).std;
|
||||
ru=r + std(vvr(medianIndxP,dmSel)); %r + Exp(expN).Dexp(DexpN).RFcmpr(RFnum).dm(inDM).std;
|
||||
lfast=l - std(vv(medianIndxP,dmSel)); %l - Exp(expN).Dexp(DexpN).RFcmpL(RFnum).dm(inDM).std;
|
||||
lslow=l + std(vv(medianIndxP,dmSel)); %l + Exp(expN).Dexp(DexpN).RFcmpL(RFnum).dm(inDM).std;
|
||||
|
||||
try Kstr=Ks(1:5); catch, Kstr=Ks(1:length(Ks)); end
|
||||
try rstr=rs(1:5); catch, rstr=rs(1:length(rs)); end
|
||||
try Lstr=Ls(1:5); catch, Lstr=Ls(1:length(Ls)); end
|
||||
|
||||
|
||||
t=1:200;
|
||||
clear g;
|
||||
|
||||
try
|
||||
g=K ./ (1 + exp(-r.* (t - l )));
|
||||
gSlow=Kl ./ (1 + exp(-rl.* (t - lslow )));
|
||||
gFast=Ku ./ (1 + exp(-ru.* (t - lfast )));
|
||||
if K==0||r==0||l==0, g(1:200)=1;gSlow(1:200)=1;gFast(1:200)=1;end
|
||||
%tser=(scan(1,plateNum).plate(1).t0Series(:));
|
||||
%rawData=scan(1,plateNum).plate(1).intens(indx,:)/scan(1,plateNum).plate(1).Ag(indx);
|
||||
|
||||
if zoneSel==1, plotAxes=ghandles.Paxes1; OLaxes=ghandles.OLaxes1;
|
||||
Dlaxes=ghandles.Dlaxes1;Dkaxes=ghandles.Dkaxes1;Draxes=ghandles.Draxes1;
|
||||
Exp(1).traceN=Exp(1).traceN+1;
|
||||
traceN=Exp(1).traceN;
|
||||
end
|
||||
if zoneSel==2, plotAxes=ghandles.Paxes2; OLaxes=ghandles.OLaxes2;Daxes=ghandles.Daxes2;
|
||||
Dlaxes=ghandles.Dlaxes2;Dkaxes=ghandles.Dkaxes2;Draxes=ghandles.Draxes2;
|
||||
Exp(2).traceN=Exp(2).traceN+1;
|
||||
traceN=Exp(2).traceN;
|
||||
end
|
||||
if zoneSel==3, plotAxes=ghandles.Paxes3; OLaxes=ghandles.OLaxes3;Daxes=ghandles.Daxes3;
|
||||
Dlaxes=ghandles.Dlaxes3;Dkaxes=ghandles.Dkaxes3;Draxes=ghandles.Draxes3;
|
||||
Exp(3).traceN=Exp(3).traceN+1;
|
||||
traceN=Exp(3).traceN;
|
||||
end
|
||||
plot(plotAxes,t,g);hold (plotAxes,'on'); %plot(plotAxes,tser,rawData,'g*');
|
||||
plot(plotAxes,t,gSlow,'y'); plot(plotAxes,t,gFast,'r');hold (plotAxes,'off');
|
||||
%************CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC**************************************
|
||||
%Store L R and K valves for Composite [C] plots
|
||||
Exp(expN).ll(traceN)=l; Exp(expN).rr(traceN)=r; Exp(expN).kk(traceN)=K;
|
||||
|
||||
Exp(expN).lstd(traceN)=std(vv(medianIndxP,dmSel)); %Exp(expN).Dexp(DexpN).RFcmpL(RFnum).dm(inDM).std;
|
||||
Exp(expN).kstd(traceN)=std(vvK(medianIndxP,dmSel)); %Exp(expN).Dexp(DexpN).RFcmpK(RFnum).dm(inDM).std;
|
||||
Exp(expN).rstd(traceN)=std(vvr(medianIndxP,dmSel)); %Exp(expN).Dexp(DexpN).RFcmpr(RFnum).dm(inDM).std;
|
||||
|
||||
|
||||
Exp(expN).lslow(traceN)=lslow; Exp(expN).lfast(traceN)=lfast;
|
||||
Exp(expN).lKl(traceN)=Kl; Exp(expN).Ku(traceN)=Ku;
|
||||
Exp(expN).lrl(traceN)=rl; Exp(expN).Ku(traceN)=ru;
|
||||
%************************************************************************
|
||||
try for i=1:length(Exp(zoneSel).hOL(:)),set(Exp(zoneSel).hOL(i),'color',[0 0 1]); end, catch; end
|
||||
Exp(zoneSel).hOL(traceN)=plot(OLaxes,t,g);hold on;
|
||||
set(Exp(zoneSel).hOL(traceN),'color',[1 0 0])
|
||||
%Exp(zoneSel).hOLb(traceN)=plot(OLaxes,tser,rawData,'g*'); %No Raw Data, Ref Composite 17_1009
|
||||
catch
|
||||
catchissue='Ln68 EZlstBoxCmpExt'
|
||||
end %trycatch
|
||||
|
||||
%Get the DM agar description
|
||||
%if expN==1,DMstr=char(get(handles.DM1,'string'));end
|
||||
%if expN==2,DMstr=char(get(handles.DM2,'string'));end
|
||||
%if expN==3,DMstr=char(get(handles.DM3,'string'));end
|
||||
DMstr=num2str(dmSel);
|
||||
|
||||
%spec=MP(1,LBmp).specifics{1,1}(indx); %orfrep=MP(1,plateNum).orfRep{1,1}(indx);
|
||||
%tPtStr=strcat('T=', num2str(scan(1,plateNum).plate(1).t0Series(tPtSel)));
|
||||
%graphStr=strcat(usrGnSp,'_','L=',Lstr,'_','Lstd=',LstdStr,'_','r=',rstr,'_','rstd=',rstdStr,'_','K=',Kstr,'Kstd=',KstdStr);
|
||||
graphStr=strcat(usrGnSp,'_','L=',Lstr,'_','Lstd=',LstdStr,'_','r=',rstr,'_','rstd=',rstdStr,'_','K=',Kstr,'Kstd=',KstdStr);
|
||||
spotDescrip=strcat(graphStr,'DMS->',DMstr);
|
||||
|
||||
xp=char(Exp(zoneSel).Dexp(DexpN).resDir);
|
||||
if ispc,
|
||||
slashPos=strfind(char(Exp(zoneSel).Dexp(DexpN).resDir),'\');
|
||||
else
|
||||
slashPos=strfind(char(Exp(zoneSel).Dexp(DexpN).resDir),'/');
|
||||
end
|
||||
|
||||
startPos=slashPos(length(slashPos)-1) +1;
|
||||
endPos=slashPos(length(slashPos)) -1
|
||||
expStr={xp(startPos:endPos)}
|
||||
|
||||
Exp(zoneSel).hOLname(traceN)=usrGnSp; %spotDescrip; %graphStr; %ghandles.Exp(zoneSel).hOLname(traceN)=graphStr;
|
||||
Exp(zoneSel).hOLexpNm(traceN)=expStr; %ghandles.Exp(expN).hOLexpNm(traceN)=expStr;
|
||||
Exp(zoneSel).hOLresDir(traceN)={Exp(zoneSel).Dexp(DexpN).resDir};
|
||||
%Exp(zoneSel).hOLplateNum(traceN)=plateNum;
|
||||
|
||||
%traceData=vertcat(get(Exp(OLay).hOL(traceN),'XData'),get(ghandles.Exp(OLay).hOL(traceN),'YData'));
|
||||
|
||||
%if zoneSel==1,set(ghandles.GeneOrfLoc1,'string',geneOrfstr);end % Displays the value.
|
||||
%if zoneSel==2,set(ghandles.GeneOrfLoc2,'string',geneOrfstr);end
|
||||
%if zoneSel==3,set(ghandles.GeneOrfLoc3,'string',geneOrfstr);end
|
||||
%if zoneSel==1,set(ghandles.graphStrLoc1,'string',spotDescrip);end %graphStr);end % Displays the value.
|
||||
%if zoneSel==2,set(ghandles.graphStrLoc2,'string',spotDescrip);end %graphStr);end
|
||||
%if zoneSel==3,set(ghandles.graphStrLoc3,'string',spotDescrip);end %graphStr);end
|
||||
catch
|
||||
catchissue='Ln33 EZlstBoxCmpExt'
|
||||
msg='Error'
|
||||
end % trycatch zoneSel<4 datatip selection from Image (not from an OverLay Plot)
|
||||
%**************Write Spot and Exp Info to OLay title areas****************************************************************************
|
||||
|
||||
if zoneSel==1, %&& get(ghandles.rotPB1,'value')~=1
|
||||
if length(char(Exp(zoneSel).hOLname(traceN)))>40,set(ghandles.OLay1,'FontSize',8);end
|
||||
set(ghandles.OLay1,'string', Exp(zoneSel).hOLname(traceN));
|
||||
if length(char(Exp(zoneSel).hOLexpNm(traceN)))>40,set(ghandles.OLexp1,'FontSize',8);end
|
||||
set(ghandles.OLexp1,'string',Exp(zoneSel).hOLexpNm(traceN));
|
||||
end
|
||||
if zoneSel==2 %&& get(ghandles.rotPB2,'value') ~=1
|
||||
if length(char(Exp(zoneSel).hOLname(traceN)))>40,set(ghandles.OLay2,'FontSize',8);end
|
||||
set(ghandles.OLay2,'string', Exp(zoneSel).hOLname(traceN));
|
||||
if length(char(Exp(zoneSel).hOLexpNm(traceN)))>40,set(ghandles.OLexp2,'FontSize',8);end
|
||||
set(ghandles.OLexp2,'string',Exp(zoneSel).hOLexpNm(traceN));
|
||||
end
|
||||
if zoneSel==3 %&& get(ghandles.rotPB3,'value') ~=1
|
||||
if length(char(Exp(zoneSel).hOLname(traceN)))>40,set(ghandles.OLay3,'FontSize',8);end
|
||||
set(ghandles.OLay3,'string', Exp(OLay).hOLname(traceN));
|
||||
if length(char(Exp(zoneSel).hOLexpNm(traceN)))>40,set(ghandles.OLexp3,'FontSize',8);end
|
||||
set(ghandles.OLexp3,'string',Exp(OLay).hOLexpNm(traceN));
|
||||
end
|
||||
%}
|
||||
%**********************************************************************
|
||||
|
||||
%{
|
||||
%elseif RFcmpGFlg==1
|
||||
K=Exp(expN).Dexp(DexpN).RFcmpGK.dm(inDM).med; Ks=num2str(K);
|
||||
r=Exp(expN).Dexp(DexpN).RFcmpGr.dm(inDM).med; rs=num2str(r);
|
||||
l=Exp(expN).Dexp(DexpN).RFcmpGL.dm(inDM).med; Ls=num2str(l);
|
||||
Kl=K - Exp(expN).Dexp(DexpN).RFcmpGK.dm(inDM).std;
|
||||
Ku=K + Exp(expN).Dexp(DexpN).RFcmpGK.dm(inDM).std;
|
||||
rl=r - Exp(expN).Dexp(DexpN).RFcmpGr.dm(inDM).std;
|
||||
ru=r + Exp(expN).Dexp(DexpN).RFcmpGr.dm(inDM).std;
|
||||
lfast=l - Exp(expN).Dexp(DexpN).RFcmpGL.dm(inDM).std;
|
||||
lslow=l + Exp(expN).Dexp(DexpN).RFcmpGL.dm(inDM).std;
|
||||
end
|
||||
%}
|
||||
%Exp(expN).Dexp(n).UsrmdPindx=[];
|
||||
%Exp(expN).Dexp(n).UsrmdPpltN=[];
|
||||
%Exp(expN).Dexp(n).UsrmdPscanN=[];
|
||||
%Exp(expN).Dexp(n).UsrMedianP=[];
|
||||
%Exp(expN).Dexp(n).stdP=[];
|
||||
%Exp(expN).Dexp(n).meanP=[];
|
||||
%Exp(expN).Dexp(n).minP=[];
|
||||
%Exp(expN).Dexp(n).maxP=[];
|
||||
|
||||
%Exp(expN).Dexp(n).RFmdGLB={[]};
|
||||
%Exp(expN).Dexp(n).RFmdGindx=[];
|
||||
%Exp(expN).Dexp(n).RFmdGpltN=[];
|
||||
%Exp(expN).Dexp(n).RFmdGscanN=[];
|
||||
|
||||
%UsrmdDGloc(d,1)=uu(nzPosIndxDG,1); %MP of distributedGlobal Median value
|
||||
%UsrmdDGloc(d,2)=uu(nzPosIndxDG,2); %calc r value
|
||||
%UsrmdDGloc(d,3)=uu(nzPosIndxDG,3); %calc c value
|
||||
%lstindx=lstindx+1;
|
||||
%lstindxOrf=lstindxOrf+1;
|
||||
%{
|
||||
usrGLbl=strcat(usrGnSp,'UmdG('); %accomodate User Ref Selection
|
||||
aa(lstindx,1)=strcat(usrGLbl,num2str(d),')'); %remove string2cell brackets {...}
|
||||
aa(lstindx,2)={strcat(':',num2str(UsrmdDGloc(d,1)),':',num2str(UsrmdDGloc(d,2)),':',num2str(UsrmdDGloc(d,3)))}; %,'std_',num2str(std2))};
|
||||
bb(lstindxOrf,1)=strcat(usrGLbl,num2str(d),')'); %remove string2cell brackets {...}
|
||||
bb(lstindxOrf,2)={strcat(':',num2str(UsrmdDGloc(d,1)),':',num2str(UsrmdDGloc(d,2)),':',num2str(UsrmdDGloc(d,3)))}; %,'std_',num2str(std2))};
|
||||
%Composite Reference Amalgum Plot ******************
|
||||
lstindx=lstindx+1;
|
||||
lstindxOrf=lstindxOrf+1;
|
||||
aa(lstindx,1)=strcat(usrGnSp,'UcmpG(',num2str(d),')');
|
||||
aa(lstindx,2)={''};
|
||||
bb(lstindxOrf,1)=strcat(usrGnSp,'UcmpG(',num2str(d),')');
|
||||
bb(lstindxOrf,2)={''};
|
||||
%*****************************************************
|
||||
%}
|
||||
%{
|
||||
lstindx=lstindx+1;
|
||||
lstindxOrf=lstindxOrf+1;
|
||||
usrPLbl=strcat(usrGnSp,'UmdP('); %accomodate User Ref Selection
|
||||
aa(lstindx,1)=strcat(usrPLbl,num2str(d),')');
|
||||
aa(lstindx,2)={strcat(':',num2str(dMPs(mm)),':',num2str(UsrmdlocP(1)),':',num2str(UsrmdlocP(2)))};
|
||||
bb(lstindxOrf,1)=strcat(usrPLbl,num2str(d),')'); %remove string2cell brackets {...}
|
||||
bb(lstindxOrf,2)={strcat(':',num2str(dMPs(mm)),':',num2str(UsrmdlocP(1)),':',num2str(UsrmdlocP(2)))};
|
||||
|
||||
Exp(expN).Dexp(n).UsrmdPLB(d,dMPs(mm))=strcat(aa(lstindx,1),aa(lstindx,2));
|
||||
Exp(expN).Dexp(n).UsrmdPindx(d,dMPs(mm))=medianIndxP;
|
||||
Exp(expN).Dexp(n).UsrmdPpltN(d,dMPs(mm))=dMPs(mm); %This is a storage of the MasterPlate used NOT the ScanPlate? WeMight wish to store the ScanPlateNumber also???
|
||||
Exp(expN).Dexp(n).UsrmdPscanN(d,dMPs(mm))=usrScNdisp;
|
||||
Exp(expN).Dexp(n).UsrMedianP(d,dMPs(mm))=mval1Disp;
|
||||
Exp(expN).Dexp(n).stdP(d,dMPs(mm))=std1Disp;
|
||||
Exp(expN).Dexp(n).meanP(d,dMPs(mm))=mean1Disp;
|
||||
Exp(expN).Dexp(n).minP(d,dMPs(mm))=minDisp;
|
||||
Exp(expN).Dexp(n).maxP(d,dMPs(mm))=maxDisp;
|
||||
|
||||
Exp(expN).Dexp(n).UsrCmpPL.dm(d).med=mval1Disp; %For Ref Composite 17_1026
|
||||
Exp(expN).Dexp(n).UsrCmpPL.dm(d).mean=mean1Disp; %For Ref Composite 17_1026
|
||||
Exp(expN).Dexp(n).UsrCmpPL.dm(d).std=std1Disp; %For Ref Composite 17_1026
|
||||
Exp(expN).Dexp(n).UsrCmpPL.dm(d).min=minDisp; %For Ref Composite 17_1026
|
||||
Exp(expN).Dexp(n).UsrCmpPL.dm(d).max=maxDisp; %For Ref Composite 17_1026
|
||||
Exp(expN).Dexp(n).UsrCmpPK.dm(d).med=median(nonzeros((Exp(expN).Dexp(n).scan(usrScNdisp).plate(1).CFout(NZrefIndxP,3)))); %For Ref Composite 17_1026
|
||||
Exp(expN).Dexp(n).UsrCmpPK.dm(d).mean=mean(nonzeros((Exp(expN).Dexp(n).scan(usrScNdisp).plate(1).CFout(NZrefIndxP,3)))); %For Ref Composite 17_1026
|
||||
Exp(expN).Dexp(n).UsrCmpPK.dm(d).std=std(nonzeros((Exp(expN).Dexp(n).scan(usrScNdisp).plate(1).CFout(NZrefIndxP,3)))); %For Ref Composite 17_1026
|
||||
Exp(expN).Dexp(n).UsrCmpPK.dm(d).min=min(nonzeros((Exp(expN).Dexp(n).scan(usrScNdisp).plate(1).CFout(NZrefIndxP,3)))); %For Ref Composite 17_1026
|
||||
Exp(expN).Dexp(n).UsrCmpPK.dm(d).max=max(nonzeros((Exp(expN).Dexp(n).scan(usrScNdisp).plate(1).CFout(NZrefIndxP,3)))); %For Ref Composite 17_1026
|
||||
Exp(expN).Dexp(n).UsrCmpPr.dm(d).med=median(nonzeros((Exp(expN).Dexp(n).scan(usrScNdisp).plate(1).CFout(NZrefIndxP,4)))); %For Ref Composite 17_1026
|
||||
Exp(expN).Dexp(n).UsrCmpPr.dm(d).mean=mean(nonzeros((Exp(expN).Dexp(n).scan(usrScNdisp).plate(1).CFout(NZrefIndxP,4)))); %For Ref Composite 17_1026
|
||||
Exp(expN).Dexp(n).UsrCmpPr.dm(d).std=std(nonzeros((Exp(expN).Dexp(n).scan(usrScNdisp).plate(1).CFout(NZrefIndxP,4)))); %For Ref Composite 17_1026
|
||||
Exp(expN).Dexp(n).UsrCmpPr.dm(d).min=min(nonzeros((Exp(expN).Dexp(n).scan(usrScNdisp).plate(1).CFout(NZrefIndxP,4)))); %For Ref Composite 17_1026
|
||||
Exp(expN).Dexp(n).UsrCmpPr.dm(d).max=max(nonzeros((Exp(expN).Dexp(n).scan(usrScNdisp).plate(1).CFout(NZrefIndxP,4)))); %For Ref Composite 17_1026
|
||||
%}
|
||||
%Exp(expN).Dexp(n).UsrmdGindx(d)=nzPosIndxDG;
|
||||
%Exp(expN).Dexp(n).UsrmdGpltN(d)=UsrmdDGloc(d,1);
|
||||
%Exp(expN).Dexp(n).UsrmdGscanN(d)=uu(nzPosIndxDG,4);
|
||||
%{
|
||||
try
|
||||
firstZeroindxD=find(vv((chgIndx(d):chgIndx(d+1)-1),5)==0,1,'first');
|
||||
firstZeroPindx=uu(firstZeroindxD,4);
|
||||
%Exp(expN).Dexp(n).UsrmdPpltN(d,dMPs(mm))=dMPs(mm);
|
||||
%Exp(expN).Dexp(n).UsrmdPindx(d,dMPs(mm))=firstZeroPindx;
|
||||
|
||||
catch
|
||||
catchissue='try at Ln565'
|
||||
%Exp(expN).Dexp(n).UsrmdPpltN(d,dMPs(mm))=dMPs(mm);
|
||||
%Exp(expN).Dexp(n).UsrmdPindx(d,dMPs(mm))=384; %if crapout,Then use spot384 as default to keep going
|
||||
end
|
||||
try
|
||||
% Exp(expN).Dexp(n).UsrmdPpltN=dMPs(mm);
|
||||
catch
|
||||
catchissue='Ln619'
|
||||
%Exp(expN).Dexp(n).UsrmdPpltN=1; %This might keep from breaking BUT ???
|
||||
end
|
||||
error='EZexpSel lineAfter 565'
|
||||
end %try ~ln565
|
||||
%}
|
||||
|
||||
492
qhtcp-workflow/apps/matlab/ezview/EZmDayTrend.m
Executable file
492
qhtcp-workflow/apps/matlab/ezview/EZmDayTrend.m
Executable file
@@ -0,0 +1,492 @@
|
||||
% GraphicDestinationPertibationComparison**15_821
|
||||
% Called by EZlstBoxExt or EZvDatatip.m, Then calls EZRFs4DayComp
|
||||
CompositeTrendFlg=0;
|
||||
if expN==1 && get(ghandles.CompositeTog1,'value')==1 ...
|
||||
|| expN==2 && get(ghandles.CompositeTog2,'value')==1 ...
|
||||
|| expN==3 && get(ghandles.CompositeTog3,'value')==1
|
||||
CompositeTrendFlg=1;
|
||||
end
|
||||
|
||||
% if (isequal(destcompMsg,'GoodDataTip')&&~isequal(destcompMsg, 'BadDataTip'))|| isequal(destcompMsg,'Olay')
|
||||
% hold off
|
||||
if expN==1,DexpN=(get(ghandles.DN1,'value')); end
|
||||
if expN==2,DexpN=(get(ghandles.DN2,'value')); end
|
||||
if expN==3,DexpN=(get(ghandles.DN3,'value')); end
|
||||
if expN==1,MPsel=floor(get(ghandles.MPsldr1,'value')); end
|
||||
if expN==2,MPsel=floor(get(ghandles.MPsldr2,'value')); end
|
||||
if expN==3,MPsel=floor(get(ghandles.MPsldr3,'value')); end
|
||||
if expN==1,pertSel=floor(get(ghandles.DMsldr1,'value')); end
|
||||
if expN==2,pertSel=floor(get(ghandles.DMsldr2,'value')); end
|
||||
if expN==3,pertSel=floor(get(ghandles.DMsldr3,'value')); end
|
||||
dmSel=pertSel;
|
||||
|
||||
if EZdatatip==1 %adaptation for image spot selection
|
||||
%plNums=plateNum;
|
||||
destPerMP=Exp(expN).Dexp(DexpN).destPerMP;
|
||||
plNums=(MPsel-1)*destPerMP + (1:destPerMP);
|
||||
zoneSel=expN;
|
||||
tracN=Exp(zoneSel).traceN;
|
||||
if zoneSel==1,Dlaxes=ghandles.Dlaxes1;Dkaxes=ghandles.Dkaxes1;Draxes=ghandles.Draxes1; end
|
||||
if zoneSel==2,Dlaxes=ghandles.Dlaxes2;Dkaxes=ghandles.Dkaxes2;Draxes=ghandles.Draxes2; end
|
||||
if zoneSel==3,Dlaxes=ghandles.Dlaxes3;Dkaxes=ghandles.Dkaxes3;Draxes=ghandles.Draxes3; end
|
||||
if zoneSel==1,DNLaxes=ghandles.DNLaxes1;end
|
||||
if zoneSel==2,DNLaxes=ghandles.DNLaxes2;end
|
||||
if zoneSel==3,DNLaxes=ghandles.DNLaxes3;end
|
||||
elseif EZdatatip==2 % adaption for Overlay plot selection
|
||||
destPerMP=Exp(expN).Dexp(DexpN).destPerMP;
|
||||
MPlateN=ceil(OLplateNum/destPerMP);
|
||||
plNums=(MPlateN-1)*destPerMP + (1:destPerMP);
|
||||
zoneSel=expN;
|
||||
tracN=Exp(zoneSel).traceN;
|
||||
if zoneSel==1,Dlaxes=ghandles.Dlaxes1;Dkaxes=ghandles.Dkaxes1;Draxes=ghandles.Draxes1; end
|
||||
if zoneSel==2,Dlaxes=ghandles.Dlaxes2;Dkaxes=ghandles.Dkaxes2;Draxes=ghandles.Draxes2; end
|
||||
if zoneSel==3,Dlaxes=ghandles.Dlaxes3;Dkaxes=ghandles.Dkaxes3;Draxes=ghandles.Draxes3; end
|
||||
if zoneSel==1,DNLaxes=ghandles.DNLaxes1;end %2016_0222
|
||||
if zoneSel==2,DNLaxes=ghandles.DNLaxes2;end %2016_0222
|
||||
if zoneSel==3,DNLaxes=ghandles.DNLaxes3;end %2016_0222
|
||||
elseif EZdatatip==0
|
||||
if lstBoxCmpFlg~=1
|
||||
% destPerMP=Exp(expN).Dexp(DexpN).destPerMP;
|
||||
plNums=(LBmp-1)*destPerMP + (1:destPerMP);
|
||||
tracN=Exp(zoneSel).traceN;
|
||||
if zoneSel==1,DNLaxes=ghandles.DNLaxes1;end %2016_0222
|
||||
if zoneSel==2,DNLaxes=ghandles.DNLaxes2;end %2016_0222
|
||||
if zoneSel==3,DNLaxes=ghandles.DNLaxes3;end %2016_0222
|
||||
elseif lstBoxCmpFlg==1
|
||||
% DexpN=Exp(expN).DexpN;
|
||||
dmSel=pertSel;
|
||||
tracN=Exp(zoneSel).traceN;
|
||||
if zoneSel==1,DNLaxes=ghandles.DNLaxes1;end %2016_0222
|
||||
if zoneSel==2,DNLaxes=ghandles.DNLaxes2;end %2016_0222
|
||||
if zoneSel==3,DNLaxes=ghandles.DNLaxes3;end %2016_0222
|
||||
end
|
||||
end
|
||||
|
||||
if EZdatatip==2 % Response to Overlay click
|
||||
% seltraceN comes from EZvDatatip;
|
||||
% Exp(OLay).seltraceN iscaptured from EZvDatatip
|
||||
% if an OLay trace is selected
|
||||
% else it is captured below if EZdatatip is not equal to 2
|
||||
try
|
||||
set(Exp(zoneSel).hLRF1(seltraceN),'visible','on'); set(Exp(zoneSel).hLRF2(seltraceN),'visible','on');
|
||||
catch, end
|
||||
try
|
||||
set(Exp(zoneSel).hL(seltraceN),'visible','on'); set(Exp(zoneSel).hLb(seltraceN),'visible','on');
|
||||
catch, end
|
||||
% Plot new intL
|
||||
try
|
||||
set(Exp(zoneSel).hintL(seltraceN),'visible','on'); set(Exp(zoneSel).hintLb(seltraceN),'visible','on');
|
||||
catch, end
|
||||
try
|
||||
set(Exp(zoneSel).hintLadj(seltraceN),'visible','on'); set(Exp(zoneSel).hintLadjb(seltraceN),'visible','on');
|
||||
catch, end
|
||||
if zoneSel==1,set(ghandles.DNLaxes1,'xlim',[-75,75]); end
|
||||
|
||||
% K values
|
||||
for J=1:(tracN),
|
||||
try
|
||||
set(Exp(zoneSel).hKRF1(J),'visible','off'); set(Exp(zoneSel).hKRF2(J),'visible','off');
|
||||
catch, end
|
||||
try
|
||||
set(Exp(zoneSel).hK(J),'visible','off'); set(Exp(zoneSel).hKb(J),'visible','off');
|
||||
catch, end
|
||||
end
|
||||
try
|
||||
set(Exp(zoneSel).hKRF1(seltraceN),'visible','on'); set(Exp(zoneSel).hKRF2(seltraceN),'visible','on');
|
||||
catch, end
|
||||
try
|
||||
set(Exp(zoneSel).hK(seltraceN),'visible','on'); set(Exp(zoneSel).hKb(seltraceN),'visible','on');
|
||||
catch, end
|
||||
for J=1:(tracN)
|
||||
try
|
||||
set(Exp(zoneSel).hrRF1(J),'visible','off'); set(Exp(zoneSel).hrRF2(J),'visible','off');
|
||||
catch, end
|
||||
try
|
||||
set(Exp(zoneSel).hr(J),'visible','off'); set(Exp(zoneSel).hrb(J),'visible','off');
|
||||
catch, end
|
||||
end
|
||||
try
|
||||
set(Exp(zoneSel).hrRF1(seltraceN),'visible','on'); set(Exp(zoneSel).hrRF2(seltraceN),'visible','on');
|
||||
catch, end
|
||||
try
|
||||
set(Exp(zoneSel).hr(seltraceN),'visible','on'); set(Exp(zoneSel).hrb(seltraceN),'visible','on');
|
||||
catch, end
|
||||
else % if EZdatatip==1 or if EZdatatip==0
|
||||
% Attempt fix for overlaying L and intL from image datatip==1 18_0103
|
||||
try
|
||||
set(Exp(zoneSel).hLRF1(seltraceN),'visible','off'); set(Exp(zoneSel).hLRF2(seltraceN),'visible','off');
|
||||
catch, end
|
||||
try
|
||||
set(Exp(zoneSel).hL(seltraceN),'visible','off'); set(Exp(zoneSel).hLb(seltraceN),'visible','off');
|
||||
catch, end
|
||||
|
||||
% Plot new intL
|
||||
try
|
||||
set(Exp(zoneSel).hintL(seltraceN),'visible','off'); set(Exp(zoneSel).hintLb(seltraceN),'visible','off');
|
||||
catch, end
|
||||
try
|
||||
set(Exp(zoneSel).hintLadj(seltraceN),'visible','off'); set(Exp(zoneSel).hintLadjb(seltraceN),'visible','off');
|
||||
catch, end
|
||||
|
||||
% Plot RFmd1 and RFmd2 indexes
|
||||
if lstBoxCmpFlg~=1 % If selection is a "normal" item with a location in the label
|
||||
days=Exp(expN).DexpLength;
|
||||
for nn=1:Exp(expN).DexpLength % length(Exp(zoneSel).Dexp)
|
||||
RFconfig=Exp(zoneSel).Dexp(DexpN).RFconfig;
|
||||
EZRFs4DayComp
|
||||
if lstBoxCmpFlg~=1
|
||||
Exp(zoneSel).seltraceN=tracN;
|
||||
seltraceN=tracN;
|
||||
end
|
||||
% Plot L K r for all Day pertibation(XdestinationX) Plates
|
||||
try RF1mdNums=(RF1mdPltN-1)*destPerMP + (pertSel); catch, end % RF1mdPltN
|
||||
try RF2mdNums=(RF2mdPltN-1)*destPerMP + (pertSel); catch, end % RF2mdPltN
|
||||
if CompositeTrendFlg==0 || EZdatatip==1
|
||||
lvals(nn)=Exp(zoneSel).Dexp(nn).scan(1,plNums(pertSel)).plate(1).CFout(indx,5);
|
||||
if lvals(nn)==0, lvals(nn)=140; end
|
||||
kvals(nn)=Exp(zoneSel).Dexp(nn).scan(1,plNums(pertSel)).plate(1).CFout(indx,3);
|
||||
rvals(nn)=Exp(zoneSel).Dexp(nn).scan(1,plNums(pertSel)).plate(1).CFout(indx,4);
|
||||
Exp(expN).Trace(traceN).dmSel=pertSel;
|
||||
Exp(expN).Trace(traceN).UsrGLB=selGnOrf; %usrGnSp;
|
||||
Exp(expN).Trace(tracN).Dexp(nn).DM(pertSel).UsrLvals=lvals(nn);
|
||||
Exp(expN).Trace(tracN).Dexp(nn).DM(pertSel).UsrKvals=kvals(nn);
|
||||
Exp(expN).Trace(tracN).Dexp(nn).DM(pertSel).Usrrvals=rvals(nn);
|
||||
elseif CompositeTrendFlg==1 && EZdatatip==0 % Gene-Specifics Composite from listBox
|
||||
days=Exp(expN).DexpLength;
|
||||
if iscell(Exp(expN).Trace(tracN).Dexp(nn).DM(dmSel).UsrLvals)
|
||||
lvals(nn)=median(cell2mat(Exp(expN).Trace(tracN).Dexp(nn).DM(dmSel).UsrLvals));
|
||||
if lvals(nn)==0, lvals(nn)=140; end
|
||||
kvals(nn)=median(cell2mat(Exp(expN).Trace(tracN).Dexp(nn).DM(dmSel).UsrKvals));
|
||||
rvals(nn)=median(cell2mat(Exp(expN).Trace(tracN).Dexp(nn).DM(dmSel).Usrrvals));
|
||||
else
|
||||
lvals(nn)=median(Exp(expN).Trace(tracN).Dexp(nn).DM(dmSel).UsrLvals);
|
||||
if lvals(nn)==0, lvals(nn)=140; end
|
||||
kvals(nn)=median(Exp(expN).Trace(tracN).Dexp(nn).DM(dmSel).UsrKvals);
|
||||
rvals(nn)=median(Exp(expN).Trace(tracN).Dexp(nn).DM(dmSel).Usrrvals);
|
||||
end
|
||||
end
|
||||
try
|
||||
% lvalsRF1md(nn)=Exp(zoneSel).Dexp(nn).scan(1,RF1mdNums).plate(1).CFout(RF1mdIndx(nn),5);
|
||||
lvalsRF1md(nn)=RFmdVal(nn); %RFmdVal(nn) gets the above if 'F', or the global median if 'G' or the local median if 'L' selected
|
||||
if lvalsRF1md(nn)==0, lvalsRF1md(nn)=140; end
|
||||
kvalsRF1md(nn)=Exp(zoneSel).Dexp(nn).scan(1,RF1mdNums).plate(1).CFout(RF1mdIndx,3);
|
||||
rvalsRF1md(nn)=Exp(zoneSel).Dexp(nn).scan(1,RF1mdNums).plate(1).CFout(RF1mdIndx,4);
|
||||
catch
|
||||
end
|
||||
try
|
||||
lvalsRF2md(nn)=Exp(zoneSel).Dexp(nn).scan(1,RF2mdNums).plate(1).CFout(RF2mdIndx,5);
|
||||
if lvalsRF2md(nn)==0, lvalsRF2md(nn)=140; end
|
||||
kvalsRF2md(nn)=Exp(zoneSel).Dexp(nn).scan(1,RF2mdNums).plate(1).CFout(RF2mdIndx,3);
|
||||
rvalsRF2md(nn)=Exp(zoneSel).Dexp(nn).scan(1,RF2mdNums).plate(1).CFout(RF2mdIndx,4);
|
||||
catch
|
||||
end
|
||||
try
|
||||
if (~exist('lvalsRF1md','var')||~exist('lvalsRF2md','var'))&& exist('RFcmpGFlg','var') && RFcmpGFlg==1
|
||||
lvalsRF1md(nn)=Exp(expN).DexpN(nn).RFcmpGL.DM(dmSel);
|
||||
if lvalsRF2md(nn)==0, lvalsRF2md(nn)=140; end
|
||||
end
|
||||
lvalsRF1md(nn)=RFmdVal(nn); %RFmdVal(nn) gets the above if 'F', or the global median if 'G' or the local median if 'L' selected
|
||||
if lvalsRF1md(nn)==0, lvalsRF1md(nn)=140; end
|
||||
kvalsRF1md(nn)=Exp(zoneSel).Dexp(nn).scan(1,RF1mdNums).plate(1).CFout(RF1mdIndx,3);
|
||||
rvalsRF1md(nn)=Exp(zoneSel).Dexp(nn).scan(1,RF1mdNums).plate(1).CFout(RF1mdIndx,4);
|
||||
catch
|
||||
end
|
||||
% Added for INTERACTION Calculating Utility 2016_0219
|
||||
try
|
||||
if CompositeTrendFlg==0 || EZdatatip==1 % 18_0103 Add || EZdatatip==1
|
||||
Xn(nn)=Exp(expN).Dexp(nn).scan(plNums(pertSel)).plate(1).CFout(indx,5);
|
||||
Xln(nn)=Exp(expN).Dexp(nn).scan(plNums(pertSel)).plate(1).CFout(indx,11);
|
||||
Xhn(nn)=Exp(expN).Dexp(nn).scan(plNums(pertSel)).plate(1).CFout(indx,12);
|
||||
elseif CompositeTrendFlg==1 && EZdatatip==0 % 18_0103 add && EZdatatip==0 Gene-Specifics Composite from listBox
|
||||
Xn(nn)=median(cell2mat(Exp(expN).Trace(tracN).Dexp(nn).DM(dmSel).UsrLvals));
|
||||
Xln(nn)=Xn(nn) - std(cell2mat(Exp(expN).Trace(tracN).Dexp(nn).DM(dmSel).UsrLvals));
|
||||
Xhn(nn)=Xn(nn) + std(cell2mat(Exp(expN).Trace(tracN).Dexp(nn).DM(dmSel).UsrLvals));
|
||||
end
|
||||
if Xn(nn)==0, deltaXR(nn)=140; end
|
||||
if isnan(Xhn(nn))||isnan(Xln(nn))|| Xhn(nn)==0||Xln(nn)==0||isnan(Rs(nn))
|
||||
deltaXR(nn)=140;
|
||||
elseif Xn(nn) >=Rn(nn)
|
||||
deltaXR(nn)=Xln(nn)-(Rn(nn)+Rs(nn));
|
||||
else
|
||||
deltaXR(nn)=Xhn(nn)-(Rn(nn)-Rs(nn));
|
||||
end
|
||||
catch
|
||||
msg='No Refs! ->No Interaction Calculations!'
|
||||
end
|
||||
end
|
||||
elseif lstBoxCmpFlg==1 % determine values of RF1cmp or RFcmpG
|
||||
days=Exp(expN).DexpLength;
|
||||
if strcmp(Exp(expN).DexpType,'chrono'), DM=inDM; else DM=pertSel; end % else DM=dmSel;
|
||||
Exp(zoneSel).seltraceN=tracN; % added fix 2020_1103
|
||||
seltraceN=tracN; % added fix 2020_1103
|
||||
for nn=1:Exp(expN).DexpLength % length(Exp(zoneSel).Dexp)
|
||||
RFconfig=Exp(zoneSel).Dexp(DexpN).RFconfig;
|
||||
EZRFs4DayComp
|
||||
if RFcmpGFlg==0 % RF1cmp or RF2cmp clicked
|
||||
lvals(nn)=Exp(expN).Dexp(nn).RFcmpL(RFnum).dm(DM).med;
|
||||
if lvals(nn)==0, lvals(dm)=140; end
|
||||
kvals(nn)=Exp(expN).Dexp(nn).RFcmpK(RFnum).dm(DM).med;
|
||||
rvals(nn)=Exp(expN).Dexp(nn).RFcmpr(RFnum).dm(DM).med;
|
||||
elseif RFcmpGFlg==1
|
||||
lvals(nn)=Exp(expN).Dexp(nn).RFcmpGL.dm(DM).med; % Ls=num2str(l);
|
||||
if lvals(nn)==0, lvals(nn)=140; end
|
||||
kvals(nn)=Exp(expN).Dexp(nn).RFcmpGK.dm(DM).med; % Ks=num2str(K);
|
||||
rvals(nn)=Exp(expN).Dexp(nn).RFcmpGr.dm(DM).med; % rs=num2str(r);
|
||||
end
|
||||
% Added for INTERACTION Calculating Utility 2016_0219
|
||||
try
|
||||
Xn(nn)=lvals(nn);
|
||||
try
|
||||
Xln(nn)=lvals(nn)- Exp(expN).Dexp(DexpN).RFcmpL(RFnum).dm(DM).std ;
|
||||
Xhn(nn)=lvals(nn)+ Exp(expN).Dexp(DexpN).RFcmpL(RFnum).dm(DM).std;
|
||||
catch
|
||||
Xln(nn)=lvals(nn)- Exp(expN).Dexp(DexpN).RFcmpGL.dm(DM).std ;
|
||||
Xhn(nn)=lvals(nn)+ Exp(expN).Dexp(DexpN).RFcmpGL.dm(DM).std;
|
||||
end
|
||||
if Xn(nn)==0, deltaXR(nn)=140; end
|
||||
if isnan(Xhn(nn))||isnan(Xln(nn))|| Xhn(nn)==0||Xln(nn)==0||isnan(Rs(nn))
|
||||
deltaXR(nn)=140;
|
||||
elseif Xn(nn) >=Rn(nn)
|
||||
deltaXR(nn)=Xln(nn)-(Rn(nn)+Rs(nn));
|
||||
else
|
||||
deltaXR(nn)=Xhn(nn)-(Rn(nn)-Rs(nn));
|
||||
end
|
||||
catch
|
||||
msg='No Refs! ->No Interaction Calculations!'
|
||||
end
|
||||
end
|
||||
end
|
||||
%end
|
||||
|
||||
% Interaction Plotting Utility 2016_0219
|
||||
try
|
||||
if Rn(1)==0 % If Ref mean is zero
|
||||
intL=0; proGrIntL=0; intLadj=0; proGrIntLadj=0;
|
||||
intNormL=6.66;intNormLadj=6.66; proGrIntNormL=6.66;proGrIntNormLadj=6.66;
|
||||
else
|
||||
% if Xn(pertSel)==0 || Xn(pertSel)==140,intL=140; else intL=(Xn-Rn); end
|
||||
intL=(Xn-Rn);
|
||||
intL(Xn==0)=140;
|
||||
intLadj=(deltaXR);
|
||||
Exp(expN).Trace(tracN).Dexp(DexpN).UsrIntL=intL;
|
||||
end
|
||||
catch
|
||||
FailMessage='Problem with Reference Rn value; Unable to produce Interaction values! Ln119 EZdestComp'
|
||||
end
|
||||
|
||||
hidem(ghandles.Daxes1)
|
||||
if zoneSel==1,showm(ghandles.Dlaxes1);showm(ghandles.Dkaxes1);showm(ghandles.Draxes1);end
|
||||
if zoneSel==2,showm(ghandles.Dlaxes2);showm(ghandles.Dkaxes2);showm(ghandles.Draxes2);end
|
||||
if zoneSel==3,showm(ghandles.Dlaxes3);showm(ghandles.Dkaxes3);showm(ghandles.Draxes3);end
|
||||
set(Dlaxes,'NextPlot','add'); set(Dkaxes,'NextPlot','add'); set(Draxes,'NextPlot','add')
|
||||
|
||||
|
||||
if zoneSel==1,showm(ghandles.DNLaxes1); end
|
||||
if zoneSel==2,showm(ghandles.DNLaxes2); end
|
||||
if zoneSel==3,showm(ghandles.DNLaxes3); end
|
||||
set(DNLaxes,'NextPlot','add');
|
||||
|
||||
% Make visible the current L plot and store it for retrieval by OLay code
|
||||
% Plot RF1 and/or RF2 OR if No RF1-RF2 Plot RFcmpGL
|
||||
try %Some experiments do not have ref. plates
|
||||
Exp(zoneSel).hLRF1(tracN)=plot(Dlaxes,lvalsRF1md,1:days,'y'); hold on
|
||||
catch1=0;
|
||||
catch
|
||||
catch1=1;
|
||||
end
|
||||
try
|
||||
Exp(zoneSel).hLRF2(tracN)=plot(Dlaxes,lvalsRF2md,1:days,'y'); hold on
|
||||
catch2=0;
|
||||
catch
|
||||
catch2=1;
|
||||
end
|
||||
try
|
||||
if catch1 && catch2&& RFcmpGFlg==1
|
||||
for nn=1:Exp(expN).DexpLength
|
||||
lvalsRF1md(nn)=Exp(1,expN).Dexp(1,nn).RFcmpGL.dm(1,dmSel).med;
|
||||
if lvalsRF1md(nn)==0, lvalsRF1md(nn)=140; end
|
||||
end
|
||||
end
|
||||
Exp(zoneSel).hLRF1(tracN)=plot(Dlaxes,lvalsRF1md,1:days,'y');
|
||||
catch
|
||||
end
|
||||
% Plot User Selection Data
|
||||
try
|
||||
Exp(zoneSel).hL(tracN)=plot(Dlaxes,lvals,1:days); Exp(zoneSel).hLb(tracN)=plot(Dlaxes,lvals,1:days,'rs');
|
||||
catch
|
||||
end
|
||||
|
||||
if zoneSel==1,set(ghandles.Dlaxes1,'xlim',[0,140]); end
|
||||
if zoneSel==2,set(ghandles.Dlaxes2,'xlim',[0,140]); end
|
||||
if zoneSel==3,set(ghandles.Dlaxes3,'xlim',[0,140]); end
|
||||
|
||||
% Make visible Plot for Interaction Data, Store and Hide unless a N (InteractionPBsel) set that plot on Top of the RawData Plots.
|
||||
% Plot new intL
|
||||
try
|
||||
% zeroCLn=zeros(1,days)
|
||||
% Exp(zoneSel).hzeroCLn=plot(DNLaxes,zeroCLn,1:days,'y');
|
||||
Exp(zoneSel).hintL(tracN)= plot(DNLaxes,intL,1:days); Exp(zoneSel).hintLb(tracN)=plot(DNLaxes,intL,1:days,'rs');
|
||||
Exp(zoneSel).hintLadj(tracN)= plot(DNLaxes,intLadj,1:days,'g'); Exp(zoneSel).hintLadjb(tracN)=plot(DNLaxes,intLadj,1:days,'gs');
|
||||
catch
|
||||
end
|
||||
if zoneSel==1,set(ghandles.DNLaxes1,'xlim',[-75,75]); end
|
||||
if zoneSel==2,set(ghandles.DNLaxes2,'xlim',[-75,75]); end
|
||||
if zoneSel==3,set(ghandles.DNLaxes3,'xlim',[-75,75]); end
|
||||
|
||||
% Hide all K plots
|
||||
for J=1:(tracN-1)
|
||||
try
|
||||
set(Exp(zoneSel).hKRF1(J),'visible','off'); set(Exp(zoneSel).hKRF2(J),'visible','off');
|
||||
catch, end
|
||||
try
|
||||
set(Exp(zoneSel).hK(J),'visible','off'); set(Exp(zoneSel).hKb(J),'visible','off');
|
||||
catch, end
|
||||
end
|
||||
|
||||
% Make visible the current L plot and store it for retrieval by OLay code
|
||||
try % Some experiments do not have ref. plates
|
||||
Exp(zoneSel).hKRF1(tracN)=plot(Dkaxes,kvalsRF1md,1:days,'y');
|
||||
Exp(zoneSel).hKRF2(tracN)=plot(Dkaxes,kvalsRF2md,1:days,'y');
|
||||
catch, end
|
||||
try
|
||||
Exp(zoneSel).hK(tracN)= plot(Dkaxes,kvals,1:days); Exp(zoneSel).hKb(tracN)=plot(Dkaxes,kvals,1:days,'rs');
|
||||
catch, end
|
||||
set(Dkaxes,'xlim',[0,200]) % max(kvals+20)
|
||||
set(Dkaxes,'ycolor',[.9,.9,1])
|
||||
|
||||
% Hide all r plots
|
||||
for J=1:(tracN-1)
|
||||
try
|
||||
set(Exp(zoneSel).hrRF1(J),'visible','off'); set(Exp(zoneSel).hrRF2(J),'visible','off');
|
||||
catch, end
|
||||
try
|
||||
set(Exp(zoneSel).hr(J),'visible','off'); set(Exp(zoneSel).hrb(J),'visible','off');
|
||||
catch, end
|
||||
end
|
||||
|
||||
% Make visible the current r plot and store it for retrieval by OLay code
|
||||
try % Some experiments do not have ref. plates
|
||||
Exp(zoneSel).hrRF1(tracN)=plot(Draxes,rvalsRF1md,1:days,'y');
|
||||
Exp(zoneSel).hrRF2(tracN)=plot(Draxes,rvalsRF2md,1:days,'y');
|
||||
catch, end
|
||||
try
|
||||
Exp(zoneSel).hr(tracN)= plot(Draxes,rvals,1:days); Exp(zoneSel).hrb(tracN)=plot(Draxes,rvals,1:days,'rs');
|
||||
catch, end
|
||||
set(Draxes,'xlim',[0,1])
|
||||
set(Draxes,'ycolor',[.9,.9,1])
|
||||
end
|
||||
|
||||
if CompositeTrendFlg==1 && EZdatatip~=0
|
||||
% lbLKr=strcat(gene,'_',spec,'_');
|
||||
drug=Exp(expN).Dexp(DexpN).DM.drug{dmSel};
|
||||
conc=Exp(expN).Dexp(DexpN).DM.conc{dmSel};
|
||||
media=Exp(expN).Dexp(DexpN).DM.media{dmSel};
|
||||
mod1=Exp(expN).Dexp(DexpN).DM.mod1{dmSel};
|
||||
conc1=Exp(expN).Dexp(DexpN).DM.conc1{dmSel};
|
||||
mod2=Exp(expN).Dexp(DexpN).DM.mod2{dmSel};
|
||||
conc2=Exp(expN).Dexp(DexpN).DM.conc2{dmSel};
|
||||
dmStr=strcat(drug,conc,'_',media,'_',mod1,conc1,mod2,conc2);
|
||||
grfgenestr=strcat(grfgenestr,dmStr);
|
||||
end
|
||||
|
||||
if zoneSel==1, set(ghandles.geneOrfLKr1,'string', grfgenestr);end
|
||||
if zoneSel==2, set(ghandles.geneOrfLKr2,'string', grfgenestr);end
|
||||
if zoneSel==3, set(ghandles.geneOrfLKr3,'string', grfgenestr);end
|
||||
|
||||
|
||||
% Display Selection PlotFilter
|
||||
|
||||
if lstBoxCmpFlg~=1,
|
||||
seltraceN=Exp(zoneSel).seltraceN
|
||||
end
|
||||
if EZdatatip==0, seltraceN=tracN; end
|
||||
if Exp(4).interacPBsel==0
|
||||
% replace ghandles.DNLaxes1 (Dlaxes2)etc. with a single
|
||||
% Exp(zoneSel).DNLaxes,....
|
||||
set(ghandles.Dlaxes1,'Visible','on')
|
||||
set(ghandles.Dlaxes2,'Visible','on')
|
||||
set(ghandles.Dlaxes3,'Visible','on')
|
||||
set(ghandles.DNLaxes1,'Visible','off')
|
||||
set(ghandles.DNLaxes2,'Visible','off')
|
||||
set(ghandles.DNLaxes3,'Visible','off')
|
||||
|
||||
for n=1:Exp(zoneSel).traceN
|
||||
try
|
||||
set(Exp(zoneSel).hLRF1(n),'visible','off'); set(Exp(zoneSel).hLRF2(n),'visible','off');
|
||||
catch, end
|
||||
try
|
||||
set(Exp(zoneSel).hL(n),'visible','off'); set(Exp(zoneSel).hLb(n),'visible','off');
|
||||
catch, end
|
||||
try
|
||||
set(Exp(zoneSel).hintL(n),'visible','off'); set(Exp(zoneSel).hintLb(n),'visible','off');
|
||||
catch, end
|
||||
try
|
||||
set(Exp(zoneSel).hintLadj(n),'visible','off'); set(Exp(zoneSel).hintLadjb(n),'visible','off');
|
||||
catch, end
|
||||
end
|
||||
|
||||
try
|
||||
set(Exp(zoneSel).hLRF1(seltraceN),'visible','on'); set(Exp(zoneSel).hLRF2(seltraceN),'visible','on');
|
||||
catch, end
|
||||
try
|
||||
set(Exp(zoneSel).hL(seltraceN),'visible','on'); set(Exp(zoneSel).hLb(seltraceN),'visible','on');
|
||||
catch, end
|
||||
for i=1:Exp(zoneSel).expLoadCnt,
|
||||
try set(Exp(zoneSel).hzeroCLn(i),'visible','off'); catch ME, end
|
||||
end
|
||||
elseif Exp(4).interacPBsel==1
|
||||
set(ghandles.DNLaxes1,'Visible','on')
|
||||
set(ghandles.DNLaxes2,'Visible','on')
|
||||
set(ghandles.DNLaxes3,'Visible','on')
|
||||
set(ghandles.Dlaxes1,'Visible','off')
|
||||
set(ghandles.Dlaxes2,'Visible','off')
|
||||
set(ghandles.Dlaxes3,'Visible','off')
|
||||
|
||||
for n=1:Exp(zoneSel).traceN
|
||||
try set(Exp(zoneSel).hLRF1(n),'visible','off'); catch, end
|
||||
try set(Exp(zoneSel).hLRF2(n),'visible','off'); catch, end
|
||||
try set(Exp(zoneSel).hL(n),'visible','off'); set(Exp(zoneSel).hLb(n),'visible','off'); catch, end
|
||||
try set(Exp(zoneSel).hintL(n),'visible','off'); set(Exp(zoneSel).hintLb(n),'visible','off'); catch, end
|
||||
try set(Exp(zoneSel).hintLadj(n),'visible','off'); set(Exp(zoneSel).hintLadjb(n),'visible','off'); catch, end
|
||||
end
|
||||
try set(Exp(zoneSel).hintL(seltraceN),'visible','on'); set(Exp(zoneSel).hintLb(seltraceN),'visible','on'); catch, end
|
||||
try set(Exp(zoneSel).hintLadj(seltraceN),'visible','on'); set(Exp(zoneSel).hintLadjb(seltraceN),'visible','on'); catch, end
|
||||
for i=1:Exp(zoneSel).expLoadCnt
|
||||
try set(Exp(zoneSel).hzeroCLn(i),'visible','on'); catch ME, end
|
||||
end
|
||||
elseif Exp(4).interacPBsel==2
|
||||
end
|
||||
|
||||
%{
|
||||
% Attempt fix for overlaying L and intL from image datatip==1 18_0103
|
||||
if Exp(4).interacPBsel==0 %0000
|
||||
try
|
||||
set(Exp(zoneSel).hLRF1(seltraceN),'visible','off'); set(Exp(zoneSel).hLRF2(seltraceN),'visible','off');
|
||||
catch, end
|
||||
try
|
||||
set(Exp(zoneSel).hL(seltraceN),'visible','off'); set(Exp(zoneSel).hLb(seltraceN),'visible','off');
|
||||
catch, end
|
||||
end
|
||||
|
||||
% Hide intL
|
||||
if Exp(4).interacPBsel==1 %1111
|
||||
try
|
||||
set(Exp(zoneSel).hintL(seltraceN),'visible','off'); set(Exp(zoneSel).hintLb(seltraceN),'visible','off');
|
||||
catch, end
|
||||
try
|
||||
set(Exp(zoneSel).hintLadj(seltraceN),'visible','off'); set(Exp(zoneSel).hintLadjb(seltraceN),'visible','off');
|
||||
catch, end
|
||||
end
|
||||
%}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
45
qhtcp-workflow/apps/matlab/ezview/EZmultiDay.m
Executable file
45
qhtcp-workflow/apps/matlab/ezview/EZmultiDay.m
Executable file
@@ -0,0 +1,45 @@
|
||||
%EZmultiday callled by EZmultidayGui
|
||||
global exp
|
||||
global exDlst
|
||||
global exFolder
|
||||
|
||||
c=strfind(exDlst,' ');
|
||||
d=strfind(exDlst,'_');
|
||||
clear expDlstS
|
||||
ii=0;
|
||||
for n=1:(size(c,1))
|
||||
if ((sum(ismember(cell2mat(c(n)),[3,4]))==1 && ~isempty(ismember(cell2mat(c(n)),[3,4]))) ...
|
||||
|| (sum(ismember(cell2mat(d(n)),[3,4]))==1 && ~isempty(ismember(cell2mat(d(n)),[3,4]))))
|
||||
ii=ii+1;
|
||||
expDlst(ii)=exDlst(n);
|
||||
end
|
||||
end
|
||||
|
||||
clear matFile
|
||||
ii=0;
|
||||
for m=1:size(expDlst,2)
|
||||
exD=fullfile(exFolder,cell2mat(expDlst(m)))
|
||||
dirLst=dir(exD);
|
||||
clear matFlst
|
||||
clear resF
|
||||
clear resMatF
|
||||
|
||||
for n=1:size(dirLst,1)
|
||||
if sum(ismember('Results2', dirLst(n).name))==8
|
||||
resF=dirLst(n).name
|
||||
resMatF=fullfile(exFolder,cell2mat(expDlst(m)),resF,'matResults')
|
||||
matFlst=dir(resMatF)
|
||||
for o=1:size(matFlst,1)
|
||||
if sum(ismember('.mat', matFlst(o).name))==4
|
||||
ii=ii+1;
|
||||
resDir{ii}=fullfile(exFolder,cell2mat(expDlst(m)),resF)
|
||||
matFile(m)=cellstr(fullfile(resMatF,matFlst(o).name))
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Exp(expN).DexpLength=size(matFile,2);
|
||||
Exp(expN).DexpN=size(matFile,2);
|
||||
|
||||
61
qhtcp-workflow/apps/matlab/ezview/EZmultiDayExp.m
Executable file
61
qhtcp-workflow/apps/matlab/ezview/EZmultiDayExp.m
Executable file
@@ -0,0 +1,61 @@
|
||||
% Is the callback supposed to be nested?
|
||||
function EZmultiDayGui
|
||||
%global Exp
|
||||
global exDlst
|
||||
|
||||
xPos=0.05;
|
||||
btnWid=0.10;
|
||||
btnHt=0.05;
|
||||
spacing=0.02;% Spacing between the button and the next command's label
|
||||
|
||||
% The ADD Groups button
|
||||
btnNumber=1;
|
||||
yPos=0.85-(btnNumber-1)*(btnHt+spacing);
|
||||
btnPos=[xPos yPos-spacing btnWid btnHt];
|
||||
%fhImParm=gcf;
|
||||
|
||||
exFolder=uigetdir
|
||||
exDirs=dir(exFolder)
|
||||
exFs={exDirs.name}
|
||||
|
||||
f=figure('Menubar','none','Position',[1000 100 640 750],'Name','Select Exp Folders' );
|
||||
hListbox=uicontrol(...
|
||||
'Style', 'listbox',...
|
||||
'String',sort(exFs),...
|
||||
'value',[],...
|
||||
'max',1000,...
|
||||
'min',1,...
|
||||
'Units','normalized',...
|
||||
'Position', [.70 .40 .6 .60],...
|
||||
'callback',{@load_listbox}); % 'uiresume(gcbf)'); 'Position', [5 100 60 20])
|
||||
|
||||
function load_listbox(source,eventdata)
|
||||
% global CSrchRng
|
||||
% global CSrearchRange
|
||||
userIndx=(get(source,'value'))
|
||||
userStr=(get(source,'string'))
|
||||
% scLstIndx=str2num(char(strrep(userStr(userIndx), 'Scan', '')))
|
||||
|
||||
user_entry=userStr(userIndx)
|
||||
exDlst=user_entry
|
||||
end
|
||||
|
||||
exFs
|
||||
|
||||
btnNumber=10;
|
||||
yPos=0.85-(btnNumber-1)*(btnHt+spacing);
|
||||
btnPos=[xPos yPos-spacing btnWid btnHt];
|
||||
|
||||
hedit8=uicontrol(...
|
||||
'Style', 'pushbutton',...
|
||||
'String',{'Continue'},...
|
||||
'Units','normalized',...
|
||||
'Position', btnPos,...
|
||||
'callback','uiresume(gcbf)');
|
||||
|
||||
uiwait(gcf);
|
||||
|
||||
close(f)
|
||||
end
|
||||
|
||||
% EZmultiDay
|
||||
86
qhtcp-workflow/apps/matlab/ezview/EZmultiDayGui.m
Executable file
86
qhtcp-workflow/apps/matlab/ezview/EZmultiDayGui.m
Executable file
@@ -0,0 +1,86 @@
|
||||
% EZmultiDayGui.m called by EZexpSel.m
|
||||
% EZmultiday is called after this EZmultiDayGui.m also by EZexpSel.m
|
||||
|
||||
function EZmultiDayGui
|
||||
global exDlst
|
||||
global exFolder
|
||||
global expType
|
||||
global scansDir
|
||||
|
||||
xPos=0.05;
|
||||
btnWid=0.10;
|
||||
btnHt=0.05;
|
||||
spacing=0.02; % Spacing between the button and the next command's label
|
||||
btnNumber=1;
|
||||
yPos=0.85-(btnNumber-1)*(btnHt+spacing);
|
||||
btnPos=[xPos yPos-spacing btnWid btnHt];
|
||||
|
||||
datacursormode off;
|
||||
|
||||
exDirs=dir(exFolder);
|
||||
exFs={exDirs.name};
|
||||
exFs=exFs(3:end);
|
||||
|
||||
% Re-Sort Experiments by 'D__' Day
|
||||
if expType==2
|
||||
exFs
|
||||
ii=1;
|
||||
for i=1:size(exFs,2)
|
||||
position=strfind(exFs(i),'_D');
|
||||
if ~isempty(cell2mat(position)) && isnumeric(cell2mat(position))
|
||||
da=char(exFs(i));
|
||||
ff(ii)=sscanf(da((cell2mat(position)+2):end),'%d');
|
||||
expDayFs(ii)=exFs(i);
|
||||
indxx(ii)=ii;
|
||||
selFindx=nonzeros(indxx);
|
||||
ii=ii+1;
|
||||
end
|
||||
end
|
||||
BB=[ff;selFindx'];
|
||||
BB=BB';
|
||||
CC=sortrows(BB,1);
|
||||
j=1;
|
||||
for i=1:size(CC,1)
|
||||
j=CC(i,2);
|
||||
ExpOrderByExp(i)=expDayFs(j); %exFs(j)
|
||||
end
|
||||
else
|
||||
ExpOrderByExp=sort(exFs);
|
||||
end
|
||||
|
||||
f=figure('Menubar','none','Position',[1000 100 640 750],'Name','Select Exp Folders' );
|
||||
|
||||
hListbox=uicontrol(...
|
||||
'Style', 'listbox',...
|
||||
'String',ExpOrderByExp,...
|
||||
'value',[],...
|
||||
'max',1000,...
|
||||
'min',1,...
|
||||
'Units','normalized',...
|
||||
'Position', [.70 .40 .6 .60],...
|
||||
'callback',{@load_listbox}); %'uiresume(gcbf)'); 'Position', [5 100 60 20])
|
||||
|
||||
function load_listbox(source,eventdata)
|
||||
userIndx=(get(source,'value'));
|
||||
userStr=(get(source,'string'));
|
||||
user_entry=userStr(userIndx);
|
||||
exDlst=user_entry;
|
||||
end
|
||||
|
||||
exFs
|
||||
btnNumber=10;
|
||||
yPos=0.85-(btnNumber-1)*(btnHt+spacing);
|
||||
btnPos=[xPos yPos-spacing btnWid btnHt];
|
||||
|
||||
hedit8=uicontrol(...
|
||||
'Style', 'pushbutton',...
|
||||
'String',{'Continue'},...
|
||||
'Units','normalized',...
|
||||
'Position', btnPos,...
|
||||
'callback','uiresume(gcbf)');
|
||||
|
||||
uiwait(gcf);
|
||||
close(f)
|
||||
end
|
||||
|
||||
|
||||
317
qhtcp-workflow/apps/matlab/ezview/EZmultiExLoad.m
Executable file
317
qhtcp-workflow/apps/matlab/ezview/EZmultiExLoad.m
Executable file
@@ -0,0 +1,317 @@
|
||||
% EZmultiExLoad
|
||||
% Calls to EZVimDisplay (ln 185) EZmultiGeneRFsLst (ln213) EZdiagRFsSheet(ln218)
|
||||
% TODO this file could use some elseif's
|
||||
|
||||
global Exp
|
||||
global zonePB
|
||||
global Expaa
|
||||
global Expbb
|
||||
global exDlst
|
||||
global exFolder
|
||||
|
||||
% Load .mat file
|
||||
expN=zonePB; % added to accomodate AppDesigner limitations 230821
|
||||
Exp(expN).UgeneCnt=0;
|
||||
Exp(expN).DexpLength=size(matFile,2); DexpLength=size(matFile,2);
|
||||
for n=1:Exp(expN).DexpLength % size(matFile,2)
|
||||
if expN==1
|
||||
orfLstSel=get(handles.GeneOrfTog,'value');
|
||||
end
|
||||
if expN==2
|
||||
orfLstSel=get(handles.GeneOrfTog,'value');
|
||||
end
|
||||
if expN==3
|
||||
orfLstSel=get(handles.GeneOrfTog,'value');
|
||||
end
|
||||
Exp(expN).Dexp(n).srtGnLst={('CheckMP/MPDMfile')};
|
||||
Exp(expN).Dexp(n).srtOrfLst={('CheckMP/MPDMfile')};
|
||||
set(handles.listboxGnOrf,'value',1) %Fix accomodation for bug in App Designer .. .wlapp converter 230918
|
||||
set(handles.listboxGnOrf,'string',cellstr([{'Failed To Load'}; {' '}]));
|
||||
% try
|
||||
ExpOutmat=matFile(n)
|
||||
load(char(ExpOutmat));
|
||||
%cd(scansDir)
|
||||
%cd ..;
|
||||
%resDir=pwd;
|
||||
Exp(expN).Dexp(n).resDir=cell2mat(resDir(n));
|
||||
cd(Exp(expN).Dexp(n).resDir)
|
||||
cd ..;
|
||||
ExpPath=pwd;
|
||||
Exp(expN).Dexp(n).ExpFoldr=ExpPath;
|
||||
cd(w)
|
||||
% Experiment LOADs
|
||||
load(fullfile(Exp(expN).Dexp(n).ExpFoldr,'MasterPlateFiles','MPDMmat.mat'))
|
||||
load(fullfile(Exp(expN).Dexp(n).resDir,'Fotos','Coordinates'))
|
||||
load(fullfile(Exp(expN).Dexp(n).resDir,'Fotos','anlZones'))
|
||||
load(fullfile(Exp(expN).Dexp(n).resDir,'Fotos','BGatTpts'))
|
||||
load(fullfile(Exp(expN).Dexp(n).resDir,'PTmats','NImParameters'))
|
||||
% Backup for cond. sothat failure to load is recovered back prev. ExpJob data
|
||||
% test in temp
|
||||
Exp(expN).Dexp(n).temp.DM=DM;
|
||||
Exp(expN).Dexp(n).temp.MP=MP;
|
||||
Exp(expN).Dexp(n).temp.scan=scan;
|
||||
Exp(expN).Dexp(n).temp.FexpScanSpots=FexpScanSpots;
|
||||
Exp(expN).Dexp(n).temp.FexpScanBMtp=FexpScanBMtp;
|
||||
Exp(expN).Dexp(n).temp.anlZoneRefs=anlZoneRefs;
|
||||
Exp(expN).Dexp(n).temp.ImParMat=ImParMat;
|
||||
Exp(expN).Dexp(n).DM=Exp(expN).Dexp(n).temp.DM;
|
||||
Exp(expN).Dexp(n).MP=Exp(expN).Dexp(n).temp.MP;
|
||||
Exp(expN).Dexp(n).scan=Exp(expN).Dexp(n).temp.scan;
|
||||
Exp(expN).Dexp(n).FexpScanSpots=Exp(expN).Dexp(n).temp.FexpScanSpots;
|
||||
Exp(expN).Dexp(n).FexpScanBMtp=Exp(expN).Dexp(n).temp.FexpScanBMtp;
|
||||
Exp(expN).Dexp(n).anlZoneRefs=Exp(expN).Dexp(n).temp.anlZoneRefs;
|
||||
Exp(expN).Dexp(n).ImParMat=Exp(expN).Dexp(n).temp.ImParMat;
|
||||
Exp(expN).Dexp((Exp(expN).DexpLength+1):end)=[];
|
||||
Exp(expN).Dexp(n).temp=[];
|
||||
end
|
||||
|
||||
% Load First new ExpJOb
|
||||
if expN==1
|
||||
tPtsSize=size(Exp(expN).Dexp(1).FexpScanBMtp{1,1},(3)); %size(FexpScanBMtp{1,1},3);
|
||||
set(handles.MPsldr1,'max',MPnum); %length(MP)
|
||||
set(handles.DMsldr1,'max',length(DM.drug));
|
||||
set(handles.Tptsldr1,'max',tPtsSize);
|
||||
|
||||
% MPnum=length(Exp(expN).Dexp(1).MP);
|
||||
set(handles.MPsldr1,'min',1,'max',MPnum)
|
||||
DMnum=length(Exp(expN).Dexp(1).DM.drug);
|
||||
set(handles.DMsldr1,'min',1,'max',DMnum)
|
||||
tPtsSize=size(Exp(expN).Dexp(1).FexpScanBMtp{1,1},(3));
|
||||
set(handles.Tptsldr1,'min',1,'max',tPtsSize)
|
||||
|
||||
set(handles.MPsldr1,'value',1)
|
||||
set(handles.DMsldr1,'value',1)
|
||||
set(handles.Tptsldr1,'value',1)
|
||||
set(handles.MPed1,'string','1')
|
||||
set(handles.DMed1,'string','1')
|
||||
set(handles.Tpted1,'string','1')
|
||||
set(handles.MPsldr1,'SliderStep',[1/MPnum 1/MPnum]); % [1/length(MP) 1/length(MP)])
|
||||
set(handles.DMsldr1,'SliderStep',[1/length(DM.drug) 1/length(DM.drug)]);
|
||||
set(handles.Tptsldr1,'SliderStep',[1/tPtsSize 1/tPtsSize]);
|
||||
|
||||
set(handles.DN1,'value',1)
|
||||
set(handles.DN1,'string',1)
|
||||
end
|
||||
if expN==2,
|
||||
tPtsSize=size(Exp(expN).Dexp(1).FexpScanBMtp{1,1},(3)); % size(FexpScanBMtp{1,1},3);
|
||||
set(handles.MPsldr2,'max',MPnum);
|
||||
set(handles.DMsldr2,'max',length(DM.drug));
|
||||
set(handles.Tptsldr2,'max',tPtsSize);
|
||||
% MPnum=length(Exp(expN).Dexp(1).MP);
|
||||
set(handles.MPsldr2,'min',1,'max',MPnum) % length(MP))
|
||||
DMnum=length(Exp(expN).Dexp(n).DM.drug);
|
||||
set(handles.DMsldr2,'min',1,'max',DMnum)
|
||||
tPtsSize=size(Exp(expN).Dexp(1).FexpScanBMtp{1,1},(3));
|
||||
set(handles.Tptsldr2,'min',1,'max',tPtsSize)
|
||||
|
||||
set(handles.MPsldr2,'value',1)
|
||||
set(handles.DMsldr2,'value',1)
|
||||
set(handles.Tptsldr2,'value',1)
|
||||
set(handles.MPed2,'string','1')
|
||||
set(handles.DMed2,'string','1')
|
||||
set(handles.Tpted2,'string','1')
|
||||
set(handles.MPsldr2,'SliderStep',[1/MPnum 1/MPnum]); %1/length(MP) 1/length(MP)])
|
||||
set(handles.DMsldr2,'SliderStep',[1/length(DM.drug) 1/length(DM.drug)]);
|
||||
set(handles.Tptsldr2,'SliderStep',[1/tPtsSize 1/tPtsSize]);
|
||||
|
||||
set(handles.DN2,'value',1)
|
||||
set(handles.DN2,'string',1)
|
||||
end
|
||||
|
||||
if expN==3
|
||||
% Exp(3).traceN=0;
|
||||
tPtsSize=size(Exp(expN).Dexp(1).FexpScanBMtp{1,1},(3)); % size(FexpScanBMtp{1,1},3);
|
||||
set(handles.MPsldr3,'max',MPnum);
|
||||
set(handles.DMsldr3,'max',length(DM.drug));
|
||||
set(handles.Tptsldr3,'max',tPtsSize);
|
||||
% MPnum=length(Exp(expN).Dexp(1).MP);
|
||||
set(handles.MPsldr3,'min',1,'max',MPnum)
|
||||
DMnum=length(Exp(expN).Dexp(1).DM.drug);
|
||||
set(handles.DMsldr3,'min',1,'max',DMnum)
|
||||
tPtsSize=size(Exp(expN).Dexp(1).FexpScanBMtp{1,1},(3));
|
||||
set(handles.Tptsldr3,'min',1,'max',tPtsSize)
|
||||
set(handles.MPsldr3,'value',1)
|
||||
set(handles.DMsldr3,'value',1)
|
||||
set(handles.Tptsldr3,'value',1)
|
||||
set(handles.MPed3,'string','1')
|
||||
set(handles.DMed3,'string','1')
|
||||
set(handles.Tpted3,'string','1')
|
||||
set(handles.MPsldr3,'SliderStep',[1/MPnum 1/MPnum]); % 1/length(MP) 1/length(MP)])
|
||||
set(handles.DMsldr3,'SliderStep',[1/length(DM.drug) 1/length(DM.drug)]);
|
||||
set(handles.Tptsldr3,'SliderStep',[1/tPtsSize 1/tPtsSize]);
|
||||
set(handles.DN3,'value',1)
|
||||
set(handles.DN3,'string',1)
|
||||
end
|
||||
|
||||
if expN==1
|
||||
set(handles.GeneOrfLoc1,'string',{''});
|
||||
set(handles.graphStrLoc1,'string',{''});
|
||||
cla(handles.Paxes1)
|
||||
end
|
||||
if expN==2
|
||||
set(handles.GeneOrfLoc2,'string',{''});
|
||||
set(handles.graphStrLoc2,'string',{''});
|
||||
cla(handles.Paxes2)
|
||||
end
|
||||
if expN==3
|
||||
set(handles.GeneOrfLoc3,'string',{''});
|
||||
set(handles.graphStrLoc3,'string',{''})
|
||||
cla(handles.Paxes3)
|
||||
end
|
||||
|
||||
Exp(expN).Dexp(1).srtGnLst={('CheckMP/MPDMfile')};
|
||||
Exp(expN).Dexp(1).srtOrfLst={('CheckMP/MPDMfile')};
|
||||
set(handles.listboxGnOrf,'value',1) %Fix accomodation for bug in App Designer .. .wlapp converter 230918
|
||||
set(handles.listboxGnOrf,'string',Exp(expN).Dexp(1).srtGnLst)
|
||||
set(handles.listboxGnOrf,'string',Exp(expN).Dexp(1).srtOrfLst)
|
||||
|
||||
EZVimDisplay
|
||||
|
||||
usrRefFg=0;
|
||||
prompt={'Enter GeneName to use as Reference:',...
|
||||
'Enter Specifics Term if used to futher specify Reference '}
|
||||
dlg_title='User Reference Input';
|
||||
num_lines=1;
|
||||
def={'RF1','None'};
|
||||
answer=inputdlg(prompt,dlg_title,num_lines,def);
|
||||
if iscell(answer(1))
|
||||
rfGene=cell2mat(answer(1));
|
||||
else
|
||||
rfGene=answer(1);
|
||||
end
|
||||
|
||||
if ~strcmpi(rfGene,'RF1')|| ~strcmpi(rfGene,'RF2'), usrRefFg=1; end
|
||||
rfSpec=answer(2); % if strcmpi(answer(2),'None'), rfSpec=''; end
|
||||
rfGnSp=strcat(rfGene,rfSpec);
|
||||
if strcmpi(rfSpec,'None'), rfGnSp={strcat(rfGene,'-')}; end
|
||||
|
||||
% Added 17-1023 For User Addition of Gene Composites to ListBox
|
||||
Expaa{expN,1}=[]
|
||||
Expbb{expN,1}=[];
|
||||
|
||||
for n=1:size(matFile,2)
|
||||
try
|
||||
EZmultiGeneRFsLst
|
||||
catch
|
||||
msg='EZmultiGeneRFLst failed possibly Too Few non-zero Median spots'
|
||||
end
|
||||
EZdiagRFsSheet
|
||||
Exp(expN).Dexp(n).RFrnames=rnames;
|
||||
Exp(expN).Dexp(n).RFdata=data;
|
||||
RFconfig=0;
|
||||
if sum(ismember(fieldnames(Exp(expN).Dexp(n)),'RFmean')) ...
|
||||
&& ~isempty(Exp(expN).Dexp(n).RFmean) ...
|
||||
&& sum(ismember(fieldnames(Exp(expN).Dexp(n)),'RFmeanG')) ...
|
||||
&& isempty(Exp(expN).Dexp(n).RFmeanG)
|
||||
RFconfig=1;
|
||||
end
|
||||
if sum(ismember(fieldnames(Exp(expN).Dexp(n)),'RFmean'))==0 ...
|
||||
|| isempty(Exp(expN).Dexp(n).RFmean) ...
|
||||
&& sum(ismember(fieldnames(Exp(expN).Dexp(n)),'RFmeanG')) ...
|
||||
&& ~isempty(Exp(expN).Dexp(n).RFmeanG)
|
||||
RFconfig=2;
|
||||
end
|
||||
if sum(ismember(fieldnames(Exp(expN).Dexp(n)),'RFmean')) ...
|
||||
&& ~isempty(Exp(expN).Dexp(n).RFmean) ...
|
||||
&& sum(ismember(fieldnames(Exp(expN).Dexp(n)),'RFmeanG')) ...
|
||||
&& ~isempty(Exp(expN).Dexp(n).RFmeanG)
|
||||
RFconfig=3;
|
||||
end
|
||||
Exp(expN).RFconfig=RFconfig;
|
||||
Exp(expN).Dexp(n).RFconfig=RFconfig;
|
||||
try msgBadGeneName
|
||||
catch, end
|
||||
try
|
||||
Exp(expN).Dexp(n).resetHtmpTg =5; %Exp(expN).resetHtmpTg =5;
|
||||
if RFconfig==0
|
||||
RFconfigMsg='No RF1 references in this Experiment Job'
|
||||
Exp(expN).Dexp(n).resetHtmpTg =3; %Exp(expN).resetHtmpTg =3;
|
||||
end
|
||||
catch
|
||||
end
|
||||
end
|
||||
|
||||
% Auto Select Zone And Load Listboxgnorf Data
|
||||
DexpN=1;
|
||||
zeroCLn=zeros(1,DMnum);
|
||||
Exp(expN).expLoadCnt=Exp(expN).expLoadCnt+1; expLdCnt=Exp(expN).expLoadCnt;
|
||||
if expN==1 % Adapted to accomodate AppDesigner 230821
|
||||
set(handles.zonePB1,'value',1)
|
||||
set(handles.zonePB2,'value',0)
|
||||
set(handles.zonePB3,'value',0)
|
||||
set(handles.zonePB1,'BackgroundColor',[1.0 0.6 0.6])
|
||||
set(handles.zonePB2,'BackgroundColor',[1.0 1.0 1.0])
|
||||
set(handles.zonePB3,'BackgroundColor',[1.0 1.0 1.0])
|
||||
orfLstSel=get(handles.GeneOrfTog,'value')
|
||||
if orfLstSel==1
|
||||
set(handles.listboxGnOrf,'string',Exp(1).Dexp(1).srtOrfLst)
|
||||
else
|
||||
set(handles.listboxGnOrf,'string',Exp(1).Dexp(1).srtGnLst)
|
||||
end
|
||||
DNLaxes1=handles.DNLaxes1;
|
||||
Exp(1).hzeroCLn(expLdCnt)=plot(DNLaxes1,zeroCLn,1:DMnum,'y');
|
||||
end
|
||||
|
||||
if expN==2 % Adapted to accomodate AppDesigner 230821
|
||||
set(handles.zonePB1,'value',0)
|
||||
set(handles.zonePB3,'value',0)
|
||||
set(handles.zonePB2,'value',1)
|
||||
set(handles.zonePB2,'BackgroundColor',[1.0 0.6 0.6])
|
||||
set(handles.zonePB1,'BackgroundColor',[1.0 1.0 1.0])
|
||||
set(handles.zonePB3,'BackgroundColor',[1.0 1.0 1.0])
|
||||
orfLstSel=get(handles.GeneOrfTog,'value');
|
||||
if orfLstSel==1
|
||||
set(handles.listboxGnOrf,'string',Exp(2).Dexp(1).srtOrfLst)
|
||||
else
|
||||
set(handles.listboxGnOrf,'string',Exp(2).Dexp(1).srtGnLst)
|
||||
end
|
||||
DNLaxes2=handles.DNLaxes2;
|
||||
Exp(2).hzeroCLn(expLdCnt)=plot(DNLaxes2,zeroCLn,1:DMnum,'y');
|
||||
end
|
||||
|
||||
if expN==3 % Adapted to accomodate AppDesigner 230821
|
||||
set(handles.zonePB1,'value',0)
|
||||
set(handles.zonePB2,'value',0)
|
||||
set(handles.zonePB3,'value',1)
|
||||
set(handles.zonePB3,'BackgroundColor',[1.0 0.6 0.6]);
|
||||
set(handles.zonePB1,'BackgroundColor',[1.0 1.0 1.0]);
|
||||
set(handles.zonePB2,'BackgroundColor',[1.0 1.0 1.0]);
|
||||
orfLstSel=get(handles.GeneOrfTog,'value');
|
||||
if orfLstSel==1
|
||||
set(handles.listboxGnOrf,'string',Exp(3).Dexp(1).srtOrfLst)
|
||||
else
|
||||
set(handles.listboxGnOrf,'string',Exp(3).Dexp(1).srtGnLst)
|
||||
end
|
||||
DNLaxes3=handles.DNLaxes3;
|
||||
Exp(3).hzeroCLn(expLdCnt)=plot(DNLaxes3,zeroCLn,1:DMnum,'y');
|
||||
end
|
||||
|
||||
if Exp(4).interacPBsel==0 %if interaction "raw" don't show a center line
|
||||
for i=1:Exp(expN).expLoadCnt,
|
||||
try set(Exp(expN).hzeroCLn(i),'visible','off');
|
||||
catch
|
||||
catchissue='Ln521'
|
||||
i
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
% HtMapTog 'string', 'Current user L/N' selection'
|
||||
Exp(expN).Dexp(DexpN).spotIndx=[];
|
||||
if expN==1,
|
||||
Exp(1).htmapPBsel=0;
|
||||
set(handles.HtMapTog1,'string','L')
|
||||
EZhtMap
|
||||
end
|
||||
if expN==2,
|
||||
Exp(2).htmapPBsel=0;
|
||||
set(handles.HtMapTog2,'string','L')
|
||||
EZhtMap
|
||||
end
|
||||
if expN==3,
|
||||
Exp(3).htmapPBsel=0;
|
||||
set(handles.HtMapTog3,'string','L')
|
||||
EZhtMap
|
||||
end
|
||||
htMapTogPBfg=0;
|
||||
|
||||
646
qhtcp-workflow/apps/matlab/ezview/EZmultiGeneRFsLst.m
Executable file
646
qhtcp-workflow/apps/matlab/ezview/EZmultiGeneRFsLst.m
Executable file
@@ -0,0 +1,646 @@
|
||||
% EZmultiGeneRFsLst Called by EZmultiExLoad
|
||||
% Called by EZmultiExLoad about line173 Which is called by EZexpSel
|
||||
% User Select Reference Gene and Specifics Added
|
||||
|
||||
% Compile GeneList and OrfList
|
||||
% Sort and add the medians of Ref Plates if RF1,RF2 exist
|
||||
clear aa bb c uu vv drf drfPindx drfr drfc
|
||||
clear RF1scanN RF2scanN
|
||||
|
||||
for mx=1:length(Exp(expN).Dexp(n).MP)
|
||||
try
|
||||
char((Exp(expN).Dexp(n).MP(mx).genename{1}(384)))
|
||||
MPnum=mx;
|
||||
catch
|
||||
break
|
||||
end
|
||||
end
|
||||
|
||||
DMnum=length(Exp(expN).Dexp(n).DM.drug);
|
||||
tPtsSize=size(Exp(expN).Dexp(n).FexpScanBMtp{1,1},(3)); %size(FexpScanBMtp{1,1},3);
|
||||
lstindx=0;
|
||||
lstindxOrf=0;
|
||||
spN=0;
|
||||
Exp(expN).Dexp(n).RFrnames %<--???
|
||||
rfcnt=0;
|
||||
dRF1indx=0;
|
||||
RF1mp=[]; RF2mp=[];
|
||||
rfSp=cell2mat(rfSpec); % user entry of Specifics for Ref selection
|
||||
|
||||
for mp=1:MPnum
|
||||
% RF1fullPlate=0;
|
||||
for ind384=1:384
|
||||
spN=spN+1;
|
||||
try
|
||||
r=ceil(ind384/24);
|
||||
if rem(ind384,24)==0, c=24; else c=rem(ind384,24); end
|
||||
% Insert test for numeric in genename and orf if isnumeric
|
||||
% Correct common EXCEL problem of converting OCT1 into a date numeric
|
||||
if cell2mat(Exp(expN).Dexp(n).MP(mp).genename{1}(ind384))==38991,
|
||||
Exp(expN).Dexp(n).MP(mp).genename{1}(ind384)={'OCT1_'};
|
||||
elseif isnumeric(cell2mat(Exp(expN).Dexp(n).MP(mp).genename{1}(ind384)))
|
||||
Exp(expN).Dexp(n).MP(mp).genename{1}(ind384)={' '};
|
||||
end
|
||||
%****Check for full(384spot) Reference Plates (RF1 or/and RF2)**************
|
||||
RF1fullPlate=0;
|
||||
try RF1fullPlate=sum(ismember((Exp(expN).Dexp(n).MP(mp).genename{1}),rfGene))==384; catch, mp, msg=strcat(num2str(mp),' genename ERROR'), end
|
||||
RF2fullPlate=0;
|
||||
try RF2fullPlate=sum(ismember((Exp(expN).Dexp(n).MP(mp).genename{1}),'RF2'))==384; catch, mp, msg=strcat(num2str(mp),' genename ERROR'), end
|
||||
% Capture non-reference spot location and ORF data
|
||||
if isempty(regexpi(char((Exp(expN).Dexp(n).MP(mp).orf{1}(ind384))),'blank'))... %'\<blank\>'
|
||||
&& ~isnumeric(Exp(expN).Dexp(n).MP(mp).orf{1}(ind384))...
|
||||
&& ~strcmpi((Exp(expN).Dexp(n).MP(mp).orf{1}(ind384)),' ')...
|
||||
&& ~strcmpi((Exp(expN).Dexp(n).MP(mp).orf{1}(ind384)),' ')...
|
||||
&& ~strcmpi((Exp(expN).Dexp(n).MP(mp).orf{1}(ind384)),'')...
|
||||
&& ~isempty((Exp(expN).Dexp(n).MP(mp).orf{1}(ind384)))...
|
||||
&& ((~strcmpi((Exp(expN).Dexp(n).MP(mp).genename{1}(ind384)),rfGene)|| ~strcmpi((Exp(expN).Dexp(n).MP(mp).specifics{1}(ind384)),rfSp))...
|
||||
&& (~strcmpi((Exp(expN).Dexp(n).MP(mp).genename{1}(ind384)),rfGene)|| ~strcmpi(rfSp,'None')))...
|
||||
&& ((~strcmpi((Exp(expN).Dexp(n).MP(mp).orf{1}(ind384)),rfGene)|| ~strcmpi((Exp(expN).Dexp(n).MP(mp).specifics{1}(ind384)),rfSp))...
|
||||
&& (~strcmpi((Exp(expN).Dexp(n).MP(mp).orf{1}(ind384)),rfGene)|| ~strcmpi(rfSp,'None')))...
|
||||
&& (~strcmpi((Exp(expN).Dexp(n).MP(mp).orf{1}(ind384)),'RF2')||~strcmpi((Exp(expN).Dexp(n).MP(mp).genename{1}(ind384)),'RF2'))...
|
||||
&& iscellstr((Exp(expN).Dexp(n).MP(mp).orf{1}(ind384)))
|
||||
lstindxOrf=lstindxOrf+1;
|
||||
Exp(expN).Dexp(n).MP(mp).orf{1}(ind384)=strrep((Exp(expN).Dexp(n).MP(mp).orf{1}(ind384)),':',' ');
|
||||
bb(lstindxOrf,1)=(Exp(expN).Dexp(n).MP(mp).orf{1}(ind384));
|
||||
bb(lstindxOrf,2)={strcat(':',num2str(mp),':',num2str(r),':',num2str(c))};
|
||||
bb(lstindxOrf,3)={mp};
|
||||
bb(lstindxOrf,4)={r};
|
||||
bb(lstindxOrf,5)={c};
|
||||
mutorfs(lstindxOrf)=spN; %16_0318 added for Interaction EZinteract
|
||||
% Exp(expN).Dexp(n).mutSpotIndx(lstindxOrf)=spN; %16_0318 added for Interaction EZinteract
|
||||
end
|
||||
|
||||
% Capture non-reference spot location and GENENAME data
|
||||
if isempty(regexpi(char((Exp(expN).Dexp(n).MP(mp).genename{1}(ind384))),'blank'))... %'\<blank\>'
|
||||
&& ~isnumeric(Exp(expN).Dexp(n).MP(mp).genename{1}(ind384))...
|
||||
&& ~strcmpi((Exp(expN).Dexp(n).MP(mp).genename{1}(ind384)),' ')...
|
||||
&& ~strcmpi((Exp(expN).Dexp(n).MP(mp).genename{1}(ind384)),' ')...
|
||||
&& ~strcmpi((Exp(expN).Dexp(n).MP(mp).genename{1}(ind384)),'')...
|
||||
&& ~isempty((Exp(expN).Dexp(n).MP(mp).genename{1}(ind384)))...
|
||||
&& (~strcmpi((Exp(expN).Dexp(n).MP(mp).genename{1}(ind384)),rfGene)...
|
||||
|| ~strcmpi((Exp(expN).Dexp(n).MP(mp).specifics{1}(ind384)),rfSp))... % AddSpecifics rfSp && ~RF1fullPlate)...
|
||||
&& (~strcmpi((Exp(expN).Dexp(n).MP(mp).genename{1}(ind384)),rfGene) || ~strcmpi(rfSp,'None'))...
|
||||
&& (~strcmpi((Exp(expN).Dexp(n).MP(mp).genename{1}(ind384)),'RF2'))... % && ~RF2fullPlate)...
|
||||
&& iscellstr((Exp(expN).Dexp(n).MP(mp).genename{1}(ind384)))
|
||||
lstindx=lstindx+1;
|
||||
Exp(expN).Dexp(n).MP(mp).genename{1}(ind384)=strrep((Exp(expN).Dexp(n).MP(mp).genename{1}(ind384)),':',' ');
|
||||
aa(lstindx,1)=(Exp(expN).Dexp(n).MP(mp).genename{1}(ind384));
|
||||
aa(lstindx,2)={strcat(':',num2str(mp),':',num2str(r),':',num2str(c))};
|
||||
aa(lstindx,3)={mp};
|
||||
aa(lstindx,4)={r};
|
||||
aa(lstindx,5)={c};
|
||||
mutgenes(lstindx)=spN;
|
||||
elseif (RF1fullPlate==1 ... % sum(ismember((Exp(expN).Dexp(n).MP(mp).genename{1}),rfGene))==384 || ...
|
||||
|| (((length(unique(Exp(expN).Dexp(n).MP(mp).genename{1}(1:384))))==1 && mp==1 ) ... % (isequal((Exp(expN).Dexp(n).MP(mp).genename{1}(1:384)), (Exp(expN).Dexp(n).MP(mp).genename{1}(384:-1:1)))&& mp==1 )) && ...
|
||||
&& ~exist('RF1scanN','var')))
|
||||
RF1mp=mp
|
||||
RF1scanN=(mp*DMnum)-(DMnum-1)
|
||||
rfcnt=rfcnt+1;
|
||||
RFs(spN:spN+383)=spN:spN+383;
|
||||
elseif (RF2fullPlate==1|| ... % sum(ismember((Exp(expN).Dexp(n).MP(mp).genename{1}(ind384)),'RF2'))==384 ||...
|
||||
(((length(unique(Exp(expN).Dexp(n).MP(mp).genename{1}(1:384))))==1 && mp==MPnum ) && ...
|
||||
~exist('RF2scanN','var')))
|
||||
RF2mp=mp
|
||||
rfcnt=rfcnt+1;
|
||||
RFs(spN:spN+383)=spN:spN+383;
|
||||
RF2scanN=(mp*DMnum)-(DMnum-1)
|
||||
|
||||
% DISPersed REFerence capture and find Medians
|
||||
elseif ( ((strcmpi((Exp(expN).Dexp(n).MP(mp).genename{1}(ind384)),rfGene) ...
|
||||
&& strcmpi((Exp(expN).Dexp(n).MP(mp).specifics{1}(ind384)),rfSp))) ...
|
||||
|| ((strcmpi((Exp(expN).Dexp(n).MP(mp).genename{1}(ind384)),rfGene) ...
|
||||
&& strcmpi(rfSp,'None'))) ) &&(RF1fullPlate~=1)
|
||||
dRF1indx=dRF1indx+1;
|
||||
Exp(expN).Dexp(n).MP(mp).genename{1}(ind384)=strrep((Exp(expN).Dexp(n).MP(mp).genename{1}(ind384)),':',' ');
|
||||
drf(dRF1indx,1)=(Exp(expN).Dexp(n).MP(mp).genename{1}(ind384));
|
||||
drf(dRF1indx,2)={strcat(':',num2str(mp),':',num2str(r),':',num2str(c))};
|
||||
drf(dRF1indx,3)={mp}; drfMP(dRF1indx,mp)=mp;
|
||||
drf(dRF1indx,4)={r}; drfr(dRF1indx,mp)=r;
|
||||
drf(dRF1indx,5)={c}; drfc(dRF1indx,mp)=c;
|
||||
drf(dRF1indx,6)={ind384}; drfPindx(dRF1indx,mp)=ind384;
|
||||
% drf(dRF1indx,7)=(Exp(expN).Dexp(n).MP(mp).specifics{1}(ind384));
|
||||
end % if isempty(regexpi(char((Exp(expN).Dexp(n).MP(mp).genename{1}(ind384))),'blank'))...
|
||||
catch
|
||||
mp % Disable in future to prevent a bomb out OR put into a nested TryCatch
|
||||
ind384 % Disable in future to prevent a bomb out OR put into a nested TryCatch
|
||||
msgBadGeneName=strcat('check genename at mp=',num2str(mp),' indx=',num2str(ind384))
|
||||
end
|
||||
end
|
||||
mp
|
||||
end
|
||||
|
||||
% Cover case if mutorfs RFs are labeled RF1 or RF2
|
||||
try
|
||||
Exp(expN).Dexp(n).mutSpotIndx.wRFs=union(RFs, mutorfs);
|
||||
catch
|
||||
msg='No RFs Found in Exp! wRFs'
|
||||
Exp(expN).Dexp(n).mutSpotIndx.wRFs=mutorfs;
|
||||
end
|
||||
try
|
||||
Exp(expN).Dexp(n).mutSpotIndx.woRFs=setdiff(mutorfs,RFs);
|
||||
catch
|
||||
msg='No RFs Found in Exp! woRFs'
|
||||
Exp(expN).Dexp(n).mutSpotIndx.woRFs=mutorfs;
|
||||
end
|
||||
|
||||
Exp(expN).Dexp(n).RFmd1indx=[];
|
||||
Exp(expN).Dexp(n).RFmd1pltN=[];
|
||||
Exp(expN).Dexp(n).RFmd1LB={[]};
|
||||
Exp(expN).Dexp(n).RFmd1indx=[];
|
||||
Exp(expN).Dexp(n).RFmd1pltN={};
|
||||
Exp(expN).Dexp(n).RFmd1val=[];
|
||||
Exp(expN).Dexp(n).mean1=[];
|
||||
Exp(expN).Dexp(n).std1=[];
|
||||
Exp(expN).Dexp(n).min1=[];
|
||||
Exp(expN).Dexp(n).max1=[];
|
||||
|
||||
Exp(expN).Dexp(n).RFcmpK=[]; %For Ref Composite 17_1009
|
||||
Exp(expN).Dexp(n).RFcmpr=[]; %For Ref Composite 17_1009
|
||||
Exp(expN).Dexp(n).RFcmpL=[]; %For Ref Composite 17_1009
|
||||
|
||||
Exp(expN).Dexp(n).RFmd2LB={[]};
|
||||
Exp(expN).Dexp(n).RFmd2indx=[];
|
||||
Exp(expN).Dexp(n).RFmd2pltN=[];
|
||||
Exp(expN).Dexp(n).RFmd2val=[];
|
||||
Exp(expN).Dexp(n).mean2=[];
|
||||
Exp(expN).Dexp(n).std2=[];
|
||||
Exp(expN).Dexp(n).min2=[];
|
||||
Exp(expN).Dexp(n).max2=[];
|
||||
|
||||
Exp(expN).Dexp(n).RFmean=[];
|
||||
Exp(expN).Dexp(n).RFstd=[];
|
||||
Exp(expN).Dexp(n).RFmin=[];
|
||||
Exp(expN).Dexp(n).RFmax=[];
|
||||
|
||||
Exp(expN).Dexp(n).RFmdPLB={[]};
|
||||
Exp(expN).Dexp(n).RFmdPindx=[];
|
||||
Exp(expN).Dexp(n).RFmdPpltN=[];
|
||||
Exp(expN).Dexp(n).RFmdPscanN=[];
|
||||
Exp(expN).Dexp(n).RFmedianP=[];
|
||||
Exp(expN).Dexp(n).stdP=[];
|
||||
Exp(expN).Dexp(n).meanP=[];
|
||||
Exp(expN).Dexp(n).minP=[];
|
||||
Exp(expN).Dexp(n).maxP=[];
|
||||
|
||||
Exp(expN).Dexp(n).RFmdGLB={[]};
|
||||
Exp(expN).Dexp(n).RFmdGindx=[];
|
||||
Exp(expN).Dexp(n).RFmdGpltN=[];
|
||||
Exp(expN).Dexp(n).RFmdGscanN=[];
|
||||
Exp(expN).Dexp(n).RFmedianG=[];
|
||||
Exp(expN).Dexp(n).RFminG=[];
|
||||
Exp(expN).Dexp(n).RFmaxG=[];
|
||||
Exp(expN).Dexp(n).RFstdG=[];
|
||||
Exp(expN).Dexp(n).RFmeanG=[];
|
||||
Exp(expN).Dexp(n).RFcmpGK=[]; %For Ref Composite 17_1009
|
||||
Exp(expN).Dexp(n).RFcmpGr=[]; %For Ref Composite 17_1009
|
||||
Exp(expN).Dexp(n).RFcmpGL=[]; %For Ref Composite 17_1009
|
||||
|
||||
if exist('RF1scanN','var')
|
||||
for d=0:(DMnum-1)
|
||||
medianIndx=[];
|
||||
nonZeroIndx=[];
|
||||
medValList=[];
|
||||
rf1scN=RF1scanN+d;
|
||||
|
||||
try %if RF1scanN doesn't exist this addition to list will be skipped
|
||||
nonZeroIndx=find(Exp(expN).Dexp(n).scan(rf1scN).plate(1).CFout(1:384,5));
|
||||
|
||||
if isempty(nonZeroIndx)
|
||||
nonZeroCnt=0
|
||||
medianIndx=nonZeroIndx;
|
||||
else
|
||||
nonZeroCnt=length(nonZeroIndx);
|
||||
end
|
||||
if ~isempty(nonZeroIndx) && mod(nonZeroCnt,2)==0, medianIndx=nonZeroIndx(1:nonZeroCnt-1); end
|
||||
if ~isempty(nonZeroIndx) && mod(nonZeroCnt,2)~=0, medianIndx=nonZeroIndx; end
|
||||
clear medValLst
|
||||
clear kValLst
|
||||
clear rValLst
|
||||
if ~isempty(nonZeroIndx) && length(medianIndx) > (.15*384) % To calc. a median, more than 15% of spots must be nonZero
|
||||
medValLst=Exp(expN).Dexp(n).scan(rf1scN).plate(1).CFout(medianIndx,5);
|
||||
medValList1{d+1}=medValLst;
|
||||
min1=min(medValLst);
|
||||
max1=max(medValLst);
|
||||
std1=std(medValLst);
|
||||
mean1=mean(medValLst);
|
||||
kValLst=Exp(expN).Dexp(n).scan(rf1scN).plate(1).CFout(medianIndx,3); % For Ref Composite 17_1009
|
||||
rValLst=Exp(expN).Dexp(n).scan(rf1scN).plate(1).CFout(medianIndx,4); % For Ref Composite 17_1009
|
||||
mval1=median(medValLst); %mval1=median(Exp(expN).Dexp(n).scan(RF1mps).plate(1).CFout(1:384,5)); %CFout(1:383,5));
|
||||
RFmd1pos=find(mval1==(Exp(expN).Dexp(n).scan(rf1scN).plate(1).CFout(1:384,5)));
|
||||
RFmd1loc(1)=ceil(RFmd1pos/24); %calc r value
|
||||
RFmd1loc(2)=RFmd1pos - ((RFmd1loc(1)-1)*24); %calc c value
|
||||
lstindx=lstindx+1;
|
||||
lstindxOrf=lstindxOrf+1;
|
||||
aa(lstindx,1)={strcat('RF1md(',num2str(d+1),')')}; %{'RF1md'};
|
||||
aa(lstindx,2)={strcat(':',num2str(RF1mp),':',num2str(RFmd1loc(1)),':',num2str(RFmd1loc(2)))}; %,'std_',num2str(std1))};
|
||||
bb(lstindxOrf,1)={strcat('RF1md(',num2str(d+1),')')}; %remove string2cell brackets {...} %{'RF1md'};
|
||||
bb(lstindxOrf,2)={strcat(':',num2str(RF1mp),':',num2str(RFmd1loc(1)),':',num2str(RFmd1loc(2)))}; %,'std_',num2str(std1))};
|
||||
% Composite Reference Amalgum Plot
|
||||
lstindx=lstindx+1;
|
||||
lstindxOrf=lstindxOrf+1;
|
||||
aa(lstindx,1)={strcat('RF1cmp(',num2str(d+1),')')};
|
||||
aa(lstindx,2)={''};
|
||||
bb(lstindxOrf,1)={strcat('RF1cmp(',num2str(d+1),')')};
|
||||
bb(lstindxOrf,2)={''};
|
||||
|
||||
Exp(expN).Dexp(n).RFmd1LB(d+1)=strcat(aa(lstindx,1),aa(lstindx,2));
|
||||
Exp(expN).Dexp(n).RFmd1indx(d+1)=RFmd1pos;
|
||||
Exp(expN).Dexp(n).RFmd1pltN=RF1mp;
|
||||
Exp(expN).Dexp(n).RFmd1val(d+1)=mval1;
|
||||
Exp(expN).Dexp(n).mean1(d+1)=mean1;
|
||||
Exp(expN).Dexp(n).std1(d+1)=std1;
|
||||
Exp(expN).Dexp(n).min1(d+1)=min1;
|
||||
Exp(expN).Dexp(n).max1(d+1)=max1;
|
||||
Exp(expN).Dexp(n).RFcmpL(1).dm(d+1).Lvals=medValLst; %17_1201 TrendOL
|
||||
Exp(expN).Dexp(n).RFcmpL(1).dm(d+1).med=median(medValLst); %For Ref Composite 17_1009
|
||||
Exp(expN).Dexp(n).RFcmpL(1).dm(d+1).mean=mean(medValLst); %For Ref Composite 17_1009
|
||||
Exp(expN).Dexp(n).RFcmpL(1).dm(d+1).std=std(medValLst); %For Ref Composite 17_1009
|
||||
Exp(expN).Dexp(n).RFcmpL(1).dm(d+1).min=min(medValLst); %For Ref Composite 17_1009
|
||||
Exp(expN).Dexp(n).RFcmpL(1).dm(d+1).max=max(medValLst); %For Ref Composite 17_1009
|
||||
Exp(expN).Dexp(n).RFcmpK(1).dm(d+1).Kvals=kValLst;
|
||||
Exp(expN).Dexp(n).RFcmpK(1).dm(d+1).med=median(kValLst); %For Ref Composite 17_1009
|
||||
Exp(expN).Dexp(n).RFcmpK(1).dm(d+1).mean=mean(kValLst); %For Ref Composite 17_1009
|
||||
Exp(expN).Dexp(n).RFcmpK(1).dm(d+1).std=std(kValLst); %For Ref Composite 17_1009
|
||||
Exp(expN).Dexp(n).RFcmpK(1).dm(d+1).min=min(kValLst); %For Ref Composite 17_1009
|
||||
Exp(expN).Dexp(n).RFcmpK(1).dm(d+1).max=max(kValLst); %For Ref Composite 17_1009
|
||||
Exp(expN).Dexp(n).RFcmpr(1).dm(d+1).rvals=rValLst;
|
||||
Exp(expN).Dexp(n).RFcmpr(1).dm(d+1).med=median(rValLst); %For Ref Composite 17_1009
|
||||
Exp(expN).Dexp(n).RFcmpr(1).dm(d+1).mean=mean(rValLst); %For Ref Composite 17_1009
|
||||
Exp(expN).Dexp(n).RFcmpr(1).dm(d+1).std=std(rValLst); %For Ref Composite 17_1009
|
||||
Exp(expN).Dexp(n).RFcmpr(1).dm(d+1).min=min(rValLst); %For Ref Composite 17_1009
|
||||
Exp(expN).Dexp(n).RFcmpr(1).dm(d+1).max=max(rValLst); %For Ref Composite 17_1009
|
||||
else
|
||||
% Need to set L r K values to zeros or pick the first spot with zeros
|
||||
% Spot 1 could be other than zero as the median isn't calculated if
|
||||
% fewer than some percent are nonzero
|
||||
medianCalcFailed='To Few nonZero spots for valid median RF1 selection'
|
||||
firstZero=find(((Exp(expN).Dexp(n).scan(rf1scN).plate(1).CFout(1:384,5))==0),1,'first')
|
||||
Exp(expN).Dexp(n).RFmd1indx(d+1)=firstZero;
|
||||
Exp(expN).Dexp(n).RFmd1pltN=RF1mp;
|
||||
try medValList1{d+1}=Exp(expN).Dexp(n).scan(rf1scN).plate(1).CFout(medianIndx,5); nonZeroCnt; catch, catcherror='Ln356', end
|
||||
end
|
||||
catch
|
||||
medianCalcTryFailed1='Failed! Failed! Ln362 But process continued with placeholder P1ind384 spot value!'
|
||||
try
|
||||
firstZero=find(((Exp(expN).Dexp(n).scan(rf1scN).plate(1).CFout(1:384,5))==0),1,'first')
|
||||
Exp(expN).Dexp(n).RFmd1indx(d+1)=firstZero;
|
||||
catch
|
||||
Exp(expN).Dexp(n).RFmd1indx(d+1)=384; %if crapout,Then use spot384 as default to keep going
|
||||
end
|
||||
try
|
||||
Exp(expN).Dexp(n).RFmd1pltN=RF1mp;
|
||||
catch
|
||||
Exp(expN).Dexp(n).RFmd1pltN=1;
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
% Calc RF2 median if a full plate of RF2s exist
|
||||
Exp(expN).Dexp(n).RFmd2indx=[];
|
||||
Exp(expN).Dexp(n).RFmd2pltN=[];
|
||||
|
||||
if exist('RF2scanN','var')
|
||||
for d=0:(DMnum-1)
|
||||
medianIndx2=[];
|
||||
nonZeroIndx2=[];
|
||||
medValList2=[];
|
||||
rf2scN=RF2scanN+d;
|
||||
|
||||
try %if RF2scanN doesn't exist this addition to list will be skipped
|
||||
nonZeroIndx2=find(Exp(expN).Dexp(n).scan(rf2scN).plate(1).CFout(1:384,5));
|
||||
if isempty(nonZeroIndx2)
|
||||
nonZeroCnt2=0;
|
||||
medianIndx2=nonZeroIndx2;
|
||||
else
|
||||
nonZeroCnt2=length(nonZeroIndx2);
|
||||
end
|
||||
if ~isempty(nonZeroIndx2) && mod(nonZeroCnt2,2)==0, medianIndx2=nonZeroIndx2(1:nonZeroCnt2-1); end
|
||||
if ~isempty(nonZeroIndx2) && mod(nonZeroCnt2,2)~=0, medianIndx2=nonZeroIndx2; end
|
||||
clear medValLst2
|
||||
clear kValLst2
|
||||
clear rValLst2
|
||||
if ~isempty(nonZeroIndx2) && length(medianIndx2) > (.15*384) % to calc. a median, more than 15% of spots must be nonZero
|
||||
medValLst2=Exp(expN).Dexp(n).scan(rf2scN).plate(1).CFout(medianIndx2,5);
|
||||
medValList2{d+1}=medValLst2;
|
||||
min2=min(medValLst2);
|
||||
max2=max(medValLst2);
|
||||
std2=std(medValLst2);
|
||||
mean2=mean(medValLst2);
|
||||
kValLst2=Exp(expN).Dexp(n).scan(rf2scN).plate(1).CFout(medianIndx2,3); %For Ref Composite 17_1009
|
||||
rValLst2=Exp(expN).Dexp(n).scan(rf2scN).plate(1).CFout(medianIndx2,4); %For Ref Composite 17_1009
|
||||
mval2=median(medValLst2); %mval2=median(Exp(expN).Dexp(n).scan(RF2mps).plate(1).CFout(1:383,5));
|
||||
RFmd2pos=find(mval2==(Exp(expN).Dexp(n).scan(rf2scN).plate(1).CFout(1:384,5)));
|
||||
RFmd2loc(1)=ceil(RFmd2pos/24); %calc r value
|
||||
RFmd2loc(2)=RFmd2pos - ((RFmd2loc(1)-1)*24); %calc c value
|
||||
lstindx=lstindx+1;
|
||||
lstindxOrf=lstindxOrf+1;
|
||||
aa(lstindx,1)={strcat('RF2md(',num2str(d+1),')')}; %{'RF2md'};
|
||||
aa(lstindx,2)={strcat(':',num2str(RF2mp),':',num2str(RFmd2loc(1)),':',num2str(RFmd2loc(2)))}; %,'std_',num2str(std2))};
|
||||
bb(lstindxOrf,1)={strcat('RF2md(',num2str(d+1),')')}; %remove string2cell brackets {...} %{'RF2md'};
|
||||
bb(lstindxOrf,2)={strcat(':',num2str(RF2mp),':',num2str(RFmd2loc(1)),':',num2str(RFmd2loc(2)))}; %,'std_',num2str(std2))};
|
||||
% Composite Reference Amalgum Plot (CRAP)
|
||||
lstindx=lstindx+1;
|
||||
lstindxOrf=lstindxOrf+1;
|
||||
aa(lstindx,1)={strcat('RF2cmp(',num2str(d+1),')')};
|
||||
aa(lstindx,2)={''};
|
||||
bb(lstindxOrf,1)={strcat('RF2cmp(',num2str(d+1),')')};
|
||||
bb(lstindxOrf,2)={''};
|
||||
|
||||
Exp(expN).Dexp(n).RFmd2LB(d+1)=strcat(aa(lstindx,1),aa(lstindx,2));
|
||||
Exp(expN).Dexp(n).RFmd2indx(d+1)=RFmd2pos;
|
||||
Exp(expN).Dexp(n).RFmd2pltN=RF2mp;
|
||||
Exp(expN).Dexp(n).RFmd2val(d+1)=mval2;
|
||||
Exp(expN).Dexp(n).mean2(d+1)=mean2;
|
||||
Exp(expN).Dexp(n).std2(d+1)=std2;
|
||||
Exp(expN).Dexp(n).min2(d+1)=min2;
|
||||
Exp(expN).Dexp(n).max2(d+1)=max2;
|
||||
Exp(expN).Dexp(n).RFcmpL(2).dm(d+1).Lvals=medValLst2; %17_1201 TrendOL
|
||||
Exp(expN).Dexp(n).RFcmpL(2).dm(d+1).med=median(medValLst2); %For Ref Composite 17_1009
|
||||
Exp(expN).Dexp(n).RFcmpL(2).dm(d+1).mean=mean(medValLst2); %For Ref Composite 17_1009
|
||||
Exp(expN).Dexp(n).RFcmpL(2).dm(d+1).std=std(medValLst2); %For Ref Composite 17_1009
|
||||
Exp(expN).Dexp(n).RFcmpL(2).dm(d+1).min=min(medValLst2); %For Ref Composite 17_1009
|
||||
Exp(expN).Dexp(n).RFcmpL(2).dm(d+1).max=max(medValLst2); %For Ref Composite 17_1009
|
||||
Exp(expN).Dexp(n).RFcmpK(2).dm(d+1).Kvals=kValLst2;
|
||||
Exp(expN).Dexp(n).RFcmpK(2).dm(d+1).med=median(kValLst2); %For Ref Composite 17_1009
|
||||
Exp(expN).Dexp(n).RFcmpK(2).dm(d+1).mean=mean(kValLst2); %For Ref Composite 17_1009
|
||||
Exp(expN).Dexp(n).RFcmpK(2).dm(d+1).std=std(kValLst2); %For Ref Composite 17_1009
|
||||
Exp(expN).Dexp(n).RFcmpK(2).dm(d+1).min=min(kValLst2); %For Ref Composite 17_1009
|
||||
Exp(expN).Dexp(n).RFcmpK(2).dm(d+1).max=max(kValLst2); %For Ref Composite 17_1009
|
||||
Exp(expN).Dexp(n).RFcmpr(2).dm(d+1).rvals=rValLst2;
|
||||
Exp(expN).Dexp(n).RFcmpr(2).dm(d+1).med=median(rValLst2); %For Ref Composite 17_1009
|
||||
Exp(expN).Dexp(n).RFcmpr(2).dm(d+1).mean=mean(rValLst2); %For Ref Composite 17_1009
|
||||
Exp(expN).Dexp(n).RFcmpr(2).dm(d+1).std=std(rValLst2); %For Ref Composite 17_1009
|
||||
Exp(expN).Dexp(n).RFcmpr(2).dm(d+1).min=min(rValLst2); %For Ref Composite 17_1009
|
||||
Exp(expN).Dexp(n).RFcmpr(2).dm(d+1).max=max(rValLst); %For Ref Composite 17_1009
|
||||
else
|
||||
% Pick the first spot with zeros
|
||||
% Use that position to satisfy and keep process OK
|
||||
medianCalcFailed2='To Few nonZero spots for valid median RF2 selection'
|
||||
firstZero2=find(((Exp(expN).Dexp(n).scan(rf2scN).plate(1).CFout(1:384,5))==0),1,'first')
|
||||
Exp(expN).Dexp(n).RFmd2indx(d+1)=firstZero2;
|
||||
Exp(expN).Dexp(n).RFmd2pltN=RF2mp;
|
||||
try medValList2{d+1}=Exp(expN).Dexp(n).scan(rf2scN).plate(1).CFout(medianIndx2,5); nonZeroCnt2; catch, catchissue='Ln431', end
|
||||
end
|
||||
catch
|
||||
medianCalcTryFailed2='Failed! Failed! Ln436 No RF1median But process continued with placeholder P1ind384 spot value!'
|
||||
try
|
||||
firstZero2=find(((Exp(expN).Dexp(n).scan(rf2scN).plate(1).CFout(1:384,5))==0),1,'first');
|
||||
Exp(expN).Dexp(n).RFmd2indx(d+1)=firstZero2;
|
||||
catch
|
||||
catchissue='Ln442'
|
||||
Exp(expN).Dexp(n).RFmd2indx(d+1)=384; %if crapout,Then use spot384 as default to keep going
|
||||
end
|
||||
try
|
||||
Exp(expN).Dexp(n).RFmd2pltN=RF2mp;
|
||||
catch
|
||||
catchissue='Ln448'
|
||||
Exp(expN).Dexp(n).RFmd2pltN=1;
|
||||
end
|
||||
end
|
||||
clear RFcombValList
|
||||
RFcombValList=cat(1,medValList1{d+1},medValList2{d+1});
|
||||
Exp(expN).Dexp(n).RFmean(d+1)=mean(RFcombValList);
|
||||
Exp(expN).Dexp(n).RFstd(d+1)=std(RFcombValList);
|
||||
try, Exp(expN).Dexp(n).RFmin(d+1)=min(RFcombValList);
|
||||
catch, Exp(expN).Dexp(n).RFmin(d+1)=0; end
|
||||
try, Exp(expN).Dexp(n).RFmax(d+1)=max(RFcombValList);
|
||||
catch, Exp(expN).Dexp(n).RFmax(d+1)=0; end
|
||||
end
|
||||
elseif exist('RF1scanN','var')
|
||||
Exp(expN).Dexp(n).RFmean=Exp(expN).Dexp(n).mean1;
|
||||
Exp(expN).Dexp(n).RFstd=Exp(expN).Dexp(n).std1;
|
||||
Exp(expN).Dexp(n).RFmin=Exp(expN).Dexp(n).min1;
|
||||
Exp(expN).Dexp(n).RFmax=Exp(expN).Dexp(n).max1;
|
||||
end
|
||||
|
||||
% Disperse reference plates
|
||||
Exp(expN).Dexp(n).RFmdPindx=[];
|
||||
Exp(expN).Dexp(n).RFmdPpltN=[];
|
||||
if exist('drf','var') % ('RF1scanN','var')
|
||||
% Det. index of change from one MP to the next
|
||||
i=2;
|
||||
clear chgIndx
|
||||
chgIndx(1)=1;
|
||||
for j=1:length(drf(:,3))
|
||||
if j>1
|
||||
if cell2mat(drf(j,3))~=cell2mat(drf((j-1),3)), chgIndx(i)=j; i=i+1; end
|
||||
end
|
||||
end
|
||||
chgIndx(length(chgIndx)+1)=length(drf)+1;
|
||||
uu=zeros(size(drf,1),4);
|
||||
uu(:,1:4)=cell2mat(drf(:,3:6));
|
||||
vv=zeros(size(drf,1),DMnum); %(length(drf),DMnum);
|
||||
dMPs=unique(cell2mat(drf(:,3)));
|
||||
%{
|
||||
for mm=1:MPnum
|
||||
nonZrfIndx.mp{mm,:}=drfPindx((find(drfPindx(:,mm))),mm);
|
||||
end
|
||||
%}
|
||||
% nzValsG=zeros(DMnum,size(drf,1));
|
||||
% nzValsAcc=zeros(DMnum,384);
|
||||
for mm=1:length(dMPs) % length(chgIndx)
|
||||
for d=1:(DMnum)
|
||||
medianIndxDisp=[];
|
||||
NZrefIndxP=[];
|
||||
nonZeroValsP=[];
|
||||
medValLstDisp=[];
|
||||
rf1scNdisp=((dMPs(mm)-1)*DMnum)+(d);
|
||||
|
||||
% Determine the dispersed RFs median mean and std if such exist
|
||||
try
|
||||
NZrefIndxP=drfPindx((find(drfPindx(:,dMPs(mm)))),dMPs(mm)); % find(Exp(expN).Dexp(n).scan(rf1scNdisp).plate(1).CFout(drf(chgIndx(cI):chgIndx(cI+1)),5));
|
||||
% vv=Exp(expN).Dexp(n).scan(rf1scNdisp).plate(1).CFout(NZrefIndxP,5);
|
||||
vv(chgIndx(mm):(chgIndx(mm+1)-1),d)=Exp(expN).Dexp(n).scan(rf1scNdisp).plate(1).CFout(NZrefIndxP,5);
|
||||
% For Global Ref Composite 17_1009
|
||||
vvK(chgIndx(mm):(chgIndx(mm+1)-1),d)=Exp(expN).Dexp(n).scan(rf1scNdisp).plate(1).CFout(NZrefIndxP,3);
|
||||
vvr(chgIndx(mm):(chgIndx(mm+1)-1),d)=Exp(expN).Dexp(n).scan(rf1scNdisp).plate(1).CFout(NZrefIndxP,4);
|
||||
nonZeroValsP=nonzeros(Exp(expN).Dexp(n).scan(rf1scNdisp).plate(1).CFout(NZrefIndxP,5));
|
||||
std1Disp=std(nonZeroValsP);
|
||||
mean1Disp=mean(nonZeroValsP);
|
||||
minDisp=min(nonZeroValsP);
|
||||
maxDisp=max(nonZeroValsP);
|
||||
drfVals=Exp(expN).Dexp(n).scan(rf1scNdisp).plate(1).CFout(NZrefIndxP,5);
|
||||
% nzValsAcc(mm).DM(d,:)=nonZeroValsP;
|
||||
% MEDIAN Determination for PLATES with Dispersed RFs
|
||||
% NZrefIndxP=NZrefIndxP %find(Exp(expN).Dexp(n).scan(rf1scNdisp).plate(1).CFout(NZrefIndxP,5));
|
||||
if isempty(NZrefIndxP)
|
||||
nonZeroCntDisp=0;
|
||||
medianIndxDisp=NZrefIndxP;
|
||||
else
|
||||
nonZeroCntDisp=length(NZrefIndxP);
|
||||
end
|
||||
|
||||
if ~isempty(NZrefIndxP) && mod(nonZeroCntDisp,2)==0, medianIndxDisp=NZrefIndxP(1:nonZeroCntDisp-1); end
|
||||
if ~isempty(NZrefIndxP) && mod(nonZeroCntDisp,2)~=0, medianIndxDisp=NZrefIndxP; end
|
||||
if ~isempty(NZrefIndxP) && length(medianIndxDisp) > 0 %(.15*384) %To calc. a median, more than 15% of spots must be nonZero
|
||||
medValLstDisp=Exp(expN).Dexp(n).scan(rf1scNdisp).plate(1).CFout(medianIndxDisp,5);
|
||||
%medValList1Disp{d}=medValLstDisp;
|
||||
mval1Disp=median(medValLstDisp); % mval1=median(Exp(expN).Dexp(n).scan(RF1mps).plate(1).CFout(1:384,5)); %CFout(1:383,5));
|
||||
nonZeroMedPosIndx=find(mval1Disp==nonZeroValsP); % (Exp(expN).Dexp(n).scan(rf1scNdisp).plate(1).CFout(NZrefIndxP,5))); %(nonZeroIndxDisp,5))); %((nonZrfIndx.mp{dMPs(mm),:}),5)));
|
||||
RFmd1posD=NZrefIndxP(nonZeroMedPosIndx); % drfPindx((RFmd1posIndx),dMPs(mm));
|
||||
RFmd1locD(1)=ceil(RFmd1posD/24); % calc r value
|
||||
RFmd1locD(2)=RFmd1posD - ((RFmd1locD(1)-1)*24); % calc c value
|
||||
lstindx=lstindx+1;
|
||||
lstindxOrf=lstindxOrf+1;
|
||||
if usrRefFg==0, rfPLbl='RF1mdP('; else rfPLbl=strcat('RF-',rfGnSp,'mdP('); end % accomodate User Ref Selection
|
||||
if iscell(strcat(rfPLbl,num2str(d),')')),
|
||||
aa(lstindx,1)=strcat(rfPLbl,num2str(d),')');
|
||||
bb(lstindxOrf,1)=strcat(rfPLbl,num2str(d),')'); % remove string2cell brackets {...}
|
||||
else
|
||||
aa(lstindx,1)={strcat(rfPLbl,num2str(d),')')};
|
||||
bb(lstindxOrf,1)={strcat(rfPLbl,num2str(d),')')}; %remove string2cell brackets {...}
|
||||
end
|
||||
aa(lstindx,2)={strcat(':',num2str(dMPs(mm)),':',num2str(RFmd1locD(1)),':',num2str(RFmd1locD(2)))};
|
||||
bb(lstindxOrf,2)={strcat(':',num2str(dMPs(mm)),':',num2str(RFmd1locD(1)),':',num2str(RFmd1locD(2)))};
|
||||
Exp(expN).Dexp(n).RFmdPLB(d,dMPs(mm))=strcat(aa(lstindx,1),aa(lstindx,2));
|
||||
Exp(expN).Dexp(n).RFmdPindx(d,dMPs(mm))=RFmd1posD;
|
||||
Exp(expN).Dexp(n).RFmdPpltN(d,dMPs(mm))=dMPs(mm); %This is a storage of the MasterPlate used NOT the ScanPlate? WeMight wish to store the ScanPlateNumber also???
|
||||
Exp(expN).Dexp(n).RFmdPscanN(d,dMPs(mm))=rf1scNdisp;
|
||||
Exp(expN).Dexp(n).RFmedianP(d,dMPs(mm))=mval1Disp;
|
||||
Exp(expN).Dexp(n).stdP(d,dMPs(mm))=std1Disp;
|
||||
Exp(expN).Dexp(n).meanP(d,dMPs(mm))=mean1Disp;
|
||||
Exp(expN).Dexp(n).minP(d,dMPs(mm))=minDisp;
|
||||
Exp(expN).Dexp(n).maxP(d,dMPs(mm))=maxDisp;
|
||||
else
|
||||
% Need to set L r K values to zeros or pick the first spot with zeros
|
||||
% Spot 1 could be other than zero as the median isn't calculated if fewer than some percent are nonzero
|
||||
medianCalcFailedD='To Few nonZero spots for valid median RF1 selection'
|
||||
firstZeroDindx=find(((Exp(expN).Dexp(n).scan(rf1scNdisp).plate(1).CFout(NZrefIndxP,5))==0),1,'first');
|
||||
firstZeroD=drfPindx((firstZeroDindx),dMPs(mm));
|
||||
Exp(expN).Dexp(n).RFmdPindx(d,dMPs(mm))=firstZeroD;
|
||||
Exp(expN).Dexp(n).RFmdPpltN(d,dMPs(mm))=dMPs(mm); % RF1mp; % Is this supposed to be the MP number or the ScanPlate number???
|
||||
end
|
||||
catch
|
||||
medianCalcTryFailed1D='Failed! Failed! Ln565 {Dispersed RF1s} "try" But process continued with placeholder Plate spot value!'
|
||||
try
|
||||
firstZeroindxD=find(vv((chgIndx(d):chgIndx(d+1)-1),5)==0,1,'first');
|
||||
firstZeroPindx=uu(firstZeroindxD,4);
|
||||
Exp(expN).Dexp(n).RFmdPpltN(d,dMPs(mm))=dMPs(mm);
|
||||
Exp(expN).Dexp(n).RFmdPindx(d,dMPs(mm))=firstZeroPindx;
|
||||
catch
|
||||
catchissue='try at Ln565'
|
||||
Exp(expN).Dexp(n).RFmdPpltN(d,dMPs(mm))=dMPs(mm);
|
||||
Exp(expN).Dexp(n).RFmdPindx(d,dMPs(mm))=384; % if crapout,Then use spot384 as default to keep going
|
||||
end
|
||||
try
|
||||
Exp(expN).Dexp(n).RFmdPpltN=dMPs(mm);
|
||||
catch
|
||||
catchissue='Ln619'
|
||||
Exp(expN).Dexp(n).RFmdPpltN=1; % this might keep from breaking BUT ???
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
% Calc. Global Mean, Std, And Median For Distributed References
|
||||
uu=horzcat(uu,vv);
|
||||
for d=1:DMnum
|
||||
medianIndxG=[];
|
||||
NZrfIndxG=[];
|
||||
minG=min(nonzeros(vv(:,d)));
|
||||
maxG=max(nonzeros(vv(:,d)));
|
||||
RFmeanG=mean(nonzeros(vv(:,d)));
|
||||
RFstdG=std(nonzeros(vv(:,d)));
|
||||
NZrfIndxG=find(vv(:,d)); % find(nonzeros(vv(:,d)));
|
||||
|
||||
if isempty(RFmeanG)
|
||||
nonZeroCntD=0 % medianIndxDisp=RFmeanG(d);
|
||||
else
|
||||
nonZeroCntD=length(nonzeros(vv(:,d)));
|
||||
end
|
||||
|
||||
% Calc. of median requires an odd number of indx items
|
||||
if ~isempty(NZrfIndxG) && mod(nonZeroCntD,2)==0, medianIndxD=NZrfIndxG(1:(size(NZrfIndxG,1)-1)); end
|
||||
if ~isempty(NZrfIndxG) && mod(nonZeroCntD,2)~=0, medianIndxD=NZrfIndxG(:); end
|
||||
if ~isempty(NZrfIndxG) && length(medianIndxD) > 0 %(.15*size(drf,1)) % to calc. a median, more than 15% of spots must be nonZero
|
||||
mvalsDG=median(vv(medianIndxD,d)); % (nonzeros(vv(:,d)));
|
||||
nzPosIndxDG=find(mvalsDG==vv(:,d));
|
||||
RFmdDGloc(d,1)=uu(nzPosIndxDG,1); % MP of distributedGlobal Median value
|
||||
RFmdDGloc(d,2)=uu(nzPosIndxDG,2); % calc r value
|
||||
RFmdDGloc(d,3)=uu(nzPosIndxDG,3); % calc c value
|
||||
lstindx=lstindx+1;
|
||||
lstindxOrf=lstindxOrf+1;
|
||||
if usrRefFg==0, rfGLbl='RF1mdG('; else rfGLbl=strcat('RF-',rfGnSp,'mdG('); end %accomodate User Ref Selection
|
||||
if iscell(strcat(rfPLbl,num2str(d),')')),
|
||||
aa(lstindx,1)=strcat(rfGLbl,num2str(d),')'); % remove string2cell brackets {...}
|
||||
bb(lstindxOrf,1)=strcat(rfGLbl,num2str(d),')'); % remove string2cell brackets {...}
|
||||
else
|
||||
aa(lstindx,1)={strcat(rfGLbl,num2str(d),')')};
|
||||
bb(lstindxOrf,1)={strcat(rfGLbl,num2str(d),')')};
|
||||
end
|
||||
aa(lstindx,2)={strcat(':',num2str(RFmdDGloc(d,1)),':',num2str(RFmdDGloc(d,2)),':',num2str(RFmdDGloc(d,3)))}; %,'std_',num2str(std2))};
|
||||
bb(lstindxOrf,2)={strcat(':',num2str(RFmdDGloc(d,1)),':',num2str(RFmdDGloc(d,2)),':',num2str(RFmdDGloc(d,3)))}; %,'std_',num2str(std2))};
|
||||
% Composite Reference Amalgum Plot
|
||||
lstindx=lstindx+1;
|
||||
lstindxOrf=lstindxOrf+1;
|
||||
if usrRefFg==0, rfcmpGLbl='RFcmpG('; else rfcmpGLbl=strcat('RFcmpG-',rfGnSp,'('); end %accomodate User Ref Selection
|
||||
if iscell(strcat(rfcmpGLbl,num2str(d),')')),
|
||||
aa(lstindx,1)=strcat(rfcmpGLbl,num2str(d),')'); % strcat('RFcmpG(',num2str(d),')');
|
||||
bb(lstindxOrf,1)=strcat(rfcmpGLbl,num2str(d),')'); % strcat('RFcmpG(',num2str(d),')');
|
||||
else
|
||||
aa(lstindx,1)={strcat(rfcmpGLbl,num2str(d),')')};
|
||||
bb(lstindxOrf,1)={strcat(rfcmpGLbl,num2str(d),')')};
|
||||
end
|
||||
|
||||
aa(lstindx,2)={''};
|
||||
bb(lstindxOrf,2)={''};
|
||||
Exp(expN).Dexp(n).RFmdGLB(d)=strcat(aa(lstindx,1),aa(lstindx,2));
|
||||
Exp(expN).Dexp(n).RFmdGindx(d)=nzPosIndxDG;
|
||||
Exp(expN).Dexp(n).RFmdGpltN(d)=RFmdDGloc(d,1);
|
||||
Exp(expN).Dexp(n).RFmdGscanN(d)=uu(nzPosIndxDG,4);
|
||||
Exp(expN).Dexp(n).RFmedianG(d)=mvalsDG;
|
||||
Exp(expN).Dexp(n).RFminG(d)=minG;
|
||||
Exp(expN).Dexp(n).RFmaxG(d)=maxG;
|
||||
Exp(expN).Dexp(n).RFstdG(d)=RFstdG;
|
||||
Exp(expN).Dexp(n).RFmeanG(d)=RFmeanG;
|
||||
Exp(expN).Dexp(n).RFcmpGL.dm(d).Lvals=vv(medianIndxD,d); %17_1201 TrendOL
|
||||
Exp(expN).Dexp(n).RFcmpGL.dm(d).med=median(vv(medianIndxD,d)); %For Ref Composite 17_1009
|
||||
Exp(expN).Dexp(n).RFcmpGL.dm(d).mean=mean(vv(medianIndxD,d)); %For Ref Composite 17_1009
|
||||
Exp(expN).Dexp(n).RFcmpGL.dm(d).std=std(vv(medianIndxD,d)); %For Ref Composite 17_1009
|
||||
Exp(expN).Dexp(n).RFcmpGL.dm(d).min=min(vv(medianIndxD,d)); %For Ref Composite 17_1009
|
||||
Exp(expN).Dexp(n).RFcmpGL.dm(d).max=max(vv(medianIndxD,d)); %For Ref Composite 17_1009
|
||||
Exp(expN).Dexp(n).RFcmpGK.dm(d).Kvals=vvK(medianIndxD,d); %17_1201 TrendOL
|
||||
Exp(expN).Dexp(n).RFcmpGK.dm(d).med=median(vvK(medianIndxD,d)); %For Ref Composite 17_1009
|
||||
Exp(expN).Dexp(n).RFcmpGK.dm(d).mean=mean(vvK(medianIndxD,d)); %For Ref Composite 17_1009
|
||||
Exp(expN).Dexp(n).RFcmpGK.dm(d).std=std(vvK(medianIndxD,d)); %For Ref Composite 17_1009
|
||||
Exp(expN).Dexp(n).RFcmpGK.dm(d).min=min(vvK(medianIndxD,d)); %For Ref Composite 17_1009
|
||||
Exp(expN).Dexp(n).RFcmpGK.dm(d).max=max(vvK(medianIndxD,d)); %For Ref Composite 17_1009
|
||||
Exp(expN).Dexp(n).RFcmpGr.dm(d).rvals=vvr(medianIndxD,d); %17_1201 TrendOL
|
||||
Exp(expN).Dexp(n).RFcmpGr.dm(d).med=median(vvr(medianIndxD,d)); %For Ref Composite 17_1009
|
||||
Exp(expN).Dexp(n).RFcmpGr.dm(d).mean=mean(vvr(medianIndxD,d)); %For Ref Composite 17_1009
|
||||
Exp(expN).Dexp(n).RFcmpGr.dm(d).std=std(vvr(medianIndxD,d)); %For Ref Composite 17_1009
|
||||
Exp(expN).Dexp(n).RFcmpGr.dm(d).min=min(vvr(medianIndxD,d)); %For Ref Composite 17_1009
|
||||
Exp(expN).Dexp(n).RFcmpGr.dm(d).max=max(vvr(medianIndxD,d)); %For Ref Composite 17_1009
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
% EZusrSelRef
|
||||
gnLstRaw=strcat(aa(:,1),aa(:,2));
|
||||
Exp(expN).Dexp(n).srtGnLst=sort(gnLstRaw);
|
||||
|
||||
orfLstRaw=strcat(bb(:,1),bb(:,2));
|
||||
Exp(expN).Dexp(n).srtOrfLst=sort(orfLstRaw);
|
||||
|
||||
%{
|
||||
%set(handles.MPsldr2,'max',length(MP));
|
||||
%set(handles.DMsldr2,'max',length(DM.drug));
|
||||
%set(handles.Tptsldr2,'max',tPtsSize);
|
||||
|
||||
%set(handles.MPsldr2,'min',1,'max',MPnum)
|
||||
|
||||
%set(handles.DMsldr2,'min',1,'max',DMnum)
|
||||
%tPtsSize=size(Exp(expN).Dexp(n).FexpScanBMtp{1,1},(3));
|
||||
%set(handles.Tptsldr2,'min',1,'max',tPtsSize)
|
||||
|
||||
%set(handles.MPsldr2,'value',1)
|
||||
%set(handles.DMsldr2,'value',1)
|
||||
%set(handles.Tptsldr2,'value',1)
|
||||
%set(handles.MPed2,'string','1')
|
||||
%set(handles.DMed2,'string','1')
|
||||
%set(handles.Tpted2,'string','1')
|
||||
%set(handles.MPsldr2,'SliderStep',[1/length(MP) 1/length(MP)]);
|
||||
%set(handles.DMsldr2,'SliderStep',[1/length(DM.drug) 1/length(DM.drug)]);
|
||||
%set(handles.Tptsldr2,'SliderStep',[1/tPtsSize 1/tPtsSize]);
|
||||
%}
|
||||
256
qhtcp-workflow/apps/matlab/ezview/EZplotUcmp.m
Executable file
256
qhtcp-workflow/apps/matlab/ezview/EZplotUcmp.m
Executable file
@@ -0,0 +1,256 @@
|
||||
% EZplotUcmp.m
|
||||
% User find and build composite of Selected Gene Composite and
|
||||
% Plot it on OLay Plot and Trend plot DNLaxles
|
||||
% For Single and Multi experiment Studies
|
||||
% Called when Composite_ toggle button is clicked.
|
||||
% Data stored for printable Trend Plot production (click [L] in DNLaxes )
|
||||
|
||||
global ghandles
|
||||
global Exp
|
||||
global exDlst
|
||||
|
||||
traceN=Exp(expN).traceN;
|
||||
DexpN=Exp(expN).DexpN;
|
||||
dmSel=Exp(zoneSel).Dexp(DexpN).pertSel;
|
||||
% dmSel=str2num(get(ghandles.DMed3,'string'))
|
||||
patrnN=strfind(selGnOrf{1},':'); % extract Gene-Orf Name
|
||||
patrndash=strfind(selGnOrf{1},'-');
|
||||
selStrNm=char(selGnOrf);
|
||||
usrGene=selStrNm(1:(patrnN(1)-1));
|
||||
|
||||
if strcmpi(selStrNm(1:3),'RF-')
|
||||
usrGeneSearch=selStrNm(4:(patrndash(2)-1));
|
||||
elseif strcmp(selStrNm(1:3),'RF1')
|
||||
usrGeneSearch=selStrNm(1:3);
|
||||
else
|
||||
usrGeneSearch=selStrNm(1:(patrnN(1)-1));
|
||||
end
|
||||
|
||||
prompt={'Enter Specifics Term if used to futher specify selection '};
|
||||
dlg_title='User Specifics Term for Refinement Composite';
|
||||
num_lines=1;
|
||||
def={'None'};
|
||||
answer=inputdlg(prompt,dlg_title,num_lines,def);
|
||||
usrSpec=cell2mat(answer(1));
|
||||
|
||||
if strcmpi(usrSpec,'None'), usrGnSp={strcat(usrGene,'-')};
|
||||
elseif length(usrSpec)> 8,
|
||||
trimUspec=usrSpec(1:8);
|
||||
usrGnSp=strcat(usrGene,',',{trimUspec});
|
||||
else
|
||||
trimUspec=usrSpec;
|
||||
usrGnSp=strcat(usrGene,',',{trimUspec});
|
||||
end
|
||||
|
||||
% For n=DexpN:DexpN %n=1:Exp(expN).DexpLength %LOOP Thru DayExps
|
||||
n=DexpN;
|
||||
MPnum=length(Exp(expN).Dexp(DexpN).MP);
|
||||
DMnum=length(Exp(expN).Dexp(DexpN).DM.drug);
|
||||
% Extract expDay from ExpName string
|
||||
dayNpos=max(strfind(Exp(expN).Dexp(DexpN).ExpFoldr, '_D'));
|
||||
dayLbl=Exp(expN).Dexp(DexpN).ExpFoldr(dayNpos+1:end);
|
||||
dRF1indx=0;
|
||||
usrSp=usrSpec; % user entry of Specifics for Ref selection
|
||||
|
||||
for mp=1:length(Exp(expN).Dexp(DexpN).MP)
|
||||
for ind384=1:384
|
||||
try
|
||||
% Insert test for numeric in genename and orf if isnumeric
|
||||
% Correct common EXCEL problem of converting OCT1 into a date numeric
|
||||
if cell2mat(Exp(expN).Dexp(DexpN).MP(mp).genename{1}(ind384))==38991,
|
||||
Exp(expN).Dexp(DexpN).MP(mp).genename{1}(ind384)={'OCT1_'};
|
||||
elseif isnumeric(cell2mat(Exp(expN).Dexp(DexpN).MP(mp).genename{1}(ind384)))
|
||||
Exp(expN).Dexp(DexpN).MP(mp).genename{1}(ind384)={' '};
|
||||
end
|
||||
|
||||
% DISPersed REFerence capture and find Medians
|
||||
if ( ((strcmpi((Exp(expN).Dexp(DexpN).MP(mp).genename{1}(ind384)),usrGeneSearch) && ...
|
||||
strcmpi((Exp(expN).Dexp(DexpN).MP(mp).specifics{1}(ind384)),usrSp))) || ...
|
||||
((strcmpi((Exp(expN).Dexp(DexpN).MP(mp).genename{1}(ind384)),usrGeneSearch) && ...
|
||||
strcmpi(usrSp,'None'))) ),
|
||||
dRF1indx=dRF1indx+1;
|
||||
Exp(expN).Dexp(DexpN).MP(mp).genename{1}(ind384) =strrep((Exp(expN).Dexp(DexpN).MP(mp).genename{1}(ind384)),':',' ');
|
||||
drf(dRF1indx,1)=(Exp(expN).Dexp(DexpN).MP(mp).genename{1}(ind384));
|
||||
drf(dRF1indx,2)={mp}; drfMP(dRF1indx,mp)=mp;
|
||||
drf(dRF1indx,3)={ind384}; drfPindx(dRF1indx,mp)=ind384;
|
||||
%drf(dRF1indx,7)=(Exp(expN).Dexp(DexpN).MP(mp).specifics{1}(ind384));
|
||||
end
|
||||
catch
|
||||
msgBadGeneName=strcat('check genename at mp=',num2str(mp),' indx=',num2str(ind384))
|
||||
end
|
||||
end
|
||||
mp
|
||||
end
|
||||
|
||||
vvL=[]; % initialize to cover case where all spot are Zero NoGrowth See NIGrowthflg==0
|
||||
if exist('drf','var')
|
||||
% Det. index of change from one MP to the next
|
||||
i=2;
|
||||
clear chgIndx
|
||||
chgIndx(1)=1;
|
||||
for j=1:length(drf(:,3))
|
||||
if j>1
|
||||
if cell2mat(drf(j,2))~=cell2mat(drf((j-1),2)), chgIndx(i)=j; i=i+1; end
|
||||
end
|
||||
end
|
||||
chgIndx(length(chgIndx)+1)=size(drf,1) +1; % length(drf)+1;
|
||||
vvL=zeros(size(drf,1),1 ); % length(drf)+1;
|
||||
dMPs=unique(cell2mat(drf(:,2)));
|
||||
for d=1:length(Exp(expN).Dexp(DexpN).DM.drug)
|
||||
for mm=1:length(dMPs) % length(chgIndx)
|
||||
usrScNdisp=((dMPs(mm)-1)*DMnum)+(d);
|
||||
NZusrIndx=drfPindx((find(drfPindx(:,dMPs(mm)))),dMPs(mm));
|
||||
medianIndxDisp=NZusrIndx;
|
||||
vvL(chgIndx(mm):(chgIndx(mm+1)-1))=Exp(expN).Dexp(DexpN).scan(usrScNdisp).plate(1).CFout(NZusrIndx,5);
|
||||
vvK(chgIndx(mm):(chgIndx(mm+1)-1))=Exp(expN).Dexp(DexpN).scan(usrScNdisp).plate(1).CFout(NZusrIndx,3);
|
||||
vvr(chgIndx(mm):(chgIndx(mm+1)-1))=Exp(expN).Dexp(DexpN).scan(usrScNdisp).plate(1).CFout(NZusrIndx,4);
|
||||
end
|
||||
|
||||
% CALC. GLOBAL MEAN, STD, AND MEDIAN FOR DISTRIBUTED REFERENCES
|
||||
% for d=1:length(Exp(expN).Dexp(DexpN).DM.drug)
|
||||
NZusrIndxG=[];
|
||||
NZusrIndxG=find(vvL);
|
||||
|
||||
if isempty(nonzeros(vvL))
|
||||
nonZeroCntD=0;
|
||||
else
|
||||
nonZeroCntD=length(nonzeros(vvL));
|
||||
end
|
||||
%Calc. of median value for composite doesn't require and odd number of Indx items
|
||||
NZusrIndxG=NZusrIndxG(:);
|
||||
if ~isempty(NZusrIndxG) && length(NZusrIndxG) > 0 %(.15*size(drf,1)) %To calc. a median, more than 15% of spots must be nonZero
|
||||
UsrLvals{d}=vvL(NZusrIndxG);
|
||||
UsrKvals{d}=vvK(NZusrIndxG);
|
||||
Usrrvals{d}=vvr(NZusrIndxG);
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
if ~exist('drf','var')
|
||||
errordlg('Gene-Specifics combination not found. Check spelling of Specifics entry.','Entry Warning');
|
||||
break;
|
||||
end
|
||||
|
||||
NoGrowthflg=0;
|
||||
if isempty(vvL)
|
||||
warndlg('No Growth condition found for Gene-Specifics combination. . ','No Growth warning');
|
||||
NoGrowthflg=1;
|
||||
end
|
||||
|
||||
% Plot Values Selected Gene-Specifics Composite
|
||||
if NoGrowthflg==0
|
||||
smpSz=size(NZusrIndxG,1);
|
||||
K=median(cell2mat((UsrKvals(dmSel)))); Ks=num2str(K); Kstd=std(cell2mat((UsrKvals(dmSel)))); KstdStr=num2str(Kstd);
|
||||
r=median(cell2mat((Usrrvals(dmSel)))); rs=num2str(r); rstd=std(cell2mat((Usrrvals(dmSel)))); rstdStr=num2str(rstd);
|
||||
l=median(cell2mat((UsrLvals(dmSel)))); Ls=num2str(l); Lstd=std(cell2mat((UsrLvals(dmSel)))); LstdStr=num2str(Lstd);
|
||||
Kl=K - Kstd; %std(UsrKvals(dmSel));
|
||||
Ku=K + Kstd; %std(UsrKvals(dmSel));
|
||||
rl=r - rstd; %std(Usrrvals(dmSel));
|
||||
ru=r + rstd; %std(UsrKvals(dmSel));
|
||||
lfast=l - Lstd;
|
||||
lslow=l + Lstd;
|
||||
elseif NoGrowth==1 % if all data is zero (NoGrowth)
|
||||
smpSz=size(NZusrIndxG,1);
|
||||
K=0; Ks=num2str(K); Kstd=0; KstdStr=num2str(0);
|
||||
r=0; rs=num2str(r); rstd=0; rstdStr=num2str(0);
|
||||
l=0; Ls=num2str(l); Lstd=0; LstdStr=num2str(0);
|
||||
Kl=K - Kstd;
|
||||
Ku=K + Kstd;
|
||||
rl=r - rstd;
|
||||
ru=r + rstd;
|
||||
lfast=l - Lstd;
|
||||
lslow=l + Lstd;
|
||||
end
|
||||
|
||||
try Kstr=Ks(1:5); catch, Kstr=Ks(1:length(Ks)); end
|
||||
try rstr=rs(1:5); catch, rstr=rs(1:length(rs)); end
|
||||
try Lstr=Ls(1:5); catch, Lstr=Ls(1:length(Ls)); end
|
||||
|
||||
plateNum=(LBmp-1)*destPerMP + dmSel;
|
||||
MP=Exp(zoneSel).Dexp(DexpN).MP;
|
||||
|
||||
try
|
||||
t=1:200;
|
||||
clear g;
|
||||
try
|
||||
g=K ./ (1 + exp(-r.* (t - l )));
|
||||
gSlow=Kl ./ (1 + exp(-rl.* (t - lslow )));
|
||||
gFast=Ku ./ (1 + exp(-ru.* (t - lfast )));
|
||||
if K==0||r==0||l==0, g(1:200)=1;gSlow(1:200)=1;gFast(1:200)=1;end
|
||||
if zoneSel==1, plotAxes=ghandles.Paxes1; OLaxes=ghandles.OLaxes1;
|
||||
Dlaxes=ghandles.Dlaxes1;Dkaxes=ghandles.Dkaxes1;Draxes=ghandles.Draxes1;
|
||||
Exp(1).traceN=Exp(1).traceN+1;
|
||||
traceN=Exp(1).traceN;
|
||||
end
|
||||
if zoneSel==2, plotAxes=ghandles.Paxes2; OLaxes=ghandles.OLaxes2;Daxes=ghandles.Daxes2;
|
||||
Dlaxes=ghandles.Dlaxes2;Dkaxes=ghandles.Dkaxes2;Draxes=ghandles.Draxes2;
|
||||
Exp(2).traceN=Exp(2).traceN+1;
|
||||
traceN=Exp(2).traceN;
|
||||
end
|
||||
if zoneSel==3, plotAxes=ghandles.Paxes3; OLaxes=ghandles.OLaxes3;Daxes=ghandles.Daxes3;
|
||||
Dlaxes=ghandles.Dlaxes3;Dkaxes=ghandles.Dkaxes3;Draxes=ghandles.Draxes3;
|
||||
Exp(3).traceN=Exp(3).traceN+1;
|
||||
traceN=Exp(3).traceN;
|
||||
end
|
||||
plot(plotAxes,t,g);hold (plotAxes,'on');
|
||||
plot(plotAxes,t,gSlow,'y');plot(plotAxes,t,gFast,'r');hold (plotAxes,'off');
|
||||
Exp(expN).Trace(traceN).UsrGLB=usrGnSp;
|
||||
Exp(expN).Trace(traceN).dmSel=dmSel;
|
||||
Exp(expN).Trace(traceN).DexpN=DexpN;
|
||||
for d=1:length(Exp(expN).Dexp(DexpN).DM.drug) %LOOP Thru DrugMedias
|
||||
Exp(expN).Trace(traceN).Dexp(DexpN).DM(d).UsrLvals=UsrLvals(d);
|
||||
Exp(expN).Trace(traceN).Dexp(DexpN).DM(d).UsrKvals=UsrKvals(d);
|
||||
Exp(expN).Trace(traceN).Dexp(DexpN).DM(d).Usrrvals=Usrrvals(d);
|
||||
end
|
||||
|
||||
% Store L R and K valves for manual selected Composite [C] plots
|
||||
Exp(expN).ll(traceN)=l; Exp(expN).rr(traceN)=r; Exp(expN).kk(traceN)=K;
|
||||
Exp(expN).lslow(traceN)=lslow; Exp(expN).lfast(traceN)=lfast;
|
||||
|
||||
try
|
||||
for i=1:length(Exp(zoneSel).hOL(:)),set(Exp(zoneSel).hOL(i),'color',[0 0 1]); end
|
||||
catch
|
||||
end
|
||||
|
||||
Exp(zoneSel).hOL(traceN)=plot(OLaxes,t,g);hold on;
|
||||
set(Exp(zoneSel).hOL(traceN),'color',[1 0 0])
|
||||
catch
|
||||
catchissue='Ln100 EZlstBoxExt'
|
||||
end
|
||||
|
||||
% Get the DM agar description
|
||||
if expN==1,DMstr=char(get(handles.DM1,'string'));end
|
||||
if expN==2,DMstr=char(get(handles.DM2,'string'));end
|
||||
if expN==3,DMstr=char(get(handles.DM3,'string'));end
|
||||
gene=usrGnSp; orf='' %MP(1,LBmp).orf{1,1}(indx);
|
||||
geneOrfstr=strcat(gene,'_',orf,'_');
|
||||
grfgenestr=strcat(gene,'_',orf,'_');
|
||||
graphStr=strcat(usrGnSp,'_','L=',Lstr,'_','Ls=',LstdStr,'_','r=',rstr,'_','rs=',rstdStr,'_','K=',Kstr,'Ks=',KstdStr);
|
||||
spotDescrip=strcat(graphStr,'->',DMstr);
|
||||
|
||||
xp=char(Exp(zoneSel).Dexp(DexpN).resDir);
|
||||
if ispc,
|
||||
slashPos=strfind(char(Exp(zoneSel).Dexp(DexpN).resDir),'\');
|
||||
else
|
||||
slashPos=strfind(char(Exp(zoneSel).Dexp(DexpN).resDir),'/');
|
||||
end
|
||||
|
||||
startPos=slashPos(length(slashPos)-1) +1;
|
||||
endPos=slashPos(length(slashPos)) -1
|
||||
expStr={xp(startPos:endPos)}
|
||||
|
||||
Exp(zoneSel).hOLname(traceN)=spotDescrip;
|
||||
Exp(zoneSel).hOLexpNm(traceN)=expStr;
|
||||
Exp(zoneSel).hOLresDir(traceN)={Exp(zoneSel).Dexp(DexpN).resDir};
|
||||
Exp(zoneSel).hOLplateNum(traceN)=plateNum;
|
||||
|
||||
if zoneSel==1,set(ghandles.GeneOrfLoc1,'string',geneOrfstr);end % Displays the value.
|
||||
if zoneSel==2,set(ghandles.GeneOrfLoc2,'string',geneOrfstr);end
|
||||
if zoneSel==3,set(ghandles.GeneOrfLoc3,'string',geneOrfstr);end
|
||||
if zoneSel==1,set(ghandles.graphStrLoc1,'string',spotDescrip);end %graphStr);end % Displays the value.
|
||||
if zoneSel==2,set(ghandles.graphStrLoc2,'string',spotDescrip);end %graphStr);end
|
||||
if zoneSel==3,set(ghandles.graphStrLoc3,'string',spotDescrip);end %graphStr);end
|
||||
catch
|
||||
catchissue='Ln141 EZlstBoxExt'
|
||||
msg='Error'
|
||||
end
|
||||
BIN
qhtcp-workflow/apps/matlab/ezview/EZsgdInfo.mat
Executable file
BIN
qhtcp-workflow/apps/matlab/ezview/EZsgdInfo.mat
Executable file
Binary file not shown.
127
qhtcp-workflow/apps/matlab/ezview/EZsingleExUserRF.m
Executable file
127
qhtcp-workflow/apps/matlab/ezview/EZsingleExUserRF.m
Executable file
@@ -0,0 +1,127 @@
|
||||
% EZsingleExUserRF
|
||||
global exp
|
||||
|
||||
usrRefFg=0;
|
||||
prompt={'Enter GeneName to use as Reference:',...
|
||||
'Enter Specifics Term if used to futher specify Reference '}
|
||||
dlg_title='User Reference Input';
|
||||
num_lines=1;
|
||||
def={'RF1','None'};
|
||||
answer=inputdlg(prompt,dlg_title,num_lines,def);
|
||||
rfGene=cell2mat(answer(1));
|
||||
if ~strcmpi(rfGene,'RF1')|| ~strcmpi(rfGene,'RF2'), usrRefFg=1; end
|
||||
rfSpec=answer(2); %if strcmpi(answer(2),'None'), rfSpec=''; end
|
||||
rfGnSp=strcat(rfGene,rfSpec);
|
||||
if strcmpi(rfSpec,'None'), rfGnSp=strcat(rfGene,'-'); end
|
||||
|
||||
% for n=1:size(matFile,2)
|
||||
n=1;
|
||||
EZmultiGeneRFsLst
|
||||
EZdiagRFsSheet
|
||||
Exp(expN).Dexp(n).RFrnames=rnames;
|
||||
Exp(expN).Dexp(n).RFdata=data;
|
||||
RFconfig=0;
|
||||
if sum(ismember(fieldnames(Exp(expN).Dexp(n)),'RFmean')) ...
|
||||
&& ~isempty(Exp(expN).Dexp(n).RFmean) ...
|
||||
&& sum(ismember(fieldnames(Exp(expN).Dexp(n)),'RFmeanG')) ...
|
||||
&& isempty(Exp(expN).Dexp(n).RFmeanG)
|
||||
RFconfig=1;
|
||||
end
|
||||
if sum(ismember(fieldnames(Exp(expN).Dexp(n)),'RFmean'))==0 ...
|
||||
|| isempty(Exp(expN).Dexp(n).RFmean) ...
|
||||
&& sum(ismember(fieldnames(Exp(expN).Dexp(n)),'RFmeanG')) ...
|
||||
&& ~isempty(Exp(expN).Dexp(n).RFmeanG)
|
||||
RFconfig=2;
|
||||
end
|
||||
if sum(ismember(fieldnames(Exp(expN).Dexp(n)),'RFmean'))&&...
|
||||
~isempty(Exp(expN).Dexp(n).RFmean)&&...
|
||||
sum(ismember(fieldnames(Exp(expN).Dexp(n)),'RFmeanG'))&&...
|
||||
~isempty(Exp(expN).Dexp(n).RFmeanG)
|
||||
RFconfig=3;
|
||||
end
|
||||
Exp(expN).RFconfig=RFconfig;
|
||||
Exp(expN).Dexp(n).RFconfig=RFconfig;
|
||||
try msgBadGeneName, catch, end
|
||||
try
|
||||
Exp(expN).Dexp(n).resetHtmpTg =5; %Exp(expN).resetHtmpTg =5;
|
||||
if RFconfig==0,
|
||||
RFconfigMsg='No RF1 references in this Experiment Job'
|
||||
Exp(expN).Dexp(n).resetHtmpTg =3; %Exp(expN).resetHtmpTg =3;
|
||||
end
|
||||
catch
|
||||
end
|
||||
|
||||
% Auto select Zone and load listboxGnOrf data
|
||||
DexpN=1;
|
||||
zeroCLn=zeros(1,DMnum);
|
||||
Exp(expN).expLoadCnt=Exp(expN).expLoadCnt+1; expLdCnt=Exp(expN).expLoadCnt;
|
||||
if expN==1
|
||||
set(handles.zoneRad1,'value',1)
|
||||
set(handles.zoneRad2,'value',0)
|
||||
set(handles.zoneRad3,'value',0)
|
||||
orfLstSel=get(handles.GeneOrfTog,'value')
|
||||
if orfLstSel==1
|
||||
set(handles.listboxGnOrf,'string',Exp(1).Dexp(1).srtOrfLst)
|
||||
else
|
||||
set(handles.listboxGnOrf,'string',Exp(1).Dexp(1).srtGnLst)
|
||||
end
|
||||
DNLaxes1=handles.DNLaxes1;
|
||||
Exp(1).hzeroCLn(expLdCnt)=plot(DNLaxes1,zeroCLn,1:DMnum,'y');
|
||||
end
|
||||
|
||||
if expN==2
|
||||
set(handles.zoneRad1,'value',0)
|
||||
set(handles.zoneRad3,'value',0)
|
||||
set(handles.zoneRad2,'value',1)
|
||||
orfLstSel=get(handles.GeneOrfTog,'value');
|
||||
if orfLstSel==1
|
||||
set(handles.listboxGnOrf,'string',Exp(2).Dexp(1).srtOrfLst)
|
||||
else
|
||||
set(handles.listboxGnOrf,'string',Exp(2).Dexp(1).srtGnLst)
|
||||
end
|
||||
DNLaxes2=handles.DNLaxes2;
|
||||
Exp(2).hzeroCLn(expLdCnt)=plot(DNLaxes2,zeroCLn,1:DMnum,'y');
|
||||
end
|
||||
|
||||
if expN==3
|
||||
set(handles.zoneRad1,'value',0)
|
||||
set(handles.zoneRad2,'value',0)
|
||||
set(handles.zoneRad3,'value',1)
|
||||
orfLstSel=get(handles.GeneOrfTog,'value');
|
||||
if orfLstSel==1
|
||||
set(handles.listboxGnOrf,'string',Exp(3).Dexp(1).srtOrfLst)
|
||||
else
|
||||
set(handles.listboxGnOrf,'string',Exp(3).Dexp(1).srtGnLst)
|
||||
end
|
||||
DNLaxes3=handles.DNLaxes3;
|
||||
Exp(3).hzeroCLn(expLdCnt)=plot(DNLaxes3,zeroCLn,1:DMnum,'y');
|
||||
end
|
||||
|
||||
if Exp(4).interacPBsel==0 % if interaction "raw" don't show a center line
|
||||
for i=1:Exp(expN).expLoadCnt,
|
||||
try
|
||||
set(Exp(expN).hzeroCLn(i),'visible','off');
|
||||
catch
|
||||
i
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
% HtMapTog 'string', 'Current user L/N' selection'
|
||||
Exp(expN).Dexp(DexpN).spotIndx=[];
|
||||
if expN==1,
|
||||
Exp(1).htmapPBsel=0;
|
||||
set(handles.HtMapTog1,'string','L')
|
||||
EZhtMap
|
||||
end
|
||||
if expN==2,
|
||||
Exp(2).htmapPBsel=0;
|
||||
set(handles.HtMapTog2,'string','L')
|
||||
EZhtMap
|
||||
end
|
||||
if expN==3,
|
||||
Exp(3).htmapPBsel=0;
|
||||
set(handles.HtMapTog3,'string','L')
|
||||
EZhtMap
|
||||
end
|
||||
htMapTogPBfg=0;
|
||||
220
qhtcp-workflow/apps/matlab/ezview/EZspotview.m
Executable file
220
qhtcp-workflow/apps/matlab/ezview/EZspotview.m
Executable file
@@ -0,0 +1,220 @@
|
||||
function EZspotview(expN,DexpN, imLoc,OLresDir,OLplateNum,NoOLay)
|
||||
global Exp
|
||||
global ghandles
|
||||
datacursormode(gcf)
|
||||
|
||||
w=pwd;
|
||||
aCnt=0;
|
||||
prevExp=0;
|
||||
if NoOLay==0
|
||||
cd(fullfile(char(OLresDir)))
|
||||
cd ..
|
||||
expDir=pwd;
|
||||
cd(w)
|
||||
|
||||
%expDir=fullfile(char(OLresDir),'..');
|
||||
if ~isequal(expDir, char(fullfile(Exp(expN).Dexp(DexpN).ExpFoldr)))
|
||||
prevExp=1;
|
||||
end
|
||||
if prevExp==0
|
||||
expDir=Exp(expN).Dexp(DexpN).ExpFoldr;
|
||||
else
|
||||
cd(fullfile(char(OLresDir)))
|
||||
cd ..
|
||||
expDir=pwd;
|
||||
cd(w)
|
||||
%expDir=fullfile(char(OLresDir),'..');
|
||||
end
|
||||
else
|
||||
expDir=Exp(expN).Dexp(DexpN).ExpFoldr
|
||||
end
|
||||
|
||||
%ExpHmDir=char(Exp(expN).Dexp(DexpN).resDir);
|
||||
|
||||
try close(ghandles.hfstrip), catch, end % hfIm
|
||||
% CIRCLE related
|
||||
doCircle=1;
|
||||
radius=14;
|
||||
diaExt=2*(radius+1);
|
||||
EZvNIcircle
|
||||
rIm=imLoc(1); % use the "picture/Image' r and c not the plate annotation r c)
|
||||
cIm=imLoc(2);
|
||||
plateNum=Exp(expN).Dexp(DexpN).plateNum;
|
||||
if prevExp==0
|
||||
FexpScanSpots=Exp(expN).Dexp(DexpN).FexpScanSpots;
|
||||
FexpScanBMtp=Exp(expN).Dexp(DexpN).FexpScanBMtp;
|
||||
anlZoneRefs=Exp(expN).Dexp(DexpN).anlZoneRefs;
|
||||
ImParMat=Exp(expN).Dexp(DexpN).ImParMat;
|
||||
else
|
||||
% check if the request expJob is already loaded in one of the other zones
|
||||
matchfound=0;
|
||||
for j=1:3
|
||||
if isequal(expDir, char(fullfile(Exp(j).ExpFoldr)))
|
||||
FexpScanSpots=Exp(j).FexpScanSpots;
|
||||
FexpScanBMtp=Exp(j).FexpScanBMtp;
|
||||
anlZoneRefs=Exp(j).anlZoneRefs;
|
||||
ImParMat=Exp(j).ImParMat;
|
||||
matchfound=1;
|
||||
break
|
||||
end
|
||||
end
|
||||
if matchfound==0
|
||||
% if not, load data for previous experiment again.
|
||||
load(fullfile(char(OLresDir),'Fotos','Coordinates'))
|
||||
load(fullfile(char(OLresDir),'Fotos','anlZones'))
|
||||
load(fullfile(char(OLresDir),'Fotos','BGatTpts'))
|
||||
load(fullfile(char(OLresDir),'PTmats','NImParameters'))
|
||||
end
|
||||
end
|
||||
|
||||
% Parameter Entry
|
||||
width=ImParMat(5);
|
||||
widthEx=width-1; %width extention from reference point
|
||||
|
||||
% Start Spot selection and Manipulation section
|
||||
Fcutsc=[];
|
||||
Fstrip=[];
|
||||
%{
|
||||
cd(fullfile(char(OLresDir)))
|
||||
cd ..
|
||||
expDir=pwd;
|
||||
cd(w)
|
||||
%}
|
||||
|
||||
% tPtsSize=size(Exp(expN).Dexp(DexpN).FexpScanBMtp{1,1},(3));
|
||||
tPtsSize=size(FexpScanBMtp{1,plateNum},(3)); % tPtsSize=size(FexpScanBMtp{1,1},(3)); 20160110
|
||||
%bmpFileLst=dirfullfile(char(OLresDir),num2str(plateNum),'*.bmp')); %(fullfile(expDir, char(ScLst(ScLstCnt)), '*.bmp'));
|
||||
hsafety=figure;
|
||||
dc=get(datacursormode)
|
||||
imInterval=1;
|
||||
try,imInterval=str2double(Exp(4).SpotVintervPar),catch,end
|
||||
try
|
||||
for tPt=1:imInterval:tPtsSize %tPtLength
|
||||
coord=[];
|
||||
try
|
||||
% FtifFile=fullfile(Exp(expN).Dexp(DexpN).ExpFoldr,num2str(plateNum),strcat(num2str(tPt),'.bmp')); %char(tifFileLst(tPt));
|
||||
FtifFile=fullfile(char(expDir),num2str(plateNum),strcat(num2str(tPt),'.bmp'));
|
||||
Fimg=imread(FtifFile);
|
||||
% For Visualization Purposes
|
||||
Fram=ones(2075,1400); %(size(Empsc,1),size(Empsc,2));
|
||||
% FRAME ANALYSIS AREA
|
||||
if size(FexpScanSpots,2)>1
|
||||
coord=FexpScanSpots{plateNum}{rIm,cIm,tPt};
|
||||
else
|
||||
coord=FexpScanSpots{plateNum,1,1}{rIm,cIm,tPt};
|
||||
end
|
||||
if size(anlZoneRefs,2)>1
|
||||
xyLoc=anlZoneRefs{plateNum}{rIm,cIm,tPt}; %F_Snum
|
||||
else
|
||||
xyLoc=anlZoneRefs{F_Snum,1,1}{rIm,cIm,tPt};
|
||||
end
|
||||
xLoc=xyLoc(2);
|
||||
yLoc=xyLoc(1);
|
||||
|
||||
% CIRCLE related
|
||||
doCircle=1; % temp test value insertion to get square images
|
||||
if doCircle==1
|
||||
Fram=FoptCirMask;
|
||||
else
|
||||
% 1->2 across rt 1, 2-4
|
||||
Fram(yLoc,xLoc:(xLoc+widthEx))=0.8;
|
||||
% 1->4 down lf 1-3, 2
|
||||
Fram((yLoc+1):(yLoc+1+widthEx),xLoc)=0.8;
|
||||
% 2->3 down rt 1-3, 4
|
||||
Fram(yLoc:(yLoc+widthEx),(xLoc+1+widthEx))=0.8;
|
||||
% 4->3 Bot Across rt 1, 2-4
|
||||
Fram((yLoc+1+widthEx),(xLoc+1):(xLoc+1+widthEx))=0.8;
|
||||
Fram=Fram(coord(1):coord(3),coord(2):coord(4));
|
||||
end
|
||||
% Cut Spot Out Of Image
|
||||
% Fbg=FexpScanBMtp{selScan,1}(rIm,cIm,tPt);
|
||||
Fbg=FexpScanBMtp{plateNum}(rIm,cIm,tPt); %{selScan,1}
|
||||
% Fimg=imread(FtifFile); %,'PixelRegion', {[coord(1),coord(3)],[coord(2),coord(4)]});
|
||||
Fcutsc=Fimg(coord(1):coord(3),coord(2):coord(4));
|
||||
if doCircle==1
|
||||
%varExt=size(Fcutsc)-size(Fram);
|
||||
varExtPre=[((yLoc-0)-coord(1)) ((xLoc-0)-coord(2))];
|
||||
varExtPost=[(coord(3)-(yLoc+diaExt+1)) (coord(4)-(xLoc+diaExt+1))];
|
||||
% Fram=padarray(Fram,[expansion expansion],1,'pre');
|
||||
Fram=padarray(Fram,[varExtPre],1,'pre');
|
||||
Fram=padarray(Fram,[varExtPost],1,'post');
|
||||
% Fram=padarray(Fram,rem(varExt,2),1,'post');
|
||||
%Fram=padarray(Fram,floor((varExt-2)./2),1);
|
||||
end
|
||||
% Invert Image
|
||||
Fcutsc=double(Fcutsc) .* Fram;
|
||||
%Fcutsc=Fcutsc .* uint8(Fram);
|
||||
Fcutsc=uint8(Fcutsc);
|
||||
%Fcutsc=255 - (Fcutsc-Fbg);
|
||||
Fcutsc=(Fcutsc-Fbg);
|
||||
%Time series annotation**************************
|
||||
tmPtTx=[];
|
||||
tenths=(round(10*(Exp(expN).Dexp(DexpN).scan(plateNum).plate(1).tSeries(tPt)))) ./10;
|
||||
tmPtTx=strcat(num2str(tenths),'h');
|
||||
|
||||
% imwrite(Fcutsc,(fullfile(resDir,'Fotos',strcat('FScan',num2str(selScan),'_timePt-',num2str(tPt),'.jpg'))),'jpg');
|
||||
aCnt=aCnt+1;
|
||||
if aCnt==1 %||tPt==1
|
||||
EZvapendLabel
|
||||
Fstrip=vertcat(Fcutsc,Bspace);
|
||||
Hspace=zeros(size(Fstrip,1),4)+1200; %+255
|
||||
Fstrip=horzcat(Fstrip,Hspace);
|
||||
end
|
||||
makeVis=1;
|
||||
if aCnt>1
|
||||
EZvapendLabel
|
||||
vcat=vertcat(Fcutsc,Bspace);
|
||||
%Hspace=zeros(size(Fstrip,1),4)+255;
|
||||
Fstrip=horzcat(Fstrip,vcat,Hspace);
|
||||
end
|
||||
|
||||
% For Visualization Purposes only
|
||||
if makeVis==1
|
||||
% if aCnt==1,figure;end
|
||||
% resIm=uint8((double(BGsc) + OptmapOnesDbl) .* double(fullsc));
|
||||
% clear('OptmapOnesDbl')
|
||||
hfstrip=imagesc(Fcutsc); colormap(gray); %hfstrip=imshow(Fcutsc); colormap(gray); %hfscanIm=imagesc(Fcutsc); colormap(gray);
|
||||
ghandles.hfstrip=gcf;
|
||||
haxis=gca;
|
||||
title(strcat('Scan',num2str(plateNum),'->timePt-',num2str(tPt)));
|
||||
clf(hfstrip,'reset'); colormap(gray); %clf(hfscanIm,'reset'); colormap(gray);
|
||||
set(ghandles.hfstrip,'NumberTitle','off')
|
||||
end
|
||||
expLabel=strcat('->',char(fullfile(char(OLresDir),num2str(OLplateNum))))
|
||||
% catch
|
||||
% expLabel=strcat('->',char(fullfile(Exp(expN).Dexp(DexpN).ExpFoldr,num2str(plateNum))))
|
||||
if expN==1
|
||||
set(ghandles.hfstrip,'Name', strcat(char(get(ghandles.OLay1,'string')),expLabel)) %ghandles.hfIm %{'ExpOutmat'} %strcat('EASYconsole- ',char(resDir)))
|
||||
elseif expN==2
|
||||
set(ghandles.hfstrip,'Name', strcat(char(get(ghandles.OLay2,'string')),expLabel))
|
||||
elseif expN==3
|
||||
set(ghandles.hfstrip,'Name', strcat(char(get(ghandles.OLay3,'string')),expLabel))
|
||||
end
|
||||
%hgsave(fullfile(resDir,'Fotos',strcat('FScan',num2str(selScan),'_timePt-',num2str(tPt))));
|
||||
catch
|
||||
end
|
||||
end
|
||||
catch
|
||||
end
|
||||
|
||||
%figure(ghandles.hFstrip)
|
||||
imshow(Fstrip);
|
||||
%{
|
||||
%if tPt==tPtLength %length(tifFileLst)
|
||||
%imwrite(Fstrip,(fullfile(resDir,'Fotos',strcat('Fstrip','S',num2str(selScan),'P',num2str(F_Pnum),'r',num2str(F_Rusrnum),'c',num2str(F_Cusrnum),'.jpg'))),'jpg');
|
||||
F_name=strcat(fnamemod,'_Fstrip','.jpg');
|
||||
%dfname=(fullfile(resDir,'Fotos',char(F_name)));
|
||||
%delete(dfname); % imwrite nolonger overwrites ??why 14_0729
|
||||
imwrite(Fstrip,(fullfile(resDir,'Fotos',char(F_name))),'jpg','Quality',100);
|
||||
F_name=strcat(fnamemod,'_Fstrip','.tif');
|
||||
%dfname=(fullfile(resDir,'Fotos',char(F_name)));
|
||||
%delete(dfname); % imwrite nolonger overwrites ??why
|
||||
imwrite(Fstrip,(fullfile(resDir,'Fotos',char(F_name))),'tif');
|
||||
%end
|
||||
%}
|
||||
%[output_txt]=datatipp(obj,event_obj);
|
||||
%datacursormode off;
|
||||
%datacursormode on;
|
||||
%close(figure(hsafety))
|
||||
end
|
||||
|
||||
11
qhtcp-workflow/apps/matlab/ezview/EZtableRFdiag.m
Executable file
11
qhtcp-workflow/apps/matlab/ezview/EZtableRFdiag.m
Executable file
@@ -0,0 +1,11 @@
|
||||
% Create and display Reference data in a table
|
||||
global Exp
|
||||
DexpN=Exp(expN).DexpN;
|
||||
rnames=Exp(expN).Dexp(DexpN).RFrnames;
|
||||
data=Exp(expN).Dexp(DexpN).RFdata;
|
||||
cnames=[{'Median'},{'Mean'},{'STD'},{'Minimum'},{'Maximum'}];
|
||||
f=figure('Menubar','none','Position',[1000 100 640 750],...
|
||||
'Name',Exp(expN).Dexp(DexpN).ExpFoldr );
|
||||
t=uitable('Parent',f,'Data',data,'ColumnName',cnames,...
|
||||
'RowName',rnames,'Position',[20 20 620 730]);
|
||||
|
||||
199
qhtcp-workflow/apps/matlab/ezview/EZusrSelRefx.m
Executable file
199
qhtcp-workflow/apps/matlab/ezview/EZusrSelRefx.m
Executable file
@@ -0,0 +1,199 @@
|
||||
%EZusrSelRef
|
||||
|
||||
% User Select Reference Diaglog Box
|
||||
try
|
||||
if n==1 && ~exist('RF1scanN','var') && ~exist('RF2scanN','var') %change || &&
|
||||
%{
|
||||
prompt={'Enter Masterplate Number(s) of Your Reference GeneName spots:',...
|
||||
'Enter GeneName of Your Reference:'};
|
||||
rfMPstr=cell2mat(answer(1));
|
||||
rfMPcomas=strfind((cell2mat(answer(1))),',');
|
||||
n=0;
|
||||
if isempty(rfMPcomas)|| max(rfMPcomas)==length(rfMPstr)
|
||||
usrMPs=rfMPstr
|
||||
else
|
||||
for i=rfMPcomas,
|
||||
n=n+1
|
||||
usrMPs(n)=str2double(rfMPstr(i-1:i))
|
||||
if i==max(rfMPcomas)
|
||||
usrMPs(n+1)=str2double(rfMPstr(i:end))
|
||||
end
|
||||
end
|
||||
end
|
||||
usrMPs=answer(1);
|
||||
refGene=answer(2);
|
||||
%}
|
||||
prompt={'Enter GeneName to use as Reference:',...
|
||||
'Enter Specifics Term if used to futher specify Reference '}
|
||||
dlg_title='User Reference Input';
|
||||
num_lines=1;
|
||||
def={'None','Specifics Term'};
|
||||
answer=inputdlg(prompt,dlg_title,num_lines,def);
|
||||
rfGenestr=cell2mat(answer(1));
|
||||
rfSpec=cell2mat(answer(2));
|
||||
end
|
||||
|
||||
%try
|
||||
for mp=1:length(Exp(expN).Dexp(DexpN).MP)
|
||||
for ind384=1:384
|
||||
spN=spN+1;
|
||||
end
|
||||
%catch
|
||||
%end %try for user selected Reference routine
|
||||
end
|
||||
|
||||
% Disperse Reference Plates
|
||||
Exp(expN).Dexp(DexpN).RFmdPindx=[];
|
||||
Exp(expN).Dexp(DexpN).RFmdPpltN=[];
|
||||
if exist('drf','var') % ('RF1scanN','var')
|
||||
%Det. index of change from one MP to the next
|
||||
i=2;
|
||||
chgIndx(1)=1;
|
||||
for j=1:length(drf(:,3))
|
||||
if j>1
|
||||
if cell2mat(drf(j,3))~=cell2mat(drf((j-1),3)), chgIndx(i)=j; i=i+1; end
|
||||
end
|
||||
end
|
||||
chgIndx(length(chgIndx)+1)=length(drf)+1;
|
||||
uu=zeros(size(drf,1),4);
|
||||
uu(:,1:4)=cell2mat(drf(:,3:6))
|
||||
vv=zeros(length(drf),DMnum);
|
||||
dMPs=unique(cell2mat(drf(:,3)));
|
||||
%{
|
||||
for mm=1:MPnum
|
||||
nonZrfIndx.mp{mm,:}=drfPindx((find(drfPindx(:,mm))),mm);
|
||||
end
|
||||
|
||||
%}
|
||||
% nzValsG=zeros(DMnum,size(drf,1));
|
||||
% nzValsAcc=zeros(DMnum,384);
|
||||
for mm=1:length(dMPs) % length(chgIndx)
|
||||
for d=1:(DMnum)
|
||||
medianIndxDisp=[];
|
||||
NZrefIndxP=[];
|
||||
nonZeroValsP=[];
|
||||
medValLstDisp=[];
|
||||
rf1scNdisp=((dMPs(mm)-1)*DMnum)+(d);
|
||||
try % Determine the dispersed RFs median mean and std if such exist
|
||||
NZrefIndxP=drfPindx((find(drfPindx(:,dMPs(mm)))),dMPs(mm)); %find(Exp(expN).Dexp(DexpN).scan(rf1scNdisp).plate(1).CFout(drf(chgIndx(cI):chgIndx(cI+1)),5));
|
||||
% vv=Exp(expN).Dexp(DexpN).scan(rf1scNdisp).plate(1).CFout(NZrefIndxP,5);
|
||||
vv(chgIndx(mm):(chgIndx(mm+1)-1),d)=Exp(expN).Dexp(DexpN).scan(rf1scNdisp).plate(1).CFout(NZrefIndxP,5);
|
||||
nonZeroValsP=nonzeros(Exp(expN).Dexp(DexpN).scan(rf1scNdisp).plate(1).CFout(NZrefIndxP,5));
|
||||
std1Disp=std(nonZeroValsP);
|
||||
mean1Disp=mean(nonZeroValsP);
|
||||
minDisp=min(nonZeroValsP);
|
||||
maxDisp=max(nonZeroValsP);
|
||||
drfVals=Exp(expN).Dexp(DexpN).scan(rf1scNdisp).plate(1).CFout(NZrefIndxP,5);
|
||||
%nzValsAcc(mm).DM(d,:)=nonZeroValsP;
|
||||
%MEDIAN Determination for PLATES with Dispersed RFs
|
||||
%NZrefIndxP=NZrefIndxP %find(Exp(expN).Dexp(DexpN).scan(rf1scNdisp).plate(1).CFout(NZrefIndxP,5));
|
||||
if isempty(NZrefIndxP)
|
||||
nonZeroCntDisp=0
|
||||
medianIndxDisp=NZrefIndxP;
|
||||
else
|
||||
nonZeroCntDisp=length(NZrefIndxP);
|
||||
end
|
||||
if ~isempty(NZrefIndxP) && mod(nonZeroCntDisp,2)==0, medianIndxDisp=NZrefIndxP(1:nonZeroCntDisp-1); end
|
||||
if ~isempty(NZrefIndxP) && mod(nonZeroCntDisp,2)~=0, medianIndxDisp=NZrefIndxP; end
|
||||
if ~isempty(NZrefIndxP) && length(medianIndxDisp) > 3 %(.15*384) %To calc. a median, more than 15% of spots must be nonZero
|
||||
medValLstDisp=Exp(expN).Dexp(DexpN).scan(rf1scNdisp).plate(1).CFout(medianIndxDisp,5);
|
||||
%medValList1Disp{d}=medValLstDisp;
|
||||
mval1Disp=median(medValLstDisp); %mval1=median(Exp(expN).Dexp(DexpN).scan(RF1mps).plate(1).CFout(1:384,5)); %CFout(1:383,5));
|
||||
nonZeroMedPosIndx=find(mval1Disp==nonZeroValsP); %(Exp(expN).Dexp(DexpN).scan(rf1scNdisp).plate(1).CFout(NZrefIndxP,5))); %(nonZeroIndxDisp,5))); %((nonZrfIndx.mp{dMPs(mm),:}),5)));
|
||||
RFmd1posD=NZrefIndxP(nonZeroMedPosIndx); %drfPindx((RFmd1posIndx),dMPs(mm));
|
||||
RFmd1locD(1)=ceil(RFmd1posD/24); %calc r value
|
||||
RFmd1locD(2)=RFmd1posD - ((RFmd1locD(1)-1)*24); %calc c value
|
||||
lstindx=lstindx+1;
|
||||
lstindxOrf=lstindxOrf+1;
|
||||
aa(lstindx,1)={strcat('RF1mdP(',num2str(d),')')};
|
||||
aa(lstindx,2)={strcat(':',num2str(dMPs(mm)),':',num2str(RFmd1locD(1)),':',num2str(RFmd1locD(2)))};
|
||||
bb(lstindxOrf,1)={strcat('RF1mdP(',num2str(d),')')};
|
||||
bb(lstindxOrf,2)={strcat(':',num2str(dMPs(mm)),':',num2str(RFmd1locD(1)),':',num2str(RFmd1locD(2)))};
|
||||
Exp(expN).Dexp(DexpN).RFmdPLB(d,dMPs(mm))=strcat(aa(lstindx,1),aa(lstindx,2));
|
||||
Exp(expN).Dexp(DexpN).RFmdPindx(d,dMPs(mm))=RFmd1posD;
|
||||
Exp(expN).Dexp(DexpN).RFmdPpltN(d,dMPs(mm))=dMPs(mm); %This is a storage of the MasterPlate used NOT the ScanPlate? WeMight wish to store the ScanPlateNumber also???
|
||||
Exp(expN).Dexp(DexpN).RFmdPscanN(d,dMPs(mm))=rf1scNdisp;
|
||||
Exp(expN).Dexp(DexpN).RFmedianP(d,dMPs(mm))=mval1Disp;
|
||||
Exp(expN).Dexp(DexpN).stdP(d,dMPs(mm))=std1Disp;
|
||||
Exp(expN).Dexp(DexpN).meanP(d,dMPs(mm))=mean1Disp;
|
||||
Exp(expN).Dexp(DexpN).minP(d,dMPs(mm))=minDisp;
|
||||
Exp(expN).Dexp(DexpN).maxP(d,dMPs(mm))=maxDisp;
|
||||
else
|
||||
% Need to set L r K values to zeros or pick the first spot with zeros
|
||||
% Spot 1 could be other than zero as the median isn't calculated if fewer than some percent are nonzero
|
||||
medianCalcFailedD='To Few nonZero spots for valid median RF1 selection'
|
||||
firstZeroDindx=find(((Exp(expN).Dexp(DexpN).scan(rf1scNdisp).plate(1).CFout(NZrefIndxP,5))==0),1,'first');
|
||||
firstZeroD=drfPindx((firstZeroDindx),dMPs(mm));
|
||||
Exp(expN).Dexp(DexpN).RFmdPindx(d,dMPs(mm))=firstZeroD;
|
||||
Exp(expN).Dexp(DexpN).RFmdPpltN(d,dMPs(mm))=dMPs(mm); %RF1mp; %Is this supposed to be the MP number or the ScanPlate number???
|
||||
end
|
||||
catch
|
||||
medianCalcTryFailed1D='Failed! Failed! Ln565 {Dispersed RF1s} "try" But process continued with bogus Plate spot value!'
|
||||
try
|
||||
firstZeroindxD=find(vv((chgIndx(d):chgIndx(d+1)-1),5)==0,1,'first');
|
||||
firstZeroPindx=uu(firstZeroindxD,4);
|
||||
Exp(expN).Dexp(DexpN).RFmdPpltN(d,dMPs(mm))=dMPs(mm);
|
||||
Exp(expN).Dexp(DexpN).RFmdPindx(d,dMPs(mm))=firstZeroPindx;
|
||||
catch
|
||||
Exp(expN).Dexp(DexpN).RFmdPpltN(d,dMPs(mm))=dMPs(mm);
|
||||
Exp(expN).Dexp(DexpN).RFmdPindx(d,dMPs(mm))=384; %if crapout,Then use spot384 as default to keep going
|
||||
end
|
||||
try
|
||||
Exp(expN).Dexp(DexpN).RFmdPpltN=dMPs(mm);
|
||||
catch
|
||||
Exp(expN).Dexp(DexpN).RFmdPpltN=1; %This might keep from breaking BUT ???
|
||||
end
|
||||
end
|
||||
end % for d=0:DMnum
|
||||
end % for mm=1:length(dMPs)
|
||||
|
||||
% Calc. Global Mean, Std, And Median For Distributed References
|
||||
uu=horzcat(uu,vv);
|
||||
for d=1:DMnum
|
||||
medianIndxG=[];
|
||||
NZrfIndxG=[];
|
||||
minG=min(nonzeros(vv(:,d)));
|
||||
maxG=max(nonzeros(vv(:,d)));
|
||||
RFmeanG=mean(nonzeros(vv(:,d)));
|
||||
RFstdG=std(nonzeros(vv(:,d)));
|
||||
NZrfIndxG=find(nonzeros(vv(:,d)));
|
||||
|
||||
if isempty(RFmeanG)
|
||||
nonZeroCntD=0
|
||||
% medianIndxDisp=RFmeanG(d);
|
||||
else
|
||||
nonZeroCntD=length(nonzeros(vv(:,d)));
|
||||
end
|
||||
|
||||
% Calc. of median requires an odd number of indx items
|
||||
if ~isempty(NZrfIndxG) && mod(nonZeroCntD,2)==0, medianIndxD=NZrfIndxG(1:(size(NZrfIndxG,1)-1)); end
|
||||
if ~isempty(NZrfIndxG) && mod(nonZeroCntD,2)~=0, medianIndxD=NZrfIndxG(:); end
|
||||
if ~isempty(NZrfIndxG) && length(medianIndxD) > (.15*size(drf,1)) % To calc. a median, more than 15% of spots must be nonZero
|
||||
mvalsDG=median(vv(medianIndxD,d)); % (nonzeros(vv(:,d)));
|
||||
nzPosIndxDG=find(mvalsDG==vv(:,d));
|
||||
RFmdDGloc(d,1)=uu(nzPosIndxDG,1); % MP of distributedGlobal Median value
|
||||
RFmdDGloc(d,2)=uu(nzPosIndxDG,2); % calc r value
|
||||
RFmdDGloc(d,3)=uu(nzPosIndxDG,3); % calc c value
|
||||
lstindx=lstindx+1;
|
||||
lstindxOrf=lstindxOrf+1;
|
||||
aa(lstindx,1)={strcat('RF1mdG(',num2str(d),')')};
|
||||
aa(lstindx,2)={strcat(':',num2str(RFmdDGloc(d,1)),':',num2str(RFmdDGloc(d,2)),':',num2str(RFmdDGloc(d,3)))}; %,'std_',num2str(std2))};
|
||||
bb(lstindxOrf,1)={strcat('RF1mdG(',num2str(d),')')};
|
||||
bb(lstindxOrf,2)={strcat(':',num2str(RFmdDGloc(d,1)),':',num2str(RFmdDGloc(d,2)),':',num2str(RFmdDGloc(d,3)))}; %,'std_',num2str(std2))};
|
||||
|
||||
Exp(expN).Dexp(DexpN).RFmdGLB(d)=strcat(aa(lstindx,1),aa(lstindx,2));
|
||||
Exp(expN).Dexp(DexpN).RFmdGindx(d)=nzPosIndxDG;
|
||||
Exp(expN).Dexp(DexpN).RFmdGpltN(d)=RFmdDGloc(d,1);
|
||||
Exp(expN).Dexp(DexpN).RFmdGscanN(d)=uu(nzPosIndxDG,4);
|
||||
Exp(expN).Dexp(DexpN).RFmedianG(d)=mvalsDG;
|
||||
Exp(expN).Dexp(DexpN).RFminG(d)=minG;
|
||||
Exp(expN).Dexp(DexpN).RFmaxG(d)=maxG;
|
||||
Exp(expN).Dexp(DexpN).RFstdG(d)=RFstdG;
|
||||
Exp(expN).Dexp(DexpN).RFmeanG(d)=RFmeanG;
|
||||
end
|
||||
end
|
||||
end
|
||||
catch
|
||||
msg='Failed attempt to apply User Selected Reference'
|
||||
end
|
||||
|
||||
612
qhtcp-workflow/apps/matlab/ezview/EZvDatatip.m
Executable file
612
qhtcp-workflow/apps/matlab/ezview/EZvDatatip.m
Executable file
@@ -0,0 +1,612 @@
|
||||
% EZvDatatip 230802 attempting to fix for R2023a
|
||||
% Calls to EZdestComp.m EZmDayTrend.m
|
||||
|
||||
global ghandles
|
||||
global Exp
|
||||
global zonePB
|
||||
|
||||
RFcmpGFlg=0; %Test 180105 as it goes to EZmDayTrend.m
|
||||
lstBoxCmpFlg=0;
|
||||
curKey=get(gcf,'currentkey')
|
||||
htMapFg=0;
|
||||
|
||||
if ghandles.Iaxes1==get(htargetAxes,'Parent'),expN=1;
|
||||
elseif ghandles.Iaxes2==get(htargetAxes,'Parent'),expN=2;
|
||||
elseif ghandles.Iaxes3==get(htargetAxes,'Parent'),expN=3;
|
||||
elseif ghandles.OLaxes1==get(htargetAxes,'Parent'),OLay=1; expN=1; %zone=1; datacursormode off;
|
||||
elseif ghandles.OLaxes2==get(htargetAxes,'Parent'),OLay=2; expN=2; %zone=2; datacursormode off;
|
||||
elseif ghandles.OLaxes3==get(htargetAxes,'Parent'),OLay=3; expN=3; %zone=3; datacursormode off;
|
||||
elseif ghandles.HtMap1==get(htargetAxes,'Parent'),expN=1; htMapFg=1;
|
||||
elseif ghandles.HtMap2==get(htargetAxes,'Parent'),expN=2; htMapFg=1;
|
||||
elseif ghandles.HtMap3==get(htargetAxes,'Parent'),expN=3; htMapFg=1;
|
||||
else
|
||||
return
|
||||
end
|
||||
|
||||
if expN==1,DexpN=(get(ghandles.DN1,'value')); end
|
||||
if expN==2,DexpN=(get(ghandles.DN2,'value')); end
|
||||
if expN==3,DexpN=(get(ghandles.DN3,'value')); end
|
||||
|
||||
% Exp(expN).DexpN=DexpN;
|
||||
if strcmp(Exp(expN).DexpType,'single'), DexpN=1; end
|
||||
if exist('OLay','var'), clear ExpN; end
|
||||
if ~exist('OLay','var')
|
||||
try
|
||||
ImageSel=expN<4
|
||||
destPerMP=Exp(expN).Dexp(DexpN).destPerMP; %length(gS.DM1.drug);
|
||||
MPsel=Exp(expN).Dexp(DexpN).MPsel; %floor(get(handles.MPsldr1,'value'));
|
||||
pertSel=Exp(expN).Dexp(DexpN).pertSel; %floor(get(handles.DMsldr1,'value'));
|
||||
tPtSel=Exp(expN).Dexp(DexpN).tPtSel; %floor(get(handles.Tptsldr1,'value'));
|
||||
plateNum=Exp(expN).Dexp(DexpN).plateNum; %(MPsel1-1)*destPerMP1 + pertSel1;
|
||||
scan=Exp(expN).Dexp(DexpN).scan;
|
||||
MP=Exp(expN).Dexp(DexpN).MP;
|
||||
ptrPos=[cpos(1),cpos(2)]; %for VerticleImage
|
||||
if htMapFg==0 %Comes from spot image Iaxes
|
||||
try
|
||||
for m=1:24
|
||||
for n=1:16
|
||||
coord=Exp(expN).Dexp(DexpN).FexpScanSpots{plateNum}{m,n,tPtSel}; %replace {1} with {plateNum}
|
||||
if ptrPos(2)> coord(1) && ptrPos(2)< coord(3)
|
||||
if ptrPos(1)> coord(2) && ptrPos(1)<coord(4)
|
||||
picLoc1=[n,m];
|
||||
spotFrm=Exp(expN).Dexp(DexpN).FexpScanSpots{plateNum}{m,n,tPtSel}; %20160108
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
destcompMsg='GoodDataTip';
|
||||
catch
|
||||
destcompMsg='BadDataTip';
|
||||
m
|
||||
n
|
||||
end
|
||||
plateLoc=[(17-picLoc1(1)) picLoc1(2)];
|
||||
indx=(plateLoc(1)-1)*24+plateLoc(2);
|
||||
elseif htMapFg==1 %Comes from HeatMap image Haxes
|
||||
plateLoc=ptrPos;
|
||||
indx=(plateLoc(1)-1)*24+plateLoc(2);
|
||||
end
|
||||
Exp(expN).Dexp(DexpN).spotIndx=indx;
|
||||
K=scan(1,plateNum).plate(1).CFout(indx,3); Ks=num2str(K);
|
||||
r=scan(1,plateNum).plate(1).CFout(indx,4); rs=num2str(r);
|
||||
l=scan(1,plateNum).plate(1).CFout(indx,5); Ls=num2str(l);
|
||||
try Kstr=Ks(1:5); catch, Kstr=Ks(1:length(Ks)); end
|
||||
try rstr=rs(1:5); catch, rstr=rs(1:length(rs)); end
|
||||
try Lstr=Ls(1:5); catch, Lstr=Ls(1:length(Ls)); end
|
||||
Kl=scan(1,plateNum).plate(1).CFout(indx,7);
|
||||
Ku=scan(1,plateNum).plate(1).CFout(indx,8);
|
||||
rl=scan(1,plateNum).plate(1).CFout(indx,9);
|
||||
ru=scan(1,plateNum).plate(1).CFout(indx,10);
|
||||
lfast=scan(1,plateNum).plate(1).CFout(indx,11);
|
||||
lslow=scan(1,plateNum).plate(1).CFout(indx,12);
|
||||
t=1:200;
|
||||
clear g;
|
||||
|
||||
try
|
||||
g=K ./ (1 + exp(-r.* (t - l )));
|
||||
gSlow=Kl ./ (1 + exp(-rl.* (t - lslow )));
|
||||
gFast=Ku ./ (1 + exp(-ru.* (t - lfast )));
|
||||
if K==0||r==0||l==0, g(1:200)=1;gSlow(1:200)=1;gFast(1:200)=1;end
|
||||
tser=(scan(1,plateNum).plate(1).t0Series(:));
|
||||
rawData=scan(1,plateNum).plate(1).intens(indx,:)/scan(1,plateNum).plate(1).Ag(indx);
|
||||
if expN==1, plotAxes=ghandles.Paxes1; OLaxes=ghandles.OLaxes1;
|
||||
Exp(1).traceN=Exp(1).traceN+1;
|
||||
traceN=Exp(1).traceN;
|
||||
end
|
||||
if expN==2, plotAxes=ghandles.Paxes2; OLaxes=ghandles.OLaxes2;
|
||||
Exp(2).traceN=Exp(2).traceN+1;
|
||||
traceN=Exp(2).traceN;
|
||||
end
|
||||
if expN==3, plotAxes=ghandles.Paxes3; OLaxes=ghandles.OLaxes3;
|
||||
Exp(3).traceN=Exp(3).traceN+1;
|
||||
traceN=Exp(3).traceN;
|
||||
end
|
||||
plot(plotAxes,t,g);hold(plotAxes,'on');
|
||||
plot(plotAxes,tser,rawData,'g*');
|
||||
plot(plotAxes,t,gSlow,'y');plot(plotAxes,t,gFast,'r');
|
||||
hold(plotAxes,'off');
|
||||
try
|
||||
for i=1:length(Exp(expN).hOL(:)),set(Exp(expN).hOL(i),'color',[0 0 1]); end, catch, end %ZoneRelated
|
||||
if verLessThan('matlab','8.4')
|
||||
else % accomodate new matlab changes after 2014a fix 23_0807
|
||||
tempFig=figure;
|
||||
end
|
||||
|
||||
Exp(expN).hOL(traceN)=plot(OLaxes,t,g);hold on;
|
||||
set(Exp(expN).hOL(traceN),'color',[1 0 0])
|
||||
Exp(expN).hOLb(traceN)=plot(OLaxes,tser,rawData,'g*');
|
||||
% Added for Composite Plot utility [C] 170419
|
||||
Exp(expN).ll(traceN)=l; Exp(expN).rr(traceN)=r; Exp(expN).kk(traceN)=K;
|
||||
|
||||
if verLessThan('matlab','8.4')
|
||||
else % accomodate new matlab changes after 2014a fix update 23_0807
|
||||
close(tempFig)
|
||||
end
|
||||
catch
|
||||
%{
|
||||
g=K ./ (1 + exp(-r.* (t - l )));
|
||||
if K==0||r==0||l==0, g(1:200)=1;end
|
||||
tser=(scan(1,plateNum).plate(1).t0Series(:));
|
||||
rawData=scan(1,plateNum).plate(1).intens(indx,:)/scan(1,plateNum).plate(1).Ag(indx);
|
||||
plot(plotAxes, plot(t,g),hold on,plot(tser,rawData,'g*'),hold off);
|
||||
plot(OLaxes, plot(t,g),hold on,plot(tser,rawData,'g*');
|
||||
%}
|
||||
end
|
||||
% Get the DM agar description
|
||||
if expN==1,DMstr=char(get(ghandles.DM1,'string'));end
|
||||
if expN==2,DMstr=char(get(ghandles.DM2,'string'));end
|
||||
if expN==3,DMstr=char(get(ghandles.DM3,'string'));end
|
||||
|
||||
gene=MP(1,MPsel).genename{1,1}(indx); orf=MP(1,MPsel).orf{1,1}(indx);
|
||||
spec=MP(1,MPsel).specifics{1,1}(indx); % orfrep=MP(1,plateNum).orfRep{1,1}(indx);
|
||||
tPtStr=strcat('T=', num2str(scan(1,plateNum).plate(1).t0Series(tPtSel)));
|
||||
geneOrfstr=strcat(gene,'_',orf,'_','r',num2str(plateLoc(1)),'c',num2str(plateLoc(2)),'_',tPtStr);
|
||||
grfgenestr=strcat(gene,'_',orf,'_','r',num2str(plateLoc(1)),'c',num2str(plateLoc(2)));
|
||||
selGnOrf=grfgenestr; % added for EZdestComp.m and EZmDayTrend.m
|
||||
graphStr=strcat(grfgenestr,'_','L=',Lstr,'_','r=',rstr,'_','K=',Kstr);
|
||||
spotDescrip=strcat(graphStr,'->',DMstr);
|
||||
xp=char(Exp(expN).Dexp(DexpN).resDir);
|
||||
if ispc,
|
||||
slashPos=strfind(char(Exp(expN).Dexp(DexpN).resDir),'\');
|
||||
else
|
||||
slashPos=strfind(char(Exp(expN).Dexp(DexpN).resDir),'/');
|
||||
end
|
||||
|
||||
startPos=slashPos(length(slashPos)-2) +1;
|
||||
endPos=(slashPos(length(slashPos)) -1);
|
||||
expStr={xp(startPos:endPos)};
|
||||
|
||||
Exp(expN).hOLname(traceN)=spotDescrip; % ZoneRelated %graphStr; %ghandles.Exp(expN).hOLname(traceN)=graphStr;
|
||||
Exp(expN).hOLexpNm(traceN)=expStr; % ghandles.Exp(expN).hOLexpNm(traceN)=expStr;
|
||||
Exp(expN).hOLresDir(traceN)={Exp(expN).Dexp(DexpN).resDir};
|
||||
Exp(expN).hOLplateNum(traceN)=plateNum;
|
||||
|
||||
% traceData=vertcat(get(Exp(OLay).hOL(traceN),'XData'),get(ghandles.Exp(OLay).hOL(traceN),'YData'));
|
||||
if expN==1,set(ghandles.GeneOrfLoc1,'string',geneOrfstr);end % Displays the value.
|
||||
if expN==2,set(ghandles.GeneOrfLoc2,'string',geneOrfstr);end
|
||||
if expN==3,set(ghandles.GeneOrfLoc3,'string',geneOrfstr);end
|
||||
if expN==1,set(ghandles.graphStrLoc1,'string',spotDescrip);end % graphStr);end % Displays the value.
|
||||
if expN==2,set(ghandles.graphStrLoc2,'string',spotDescrip);end % graphStr);end
|
||||
if expN==3,set(ghandles.graphStrLoc3,'string',spotDescrip);end % graphStr);end
|
||||
|
||||
try
|
||||
if expN==1, %&& get(ghandles.rotPB1,'value')~=1
|
||||
try if length(char(Exp(expN).hOLname(traceN)))>40,set(ghandles.OLay1,'FontSize',8);end, catch end
|
||||
set(ghandles.OLay1,'string', Exp(expN).hOLname(traceN));
|
||||
try if length(char(Exp(expN).hOLexpNm(traceN)))>40,set(ghandles.OLexp1,'FontSize',8);end, catch end
|
||||
set(ghandles.OLexp1,'string',Exp(expN).hOLexpNm(traceN));
|
||||
end
|
||||
if expN==2 %&& get(ghandles.rotPB2,'value') ~=1
|
||||
try if length(char(Exp(expN).hOLname(traceN)))>40,set(ghandles.OLay2,'FontSize',8);end, catch end
|
||||
set(ghandles.OLay2,'string', Exp(expN).hOLname(traceN));
|
||||
try if length(char(Exp(expN).hOLexpNm(traceN)))>40,set(ghandles.OLexp2,'FontSize',8);end, catch end
|
||||
set(ghandles.OLexp2,'string',Exp(expN).hOLexpNm(traceN));
|
||||
end
|
||||
if expN==3 %&& get(ghandles.rotPB3,'value') ~=1
|
||||
try if length(char(Exp(expN).hOLname(traceN)))>40,set(ghandles.OLay3,'FontSize',8);end, catch end
|
||||
set(ghandles.OLay3,'string', Exp(expN).hOLname(traceN));
|
||||
try if length(char(Exp(expN).hOLexpNm(traceN)))>40,set(ghandles.OLexp3,'FontSize',8);end, catch end
|
||||
set(ghandles.OLexp3,'string',Exp(expN).hOLexpNm(traceN));
|
||||
end
|
||||
catch
|
||||
end
|
||||
|
||||
%{
|
||||
if expN==1
|
||||
zonesel=1;
|
||||
set(ghandles.zoneRad1,'value',1)
|
||||
set(ghandles.zoneRad2,'value',0)
|
||||
set(ghandles.zoneRad3,'value',0)
|
||||
orfLstSel=get(ghandles.GeneOrfTog,'value');
|
||||
if orfLstSel==1
|
||||
set(ghandles.listboxGnOrf,'string',Exp(1).Dexp(DexpN).srtOrfLst)
|
||||
else
|
||||
set(ghandles.listboxGnOrf,'string',Exp(1).Dexp(DexpN).srtGnLst)
|
||||
end
|
||||
end
|
||||
|
||||
if expN==2
|
||||
zonesel=2;
|
||||
set(ghandles.zoneRad2,'value',1)
|
||||
set(ghandles.zoneRad1,'value',0)
|
||||
set(ghandles.zoneRad3,'value',0)
|
||||
orfLstSel=get(ghandles.GeneOrfTog,'value');
|
||||
if orfLstSel==1
|
||||
set(ghandles.listboxGnOrf,'string',Exp(2).Dexp(DexpN).srtOrfLst)
|
||||
else
|
||||
set(ghandles.listboxGnOrf,'string',Exp(2).Dexp(DexpN).srtGnLst)
|
||||
end
|
||||
end
|
||||
|
||||
if expN==3
|
||||
zonesel=3;
|
||||
set(ghandles.zoneRad3,'value',1)
|
||||
set(ghandles.zoneRad2,'value',0)
|
||||
set(ghandles.zoneRad1,'value',0)
|
||||
orfLstSel=get(ghandles.GeneOrfTog,'value');
|
||||
if orfLstSel==1
|
||||
set(ghandles.listboxGnOrf,'string',Exp(3).Dexp(DexpN).srtOrfLst)
|
||||
else
|
||||
set(ghandles.listboxGnOrf,'string',Exp(3).Dexp(DexpN).srtGnLst)
|
||||
end
|
||||
end
|
||||
%}
|
||||
|
||||
% Zone PB set here as replacement for zonePB radio buttons 230815
|
||||
if expN==1
|
||||
zonesel=1;
|
||||
zonePB=expN;
|
||||
set(ghandles. zonePB1,'value',1)
|
||||
set(ghandles. zonePB2,'value',0)
|
||||
set(ghandles. zonePB3,'value',0)
|
||||
set(ghandles.zonePB1,'BackgroundColor',[1.0 0.6 0.6])
|
||||
set(ghandles.zonePB2,'BackgroundColor',[1.0 1.0 1.0])
|
||||
set(ghandles.zonePB3,'BackgroundColor',[1.0 1.0 1.0])
|
||||
orfLstSel=get(ghandles.GeneOrfTog,'value');
|
||||
if orfLstSel==1
|
||||
set(ghandles.listboxGnOrf,'string',Exp(1).Dexp(DexpN).srtOrfLst)
|
||||
else
|
||||
set(ghandles.listboxGnOrf,'string',Exp(1).Dexp(DexpN).srtGnLst)
|
||||
end
|
||||
end
|
||||
|
||||
if expN==2
|
||||
zonesel=2;
|
||||
zonePB=expN;
|
||||
set(ghandles. zonePB2,'value',1)
|
||||
set(ghandles. zonePB1,'value',0)
|
||||
set(ghandles. zonePB3,'value',0)
|
||||
set(ghandles.zonePB2,'BackgroundColor',[1.0 0.6 0.6])
|
||||
set(ghandles.zonePB1,'BackgroundColor',[1.0 1.0 1.0])
|
||||
set(ghandles.zonePB3,'BackgroundColor',[1.0 1.0 1.0])
|
||||
orfLstSel=get(ghandles.GeneOrfTog,'value');
|
||||
if orfLstSel==1
|
||||
set(ghandles.listboxGnOrf,'string',Exp(2).Dexp(DexpN).srtOrfLst)
|
||||
else
|
||||
set(ghandles.listboxGnOrf,'string',Exp(2).Dexp(DexpN).srtGnLst)
|
||||
end
|
||||
end
|
||||
|
||||
if expN==3
|
||||
zonesel=3;
|
||||
zonePB=expN;
|
||||
set(ghandles. zonePB3,'value',1)
|
||||
set(ghandles. zonePB2,'value',0)
|
||||
set(ghandles. zonePB1,'value',0)
|
||||
set(ghandles.zonePB3,'BackgroundColor',[1.0 0.6 0.6])
|
||||
set(ghandles.zonePB1,'BackgroundColor',[1.0 1.0 1.0])
|
||||
set(ghandles.zonePB2,'BackgroundColor',[1.0 1.0 1.0])
|
||||
orfLstSel=get(ghandles.GeneOrfTog,'value');
|
||||
if orfLstSel==1
|
||||
set(ghandles.listboxGnOrf,'string',Exp(3).Dexp(DexpN).srtOrfLst)
|
||||
else
|
||||
set(ghandles.listboxGnOrf,'string',Exp(3).Dexp(DexpN).srtGnLst)
|
||||
end
|
||||
end
|
||||
|
||||
Exp(expN).Trace(traceN).UsrGLB=geneOrfstr;
|
||||
Exp(expN).Trace(traceN).dmSel=pertSel;
|
||||
Exp(expN).Trace(traceN).DexpN=DexpN;
|
||||
Exp(expN).Trace(traceN).Dexp(DexpN).DM(pertSel).UsrLvals=l;
|
||||
Exp(expN).Trace(traceN).Dexp(DexpN).DM(pertSel).UsrKvals=K;
|
||||
Exp(expN).Trace(traceN).Dexp(DexpN).DM(pertSel).Usrrvals=r;
|
||||
catch
|
||||
msg='NotImage'
|
||||
end
|
||||
end
|
||||
% Write Selected Trace Info to OLAY header
|
||||
try
|
||||
OLayTest=OLay<4
|
||||
msg='OLay'
|
||||
% make all traces blue
|
||||
for i=1:length(Exp(OLay).hOL(:))
|
||||
try set(Exp(OLay).hOL(i),'color',[0 0 1]), catch end
|
||||
end
|
||||
|
||||
% if get(ghandles.rotPB1,'value')~=1,
|
||||
for i=1:length(Exp(OLay).hOL(:))
|
||||
htargetAxes
|
||||
Exp(OLay).hOL(i)
|
||||
if htargetAxes==Exp(OLay).hOL(i)
|
||||
if OLay==1 && get(ghandles.rotPB1,'value')~=1,
|
||||
set(htargetAxes,'color',[1 0 0])
|
||||
try if length(char(Exp(OLay).hOLname(i)))>40,set(ghandles.OLay1,'FontSize',8);end, catch, end
|
||||
set(ghandles.OLay1,'string', Exp(OLay).hOLname(i));
|
||||
traceLab=char(Exp(OLay).hOLname(i));
|
||||
try if length(char(Exp(OLay).hOLexpNm(i)))>40,set(ghandles.OLexp1,'FontSize',8);end, catch, end
|
||||
set(ghandles.OLexp1,'string',Exp(OLay).hOLexpNm(i));
|
||||
OLresDir=Exp(OLay).hOLresDir(i);
|
||||
Exp(OLay).hOLplateNum(i)=Exp(expN).Dexp(DexpN).plateNum %bug fix for OLay "chrono' RF_cmp( ) trend
|
||||
plateNum=Exp(expN).Dexp(DexpN).plateNum
|
||||
OLplateNum=Exp(OLay).hOLplateNum(i);
|
||||
seltraceN=i;
|
||||
end
|
||||
if OLay==2 && get(ghandles.rotPB2,'value') ~=1
|
||||
set(htargetAxes,'color',[1 0 0])
|
||||
try if length(char(Exp(OLay).hOLname(i)))>40,set(ghandles.OLay2,'FontSize',8);end, catch, end
|
||||
set(ghandles.OLay2,'string', Exp(OLay).hOLname(i));
|
||||
traceLab=char(Exp(OLay).hOLname(i));
|
||||
try if length(char(Exp(OLay).hOLexpNm(i)))>40,set(ghandles.OLexp2,'FontSize',8);end, catch, end
|
||||
set(ghandles.OLexp2,'string',Exp(OLay).hOLexpNm(i));
|
||||
OLresDir=Exp(OLay).hOLresDir(i);
|
||||
Exp(OLay).hOLplateNum(i)=Exp(expN).Dexp(DexpN).plateNum %bug fix for OLay "chrono' RF_cmp( ) trend
|
||||
plateNum=Exp(expN).Dexp(DexpN).plateNum
|
||||
OLplateNum=Exp(OLay).hOLplateNum(i);
|
||||
seltraceN=i;
|
||||
end
|
||||
if OLay==3 && get(ghandles.rotPB3,'value') ~=1
|
||||
set(htargetAxes,'color',[1 0 0])
|
||||
try if length(char(Exp(OLay).hOLname(i)))>40,set(ghandles.OLay3,'FontSize',8);end, catch, end
|
||||
set(ghandles.OLay3,'string', Exp(OLay).hOLname(i));
|
||||
traceLab=char(Exp(OLay).hOLname(i));
|
||||
try if length(char(Exp(OLay).hOLexpNm(i)))>40,set(ghandles.OLexp3,'FontSize',8);end, catch, end
|
||||
set(ghandles.OLexp3,'string',Exp(OLay).hOLexpNm(i));
|
||||
OLresDir=Exp(OLay).hOLresDir(i);
|
||||
Exp(OLay).hOLplateNum(i)=Exp(expN).Dexp(DexpN).plateNum %bug fix for OLay "chrono' RF_cmp( ) trend
|
||||
plateNum=Exp(expN).Dexp(DexpN).plateNum
|
||||
OLplateNum=Exp(OLay).hOLplateNum(i);
|
||||
seltraceN=i;
|
||||
end
|
||||
Exp(OLay).seltraceN=seltraceN;
|
||||
else
|
||||
msg='Cant Find trace'
|
||||
end
|
||||
end
|
||||
|
||||
% Extract row and col values from stored trace label for dest compare plots(EZdestComp)
|
||||
% if a RFcmp_ is selected Need alternate method.
|
||||
% if the Composite button is active, Need yet another method.
|
||||
try
|
||||
tracename=char(Exp(OLay).hOLname(seltraceN))
|
||||
pos_=strfind(tracename,'_')
|
||||
rxcy=tracename(pos_(2):pos_(3))
|
||||
cindx=strfind(rxcy,'c')
|
||||
rindx=strfind(rxcy,'r')
|
||||
LBr=str2num(rxcy((rindx+1):cindx-1))
|
||||
LBc=str2num(tracename((pos_(2)+cindx): pos_(3)-1))
|
||||
indx=((LBr-1)*24) +LBc
|
||||
grfgenestr=tracename(1:pos_(3)-1)
|
||||
scan=Exp(OLay).Dexp(DexpN).scan;
|
||||
EZdatatip=2;
|
||||
try
|
||||
tracename=char(Exp(OLay).hOLname(seltraceN))
|
||||
EZdatatip=2;
|
||||
catch
|
||||
end
|
||||
catch
|
||||
msg='Not from an OLay selected trace'
|
||||
end
|
||||
catch
|
||||
msg='Not in OLay frame-axis 0'
|
||||
end
|
||||
% Hide selected plot trace: rotPBx used for 'Hide'
|
||||
try
|
||||
OLayTest=OLay<4
|
||||
msg='OLay'
|
||||
OLay
|
||||
if get(ghandles.rotPB1,'value') ==1 && OLay==1,
|
||||
% make all traces blue
|
||||
for i=1:length(Exp(OLay).hOL(:))
|
||||
set(Exp(OLay).hOL(i),'color',[0 0 1])
|
||||
end
|
||||
for i=1:length(Exp(OLay).hOL(:))
|
||||
if htargetAxes==Exp(OLay).hOL(i)
|
||||
hidAx1traceN=i
|
||||
set(Exp(OLay).hOL(i),'Visible','off')
|
||||
set(Exp(OLay).hOLb(i),'Visible','off')
|
||||
for j=1:length(Exp(OLay).hOL(:))
|
||||
if isequal(get(Exp(OLay).hOL(j),'Visible'),'on'), maxhN=j; end
|
||||
end
|
||||
end
|
||||
if htargetAxes==Exp(OLay).hOL(i), break;end
|
||||
end
|
||||
set(Exp(OLay).hOL(maxhN),'color',[1 0 0]) %Set latest trace red
|
||||
set(Exp(OLay).hOLb(maxhN),'color',[0 1 0])
|
||||
if OLay==1
|
||||
try if length(char(Exp(OLay).hOLname(maxhN)))>40,set(ghandles.OLay1,'FontSize',8);end, catch, end
|
||||
set(ghandles.OLay1,'string', Exp(OLay).hOLname(maxhN));
|
||||
traceLab=char(Exp(OLay).hOLname(maxhN));
|
||||
try if length(char(Exp(OLay).hOLexpNm(maxhN)))>40,set(ghandles.OLexp1,'FontSize',8);end, catch, end
|
||||
set(ghandles.OLexp1,'string',Exp(OLay).hOLexpNm(maxhN));
|
||||
OLresDir=Exp(OLay).hOLresDir(maxhN);
|
||||
OLplateNum=Exp(OLay).hOLplateNum(maxhN);
|
||||
end
|
||||
end
|
||||
|
||||
% Hide
|
||||
if get(ghandles.rotPB2,'value')==1 && OLay==2, %
|
||||
for j=1:length(Exp(OLay).hOL(:)) %Set all traces blue
|
||||
try set(Exp(OLay).hOL(i),'color',[0 0 1]), catch, end
|
||||
end
|
||||
|
||||
for i=1:length(Exp(OLay).hOL(:))
|
||||
if htargetAxes==Exp(OLay).hOL(i)
|
||||
hidAx2traceN=i
|
||||
set(Exp(OLay).hOL(i),'Visible','off')
|
||||
set(Exp(OLay).hOLb(i),'Visible','off')
|
||||
for j=1:length(Exp(OLay).hOL(:))
|
||||
try if isequal(get(Exp(OLay).hOL(j),'Visible'),'on'), maxhN=j; end, catch end
|
||||
end
|
||||
end
|
||||
if htargetAxes==Exp(OLay).hOL(i), break;end
|
||||
end
|
||||
set(Exp(OLay).hOL(maxhN),'color',[1 0 0]) %Set latest trace red
|
||||
set(Exp(OLay).hOLb(maxhN),'color',[0 1 0])
|
||||
if OLay==2
|
||||
try if length(char(Exp(OLay).hOLname(maxhN)))>40,set(ghandles.OLay2,'FontSize',8);end, catch, end
|
||||
set(ghandles.OLay2,'string', Exp(OLay).hOLname(maxhN));
|
||||
traceLab=char(Exp(OLay).hOLname(maxhN));
|
||||
try if length(char(Exp(OLay).hOLexpNm(maxhN)))>40,set(ghandles.OLexp2,'FontSize',8);end, catch, end
|
||||
set(ghandles.OLexp2,'string',Exp(OLay).hOLexpNm(maxhN));
|
||||
OLresDir=Exp(OLay).hOLresDir(maxhN);
|
||||
OLplateNum=Exp(OLay).hOLplateNum(maxhN);
|
||||
end
|
||||
end
|
||||
|
||||
% Hide 3
|
||||
if get(ghandles.rotPB3,'value') ==1 && OLay==3,
|
||||
% make all traces blue
|
||||
for i=1:length(Exp(OLay).hOL(:))
|
||||
try set(Exp(OLay).hOL(i),'color',[0 0 1]), catch, end
|
||||
end
|
||||
for i=1:length(Exp(OLay).hOL(:))
|
||||
if htargetAxes==Exp(OLay).hOL(i)
|
||||
hidAx3traceN=i
|
||||
set(Exp(OLay).hOL(i),'Visible','off')
|
||||
set(Exp(OLay).hOLb(i),'Visible','off')
|
||||
for j=1:length(Exp(OLay).hOL(:))
|
||||
try if isequal(get(Exp(OLay).hOL(j),'Visible'),'on'), maxhN=j; end, catch, end
|
||||
end
|
||||
end
|
||||
if htargetAxes==Exp(OLay).hOL(i), break;end
|
||||
end
|
||||
set(Exp(OLay).hOL(maxhN),'color',[1 0 0]) %Set latest trace red
|
||||
set(Exp(OLay).hOLb(maxhN),'color',[0 1 0])
|
||||
if OLay==3
|
||||
try if length(char(Exp(OLay).hOLname(maxhN)))>40,set(ghandles.OLay3,'FontSize',8);end, catch, end
|
||||
set(ghandles.OLay3,'string', Exp(OLay).hOLname(maxhN));
|
||||
traceLab=char(Exp(OLay).hOLname(maxhN));
|
||||
try if length(char(Exp(OLay).hOLexpNm(maxhN)))>40,set(ghandles.OLexp3,'FontSize',8);end, catch, end
|
||||
set(ghandles.OLexp3,'string',Exp(OLay).hOLexpNm(maxhN));
|
||||
OLresDir=Exp(OLay).hOLresDir(maxhN);
|
||||
OLplateNum=Exp(OLay).hOLplateNum(maxhN);
|
||||
end
|
||||
end
|
||||
destcompMsg='Olay';
|
||||
catch
|
||||
msg='Not in OLay frame-axis 1'
|
||||
end
|
||||
|
||||
NoOLay=0;
|
||||
try
|
||||
OLay
|
||||
expN=OLay
|
||||
EZdatatip=2
|
||||
catch
|
||||
NoOLay=1;
|
||||
EZdatatip=1;
|
||||
end
|
||||
|
||||
if get(ghandles.spotTog,'value')==1 && NoOLay
|
||||
OLresDir=Exp(expN).Dexp(DexpN).resDir;
|
||||
OLplateNum=plateNum;
|
||||
imLoc=[picLoc1(2), picLoc1(1)];
|
||||
EZspotview(expN,DexpN, imLoc,OLresDir,OLplateNum,NoOLay)
|
||||
end
|
||||
|
||||
% GraphicPertibationComparison**15_821*OR Chrono Day Comparison
|
||||
if strcmpi(Exp(expN).DexpType,'single') ...
|
||||
|| strcmpi(Exp(expN).DexpType,'multi')
|
||||
EZdestComp
|
||||
elseif strcmpi(Exp(expN).DexpType,'chrono') ...
|
||||
&& length(Exp(expN).Dexp)>1
|
||||
EZmDayTrend
|
||||
end
|
||||
|
||||
% spotTog && ~Hide && Olay Capture spot location for spotview May need to
|
||||
% add DexpN BUT the OLresDir likely get spotview to where it needs to go.
|
||||
try
|
||||
if exist('OLay') %User clicked on an Overlay
|
||||
if get(ghandles.spotTog,'value')==1 && get(ghandles.rotPB1,'value') ~=1 && OLay<4
|
||||
msg='OLay with SpotTog On and Hide off'
|
||||
pos_=strfind(traceLab,'_')
|
||||
rcStr=traceLab(pos_(2)+1:pos_(3)-1)
|
||||
cPos=findstr(rcStr,'c');
|
||||
rUsr=str2num(rcStr(2:cPos-1));
|
||||
cUsr=str2num(rcStr(cPos+1:end));
|
||||
imLoc=[cUsr, (17-rUsr)]; %picLoc1 %transform horz user data to vert image for picLocation data
|
||||
OLresDir %=Exp(expN).hOLresDir(traceN);
|
||||
OLplateNum %=Exp(expN).hOLplateNum(traceN);
|
||||
EZspotview(expN, imLoc,OLresDir,OLplateNum,NoOLay)
|
||||
end
|
||||
end
|
||||
catch
|
||||
end
|
||||
[output_txt]=datatipp(obj,event_obj);
|
||||
|
||||
% HeatMap Text Field
|
||||
try
|
||||
ll=num2str(l);
|
||||
if length(ll)>5,htl=ll(1:5);else htl=ll;end
|
||||
catch
|
||||
htl=' ';
|
||||
end
|
||||
try
|
||||
kk=num2str(K);
|
||||
if length(kk)>5,htk=kk(1:5);else htk=kk;end
|
||||
catch
|
||||
htk=' ';
|
||||
end
|
||||
try
|
||||
rr=num2str(r);
|
||||
if length(rr)>5,htr=rr(1:5);else htr=rr;end
|
||||
catch
|
||||
htr=' ';
|
||||
end
|
||||
try
|
||||
n1=num2str(Exp(expN).HtMpIntN1(indx)); %num2str(Exp(expN).Dexp(DexpN).HtMpIntN1(indx));
|
||||
if length(n1)>5,N1=n1(1:5);else N1=n1; end
|
||||
htN1=strcat('_N1=',N1);
|
||||
catch
|
||||
htN1=' ';
|
||||
end
|
||||
|
||||
try
|
||||
n2=num2str(Exp(expN).HtMpIntN2(indx)); %num2str(Exp(expN).Dexp(DexpN).HtMpIntN2(indx));
|
||||
if length(n2)>5,N2=n2(1:5);else N2=n2; end
|
||||
htN2=strcat('_N2=',N2);
|
||||
catch
|
||||
htN2=' ';
|
||||
end
|
||||
if Exp(expN).htmapPBsel==1, htmapStr=strcat('K=',htk); end
|
||||
if Exp(expN).htmapPBsel==2, htmapStr=strcat('r=',htr); end
|
||||
|
||||
try
|
||||
if Exp(expN).htmapPBsel==0 || Exp(expN).htmapPBsel>2
|
||||
htmapStr=strcat('L=',htl, htN1,htN2)
|
||||
if expN==1,set(ghandles.HtMapVals1,'string',htmapStr);end
|
||||
if expN==2,set(ghandles.HtMapVals2,'string',htmapStr);end
|
||||
if expN==3,set(ghandles.HtMapVals3,'string',htmapStr);end
|
||||
end
|
||||
catch
|
||||
end
|
||||
|
||||
try
|
||||
if Exp(expN).htmapPBsel==1 || Exp(expN).htmapPBsel==2
|
||||
if expN==1,set(ghandles.HtMapVals1,'string',htmapStr);end
|
||||
if expN==2,set(ghandles.HtMapVals2,'string',htmapStr);end
|
||||
if expN==3,set(ghandles.HtMapVals3,'string',htmapStr);end
|
||||
end
|
||||
catch
|
||||
end
|
||||
|
||||
% datacursormode(gcf)
|
||||
% Test Area
|
||||
% Added 18_0105 to define RFcmpGFlg for EZmDayTrend.m when an Image spot
|
||||
% is clicked
|
||||
|
||||
tempLB=str2mat(selGnOrf)
|
||||
RFcmpGFlg=0;
|
||||
if isequal(tempLB(4:6),'cmp'), RFnum=str2double(tempLB(3));
|
||||
elseif isequal(tempLB(3:6),'cmpG'), RFcmpGFlg=1;
|
||||
elseif isequal(tempLB(3:6),'cmpP'), RFcmpGFlg=1; %I beleive handling will be the same as RFcmpG
|
||||
end
|
||||
|
||||
|
||||
%attemp to accomodate problems in newer Matlab which pops an unneccessay
|
||||
|
||||
%{
|
||||
if verLessThan('matlab','8.4') %)
|
||||
|
||||
else %accomodate new matlab changes after 2014a fix 2nd update 23_0227
|
||||
close(1)
|
||||
end
|
||||
%blank figure that the user has to minimize
|
||||
if verLessThan('matlab','8.4') %original work 23_0227 updated 23_0525 (8.4 changed to 8.3)
|
||||
|
||||
else %accomodate new matlab changes after 2014a fix 2nd update 23_0227
|
||||
clf
|
||||
end
|
||||
|
||||
%}
|
||||
|
||||
147
qhtcp-workflow/apps/matlab/ezview/EZvFigPrint.m
Executable file
147
qhtcp-workflow/apps/matlab/ezview/EZvFigPrint.m
Executable file
@@ -0,0 +1,147 @@
|
||||
% EZvFigPrint.m Called by [P} button to produce S curves for publication
|
||||
|
||||
global ghandles
|
||||
global Exp
|
||||
|
||||
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 get(ghandles.printOL1,'Value')==1,zone=1; end
|
||||
if get(ghandles.printOL2,'Value')==1,zone=2; end
|
||||
if get(ghandles.printOL3,'Value')==1,zone=3; end
|
||||
|
||||
semiLog=0;
|
||||
if isequal(get(ghandles.OLaxes1,'YScale'),'log'), semiLog=1;end
|
||||
if isequal(get(ghandles.OLaxes2,'YScale'),'log'), semiLog=1;end
|
||||
if isequal(get(ghandles.OLaxes3,'YScale'),'log'), semiLog=1;end
|
||||
clear legName tmp
|
||||
figure
|
||||
set(gcf,'OuterPosition',(get(0,'screensize')))
|
||||
|
||||
hn=0;
|
||||
if isequal(get(Exp(zone).hOL(1),'Visible'),'on')
|
||||
disphOLX(1)={get(Exp(zone).hOL(1),'XData')}
|
||||
disphOLY(1)={get(Exp(zone).hOL(1),'YData')}
|
||||
tmp(1)=strrep(Exp(zone).hOLname(1),'_','-')
|
||||
try
|
||||
disphOLbX(1)={get(Exp(zone).hOLb(1),'XData')}
|
||||
disphOLbY(1)={get(Exp(zone).hOLb(1),'YData')}
|
||||
catch end
|
||||
hn=hn+1
|
||||
notDup=1;
|
||||
end
|
||||
|
||||
notDup=0;
|
||||
for hN=2:length(Exp(zone).hOL)
|
||||
% Bounce-dupicate data removal
|
||||
for j=1:(hN-1)
|
||||
if isequal(Exp(zone).hOLname(hN), Exp(zone).hOLname(j))%&& ...
|
||||
% isequal(get(Exp(zone).hOL(hN),'Visible'),'on')
|
||||
notDup=0;
|
||||
break
|
||||
else
|
||||
notDup=1;
|
||||
end
|
||||
end
|
||||
if notDup==1
|
||||
if isequal(get(Exp(zone).hOL(hN),'Visible'),'on')
|
||||
hn=hn+1
|
||||
try
|
||||
disphOLX(hn)={get(Exp(zone).hOL(hN),'XData')};
|
||||
disphOLY(hn)={get(Exp(zone).hOL(hN),'YData')};
|
||||
tmp(hn)=strrep(Exp(zone).hOLname(hN),'_','-')
|
||||
try
|
||||
disphOLbX(hn)={get(Exp(zone).hOLb(hN),'XData')};
|
||||
disphOLbY(hn)={get(Exp(zone).hOLb(hN),'YData')};
|
||||
catch
|
||||
end
|
||||
tmp(hn)=strrep(Exp(zone).hOLname(hN),'_','-')
|
||||
catch ME
|
||||
disp(ME)
|
||||
display('error leading to line 59 catch')
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
for i=1:hn
|
||||
if semiLog==0
|
||||
hprint=plot(cell2mat(disphOLX(i)),cell2mat(disphOLY(i)))
|
||||
set(hprint,'linewidth',lnwidth) %0.5 then 1.5 now 6
|
||||
set(gca,'fontsize',axisFontSz) % 8 to 15 to 21
|
||||
linecolor(i)={get(hprint,'color')};
|
||||
else
|
||||
hprint=semilogy(cell2mat(disphOLX(i)),cell2mat(disphOLY(i)))
|
||||
set(hprint,'linewidth',lnwidth) %0.5 then 1.5 now 4.0
|
||||
set(gca,'fontsize',axisFontSz) % 8 to 15 to 21
|
||||
linecolor(i)={get(hprint,'color')};
|
||||
end
|
||||
hold all
|
||||
end
|
||||
|
||||
if Exp(zone).CompositPlot~=1 % Standard plot, Not a Composite Plot
|
||||
legName=tmp
|
||||
hleg=legend((legName),'location','NEO')
|
||||
set(hleg,'fontsize',legFontSz)
|
||||
try
|
||||
for i=1:hn
|
||||
if semiLog==0
|
||||
hprint=plot(cell2mat(disphOLbX(i)),cell2mat(disphOLbY(i)),'marker','+','markerEdgeColor',cell2mat(linecolor(i)),'markerSize',markerSz, 'linestyle','none')
|
||||
else
|
||||
hprint=semilogy(cell2mat(disphOLbX(i)),cell2mat(disphOLbY(i)),'marker','+','markerEdgeColor',cell2mat(linecolor(i)),'markerSize',markerSz, 'linestyle','none')
|
||||
end
|
||||
end
|
||||
catch
|
||||
end
|
||||
hold off
|
||||
% End of Standard Overlay Plot
|
||||
else % if Composite Plot
|
||||
for hcN=1:(Exp(zone).cTraceN -1)
|
||||
disphOLX(hcN)={get(Exp(zone).hCmean(hcN),'XData')};
|
||||
disphOLY(hcN)={get(Exp(zone).hCmean(hcN),'YData')};
|
||||
disphOLbX(hcN)={get(Exp(zone).hBound1(hcN),'XData')};
|
||||
disphOLbY(hcN)={get(Exp(zone).hBound1(hcN),'YData')};
|
||||
disphOLcX(hcN)={get(Exp(zone).hBound2(hcN),'XData')};
|
||||
disphOLcY(hcN)={get(Exp(zone).hBound2(hcN),'YData')};
|
||||
tmp(hcN)=(Exp(zone).cName(hcN))
|
||||
if semiLog==0
|
||||
hprint=plot(cell2mat(disphOLX(hcN)),cell2mat(disphOLY(hcN)))
|
||||
set(hprint,'linewidth',lnwidth) %0.5 then 1.5 now 6
|
||||
set(gca,'fontsize',axisFontSz) % 8 to 15 to 21
|
||||
linecolor(hcN)={get(hprint,'color')};
|
||||
else
|
||||
hprint=semilogy(cell2mat(disphOLX(hcN)),cell2mat(disphOLY(hcN)))
|
||||
set(hprint,'linewidth',lnwidth) %0.5 then 1.5 now 4.0
|
||||
set(gca,'fontsize',axisFontSz) % 8 to 15 to 21
|
||||
linecolor(hcN)={get(hprint,'color')};
|
||||
end
|
||||
hold all
|
||||
legName=tmp
|
||||
hleg=legend((legName),'location','NEO')
|
||||
set(hleg,'fontsize',legFontSz)
|
||||
%{
|
||||
for i=1:hn
|
||||
hprint=plot(cell2mat(disphOLbX(i)),cell2mat(disphOLbY(i)),'marker','+','markerEdgeColor',cell2mat(linecolor(i)),'markerSize',markerSz, 'linestyle','none')
|
||||
end
|
||||
%}
|
||||
end
|
||||
|
||||
for i=1:(Exp(zone).cTraceN -1)
|
||||
hBprint=plot(cell2mat(disphOLbX(i)),cell2mat(disphOLbY(i)))
|
||||
set(hBprint,'linewidth',.5) %lnwidth) %0.5 then 1.5 now 6
|
||||
set(hBprint,'color',linecolor{i})
|
||||
hCprint=plot(cell2mat(disphOLcX(i)),cell2mat(disphOLcY(i)))
|
||||
set(hCprint,'linewidth',0.5) %lnwidth) %0.5 then 1.5 now 6
|
||||
set(hBprint,'color',linecolor{i})
|
||||
end
|
||||
hold off
|
||||
end
|
||||
30
qhtcp-workflow/apps/matlab/ezview/EZvImagesOnly.m
Executable file
30
qhtcp-workflow/apps/matlab/ezview/EZvImagesOnly.m
Executable file
@@ -0,0 +1,30 @@
|
||||
% EZvImagesOnly
|
||||
asd=12
|
||||
dirLst=dir(ExpPath)
|
||||
for i=1:size(dirLst,1)
|
||||
if ~isempty(str2num(dirLst(i).name)) || ~isempty(strfind(dirLst(i).name,'Scan')) % && jpgOut==1
|
||||
scLst=fullfile(ExpPath,dirLst(i).name);
|
||||
for n=1:size(filelst,1)
|
||||
try
|
||||
if ~isempty(strfind(filelst(n).name,'bmp'))||~isempty(strfind(filelst(n).name,'tif'))
|
||||
tptImLst(n)=filelst(n).name;
|
||||
end
|
||||
catch
|
||||
end
|
||||
end
|
||||
tptLength=length(tptImLst);
|
||||
end
|
||||
scLength=length(scLst);
|
||||
end
|
||||
|
||||
I=imread(ExpOutImFile);
|
||||
expAxes=handles.Iaxes1;
|
||||
imshow(I)
|
||||
set(expAxes,'xtick',[],'ytick',[])
|
||||
expAxes=handles.Iaxes2;
|
||||
imshow(I)
|
||||
set(expAxes,'xtick',[],'ytick',[])
|
||||
expAxes=handles.Iaxes3;
|
||||
imshow(I)
|
||||
set(expAxes,'xtick',[],'ytick',[])
|
||||
|
||||
876
qhtcp-workflow/apps/matlab/ezview/EZvInitLoad.m
Executable file
876
qhtcp-workflow/apps/matlab/ezview/EZvInitLoad.m
Executable file
@@ -0,0 +1,876 @@
|
||||
% EZvInitLoad
|
||||
global Exp
|
||||
global Expaa
|
||||
global Expbb
|
||||
global userPars
|
||||
global scansDir
|
||||
global matFile
|
||||
global zonePB
|
||||
global mpdmFile
|
||||
global ghandles
|
||||
|
||||
% Initialize some variables from matlab
|
||||
ezPath=which(mfilename);
|
||||
[ezDir,ezFileName]=fileparts(ezPath);
|
||||
ezDir=fullfile(easyDir);
|
||||
[parentDir, ~]=fileparts(ezDir);
|
||||
parentDir=fullfile(parentDir);
|
||||
debug=1;
|
||||
if debug
|
||||
disp('Running in debug mode');
|
||||
disp('Initialized variables:');
|
||||
whos;
|
||||
end
|
||||
|
||||
fprintf('This script name: %s\n', ezFileName);
|
||||
|
||||
% Set scansDir (project scans directory) intelligently
|
||||
if exist('PROJECT_SCANS_DIR', 'var') && ~isempty(getenv('PROJECT_SCANS_DIR'))
|
||||
scansDir=fullfile(getenv('PROJECT_SCANS_DIR'));
|
||||
if exist(scansDir, 'dir')
|
||||
fprintf('Using scans directory: %s from environment variable PROJECT_SCANS_DIR\n', scansDir);
|
||||
disp('This usually indicates that we are in module mode');
|
||||
if ~exist('PROJECT', 'var') || isempty(getenv('PROJECT'))
|
||||
dirInfo=fileparts(scansDir);
|
||||
project=dirInfo.name;
|
||||
end
|
||||
else
|
||||
disp('WARNING: PROJECT_SCANS_DIR does not exist');
|
||||
end
|
||||
elseif exist('PROJECT', 'var') && ~isempty(getenv('PROJECT')) % for standalone mode
|
||||
% scansDir=fullfile(parentDir, '..', '..', 'scans', getenv('PROJECT') 'out', 'easy', getenv('PROJECT'));
|
||||
scansDir=fullfile(parentDir, '..', '..', 'scans', getenv('PROJECT'));
|
||||
project=getenv('PROJECT');
|
||||
fprintf('Using project path: %s from environment variable PROJECT\n', scansDir);
|
||||
disp('This usually indicates that we are in standalone mode');
|
||||
else
|
||||
% TODO Lots of this is hardcoded logic, this TODO is just a reminder to change this block
|
||||
% when changing EASY/EZdir and other variables in the parent script
|
||||
fprintf('WARNING: Running in standalone mode without PROJECT or PROJECT_SCANS_DIR environment variables (not recommended)\n');
|
||||
fprintf('Beginning parent scans directory search\n');
|
||||
dirsToScan={
|
||||
fullfile(parentDir, '..', '..', 'scans')
|
||||
fullfile(parentDir, '..', '..', 'ExpJobs')
|
||||
fullfile('mnt','data','scans')
|
||||
fullfile('mnt','data', 'ExpJobs')
|
||||
fullfile(parentDir, '..', '..', 'templates', 'scans-demo')
|
||||
};
|
||||
for i=1:length(dirsToScan)
|
||||
d=dirsToScan(i);
|
||||
d=char(d);
|
||||
if exist(d, 'dir')
|
||||
subDirs=dir(d);
|
||||
pattern='^\d{6}_.*_.*';
|
||||
matchedDirs={dirs(regexp(subDirs.name, pattern)).name};
|
||||
if ~isempty(matchedDirs)
|
||||
fprintf('Found a non-empty scans directory in our list: %s\n', char(d));
|
||||
fprintf('Setting scansDir to %s\n', char(d));
|
||||
scansDir=fullfile(d);
|
||||
end
|
||||
fprintf('Scanning inside %s for a project directory\n', char(d));
|
||||
sortedMatchedDirs=sortrows(matchedDirs);
|
||||
project=sortedMatchedDirs{1}; % select the latest dir (by date prefix)
|
||||
fprintf('Selected latest project directory %s\n', char(project));
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
% User sanity check and warning
|
||||
if exist('PROJECT_USER', 'var') && ~isempty(getenv('PROJECT_USER'))
|
||||
if ~equal(getenv('PROJECT_USER'), userName)
|
||||
disp("WARNING: PROJECT_USER does not match the current namespace");
|
||||
end
|
||||
end
|
||||
|
||||
% Allow module to override hardcoded default EZview directory
|
||||
if exist('EZVIEW_DIR','var') && ~isempty(getenv('EZVIEW_DIR'))
|
||||
EZVIEW_DIR=fullfile(getenv('EZVIEW_DIR'));
|
||||
if ~strcmp(ezDir, EZVIEW_DIR) % sanity check
|
||||
disp("WARNING: EZVIEW_DIR does not match this script's hardcoded EZview location");
|
||||
disp("This is probably OK but if strange beahvior arises, we'll need to fix it in code");
|
||||
ezDir=EZVIEW_DIR;
|
||||
end
|
||||
fprintf('Using EZview script directory: %s from environment variable EZVIEW_DIR\n', ezDir);
|
||||
else
|
||||
fprintf('Using EZview script directory: %s from hardcoded default\n', ezDir);
|
||||
end
|
||||
|
||||
% Allow module to override hardcoded default EASY directory
|
||||
if exist('EASY_DIR','var') && ~isempty(getenv('EASY_DIR'))
|
||||
EASY_DIR=fullfile(getenv('EASY_DIR'));
|
||||
if ~strcmp(easyDir, EASY_DIR) % sanity check
|
||||
disp("WARNING: EASY_DIR does not match this script's hardcoded EASY location");
|
||||
disp("This is probably OK but if strange beahvior arises, we'll need to fix it in code");
|
||||
easyDir=EASY_DIR;
|
||||
end
|
||||
fprintf('Using EASY script directory: %s from environment variable EASY_DIR\n', easyDir);
|
||||
else
|
||||
fprintf('Using EASY script directory: %s from hardcoded default\n', easyDir);
|
||||
end
|
||||
|
||||
userPars.BPdefault={'on','on','0.3','8','45','1000'};
|
||||
userPars.boxplotFlg=1;
|
||||
userPars.BPoutliers='On';
|
||||
userPars.BPnotch='On';
|
||||
userPars.BPlblShft=0.3;
|
||||
userPars.BPfontSz=8;
|
||||
userPars.BProt=45;
|
||||
userPars.Trenddefault={'1000'};
|
||||
userPars.kfiltLim=str2double(userPars.BPdefault(6));
|
||||
|
||||
try
|
||||
% Generate the Exp arrays
|
||||
numExps=3;
|
||||
for i=1:numExps
|
||||
Exp(i).cTraceN=0;
|
||||
Exp(i).cTraceIndx(1)=1;
|
||||
end
|
||||
Exp(1).CompositPlot=0;Exp(2).CompositPlot=0;Exp(3).CompositPlot=0;
|
||||
for i=1:numExps
|
||||
Exp(i).DexpType='single';
|
||||
Exp(i).DexpN=1;
|
||||
Exp(i).DexpLength=1;
|
||||
eval(['set(handles.DN' num2str(i) ', ''value'', 1);']); % MATLAB level unlocked
|
||||
end
|
||||
set(handles.GeneOrfTog,'value',0)
|
||||
try
|
||||
load('EZsgdInfo');
|
||||
catch
|
||||
disp('Fail to load EZsgdInfo file from code directory');
|
||||
end
|
||||
|
||||
Exp(numExps+1).SGDnum=SGDnum;
|
||||
Exp(numExps+1).SGDtext=SGDtext;
|
||||
Exp(numExps+1).SGDraw=SGDraw;
|
||||
Exp(numExps+1).interacPBsel=0;
|
||||
|
||||
% Big outer loop try catch to ln844 end ln868
|
||||
% try to use user selected 'ExpJobs' folder otherwise use a default
|
||||
% directory in the uigetfile to load the experiment .mat file.
|
||||
|
||||
try
|
||||
[matFile,scansDir]=uigetfile('.mat','Open Experiment folder and data storage .mat file name','MultiSelect','off')
|
||||
load (fullfile(Exp(1).Dexp(1).ExpFoldr,'MasterPlateFiles','MPDMmat.mat'))
|
||||
for i=1:numExps
|
||||
Exp(i).Dexp(1).DM=DM;
|
||||
Exp(i).Dexp(1).MP=MP;
|
||||
Exp(i).Dexp(1).scan=scan;
|
||||
Exp(i).cTraceIndx(1)=1;
|
||||
end
|
||||
|
||||
load(fullfile(resDir,'PTmats','NImParameters'))
|
||||
Exp(1).Dexp(1).ImParMat=ImParMat;
|
||||
Exp(2).Dexp(1).ImParMat=ImParMat;
|
||||
Exp(3).Dexp(1).ImParMat=ImParMat;
|
||||
|
||||
try
|
||||
load(fullfile(resDir,'Fotos','Coordinates'))
|
||||
load(fullfile(resDir,'Fotos','anlZones'))
|
||||
load(fullfile(resDir,'Fotos','BGatTpts'))
|
||||
for i=1:numExps
|
||||
Exp(i).Dexp(1).FexpScanSpots=FexpScanSpots;
|
||||
Exp(i).Dexp(1).FexpScanBMtp=FexpScanBMtp;
|
||||
Exp(i).Dexp(1).anlZoneRefs=anlZoneRefs;
|
||||
Exp(i).cTraceIndx(1)=1;
|
||||
end
|
||||
catch
|
||||
end
|
||||
|
||||
for i=1:numExps
|
||||
Exp(i).traceN=0; % ZoneRelated
|
||||
Exp(i).traceN=0;
|
||||
Exp(i).hOL=[];
|
||||
Exp(i).hOLb=[];
|
||||
Exp(i).hOLname={};
|
||||
Exp(i).hOLexpNm={};
|
||||
Exp(i).hOLresDir={}
|
||||
Exp(i).hOLplateNum=[];
|
||||
Exp(i).hOLresDir={};
|
||||
Exp(i).RFmd1indx=[];
|
||||
Exp(i).RFmd1pltN=[];
|
||||
Exp(i).RFmd2indx=[];
|
||||
Exp(i).RFmd2pltN=[];
|
||||
end
|
||||
|
||||
% default values for EZvFigPrint that meet JLH preferences
|
||||
Exp(4).plotPars={'4','36','10','5'};
|
||||
expN=1;
|
||||
|
||||
% Test for Bad MP cell array (usually 384 [NaN}'s)
|
||||
% replaced length(Exp(expN).Dexp(1).MP) with MPnum
|
||||
for mx=1:length(Exp(expN).Dexp(1).MP)
|
||||
try
|
||||
char((Exp(1).Dexp(1).MP(mx).genename{1}(384)))
|
||||
MPnum=mx;
|
||||
catch
|
||||
break
|
||||
end
|
||||
end
|
||||
|
||||
% MPnum=length(Exp(expN).Dexp(1).MP);
|
||||
set(handles.MPsldr1,'min',1,'max',MPnum)
|
||||
set(handles.MPsldr2,'min',1,'max',MPnum)
|
||||
set(handles.MPsldr3,'min',1,'max',MPnum)
|
||||
DMnum=length(Exp(expN).Dexp(1).DM.drug);
|
||||
set(handles.DMsldr1,'min',1,'max',DMnum) %DMnum,'value',1.01) %100,'value',1.01)
|
||||
set(handles.DMsldr2,'min',1,'max',DMnum)
|
||||
set(handles.DMsldr3,'min',1,'max',DMnum)
|
||||
tPtsSize=size(Exp(expN).Dexp(1).FexpScanBMtp{1,1},(3));
|
||||
set(handles.Tptsldr1,'min',1,'max',tPtsSize)
|
||||
set(handles.Tptsldr2,'min',1,'max',tPtsSize)
|
||||
set(handles.Tptsldr3,'min',1,'max',tPtsSize)
|
||||
set(handles.MPsldr1,'SliderStep',[1/MPnum 1/MPnum]); %[1/length(MP) 1/length(MP)])
|
||||
set(handles.DMsldr1,'SliderStep',[1/length(DM.drug) 1/length(DM.drug)]);
|
||||
set(handles.Tptsldr1,'SliderStep',[1/tPtsSize 1/tPtsSize]);
|
||||
set(handles.MPsldr2,'SliderStep',[1/MPnum 1/MPnum]);
|
||||
set(handles.DMsldr2,'SliderStep',[1/length(DM.drug) 1/length(DM.drug)]);
|
||||
set(handles.Tptsldr2,'SliderStep',[1/tPtsSize 1/tPtsSize]);
|
||||
set(handles.MPsldr3,'SliderStep',[1/MPnum 1/MPnum]);
|
||||
set(handles.DMsldr3,'SliderStep',[1/length(DM.drug) 1/length(DM.drug)]);
|
||||
set(handles.Tptsldr3,'SliderStep',[1/tPtsSize 1/tPtsSize]);
|
||||
|
||||
try
|
||||
xp=char(Exp(expN).Dexp(1).resDir);
|
||||
if ispc
|
||||
slashPos=strfind(char(Exp(expN).Dexp(1).resDir),'\');
|
||||
else
|
||||
slashPos=strfind(char(Exp(expN).Dexp(1).resDir),'/');
|
||||
end
|
||||
startPos=slashPos(length(slashPos)-1) +1;
|
||||
endPos=slashPos(length(slashPos)) -1;
|
||||
expStr=xp(startPos:endPos);
|
||||
set(handles.expName1,'string',expStr);
|
||||
set(handles.expName2,'string',expStr);
|
||||
set(handles.expName3,'string',expStr);
|
||||
catch
|
||||
cd(w)
|
||||
end %internal try xp=char(Exp(expN).Dexp(1).resDir); if ispc,...
|
||||
catch
|
||||
cd(w)
|
||||
msg='LOADing or Setup issue'
|
||||
% if no load, then Message try SelExp PB to reload or try and different experiment
|
||||
end
|
||||
|
||||
try
|
||||
DNLaxes1=handles.DNLaxes1; DNLaxes2=handles.DNLaxes2; DNLaxes3=handles.DNLaxes3;
|
||||
zeroCLn=zeros(1,DMnum);
|
||||
%Exp(expN).expLoadCnt(1)=1; %ZoneRelated
|
||||
Exp(1).hzeroCLn(1)=plot(DNLaxes1,zeroCLn,1:DMnum,'y'); try set(Exp(1).hzeroCLn,'visible','off'); catch ME, end
|
||||
Exp(2).hzeroCLn(1)=plot(DNLaxes2,zeroCLn,1:DMnum,'y'); try set(Exp(2).hzeroCLn,'visible','off'); catch ME, end
|
||||
Exp(3).hzeroCLn(1)=plot(DNLaxes3,zeroCLn,1:DMnum,'y'); try set(Exp(3).hzeroCLn,'visible','off'); catch ME, end
|
||||
Exp(1).expLoadCnt=1;
|
||||
Exp(2).expLoadCnt=1;
|
||||
Exp(3).expLoadCnt=1;
|
||||
catch ME
|
||||
ME.message,
|
||||
end
|
||||
|
||||
% Compile GeneList and OrfList
|
||||
% Sort and add the medians of Ref Plates if RF1,RF2 exist
|
||||
set(handles.listboxGnOrf,'string',{('Loading')})
|
||||
lstindx=0;
|
||||
lstindxOrf=0;
|
||||
spN=0;
|
||||
rfcnt=0;
|
||||
dRF1indx=0;
|
||||
RF1mp=[];
|
||||
RF2mp=[];
|
||||
for mp=1:MPnum %length(Exp(expN).Dexp(1).MP)
|
||||
RF1fullPlate=0;
|
||||
try RF1fullPlate=sum(ismember((Exp(expN).Dexp(1).MP(mp).genename{1}),'RF1'))==384; catch, mp, msg=strcat(num2str(mp),' genename ERROR'), end
|
||||
RF2fullPlate=0;
|
||||
try RF2fullPlate=sum(ismember((Exp(expN).Dexp(1).MP(mp).genename{1}),'RF2'))==384; catch, mp, msg=strcat(num2str(mp),' genename ERROR'), end
|
||||
for ind384=1:384
|
||||
spN=spN+1;
|
||||
try % temp find data error
|
||||
r=ceil(ind384/24);
|
||||
if rem(ind384,24)==0, c=24; else c=rem(ind384,24); end
|
||||
% Insert test for numeric in genename and orf if isnumeric
|
||||
% Correct common EXCEL problem of converting OCT1 into a date numeric
|
||||
if cell2mat(Exp(expN).Dexp(1).MP(mp).genename{1}(ind384))==38991,
|
||||
Exp(expN).Dexp(1).MP(mp).genename{1}(ind384)={'OCT1_'};
|
||||
% genename{1}(ind384) replace numeric with a space ' ' or something
|
||||
elseif isnumeric(cell2mat(Exp(expN).Dexp(1).MP(mp).genename{1}(ind384)))
|
||||
Exp(expN).Dexp(1).MP(mp).genename{1}(ind384)={' '};
|
||||
end
|
||||
% Check for full(384spot) Reference Plates (RF1 or/and RF2)
|
||||
RF1fullPlate=0;
|
||||
try RF1fullPlate=sum(ismember((Exp(expN).Dexp(1).MP(mp).genename{1}),'RF1'))==384; catch, mp, msg=strcat(num2str(mp),' genename ERROR'), end
|
||||
RF2fullPlate=0;
|
||||
try RF2fullPlate=sum(ismember((Exp(expN).Dexp(1).MP(mp).genename{1}),'RF2'))==384; catch, mp, msg=strcat(num2str(mp),' genename ERROR'), end
|
||||
|
||||
if isempty(regexpi(char((Exp(expN).Dexp(1).MP(mp).orf{1}(ind384))),'blank'))... %,'\<blank\>'
|
||||
&& ~isnumeric(Exp(expN).Dexp(1).MP(mp).orf{1}(ind384))...
|
||||
&& ~strcmpi((Exp(expN).Dexp(1).MP(mp).orf{1}(ind384)),' ')...
|
||||
&& ~strcmpi((Exp(expN).Dexp(1).MP(mp).orf{1}(ind384)),' ')...
|
||||
&& ~strcmpi((Exp(expN).Dexp(1).MP(mp).orf{1}(ind384)),'')...
|
||||
&& ~isempty((Exp(expN).Dexp(1).MP(mp).orf{1}(ind384)))...
|
||||
&& ~strcmpi((Exp(expN).Dexp(1).MP(mp).orf{1}(ind384)),'RF1')...
|
||||
&& ~strcmpi((Exp(expN).Dexp(1).MP(mp).orf{1}(ind384)),'RF2')...
|
||||
&& iscellstr((Exp(expN).Dexp(1).MP(mp).orf{1}(ind384))) % .genename{1}(ind384)))
|
||||
lstindxOrf=lstindxOrf+1;
|
||||
bb(lstindxOrf,1)=(Exp(expN).Dexp(1).MP(mp).orf{1}(ind384));
|
||||
bb(lstindxOrf,2)={strcat(':',num2str(mp),':',num2str(r),':',num2str(c))};
|
||||
bb(lstindxOrf,3)={mp};
|
||||
bb(lstindxOrf,4)={r};
|
||||
bb(lstindxOrf,5)={c};
|
||||
mutorfs(lstindxOrf)=spN; %16_0318 added for Interaction EZinteract
|
||||
end
|
||||
if isempty(regexpi(char((Exp(expN).Dexp(1).MP(mp).genename{1}(ind384))),'blank'))... %,'\<blank\>'
|
||||
&& ~isnumeric(Exp(expN).Dexp(1).MP(mp).genename{1}(ind384))...
|
||||
&& ~strcmpi((Exp(expN).Dexp(1).MP(mp).genename{1}(ind384)),' ')...
|
||||
&& ~strcmpi((Exp(expN).Dexp(1).MP(mp).genename{1}(ind384)),' ')...
|
||||
&& ~strcmpi((Exp(expN).Dexp(1).MP(mp).genename{1}(ind384)),'')...
|
||||
&& ~isempty((Exp(expN).Dexp(1).MP(mp).genename{1}(ind384)))...
|
||||
&& ~strcmpi((Exp(expN).Dexp(1).MP(mp).genename{1}(ind384)),'RF1')...
|
||||
&& ~strcmpi((Exp(expN).Dexp(1).MP(mp).genename{1}(ind384)),'RF2')...
|
||||
&& iscellstr((Exp(expN).Dexp(1).MP(mp).genename{1}(ind384)))
|
||||
lstindx=lstindx+1;
|
||||
aa(lstindx,1)=(Exp(expN).Dexp(1).MP(mp).genename{1}(ind384));
|
||||
aa(lstindx,2)={strcat(':',num2str(mp),':',num2str(r),':',num2str(c))};
|
||||
aa(lstindx,3)={mp};
|
||||
aa(lstindx,4)={r};
|
||||
aa(lstindx,5)={c};
|
||||
mutgenes(lstindx)=spN;
|
||||
% Exp(expN).Dexp(1).mutSpotIndx.woRFs(lstindx)=spN;
|
||||
elseif (RF1fullPlate==1 ... % sum(ismember((Exp(expN).Dexp(1).MP(mp).genename{1}),'RF1'))==384 || ...
|
||||
|| (length(unique(Exp(expN).Dexp(1).MP(mp).genename{1}(1:384))))==1 && mp==1 ) ... %(isequal((Exp(expN).Dexp(1).MP(mp).genename{1}(1:384)), (Exp(expN).Dexp(1).MP(mp).genename{1}(384:-1:1)))&& mp==1 )) && ...
|
||||
&& ~exist('RF1scanN','var')
|
||||
RF1mp=mp
|
||||
RF1scanN=(mp*DMnum)-(DMnum-1); %mp;
|
||||
rfcnt=rfcnt+1;
|
||||
RFs(spN:spN+383)=spN:spN+383;
|
||||
elseif (RF2fullPlate==1 ... %sum(ismember((Exp(expN).Dexp(1).MP(mp).genename{1}(ind384)),'RF2'))==384 ||...
|
||||
|| (length(unique(Exp(expN).Dexp(1).MP(mp).genename{1}(1:384))))==1 && mp==MPnum ) && ~exist('RF2scanN','var')
|
||||
rfcnt=rfcnt+1;
|
||||
RFs(spN:spN+383)=spN:spN+383;
|
||||
asdf=sparse(RFs);
|
||||
asd=find(asdf);
|
||||
RFs=asd;
|
||||
RF2mp=mp
|
||||
RF2scanN=(mp*DMnum)-(DMnum-1); %mp;
|
||||
elseif strcmpi((Exp(expN).Dexp(1).MP(mp).genename{1}(ind384)),'RF1') && (RF1fullPlate~=1)
|
||||
dRF1indx=dRF1indx+1;
|
||||
Exp(expN).Dexp(1).MP(mp).genename{1}(ind384)=strrep((Exp(expN).Dexp(1).MP(mp).genename{1}(ind384)),':',' ');
|
||||
drf(dRF1indx,1)=(Exp(expN).Dexp(1).MP(mp).genename{1}(ind384));
|
||||
drf(dRF1indx,2)={strcat(':',num2str(mp),':',num2str(r),':',num2str(c))};
|
||||
drf(dRF1indx,3)={mp}; drfMP(dRF1indx,mp)=mp;
|
||||
drf(dRF1indx,4)={r}; drfr(dRF1indx,mp)=r;
|
||||
drf(dRF1indx,5)={c}; drfc(dRF1indx,mp)=c;
|
||||
drf(dRF1indx,6)={ind384}; drfPindx(dRF1indx,mp)=ind384;
|
||||
end % if isempty(regexpi(char((Exp(expN).Dexp(1).MP(mp).genename{1}(ind384))),'blank'))...
|
||||
catch
|
||||
mp
|
||||
ind384
|
||||
msgBadGeneName=strcat('check genename at mp=',num2str(mp),' indx=',num2str(ind384))
|
||||
end
|
||||
end
|
||||
mp
|
||||
end
|
||||
|
||||
% Cover case if mutorfs RFs are labeled RF1 or RF2
|
||||
try
|
||||
Exp(1).Dexp(1).mutSpotIndx.wRFs=union(RFs, mutorfs);
|
||||
catch
|
||||
msg='No RFs Found in Exp! wRFs'
|
||||
Exp(1).Dexp(1).mutSpotIndx.wRFs=mutorfs;
|
||||
end
|
||||
try
|
||||
Exp(1).Dexp(1).mutSpotIndx.woRFs=setdiff(mutorfs,RFs);
|
||||
catch
|
||||
Exp(expN).Dexp(1).mutSpotIndx.woRFs=mutorfs;
|
||||
msg='No RFs Found in Exp! woRFs'
|
||||
end
|
||||
|
||||
Exp(2).Dexp(1).mutSpotIndx.wRFs=Exp(1).Dexp(1).mutSpotIndx.wRFs;
|
||||
Exp(2).Dexp(1).mutSpotIndx.woRFs=Exp(1).Dexp(1).mutSpotIndx.woRFs;
|
||||
Exp(3).Dexp(1).mutSpotIndx.wRFs=Exp(1).Dexp(1).mutSpotIndx.wRFs;
|
||||
Exp(3).Dexp(1).mutSpotIndx.woRFs=Exp(1).Dexp(1).mutSpotIndx.woRFs;
|
||||
Exp(1).Dexp(1).RFmd1indx=[]; Exp(2).Dexp(1).RFmd1indx=[]; Exp(3).Dexp(1).RFmd1indx=[];
|
||||
Exp(1).Dexp(1).RFmd1pltN=[]; Exp(2).Dexp(1).RFmd1pltN=[]; Exp(3).Dexp(1).RFmd1pltN=[];
|
||||
Exp(1).Dexp(1).RFmean=[]; Exp(2).Dexp(1).RFmean=[]; Exp(3).Dexp(1).RFmean=[];
|
||||
Exp(1).Dexp(1).RFmeanG=[]; Exp(2).Dexp(1).RFmeanG=[]; Exp(3).Dexp(1).RFmeanG=[];
|
||||
|
||||
if exist('RF1scanN','var')
|
||||
for d=0:(DMnum-1)
|
||||
medianIndx=[];
|
||||
nonZeroIndx=[];
|
||||
medValList=[];
|
||||
rf1scN=RF1scanN+d;
|
||||
|
||||
try %if RF1scanN doesn't exist this addition to list will be skipped
|
||||
nonZeroIndx=find(Exp(expN).Dexp(1).scan(rf1scN).plate(1).CFout(1:384,5));
|
||||
if isempty(nonZeroIndx)
|
||||
nonZeroCnt=0
|
||||
medianIndx=nonZeroIndx;
|
||||
else
|
||||
nonZeroCnt=length(nonZeroIndx);
|
||||
end
|
||||
if ~isempty(nonZeroIndx) && mod(nonZeroCnt,2)==0, medianIndx=nonZeroIndx(1:nonZeroCnt-1); end
|
||||
if ~isempty(nonZeroIndx) && mod(nonZeroCnt,2)~=0, medianIndx=nonZeroIndx; end
|
||||
clear medValLst
|
||||
clear kValLst
|
||||
clear rValLst
|
||||
if ~isempty(nonZeroIndx) && length(medianIndx) > (.15*384) % To calc. a median, more than 15% of spots must be nonZero
|
||||
medValLst=Exp(expN).Dexp(1).scan(rf1scN).plate(1).CFout(medianIndx,5);
|
||||
medValList1{d+1}=medValLst;
|
||||
min1=min(medValLst);
|
||||
max1=max(medValLst);
|
||||
std1=std(medValLst);
|
||||
mean1=mean(medValLst)
|
||||
kValLst=Exp(expN).Dexp(1).scan(rf1scN).plate(1).CFout(medianIndx,3); % For Ref Composite 17_1009
|
||||
rValLst=Exp(expN).Dexp(1).scan(rf1scN).plate(1).CFout(medianIndx,4); % For Ref Composite 17_1009
|
||||
mval1=median(medValLst); % (Exp(expN).Dexp(1).scan(RF1scanN).plate(1).CFout(383,5));
|
||||
RFmd1pos=find(mval1==(Exp(expN).Dexp(1).scan(rf1scN).plate(1).CFout(1:384,5)))
|
||||
RFmd1loc(1)=ceil(RFmd1pos/24); %calc r value
|
||||
RFmd1loc(2)=RFmd1pos - ((RFmd1loc(1)-1)*24); %calc c value
|
||||
lstindx=lstindx+1;
|
||||
lstindxOrf=lstindxOrf+1;
|
||||
aa(lstindx,1)={strcat('RF1md(',num2str(d+1),')')};
|
||||
aa(lstindx,2)={strcat(':',num2str(RF1mp),':',num2str(RFmd1loc(1)),':',num2str(RFmd1loc(2)))}; %,' std',num2str(std1))};
|
||||
bb(lstindxOrf,1)={strcat('RF1md(',num2str(d+1),')')};
|
||||
bb(lstindxOrf,2)={strcat(':',num2str(RF1mp),':',num2str(RFmd1loc(1)),':',num2str(RFmd1loc(2)))}; %,' std',num2str(std1))};
|
||||
% Composite Reference Amalgum Plot
|
||||
lstindx=lstindx+1;
|
||||
lstindxOrf=lstindxOrf+1;
|
||||
aa(lstindx,1)={strcat('RF1cmp(',num2str(d+1),')')};
|
||||
aa(lstindx,2)={''};
|
||||
bb(lstindxOrf,1)={strcat('RF1cmp(',num2str(d+1),')')};
|
||||
bb(lstindxOrf,2)={''};
|
||||
|
||||
Exp(1).Dexp(1).RFmd1LB(d+1)=strcat(aa(lstindx,1),aa(lstindx,2)); Exp(2).Dexp(1).RFmd1LB(d+1)=strcat(aa(lstindx,1),aa(lstindx,2)); Exp(3).Dexp(1).RFmd1LB(d+1)=strcat(aa(lstindx,1),aa(lstindx,2));
|
||||
Exp(1).Dexp(1).RFmd1indx(d+1)=RFmd1pos; Exp(2).Dexp(1).RFmd1indx(d+1)=RFmd1pos; Exp(3).Dexp(1).RFmd1indx(d+1)=RFmd1pos;
|
||||
Exp(1).Dexp(1).RFmd1pltN=RF1mp; Exp(2).Dexp(1).RFmd1pltN=RF1mp; Exp(3).Dexp(1).RFmd1pltN=RF1mp;
|
||||
Exp(1).Dexp(1).RFmd1val(d+1)=mval1; Exp(2).Dexp(1).RFmd1val(d+1)=mval1; Exp(3).Dexp(1).RFmd1val(d+1)=mval1;
|
||||
Exp(1).Dexp(1).mean1(d+1)=mean1; Exp(2).Dexp(1).mean1(d+1)=mean1; Exp(3).Dexp(1).mean1(d+1)=mean1;
|
||||
Exp(1).Dexp(1).std1(d+1)=std1; Exp(2).Dexp(1).std1(d+1)=std1; Exp(3).Dexp(1).std1(d+1)=std1;
|
||||
Exp(1).Dexp(1).min1(d+1)=min1; Exp(2).Dexp(1).min1(d+1)=min1; Exp(3).Dexp(1).min1(d+1)=min1;
|
||||
Exp(1).Dexp(1).max1(d+1)=max1; Exp(2).Dexp(1).max1(d+1)=max1; Exp(3).Dexp(1).max1(d+1)=max1;
|
||||
|
||||
for ic=1:3
|
||||
Exp(ic).Dexp(1).RFcmpL(1).dm(d+1).Lvals=medValLst; %17_1201 TrendOL
|
||||
Exp(ic).Dexp(1).RFcmpL(1).dm(d+1).med=median(medValLst); %For Ref Composite 17_1009
|
||||
Exp(ic).Dexp(1).RFcmpL(1).dm(d+1).mean=mean(medValLst); %For Ref Composite 17_1009
|
||||
Exp(ic).Dexp(1).RFcmpL(1).dm(d+1).std=std(medValLst); %For Ref Composite 17_1009
|
||||
Exp(ic).Dexp(1).RFcmpL(1).dm(d+1).min=min(medValLst); %For Ref Composite 17_1009
|
||||
Exp(ic).Dexp(1).RFcmpL(1).dm(d+1).max=max(medValLst); %For Ref Composite 17_1009
|
||||
|
||||
Exp(ic).Dexp(1).RFcmpK(1).dm(d+1).Kvals=kValLst; %17_1201 TrendOL
|
||||
Exp(ic).Dexp(1).RFcmpK(1).dm(d+1).mean=mean(kValLst); %For Ref Composite 17_1009
|
||||
Exp(ic).Dexp(1).RFcmpK(1).dm(d+1).med=median(kValLst); %For Ref Composite 17_1009
|
||||
Exp(ic).Dexp(1).RFcmpK(1).dm(d+1).std=std(kValLst); %For Ref Composite 17_1009
|
||||
Exp(ic).Dexp(1).RFcmpK(1).dm(d+1).min=min(kValLst); %For Ref Composite 17_1009
|
||||
Exp(ic).Dexp(1).RFcmpK(1).dm(d+1).max=max(kValLst); %For Ref Composite 17_1009
|
||||
|
||||
Exp(ic).Dexp(1).RFcmpr(1).dm(d+1).rvals=rValLst; %17_1201 TrendOL
|
||||
Exp(ic).Dexp(1).RFcmpr(1).dm(d+1).med=median(rValLst); %For Ref Composite 17_1009
|
||||
Exp(ic).Dexp(1).RFcmpr(1).dm(d+1).mean=mean(rValLst); %For Ref Composite 17_1009
|
||||
Exp(ic).Dexp(1).RFcmpr(1).dm(d+1).std=std(rValLst); %For Ref Composite 17_1009
|
||||
Exp(ic).Dexp(1).RFcmpr(1).dm(d+1).min=min(rValLst); %For Ref Composite 17_1009
|
||||
Exp(ic).Dexp(1).RFcmpr(1).dm(d+1).mean=max(rValLst); %For Ref Composite 17_1009
|
||||
end
|
||||
else
|
||||
% Pick the first spot with zeros
|
||||
medianCalcFailed='To Few nonZero spots for valid median RF1 selection'
|
||||
firstZero=find(((Exp(expN).Dexp(1).scan(rf1scN).plate(1).CFout(1:384,5))==0),1,'first')
|
||||
Exp(1).Dexp(1).RFmd1indx(d+1)=firstZero; Exp(2).Dexp(1).RFmd1indx(d+1)=firstZero; Exp(3).Dexp(1).RFmd1indx(d+1)=firstZero;
|
||||
Exp(1).Dexp(1).RFmd1pltN=RF1mp; Exp(2).Dexp(1).RFmd1pltN=RF1mp; Exp(3).Dexp(1).RFmd1pltN=RF1mp; %EZdestComp uses the masterplate number to get all the destPlates scanNumbers
|
||||
try, medValList1{d+1}=Exp(expN).Dexp(1).scan(rf1scN).plate(1).CFout(medianIndx,5); nonZeroCnt; catch end
|
||||
end
|
||||
catch
|
||||
medianCalcTryFailed1='Failed! Failed! But process continued with bogus P1ind384 spot value!'
|
||||
try
|
||||
firstZero=find(((Exp(expN).Dexp(1).scan(rf1scN).plate(1).CFout(1:384,5))==0),1,'first')
|
||||
Exp(1).Dexp(1).RFmd1indx(d+1)=firstZero; Exp(2).Dexp(1).RFmd1indx(d+1)=firstZero; Exp(3).Dexp(1).RFmd1indx(d+1)=firstZero;
|
||||
catch
|
||||
Exp(1).Dexp(1).RFmd1indx(d+1)=384; Exp(2).Dexp(1).RFmd1indx(d+1)=384; Exp(3).Dexp(1).RFmd1indx(d+1)=384; %if crapout,Then use spot384 as default to keep going
|
||||
end
|
||||
try
|
||||
Exp(1).Dexp(1).RFmd1pltN=RF1mp; Exp(2).Dexp(1).RFmd1pltN=RF1mp; Exp(3).Dexp(1).RFmd1pltN=RF1mp;
|
||||
catch
|
||||
catchissue='Ln334'
|
||||
Exp(1).Dexp(1).RFmd1pltN=1; Exp(2).Dexp(1).RFmd1pltN=1; Exp(3).Dexp(1).RFmd1pltN=1;
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Exp(1).Dexp(1).RFmd2indx=[]; Exp(2).Dexp(1).RFmd2indx=[]; Exp(3).Dexp(1).RFmd2indx=[];
|
||||
Exp(1).Dexp(1).RFmd2pltN=[]; Exp(2).Dexp(1).RFmd2pltN=[]; Exp(3).Dexp(1).RFmd2pltN=[];
|
||||
|
||||
if exist('RF2scanN','var')
|
||||
for d=0:(DMnum-1);
|
||||
medianIndx2=[];
|
||||
nonZeroIndx2=[];
|
||||
medValList2=[];
|
||||
rf2scN=RF2scanN+d;
|
||||
try % if RF2scanN doesn't exist this addition to list will be skipped
|
||||
nonZeroIndx2=find(Exp(expN).Dexp(1).scan(rf2scN).plate(1).CFout(1:384,5));
|
||||
if isempty(nonZeroIndx2)
|
||||
nonZeroCnt2=0
|
||||
medianIndx2=nonZeroIndx2;
|
||||
else
|
||||
nonZeroCnt2=length(nonZeroIndx2);
|
||||
end
|
||||
if ~isempty(nonZeroIndx2) && mod(nonZeroCnt2,2)==0, medianIndx2=nonZeroIndx2(1:nonZeroCnt2-1); end
|
||||
if ~isempty(nonZeroIndx2) && mod(nonZeroCnt2,2)~=0, medianIndx2=nonZeroIndx2; end
|
||||
clear medValLst2
|
||||
clear kValLst2
|
||||
clear rValLst2
|
||||
if ~isempty(nonZeroIndx2) && length(medianIndx2) > (.15*384) % to calc. a median, more than 15% of spots must be nonZero
|
||||
medValLst2=Exp(expN).Dexp(1).scan(rf2scN).plate(1).CFout(medianIndx2,5);
|
||||
medValList2{d+1}=medValLst2;
|
||||
min2=min(medValLst2);
|
||||
max2=max(medValLst2);
|
||||
std2=std(medValLst2)
|
||||
mean2=mean(medValLst2);
|
||||
kValLst2=Exp(expN).Dexp(1).scan(rf2scN).plate(1).CFout(medianIndx2,3); %For Ref Composite 17_1009
|
||||
rValLst2=Exp(expN).Dexp(1).scan(rf2scN).plate(1).CFout(medianIndx2,4); %For Ref Composite 17_1009
|
||||
mval2=median(medValLst2); %(Exp(expN).Dexp(1).scan(RF2scanN).plate(1).CFout(1:383,5));
|
||||
RFmd2pos=find(mval2==(Exp(expN).Dexp(1).scan(rf2scN).plate(1).CFout(1:384,5)));
|
||||
RFmd2loc(1)=ceil(RFmd2pos/24); %calc r value
|
||||
RFmd2loc(2)=RFmd2pos - ((RFmd2loc(1)-1)*24); %calc c value
|
||||
lstindx=lstindx+1;
|
||||
lstindxOrf=lstindxOrf+1;
|
||||
aa(lstindx,1)={strcat('RF2md(',num2str(d+1),')')}; %{'RF2md'};
|
||||
aa(lstindx,2)={strcat(':',num2str(RF2mp),':',num2str(RFmd2loc(1)),':',num2str(RFmd2loc(2)))}; %,' std~',num2str(std2))};
|
||||
bb(lstindxOrf,1)={strcat('RF2md(',num2str(d+1),')')}; %{'RF2md'};
|
||||
bb(lstindxOrf,2)={strcat(':',num2str(RF2mp),':',num2str(RFmd2loc(1)),':',num2str(RFmd2loc(2)))}; %,' std~',num2str(std2))};
|
||||
%Composite Reference Amalgum Plot (CRAP)
|
||||
lstindx=lstindx+1;
|
||||
lstindxOrf=lstindxOrf+1;
|
||||
aa(lstindx,1)={strcat('RF2cmp(',num2str(d+1),')')};
|
||||
aa(lstindx,2)={''};
|
||||
bb(lstindxOrf,1)={strcat('RF2cmp(',num2str(d+1),')')};
|
||||
bb(lstindxOrf,2)={''};
|
||||
Exp(1).Dexp(1).RFmd2LB(d+1)=strcat(aa(lstindx,1),aa(lstindx,2)); Exp(2).Dexp(1).RFmd2LB(d+1)=strcat(aa(lstindx,1),aa(lstindx,2)); Exp(3).Dexp(1).RFmd2LB(d+1)=strcat(aa(lstindx,1),aa(lstindx,2));
|
||||
Exp(1).Dexp(1).RFmd2indx(d+1)=RFmd2pos; Exp(2).Dexp(1).RFmd2indx(d+1)=RFmd2pos; Exp(3).Dexp(1).RFmd2indx(d+1)=RFmd2pos;
|
||||
Exp(1).Dexp(1).RFmd2pltN=RF2mp; Exp(2).Dexp(1).RFmd2pltN=RF2mp; Exp(3).Dexp(1).RFmd2pltN=RF2mp;
|
||||
Exp(1).Dexp(1).RFmd2val(d+1)=mval2; Exp(2).Dexp(1).RFmd2val(d+1)=mval2; Exp(3).Dexp(1).RFmd2val(d+1)=mval2;
|
||||
Exp(1).Dexp(1).mean2(d+1)=mean2; Exp(2).Dexp(1).mean2(d+1)=mean2; Exp(3).Dexp(1).mean2(d+1)=mean2;
|
||||
Exp(1).Dexp(1).std2(d+1)=std2; Exp(2).Dexp(1).std2(d+1)=std2; Exp(3).Dexp(1).std2(d+1)=std2;
|
||||
Exp(1).Dexp(1).min2(d+1)=min2; Exp(2).Dexp(1).min2(d+1)=min2; Exp(3).Dexp(1).min2(d+1)=min2;
|
||||
Exp(1).Dexp(1).max2(d+1)=max2; Exp(2).Dexp(1).max2(d+1)=max2; Exp(3).Dexp(1).max2(d+1)=max2;
|
||||
|
||||
for ic=1:3
|
||||
Exp(ic).Dexp(1).RFcmpL(2).dm(d+1).Lvals=medValLst2; %17_1201 TrendOL
|
||||
Exp(ic).Dexp(1).RFcmpL(2).dm(d+1).med=median(medValLst2); %For Ref Composite 17_1009
|
||||
Exp(ic).Dexp(1).RFcmpL(2).dm(d+1).mean=mean(medValLst2); %For Ref Composite 17_1009
|
||||
Exp(ic).Dexp(1).RFcmpL(2).dm(d+1).std=std(medValLst2); %For Ref Composite 17_1009
|
||||
Exp(ic).Dexp(1).RFcmpL(2).dm(d+1).min=min(medValLst2); %For Ref Composite 17_1009
|
||||
Exp(ic).Dexp(1).RFcmpL(2).dm(d+1).max=max(medValLst2); %For Ref Composite 17_1009
|
||||
|
||||
Exp(ic).Dexp(1).RFcmpK(2).dm(d+1).Kvals=kValLst2; %17_1201 TrendOL
|
||||
Exp(ic).Dexp(1).RFcmpK(2).dm(d+1).med=median(kValLst2); %For Ref Composite 17_1009
|
||||
Exp(ic).Dexp(1).RFcmpK(2).dm(d+1).mean=mean(kValLst2); %For Ref Composite 17_1009
|
||||
Exp(ic).Dexp(1).RFcmpK(2).dm(d+1).std=std(kValLst2); %For Ref Composite 17_1009
|
||||
Exp(ic).Dexp(1).RFcmpK(2).dm(d+1).min=min(kValLst2); %For Ref Composite 17_1009
|
||||
Exp(ic).Dexp(1).RFcmpK(2).dm(d+1).max=max(kValLst2); %For Ref Composite 17_1009
|
||||
|
||||
Exp(ic).Dexp(1).RFcmpr(2).dm(d+1).rvals=rValLst2; %17_1201 TrendOL
|
||||
Exp(ic).Dexp(1).RFcmpr(2).dm(d+1).med=median(rValLst2); %For Ref Composite 17_1009
|
||||
Exp(ic).Dexp(1).RFcmpr(2).dm(d+1).mean=mean(rValLst2); %For Ref Composite 17_1009
|
||||
Exp(ic).Dexp(1).RFcmpr(2).dm(d+1).std=std(rValLst2); %For Ref Composite 17_1009
|
||||
Exp(ic).Dexp(1).RFcmpr(2).dm(d+1).min=min(rValLst2); %For Ref Composite 17_1009
|
||||
Exp(ic).Dexp(1).RFcmpr(2).dm(d+1).max=max(rValLst); %For Ref Composite 17_1009
|
||||
end
|
||||
else
|
||||
% Pick the first spot with zeros
|
||||
% Use that position to satisfy and keep process OK
|
||||
medianCalcFailed2='To Few nonZero spots for valid median RF2 selection'
|
||||
firstZero2=find(((Exp(expN).Dexp(1).scan(rf2scN).plate(1).CFout(1:384,5))==0),1,'first')
|
||||
Exp(1).Dexp(1).RFmd2indx(d+1)=firstZero2; Exp(2).Dexp(1).RFmd2indx(d+1)=firstZero2; Exp(3).Dexp(1).RFmd2indx(d+1)=firstZero2;
|
||||
Exp(1).Dexp(1).RFmd2pltN=RF2mp; Exp(2).Dexp(1).RFmd2pltN=RF2mp; Exp(3).Dexp(1).RFmd2pltN=RF2mp;
|
||||
try
|
||||
medValList2{d+1}=Exp(expN).Dexp(1).scan(rf2scN).plate(1).CFout(medianIndx2,5);
|
||||
nonZeroCnt2;
|
||||
catch
|
||||
end
|
||||
end
|
||||
catch
|
||||
medianCalcTryFailed2='Failed! Failed! No RF1median But process continued with bogus P1ind384 spot value!'
|
||||
try
|
||||
firstZero2=find(((Exp(expN).Dexp(1).scan(rf2scN).plate(1).CFout(1:384,5))==0),1,'first')
|
||||
Exp(1).Dexp(1).RFmd2indx(d+1)=firstZero2; Exp(2).Dexp(1).RFmd2indx(d+1)=firstZero2; Exp(3).Dexp(1).RFmd2indx(d+1)=firstZero2;
|
||||
catch
|
||||
Exp(1).Dexp(1).RFmd2indx(d+1)=384; Exp(2).Dexp(1).RFmd2indx(d+1)=384; Exp(3).Dexp(1).RFmd2indx(d+1)=384; %if crapout,Then use spot384 as default to keep going
|
||||
end
|
||||
try
|
||||
Exp(1).Dexp(1).RFmd2pltN=RF2mp; Exp(2).Dexp(1).RFmd2pltN=RF2mp; Exp(3).Dexp(1).RFmd2pltN=RF2mp;
|
||||
catch
|
||||
Exp(1).Dexp(1).RFmd2pltN=1; Exp(2).Dexp(1).RFmd2pltN=1; Exp(3).Dexp(1).RFmd2pltN=1;
|
||||
end
|
||||
end % if RF2scanN doesn't exist this addition to list will be skipped
|
||||
RFcombValList=cat(1,medValList1{d+1},medValList2{d+1});
|
||||
Exp(1).Dexp(1).RFmean(d+1)=mean(RFcombValList);Exp(2).Dexp(1).RFmean(d+1)=mean(RFcombValList);Exp(3).Dexp(1).RFmean(d+1)=mean(RFcombValList);
|
||||
Exp(1).Dexp(1).RFstd(d+1)=std(RFcombValList);Exp(2).Dexp(1).RFstd(d+1)=std(RFcombValList);Exp(3).Dexp(1).RFstd(d+1)=std(RFcombValList);
|
||||
Exp(1).Dexp(1).RFmin(d+1)=min(RFcombValList);Exp(2).Dexp(1).RFmin(d+1)=min(RFcombValList);Exp(3).Dexp(1).RFmin(d+1)=min(RFcombValList);
|
||||
Exp(1).Dexp(1).RFmax(d+1)=max(RFcombValList);Exp(2).Dexp(1).RFmax(d+1)=max(RFcombValList);Exp(3).Dexp(1).RFmax(d+1)=max(RFcombValList);
|
||||
% TODO can delete the following redundant line of code
|
||||
Exp(2).Dexp(1).RFmean(d+1)=Exp(1).Dexp(1).RFmean(d+1); Exp(3).Dexp(1).RFmean(d+1)=Exp(1).Dexp(1).RFmean(d+1);
|
||||
end
|
||||
elseif exist('RF1scanN','var')
|
||||
Exp(1).Dexp(1).RFmean=Exp(1).Dexp(1).mean1; Exp(2).Dexp(1).RFmean=Exp(2).Dexp(1).mean1; Exp(3).Dexp(1).RFmean=Exp(3).Dexp(1).mean1;
|
||||
Exp(1).Dexp(1).RFstd=Exp(1).Dexp(1).std1; Exp(2).Dexp(1).RFstd=Exp(2).Dexp(1).std1; Exp(3).Dexp(1).RFstd=Exp(3).Dexp(1).std1;
|
||||
Exp(1).Dexp(1).RFmin=Exp(1).Dexp(1).min1; Exp(2).Dexp(1).RFmin=Exp(2).Dexp(1).min1; Exp(3).Dexp(1).RFmin=Exp(3).Dexp(1).min1;
|
||||
Exp(1).Dexp(1).RFmax=Exp(1).Dexp(1).max1; Exp(2).Dexp(1).RFmax=Exp(2).Dexp(1).max1; Exp(3).Dexp(1).RFmax=Exp(3).Dexp(1).max1;
|
||||
end
|
||||
|
||||
% DISPERSE REFERENCE PLATES
|
||||
Exp(expN).Dexp(1).RFmdPindx=[];
|
||||
Exp(expN).Dexp(1).RFmdPpltN=[];
|
||||
if exist('drf','var') % ('RF1scanN','var')
|
||||
% Det. index of change from one MP to the next
|
||||
i=2;
|
||||
chgIndx(1)=1;
|
||||
for j=1:length(drf(:,3))
|
||||
if j>1
|
||||
if cell2mat(drf(j,3))~=cell2mat(drf((j-1),3)), chgIndx(i)=j; i=i+1; end
|
||||
end
|
||||
end
|
||||
chgIndx(length(chgIndx)+1)=length(drf)+1;
|
||||
uu=zeros(size(drf,1),4);
|
||||
uu(:,1:4)=cell2mat(drf(:,3:6));
|
||||
vv=zeros(length(drf),DMnum);
|
||||
dMPs=unique(cell2mat(drf(:,3)));
|
||||
for mm=1:length(dMPs)
|
||||
for d=1:(DMnum)
|
||||
medianIndxDisp=[];
|
||||
NZrefIndxP=[];
|
||||
nonZeroValsP=[];
|
||||
medValLstDisp=[];
|
||||
rf1scNdisp=((dMPs(mm)-1)*DMnum)+(d);
|
||||
try % Determine the dispersed RFs median mean and std if such exist
|
||||
NZrefIndxP=drfPindx((find(drfPindx(:,dMPs(mm)))),dMPs(mm));
|
||||
vv(chgIndx(mm):(chgIndx(mm+1)-1),d)=Exp(expN).Dexp(1).scan(rf1scNdisp).plate(1).CFout(NZrefIndxP,5);
|
||||
% For Global Ref Composite 17_1009
|
||||
vvK(chgIndx(mm):(chgIndx(mm+1)-1),d)=Exp(expN).Dexp(1).scan(rf1scNdisp).plate(1).CFout(NZrefIndxP,3);
|
||||
vvr(chgIndx(mm):(chgIndx(mm+1)-1),d)=Exp(expN).Dexp(1).scan(rf1scNdisp).plate(1).CFout(NZrefIndxP,4);
|
||||
nonZeroValsP=nonzeros(Exp(expN).Dexp(1).scan(rf1scNdisp).plate(1).CFout(NZrefIndxP,5));
|
||||
minDisp=min(nonZeroValsP);
|
||||
maxDisp=max(nonZeroValsP);
|
||||
std1Disp=std(nonZeroValsP);
|
||||
mean1Disp=mean(nonZeroValsP);
|
||||
drfVals=Exp(expN).Dexp(1).scan(rf1scNdisp).plate(1).CFout(NZrefIndxP,5);
|
||||
%MEDIAN Determination for PLATES with Dispersed RFs
|
||||
if isempty(NZrefIndxP)
|
||||
nonZeroCntDisp=0
|
||||
medianIndxDisp=NZrefIndxP;
|
||||
else
|
||||
nonZeroCntDisp=length(NZrefIndxP);
|
||||
end
|
||||
if ~isempty(NZrefIndxP) && mod(nonZeroCntDisp,2)==0, medianIndxDisp=NZrefIndxP(1:nonZeroCntDisp-1); end
|
||||
if ~isempty(NZrefIndxP) && mod(nonZeroCntDisp,2)~=0, medianIndxDisp=NZrefIndxP; end
|
||||
if ~isempty(NZrefIndxP) && length(medianIndxDisp) > 3 %(.15*384) %To calc. a median, more than 15% of spots must be nonZero
|
||||
medValLstDisp=Exp(expN).Dexp(1).scan(rf1scNdisp).plate(1).CFout(medianIndxDisp,5);
|
||||
mval1Disp=median(medValLstDisp);
|
||||
nonZeroMedPosIndx=find(mval1Disp==nonZeroValsP);
|
||||
RFmd1posD=NZrefIndxP(nonZeroMedPosIndx);
|
||||
RFmd1locD(1)=ceil(RFmd1posD/24); %calc r value
|
||||
RFmd1locD(2)=RFmd1posD - ((RFmd1locD(1)-1)*24); %calc c value
|
||||
lstindx=lstindx+1;
|
||||
lstindxOrf=lstindxOrf+1;
|
||||
aa(lstindx,1)={strcat('RF1mdP(',num2str(d),')')}; %{'RF1md'};
|
||||
aa(lstindx,2)={strcat(':',num2str(dMPs(mm)),':',num2str(RFmd1locD(1)),':',num2str(RFmd1locD(2)))}; %,'std_',num2str(std1))};
|
||||
bb(lstindxOrf,1)={strcat('RF1mdP(',num2str(d),')')}; %{'RF1md'};
|
||||
bb(lstindxOrf,2)={strcat(':',num2str(dMPs(mm)),':',num2str(RFmd1locD(1)),':',num2str(RFmd1locD(2)))}; %,'std_',num2str(std1))};
|
||||
Exp(1).Dexp(1).RFmdPLB(d,dMPs(mm))=strcat(aa(lstindx,1),aa(lstindx,2)); Exp(2).Dexp(1).RFmdPLB(d,dMPs(mm))=strcat(aa(lstindx,1),aa(lstindx,2)); Exp(3).Dexp(1).RFmdPLB(d,dMPs(mm))=strcat(aa(lstindx,1),aa(lstindx,2));
|
||||
Exp(1).Dexp(1).RFmdPindx(d,dMPs(mm))=RFmd1posD; Exp(2).Dexp(1).RFmdPindx(d,dMPs(mm))=RFmd1posD; Exp(3).Dexp(1).RFmdPindx(d,dMPs(mm))=RFmd1posD;
|
||||
Exp(1).Dexp(1).RFmdPpltN(d,dMPs(mm))=dMPs(mm); Exp(2).Dexp(1).RFmdPpltN(d,dMPs(mm))=dMPs(mm); Exp(3).Dexp(1).RFmdPpltN(d,dMPs(mm))=dMPs(mm);
|
||||
Exp(1).Dexp(1).RFmedianP(d,dMPs(mm))=mval1Disp; Exp(2).Dexp(1).RFmedianP(d,dMPs(mm))=mval1Disp; Exp(3).Dexp(1).RFmedianP(d,dMPs(mm))=mval1Disp;
|
||||
Exp(1).Dexp(1).meanP(d,dMPs(mm))=mean1Disp; Exp(2).Dexp(1).meanP(d,dMPs(mm))=mean1Disp; Exp(3).Dexp(1).meanP(d,dMPs(mm))=mean1Disp;
|
||||
Exp(1).Dexp(1).stdP(d,dMPs(mm))=std1Disp; Exp(2).Dexp(1).stdP(d,dMPs(mm))=std1Disp; Exp(3).Dexp(1).stdP(d,dMPs(mm))=std1Disp;
|
||||
Exp(1).Dexp(1).minP(d,dMPs(mm))=minDisp; Exp(2).Dexp(1).minP(d,dMPs(mm))=minDisp; Exp(3).Dexp(1).minP(d,dMPs(mm))=minDisp;
|
||||
Exp(1).Dexp(1).maxP(d,dMPs(mm))=maxDisp; Exp(2).Dexp(1).maxP(d,dMPs(mm))=maxDisp; Exp(3).Dexp(1).maxP(d,dMPs(mm))=maxDisp;
|
||||
else
|
||||
% Need to set L r K values to zeros or pick the first spot with zeros
|
||||
% Spot 1 could be other than zero as the median isn't calculated if fewer than some percent are nonzero
|
||||
medianCalcFailedD='To Few nonZero spots for valid median RF1 selection'
|
||||
firstZeroDindx=find(((Exp(expN).Dexp(1).scan(rf1scNdisp).plate(1).CFout(NZrefIndxP,5))==0),1,'first');
|
||||
firstZeroD=drfPindx((firstZeroDindx),dMPs(mm));
|
||||
Exp(expN).Dexp(1).RFmdPindx(d,dMPs(mm))=firstZeroD;
|
||||
Exp(expN).Dexp(1).RFmdPpltN(d,dMPs(mm))=dMPs(mm); %RF1mp; %Is this supposed to be the MP number or the ScanPlate number???
|
||||
end
|
||||
catch
|
||||
medianCalcTryFailed1D='Failed! Failed! Ln565 {Dispersed RF1s} "try" But process continued with bogus Plate spot value!'
|
||||
try
|
||||
firstZeroindxD=find(vv((chgIndx(d):chgIndx(d+1)-1),5)==0,1,'first')
|
||||
firstZeroPindx=uu(firstZeroindxD,4);
|
||||
Exp(expN).Dexp(1).RFmdPpltN(d,dMPs(mm))=dMPs(mm);
|
||||
Exp(expN).Dexp(1).RFmdPindx(d,dMPs(mm))=firstZeroPindx;
|
||||
catch
|
||||
catchissue='try at Ln565'
|
||||
Exp(expN).Dexp(1).RFmdPpltN(d,dMPs(mm))=dMPs(mm);
|
||||
Exp(expN).Dexp(1).RFmdPindx(d,dMPs(mm))=384; % if crapout,Then use spot384 as default to keep going
|
||||
end
|
||||
try
|
||||
Exp(expN).Dexp(1).RFmdPpltN=dMPs(mm);
|
||||
catch
|
||||
catchissue='Ln'
|
||||
Exp(expN).Dexp(1).RFmdPpltN=1; %This might keep from breaking BUT ???
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
% Calc. Global Mean, Std, And Median For Distributed References
|
||||
uu=horzcat(uu,vv);
|
||||
for d=1:DMnum
|
||||
medianIndxD=[];
|
||||
NZrfIndxG=[];
|
||||
minG=min(nonzeros(vv(:,d)));
|
||||
maxG=max(nonzeros(vv(:,d)));
|
||||
RFmeanG=mean(nonzeros(vv(:,d)));
|
||||
RFstdG=std(nonzeros(vv(:,d)));
|
||||
NZrfIndxG=find(vv(:,d)); % find(nonzeros(vv(:,d))); WWRONG FOR A WHILE! find(nonzeros(vv(:,d)));
|
||||
if isempty(RFmeanG)
|
||||
nonZeroCntD=0;
|
||||
else
|
||||
nonZeroCntD=length(nonzeros(vv(:,d)));
|
||||
end
|
||||
% Calc. of median requires an odd number of indx items
|
||||
if ~isempty(NZrfIndxG) && mod(nonZeroCntD,2)==0, medianIndxD=NZrfIndxG(1:(size(NZrfIndxG,1)-1)); end
|
||||
if ~isempty(NZrfIndxG) && mod(nonZeroCntD,2)~=0, medianIndxD=NZrfIndxG(:); end
|
||||
if ~isempty(NZrfIndxG) && length(medianIndxD) > (.15*size(drf,1)) % To calc. a median, more than 15% of spots must be nonZero
|
||||
mvalsDG=median(vv(medianIndxD,d)); % (nonzeros(vv(:,d)));
|
||||
nzPosIndxDG=find(mvalsDG==vv(:,d));
|
||||
RFmdDGloc(d,1)=uu(nzPosIndxDG,1); % MP of distributedGlobal Median value
|
||||
RFmdDGloc(d,2)=uu(nzPosIndxDG,2); % calc r value
|
||||
RFmdDGloc(d,3)=uu(nzPosIndxDG,3); % calc c value
|
||||
lstindx=lstindx+1;
|
||||
lstindxOrf=lstindxOrf+1;
|
||||
aa(lstindx,1)={strcat('RF1mdG(',num2str(d),')')};
|
||||
aa(lstindx,2)={strcat(':',num2str(RFmdDGloc(d,1)),':',num2str(RFmdDGloc(d,2)),':',num2str(RFmdDGloc(d,3)))}; %,'std_',num2str(std2))};
|
||||
bb(lstindxOrf,1)={strcat('RF1mdG(',num2str(d),')')};
|
||||
bb(lstindxOrf,2)={strcat(':',num2str(RFmdDGloc(d,1)),':',num2str(RFmdDGloc(d,2)),':',num2str(RFmdDGloc(d,3)))}; %,'std_',num2str(std2))};
|
||||
% Composite Reference Amalgum Plot
|
||||
lstindx=lstindx+1;
|
||||
lstindxOrf=lstindxOrf+1;
|
||||
aa(lstindx,1)={strcat('RFcmpG(',num2str(d),')')};
|
||||
aa(lstindx,2)={''};
|
||||
bb(lstindxOrf,1)={strcat('RFcmpG(',num2str(d),')')};
|
||||
bb(lstindxOrf,2)={''};
|
||||
Exp(1).Dexp(1).RFmdGLB(d)=strcat(aa(lstindx,1),aa(lstindx,2)); Exp(2).Dexp(1).RFmdGLB(d)=strcat(aa(lstindx,1),aa(lstindx,2)); Exp(3).Dexp(1).RFmdGLB(d)=strcat(aa(lstindx,1),aa(lstindx,2));
|
||||
Exp(1).Dexp(1).RFmdGindx(d)=nzPosIndxDG; Exp(2).Dexp(1).RFmdGindx(d)=nzPosIndxDG; Exp(3).Dexp(1).RFmdGindx(d)=nzPosIndxDG;
|
||||
Exp(1).Dexp(1).RFmdGpltN(d)=RFmdDGloc(d,1); Exp(2).Dexp(1).RFmdGpltN(d)=RFmdDGloc(d,1); Exp(3).Dexp(1).RFmdGpltN(d)=RFmdDGloc(d,1);
|
||||
Exp(1).Dexp(1).RFmdGscanN(d)=uu(nzPosIndxDG,4); Exp(2).Dexp(1).RFmdGscanN(d)=uu(nzPosIndxDG,4); Exp(3).Dexp(1).RFmdGscanN(d)=uu(nzPosIndxDG,4);
|
||||
Exp(1).Dexp(1).RFmedianG(d)=mvalsDG; Exp(2).Dexp(1).RFmedianG(d)=mvalsDG; Exp(3).Dexp(1).RFmedianG(d)=mvalsDG;
|
||||
Exp(1).Dexp(1).RFmeanG(d)=RFmeanG; Exp(2).Dexp(1).RFmeanG(d)=RFmeanG; Exp(3).Dexp(1).RFmeanG(d)=RFmeanG;
|
||||
Exp(1).Dexp(1).RFstdG(d)=RFstdG; Exp(2).Dexp(1).RFstdG(d)=RFstdG; Exp(3).Dexp(1).RFstdG(d)=RFstdG;
|
||||
Exp(1).Dexp(1).RFminG(d)=minG; Exp(2).Dexp(1).RFminG(d)=minG; Exp(3).Dexp(1).RFminG(d)=minG;
|
||||
Exp(1).Dexp(1).RFmaxG(d)=maxG; Exp(2).Dexp(1).RFmaxG(d)=maxG; Exp(3).Dexp(1).RFmaxG(d)=maxG;
|
||||
for ic=1:3
|
||||
Exp(ic).Dexp(1).RFcmpGL.dm(d).Lvals=vv(medianIndxD,d); %17_1201 TrendOL
|
||||
Exp(ic).Dexp(1).RFcmpGL.dm(d).med=median(vv(medianIndxD,d)); %For Ref Composite 17_1009
|
||||
Exp(ic).Dexp(1).RFcmpGL.dm(d).mean=mean(vv(medianIndxD,d)); %For Ref Composite 17_1009
|
||||
Exp(ic).Dexp(1).RFcmpGL.dm(d).std=std(vv(medianIndxD,d)); %For Ref Composite 17_1009
|
||||
Exp(ic).Dexp(1).RFcmpGL.dm(d).min=min(vv(medianIndxD,d)); %For Ref Composite 17_1009
|
||||
Exp(ic).Dexp(1).RFcmpGL.dm(d).max=max(vv(medianIndxD,d)); %For Ref Composite 17_1009
|
||||
Exp(ic).Dexp(1).RFcmpGK.dm(d).Kvals=vvK(medianIndxD,d); %17_1201 TrendOL
|
||||
Exp(ic).Dexp(1).RFcmpGK.dm(d).med=median(vvK(medianIndxD,d)); %For Ref Composite 17_1009
|
||||
Exp(ic).Dexp(1).RFcmpGK.dm(d).mean=mean(vvK(medianIndxD,d)); %For Ref Composite 17_1009
|
||||
Exp(ic).Dexp(1).RFcmpGK.dm(d).std=std(vvK(medianIndxD,d)); %For Ref Composite 17_1009
|
||||
Exp(ic).Dexp(1).RFcmpGK.dm(d).min=min(vvK(medianIndxD,d)); %For Ref Composite 17_1009
|
||||
Exp(ic).Dexp(1).RFcmpGK.dm(d).max=max(vvK(medianIndxD,d)); %For Ref Composite 17_1009
|
||||
Exp(ic).Dexp(1).RFcmpGr.dm(d).rvals=vvr(medianIndxD,d); %17_1201 TrendOL
|
||||
Exp(ic).Dexp(1).RFcmpGr.dm(d).med=median(vvr(medianIndxD,d)); %For Ref Composite 17_1009
|
||||
Exp(ic).Dexp(1).RFcmpGr.dm(d).mean=mean(vvr(medianIndxD,d)); %For Ref Composite 17_1009
|
||||
Exp(ic).Dexp(1).RFcmpGr.dm(d).std=std(vvr(medianIndxD,d)); %For Ref Composite 17_1009
|
||||
Exp(ic).Dexp(1).RFcmpGr.dm(d).min=min(vvr(medianIndxD,d)); %For Ref Composite 17_1009
|
||||
Exp(ic).Dexp(1).RFcmpGr.dm(d).max=max(vvr(medianIndxD,d)); %For Ref Composite 17_1009
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
% End Of Disperse Reference Plataes Calculations And List Additions
|
||||
% Sort And Build Genelist
|
||||
Exp(1).Dexp(1).srtGnLst={('CheckMP/MPDMfile')};
|
||||
gnLstRaw=strcat(aa(:,1),aa(:,2));
|
||||
Exp(1).Dexp(1).srtGnLst=sort(gnLstRaw);
|
||||
Exp(2).Dexp(1).srtGnLst=Exp(1).Dexp(1).srtGnLst;
|
||||
Exp(3).Dexp(1).srtGnLst=Exp(1).Dexp(1).srtGnLst;
|
||||
orfLstRaw=strcat(bb(:,1),bb(:,2));
|
||||
Exp(1).Dexp(1).srtOrfLst=sort(orfLstRaw);
|
||||
Exp(2).Dexp(1).srtOrfLst=Exp(1).Dexp(1).srtOrfLst;
|
||||
Exp(3).Dexp(1).srtOrfLst=Exp(1).Dexp(1).srtOrfLst;
|
||||
set(handles.listboxGnOrf,'string',Exp(1).Dexp(1).srtGnLst)
|
||||
catch ME %Outer loop try around entire code subroutine
|
||||
cd(w)
|
||||
set(handles.listboxGnOrf,'string',cellstr([{'Failed To Load'}; {'Check MPDMmat file'};{'Check .xls files'};{'Check \Fotos .mat files'};{'Check \matResults file'}]))
|
||||
%Exp(expN).Dexp(1).srtGnLst={('Failed To Load')};
|
||||
Exp(1).Dexp(1).srtGnLst=cellstr([{'Failed To Load'}; {' '}]);
|
||||
Exp(2).Dexp(1).srtGnLst=cellstr([{'Failed To Load'}; {' '}]);
|
||||
Exp(3).Dexp(1).srtGnLst=cellstr([{'Failed To Load'}; {' '}]);
|
||||
%Exp(expN).srtOrfLst={('Failed To Load')};
|
||||
Exp(1).Dexp(1).srtOrfLst=cellstr([{'Failed To Load'}; {' '}]);
|
||||
Exp(2).Dexp(1).srtOrfLst=cellstr([{'Failed To Load'}; {' '}]);
|
||||
Exp(3).Dexp(1).srtOrfLst=cellstr([{'Failed To Load'}; {' '}]);
|
||||
|
||||
if ~contains(matFile,'.mat')
|
||||
ExpOutImFile=fullfile(matFile);
|
||||
EZvImagesOnly
|
||||
end
|
||||
end
|
||||
expN=1; % Fix 170424
|
||||
DexpN=1;
|
||||
EZdiagRFsSheet
|
||||
Exp(1).Dexp(1).RFrnames=rnames; Exp(2).Dexp(1).RFrnames=rnames; Exp(3).Dexp(1).RFrnames=rnames;
|
||||
Exp(1).Dexp(1).RFdata=data; Exp(2).Dexp(1).RFdata=data; Exp(3).Dexp(1).RFdata=data;
|
||||
RFconfig=0;
|
||||
if sum(ismember(fieldnames(Exp(expN).Dexp(1)),'RFmean')) ...
|
||||
&& ~isempty(Exp(expN).Dexp(1).RFmean) ...
|
||||
&& sum(ismember(fieldnames(Exp(expN).Dexp(1)),'RFmeanG')) ...
|
||||
&& isempty(Exp(expN).Dexp(1).RFmeanG)
|
||||
RFconfig=1;
|
||||
end
|
||||
if sum(ismember(fieldnames(Exp(expN).Dexp(1)),'RFmean'))==0 ...
|
||||
|| isempty(Exp(expN).Dexp(1).RFmean) ...
|
||||
&& sum(ismember(fieldnames(Exp(expN).Dexp(1)),'RFmeanG')) ...
|
||||
&& ~isempty(Exp(expN).Dexp(1).RFmeanG)
|
||||
RFconfig=2;
|
||||
end
|
||||
if sum(ismember(fieldnames(Exp(expN).Dexp(1)),'RFmean')) ...
|
||||
&& ~isempty(Exp(expN).Dexp(1).RFmean) ...
|
||||
&& sum(ismember(fieldnames(Exp(expN).Dexp(1)),'RFmeanG')) ...
|
||||
&& ~isempty(Exp(expN).Dexp(1).RFmeanG)
|
||||
RFconfig=3;
|
||||
end
|
||||
Exp(1).RFconfig=RFconfig; Exp(2).RFconfig=RFconfig; Exp(3).RFconfig=RFconfig; % ZoneRelated
|
||||
try
|
||||
msgBadGeneName
|
||||
catch
|
||||
end
|
||||
try
|
||||
Exp(1).Dexp(1).resetHtmpTg=3; Exp(2).Dexp(1).resetHtmpTg=3; Exp(3).Dexp(1).resetHtmpTg=3; % ZoneRelated
|
||||
if RFconfig==0
|
||||
RFconfigMsg='No RF1 references in this Experiment Job'
|
||||
Exp(1).resetHtmpTg=3; Exp(2).resetHtmpTg=3; Exp(3).resetHtmpTg=3; % ZoneRelated
|
||||
end
|
||||
catch
|
||||
end
|
||||
prntHt=0;
|
||||
% HtMapTog 'string', 'Current user HL/HN' selection'
|
||||
try
|
||||
Exp(1).htmapPBsel=0;
|
||||
set(handles.HtMapTog1,'string','L')
|
||||
Exp(2).htmapPBsel=0; %ZoneRelated
|
||||
set(handles.HtMapTog2,'string','L')
|
||||
Exp(3).htmapPBsel=0;
|
||||
set(handles.HtMapTog3,'string','L')
|
||||
catch
|
||||
% expN=1;
|
||||
end
|
||||
|
||||
for ic=1:3
|
||||
Expaa{ic,1}=aa;
|
||||
Expbb{ic,1}=bb;
|
||||
end
|
||||
htMapTogPBfg=0;
|
||||
Exp(1).htmapRFanswer={'G','L'}; % ZoneRelated
|
||||
Exp(2).htmapRFanswer={'G','L'};
|
||||
Exp(3).htmapRFanswer={'G','L'};
|
||||
zonePB=expN; % added 230828 to fix migration
|
||||
ghandles=handles;
|
||||
ghandles.guiFig=gcf;
|
||||
Exp(4).guiFig=gcf;
|
||||
56
qhtcp-workflow/apps/matlab/ezview/EZvNIcircle.m
Executable file
56
qhtcp-workflow/apps/matlab/ezview/EZvNIcircle.m
Executable file
@@ -0,0 +1,56 @@
|
||||
% Disk Image
|
||||
%{
|
||||
%Imaging ToolBox method
|
||||
r=14;
|
||||
A=zeros(70,70); %(fIntsc(refPtR:(refPtRExt),refPtC:(refPtCExt)))
|
||||
m={40,40};
|
||||
A(m{:})=1;
|
||||
B=imdilate(A,strel('disk',r,0) );
|
||||
imshow(B)
|
||||
|
||||
area=pi*r^2
|
||||
|
||||
clear all
|
||||
%}
|
||||
|
||||
%without Image Proc. Toolbox
|
||||
%r=14;
|
||||
%A=zeros(70,70);
|
||||
%A=zeros(r,r);
|
||||
%P=[40,40];
|
||||
%center=[refPtR+ round(.5*width), refPtC+ round(.5*width)];
|
||||
%A=zeros(70,70);
|
||||
%radius=14;
|
||||
diaExt=2*(radius+1);
|
||||
circBoxA=zeros(diaExt,diaExt);
|
||||
center=[radius+2, radius+2];
|
||||
[m n ]=size(circBoxA);
|
||||
X=bsxfun(@plus,(1:m)', zeros(1,n));
|
||||
Y=bsxfun(@plus,(1:n), zeros(m,1));
|
||||
cirMask=sqrt(sum(bsxfun(@minus,cat(3,X,Y),reshape(center,1,1,[])) .^2,3))<=radius;
|
||||
area=pi*radius^2;
|
||||
cirPixA=nnz(cirMask);
|
||||
optCirMask=double(cirMask);
|
||||
optCirMask(optCirMask==0)=0.8;
|
||||
|
||||
% Foto Circle Fram(e)
|
||||
expansion=2;
|
||||
radExpan=radius+expansion;
|
||||
FdiaExt=2*(radExpan);
|
||||
circBoxA=zeros(FdiaExt,FdiaExt);
|
||||
center=[radExpan+1, radExpan+1];
|
||||
[m n ]=size(circBoxA);
|
||||
X=bsxfun(@plus,(1:m)', zeros(1,n));
|
||||
Y=bsxfun(@plus,(1:n), zeros(m,1));
|
||||
FcirMask=sqrt(sum(bsxfun(@minus,cat(3,X,Y),reshape(center,1,1,[])) .^2,3))<=radExpan;
|
||||
% FcirPixA=nnz(cirMask);
|
||||
FoptCirMask=double(FcirMask);
|
||||
FoptCirMask(FoptCirMask==1)=2;
|
||||
% FoptCirMask(FoptCirMask==0)=1;
|
||||
% Combine Masks to create circular boundry
|
||||
padOptCirMask=padarray(optCirMask,[expansion-1 expansion-1],0.8);
|
||||
FoptCirMask=FoptCirMask .* padOptCirMask;
|
||||
FoptCirMask(FoptCirMask==1.6)=0.8;
|
||||
FoptCirMask(FoptCirMask==0)=1;
|
||||
FoptCirMask(FoptCirMask==2)=1;
|
||||
% imagesc(cirMask)
|
||||
146
qhtcp-workflow/apps/matlab/ezview/EZvTrendPrint.m
Executable file
146
qhtcp-workflow/apps/matlab/ezview/EZvTrendPrint.m
Executable file
@@ -0,0 +1,146 @@
|
||||
%EZvFigPrint
|
||||
|
||||
global ghandles
|
||||
global Exp
|
||||
|
||||
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 get(ghandles.printOL1,'Value')==1,zone=1; end
|
||||
if get(ghandles.printOL2,'Value')==1,zone=2; end
|
||||
if get(ghandles.printOL3,'Value')==1,zone=3; end
|
||||
|
||||
clear legName tmp
|
||||
figure
|
||||
set(gcf,'OuterPosition',(get(0,'screensize')))
|
||||
|
||||
hn=0;
|
||||
if isequal(get(Exp(zone).hOL(1),'Visible'),'on')
|
||||
disphOLX(1)={get(Exp(zone).hOL(1),'XData')}
|
||||
disphOLY(1)={get(Exp(zone).hOL(1),'YData')}
|
||||
tmp(1)=strrep(Exp(zone).hOLname(1),'_','-')
|
||||
try
|
||||
disphOLbX(1)={get(Exp(zone).hOLb(1),'XData')}
|
||||
disphOLbY(1)={get(Exp(zone).hOLb(1),'YData')}
|
||||
catch end
|
||||
hn=hn+1
|
||||
notDup=1;
|
||||
end
|
||||
notDup=0;
|
||||
|
||||
for hN=2:length(Exp(zone).hOL)
|
||||
% Bounce-dupicate data removal
|
||||
for j=1:(hN-1)
|
||||
if isequal(Exp(zone).hOLname(hN), Exp(zone).hOLname(j)) %&& ...
|
||||
% isequal(get(Exp(zone).hOL(hN),'Visible'),'on')
|
||||
notDup=0;
|
||||
break
|
||||
else
|
||||
notDup=1;
|
||||
end
|
||||
end
|
||||
if notDup==1
|
||||
if isequal(get(Exp(zone).hOL(hN),'Visible'),'on')
|
||||
hn=hn+1
|
||||
try
|
||||
disphOLX(hn)={get(Exp(zone).hOL(hN),'XData')};
|
||||
disphOLY(hn)={get(Exp(zone).hOL(hN),'YData')};
|
||||
tmp(hn)=strrep(Exp(zone).hOLname(hN),'_','-')
|
||||
try
|
||||
disphOLbX(hn)={get(Exp(zone).hOLb(hN),'XData')};
|
||||
disphOLbY(hn)={get(Exp(zone).hOLb(hN),'YData')};
|
||||
catch
|
||||
end
|
||||
tmp(hn)=strrep(Exp(zone).hOLname(hN),'_','-')
|
||||
catch ME
|
||||
disp(ME)
|
||||
display('error leading to line 59 catch')
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
for i=1:hn
|
||||
if semiLog==0
|
||||
hprint=plot(cell2mat(disphOLX(i)),cell2mat(disphOLY(i)))
|
||||
set(hprint,'linewidth',lnwidth) %0.5 then 1.5 now 6
|
||||
set(gca,'fontsize',axisFontSz) % 8 to 15 to 21
|
||||
linecolor(i)={get(hprint,'color')};
|
||||
else
|
||||
hprint=semilogy(cell2mat(disphOLX(i)),cell2mat(disphOLY(i)))
|
||||
set(hprint,'linewidth',lnwidth) %0.5 then 1.5 now 4.0
|
||||
set(gca,'fontsize',axisFontSz) % 8 to 15 to 21
|
||||
linecolor(i)={get(hprint,'color')};
|
||||
end
|
||||
hold all
|
||||
end
|
||||
|
||||
if Exp(zone).CompositPlot~=1 % Standard plot, Not a Composite Plot
|
||||
legName=tmp
|
||||
hleg=legend((legName),'location','NEO')
|
||||
set(hleg,'fontsize',legFontSz)
|
||||
try
|
||||
for i=1:hn
|
||||
if semiLog==0
|
||||
hprint=plot(cell2mat(disphOLbX(i)),cell2mat(disphOLbY(i)),'marker','+','markerEdgeColor',cell2mat(linecolor(i)),'markerSize',markerSz, 'linestyle','none')
|
||||
else
|
||||
hprint=semilogy(cell2mat(disphOLbX(i)),cell2mat(disphOLbY(i)),'marker','+','markerEdgeColor',cell2mat(linecolor(i)),'markerSize',markerSz, 'linestyle','none')
|
||||
end
|
||||
end
|
||||
catch
|
||||
end
|
||||
|
||||
hold off
|
||||
% End of Standard Overlay Plot
|
||||
else %if Composite Plot
|
||||
for hcN=1:(Exp(zone).cTraceN -1)
|
||||
disphOLX(hcN)={get(Exp(zone).hCmean(hcN),'XData')};
|
||||
disphOLY(hcN)={get(Exp(zone).hCmean(hcN),'YData')};
|
||||
disphOLbX(hcN)={get(Exp(zone).hBound1(hcN),'XData')};
|
||||
disphOLbY(hcN)={get(Exp(zone).hBound1(hcN),'YData')};
|
||||
disphOLcX(hcN)={get(Exp(zone).hBound2(hcN),'XData')};
|
||||
disphOLcY(hcN)={get(Exp(zone).hBound2(hcN),'YData')};
|
||||
tmp(hcN)=(Exp(zone).cName(hcN))
|
||||
|
||||
if semiLog==0
|
||||
hprint=plot(cell2mat(disphOLX(hcN)),cell2mat(disphOLY(hcN)))
|
||||
set(hprint,'linewidth',lnwidth) %0.5 then 1.5 now 6
|
||||
set(gca,'fontsize',axisFontSz) % 8 to 15 to 21
|
||||
linecolor(hcN)={get(hprint,'color')};
|
||||
else
|
||||
hprint=semilogy(cell2mat(disphOLX(hcN)),cell2mat(disphOLY(hcN)))
|
||||
set(hprint,'linewidth',lnwidth) %0.5 then 1.5 now 4.0
|
||||
set(gca,'fontsize',axisFontSz) % 8 to 15 to 21
|
||||
linecolor(hcN)={get(hprint,'color')};
|
||||
end
|
||||
|
||||
hold all
|
||||
legName=tmp
|
||||
hleg=legend((legName),'location','NEO')
|
||||
set(hleg,'fontsize',legFontSz)
|
||||
%{
|
||||
for i=1:hn
|
||||
hprint=plot(cell2mat(disphOLbX(i)),cell2mat(disphOLbY(i)),'marker','+','markerEdgeColor',cell2mat(linecolor(i)),'markerSize',markerSz, 'linestyle','none')
|
||||
end
|
||||
%}
|
||||
end
|
||||
for i=1:(Exp(zone).cTraceN -1)
|
||||
hBprint=plot(cell2mat(disphOLbX(i)),cell2mat(disphOLbY(i)))
|
||||
set(hBprint,'linewidth',.5) %lnwidth) %0.5 then 1.5 now 6
|
||||
set(hBprint,'color',linecolor{i})
|
||||
hCprint=plot(cell2mat(disphOLcX(i)),cell2mat(disphOLcY(i)))
|
||||
set(hCprint,'linewidth',0.5) %lnwidth) %0.5 then 1.5 now 6
|
||||
set(hBprint,'color',linecolor{i})
|
||||
end
|
||||
hold off
|
||||
end
|
||||
|
||||
41
qhtcp-workflow/apps/matlab/ezview/EZvapendLabel.m
Executable file
41
qhtcp-workflow/apps/matlab/ezview/EZvapendLabel.m
Executable file
@@ -0,0 +1,41 @@
|
||||
% Create the text in an axis
|
||||
|
||||
hFstrip=figure;
|
||||
%figure(hFstrip,'Visible','off')
|
||||
t=text(.05,.05,tmPtTx,'FontSize',8, 'FontWeight','bold'); %, 'FontWeight','demi')
|
||||
%Bspace= zeros(20,size(Fcutsc,2))+255;
|
||||
|
||||
F=[];
|
||||
% Capture the text from the screen:
|
||||
F=getframe(gca,[10 10 200 200]);
|
||||
% Close the figure:
|
||||
close
|
||||
cc=[];
|
||||
c=[];
|
||||
% Select any plane of the resulting image:
|
||||
cc=F.cdata(:,:,1);
|
||||
c= cc(182:195,18:60);
|
||||
%
|
||||
i=[];
|
||||
j=[];
|
||||
% Determine where the text was (black is 0):
|
||||
%[i,j]=find(cc == 0);
|
||||
[i,j]=find(c < 255);
|
||||
|
||||
% Read in or load the image that is to contain the text:
|
||||
|
||||
% Use the size of that image, plus the row/column locations
|
||||
% of the text, to determine locations in the new image:
|
||||
%Bspace= zeros(20,size(Fcutsc,2))+255;
|
||||
Bspace= zeros((210-size(Fcutsc,1)),size(Fcutsc,2))+255;
|
||||
ind=[];
|
||||
ind=sub2ind(size(Bspace),i,j);
|
||||
|
||||
% Index into new image, replacing pixels with white:
|
||||
Bspace(ind)=uint8(0);
|
||||
%figure
|
||||
% Display and color the new image:
|
||||
%imagesc(Bspace)
|
||||
%axis image
|
||||
%colormap(bone)
|
||||
%htest=imagesc(Fstrip)
|
||||
BIN
qhtcp-workflow/apps/matlab/ezview/EZviewGui.fig
Executable file
BIN
qhtcp-workflow/apps/matlab/ezview/EZviewGui.fig
Executable file
Binary file not shown.
2148
qhtcp-workflow/apps/matlab/ezview/EZviewGui.m
Executable file
2148
qhtcp-workflow/apps/matlab/ezview/EZviewGui.m
Executable file
File diff suppressed because it is too large
Load Diff
65
qhtcp-workflow/apps/matlab/ezview/EZviewInfoBox.m
Executable file
65
qhtcp-workflow/apps/matlab/ezview/EZviewInfoBox.m
Executable file
@@ -0,0 +1,65 @@
|
||||
%{
|
||||
%One time create EZsgdInfo .mat file
|
||||
[SGDnum SGDtext SGDraw]=xlsread('GnOrfDesc.xls');
|
||||
save('EZsgdInfo','SGDnum','SGDtext','SGDraw')
|
||||
%load 'EZsgdInfo'
|
||||
%}
|
||||
text=Exp(4).SGDtext;
|
||||
destPerMP= Exp(zoneSel).Dexp(DexpN).destPerMP; %length(gS.DM1.drug);
|
||||
pertSel=Exp(zoneSel).Dexp(DexpN).pertSel; %floor(get(handles.DMsldr1,'value'));
|
||||
plateNum=(LBmp-1)*destPerMP + pertSel;
|
||||
indx=((LBr-1)*24) +LBc
|
||||
MP=Exp(zoneSel).Dexp(DexpN).MP;
|
||||
a=[];
|
||||
if get(handles.GeneOrfTog,'value')==0
|
||||
gene=MP(1,LBmp).genename{1,1}(indx);
|
||||
gnLength=length(char(gene));
|
||||
a=find(strncmpi(text(:,6,:),gene,gnLength));
|
||||
if ~isempty(a)
|
||||
desc=char(text(a,32,:));
|
||||
proc=char(text(a,18,:));
|
||||
func=char(text(a,19,:));
|
||||
loc=char(text(a,20,:));
|
||||
orfXref=char(text(a,2,:));
|
||||
gnXref=char(text(a,6,:));
|
||||
if strcmpi(gnXref,'HO'), gene=strcat(gene,',',gnXref);end
|
||||
name=strcat(char(gene),'->',char(orfXref));
|
||||
end
|
||||
elseif get(handles.GeneOrfTog,'value')==1
|
||||
orf=MP(1,LBmp).orf{1,1}(indx);
|
||||
orfLength=length(char(orf));
|
||||
a=find(strncmpi(text(:,2,:),orf,orfLength));
|
||||
if ~isempty(a)
|
||||
desc=char(text(a,32,:));
|
||||
proc=char(text(a,18,:));
|
||||
func=char(text(a,19,:));
|
||||
loc=char(text(a,20,:));
|
||||
gnXref=char(text(a,6,:));
|
||||
if strcmpi(gnXref,'HO'), gnXref=strcat('RF_,',gnXref);end
|
||||
name=strcat(char(gnXref),'->',char(orf));
|
||||
end
|
||||
end
|
||||
if isempty(a)
|
||||
name='Not Found';
|
||||
desc=[]; proc=[]; func=[]; loc=[];
|
||||
end
|
||||
|
||||
%{
|
||||
if get(handles.listboxGnOrf,'value')&& ~isempty(a)
|
||||
desc=char(text(a,32,:));
|
||||
proc=char(text(a,18,:));
|
||||
func=char(text(a,19,:));
|
||||
loc=char(text(a,20,:));
|
||||
name=strcat(char(gene),'->',char(orf));
|
||||
elseif get(handles.listboxGnOrf,'value') && ~isempty(a)
|
||||
desc=char(text(b,32,:));
|
||||
proc=char(text(b,18,:));
|
||||
func=char(text(b,19,:));
|
||||
loc=char(text(b,20,:));
|
||||
name=strcat(char(gene),'->',char(orf));
|
||||
elseif isempty(b)
|
||||
name='Not Found';
|
||||
desc=[]; proc=[]; func=[]; loc=[];
|
||||
end
|
||||
%}
|
||||
hh=msgbox(sprintf('%s\n%s\n%s%s\n%s%s\n%s%s\n',name,desc,'P->',proc,'F->',func,'C->',loc),'SGD Ontology Info','replace')
|
||||
BIN
qhtcp-workflow/apps/matlab/ezview/MyColormap1.mat
Executable file
BIN
qhtcp-workflow/apps/matlab/ezview/MyColormap1.mat
Executable file
Binary file not shown.
BIN
qhtcp-workflow/apps/matlab/ezview/MyColormap2.mat
Executable file
BIN
qhtcp-workflow/apps/matlab/ezview/MyColormap2.mat
Executable file
Binary file not shown.
BIN
qhtcp-workflow/apps/matlab/ezview/MyColormaps.mat
Executable file
BIN
qhtcp-workflow/apps/matlab/ezview/MyColormaps.mat
Executable file
Binary file not shown.
13
qhtcp-workflow/apps/matlab/ezview/datatipp.m
Executable file
13
qhtcp-workflow/apps/matlab/ezview/datatipp.m
Executable file
@@ -0,0 +1,13 @@
|
||||
function output_txt = myfunction(obj,event_obj)
|
||||
% Display the position of the data cursor
|
||||
% obj Currently not used (empty)
|
||||
% event_obj Handle to event object
|
||||
% output_txt Data cursor text string (string or cell array of strings).
|
||||
pos=get(event_obj,'Position');
|
||||
output_txt={['X: ',num2str(pos(1),4)], ['Y: ',num2str(pos(2),4)]};
|
||||
% If there is a Z-coordinate in the position, display it as well
|
||||
if length(pos) > 2
|
||||
output_txt{end+1}=['Z: ',num2str(pos(3),4)];
|
||||
end
|
||||
%waitforbuttonpress
|
||||
end
|
||||
372
qhtcp-workflow/apps/matlab/ezview/questdlgJWR.m
Executable file
372
qhtcp-workflow/apps/matlab/ezview/questdlgJWR.m
Executable file
@@ -0,0 +1,372 @@
|
||||
function ButtonName=questdlg(Question,Title,Btn1,Btn2,Btn3,Default)
|
||||
% QUESTDLG Question dialog box.
|
||||
% ButtonName=QUESTDLG(Question) creates a modal dialog box that
|
||||
% automatically wraps the cell array or string (vector or matrix)
|
||||
% Question to fit an appropriately sized window. The name of the
|
||||
% button that is pressed is returned in ButtonName. The Title of
|
||||
% the figure may be specified by adding a second string argument:
|
||||
%
|
||||
% ButtonName=questdlg(Question, Title)
|
||||
%
|
||||
% Question will be interpreted as a normal string.
|
||||
%
|
||||
% QUESTDLG uses UIWAIT to suspend execution until the user responds.
|
||||
%
|
||||
% The default set of buttons names for QUESTDLG are 'Yes','No' and
|
||||
% 'Cancel'. The default answer for the above calling syntax is 'Yes'.
|
||||
% This can be changed by adding a third argument which specifies the
|
||||
% default Button:
|
||||
%
|
||||
% ButtonName=questdlg(Question, Title, 'No')
|
||||
%
|
||||
% Up to 3 custom button names may be specified by entering
|
||||
% the button string name(s) as additional arguments to the function
|
||||
% call. If custom button names are entered, the default button
|
||||
% must be specified by adding an extra argument, DEFAULT, and
|
||||
% setting DEFAULT to the same string name as the button you want
|
||||
% to use as the default button:
|
||||
%
|
||||
% ButtonName=questdlg(Question, Title, Btn1, Btn2, DEFAULT);
|
||||
%
|
||||
% where DEFAULT is set to Btn1. This makes Btn1 the default answer.
|
||||
% If the DEFAULT string does not match any of the button string names,
|
||||
% a warning message is displayed.
|
||||
%
|
||||
% To use TeX interpretation for the Question string, a data
|
||||
% structure must be used for the last argument, i.e.
|
||||
%
|
||||
% ButtonName=questdlg(Question, Title, Btn1, Btn2, OPTIONS);
|
||||
%
|
||||
% The OPTIONS structure must include the fields Default and Interpreter.
|
||||
% Interpreter may be 'none' or 'tex' and Default is the default button
|
||||
% name to be used.
|
||||
%
|
||||
% If the dialog is closed without a valid selection, the return value
|
||||
% is empty.
|
||||
%
|
||||
% Example:
|
||||
%
|
||||
% ButtonName=questdlg('What is your favorite color?', ...
|
||||
% 'Color Question', ...
|
||||
% 'Red', 'Green', 'Blue', 'Green');
|
||||
% switch ButtonName,
|
||||
% case 'Red',
|
||||
% disp('Your favorite color is Red');
|
||||
% case 'Blue',
|
||||
% disp('Your favorite color is Blue.')
|
||||
% case 'Green',
|
||||
% disp('Your favorite color is Green.');
|
||||
% end % switch
|
||||
%
|
||||
% See also DIALOG, ERRORDLG, HELPDLG, INPUTDLG, LISTDLG,
|
||||
% MSGBOX, WARNDLG, FIGURE, TEXTWRAP, UIWAIT, UIRESUME.
|
||||
% Copyright 1984-2010 The MathWorks, Inc.
|
||||
% $Revision: 5.55.4.17 $
|
||||
|
||||
if nargin<1
|
||||
error('MATLAB:questdlg:TooFewArguments', 'Too few arguments for QUESTDLG');
|
||||
end
|
||||
|
||||
Interpreter='none';
|
||||
Question=dialogCellstrHelper(Question);
|
||||
|
||||
% General Information
|
||||
Black =[0 0 0 ]/255;
|
||||
% LightGray =[192 192 192 ]/255;
|
||||
% LightGray2 =[160 160 164 ]/255;
|
||||
% MediumGray =[128 128 128 ]/255;
|
||||
% White =[255 255 255 ]/255;
|
||||
|
||||
% Nargin Check
|
||||
if nargout>1
|
||||
error('MATLAB:questdlg:WrongNumberOutputs', 'Wrong number of output arguments for QUESTDLG');
|
||||
end
|
||||
|
||||
if nargin==1,Title=' ';end
|
||||
if nargin<=2, Default='Yes';end
|
||||
if nargin==3, Default=Btn1 ;end
|
||||
if nargin<=3, Btn1='Yes'; Btn2='No'; Btn3='Cancel';NumButtons=3;end
|
||||
if nargin==4, Default=Btn2;Btn2=[];Btn3=[];NumButtons=1;end
|
||||
if nargin==5, Default=Btn3;Btn3=[];NumButtons=2;end
|
||||
if nargin==6, NumButtons=3;end
|
||||
if nargin>6
|
||||
error('MATLAB:questdlg:TooManyInputs', 'Too many input arguments');NumButtons=3; %#ok
|
||||
end
|
||||
|
||||
if isstruct(Default),
|
||||
Interpreter=Default.Interpreter;
|
||||
Default=Default.Default;
|
||||
end
|
||||
|
||||
% Create QuestFig
|
||||
FigPos=get(0,'DefaultFigurePosition');
|
||||
FigPos(3)=267;
|
||||
FigPos(4)=70;
|
||||
FigPos=getnicedialoglocation(FigPos, get(0,'DefaultFigureUnits'));
|
||||
|
||||
QuestFig=dialog(...
|
||||
'Visible' ,'off', ...
|
||||
'Name' ,Title, ...
|
||||
'Pointer' ,'arrow', ...
|
||||
'Position' ,FigPos, ...
|
||||
'KeyPressFcn' ,@doFigureKeyPress, ...
|
||||
'IntegerHandle' ,'off', ...
|
||||
'WindowStyle' ,'normal', ...
|
||||
'HandleVisibility','callback', ...
|
||||
'CloseRequestFcn' ,@doDelete, ...
|
||||
'Tag' ,Title ...
|
||||
);
|
||||
|
||||
% Set Positions
|
||||
DefOffset =10;
|
||||
IconWidth =54;
|
||||
IconHeight =54;
|
||||
IconXOffset=DefOffset;
|
||||
IconYOffset=FigPos(4)-DefOffset-IconHeight; %#ok
|
||||
IconCMap=[Black;get(QuestFig,'Color')]; %#ok
|
||||
DefBtnWidth =56;
|
||||
BtnHeight =22;
|
||||
BtnYOffset=DefOffset;
|
||||
BtnWidth=DefBtnWidth;
|
||||
ExtControl=uicontrol(...
|
||||
QuestFig , ...
|
||||
'Style' ,'pushbutton', ...
|
||||
'String' ,' ' ...
|
||||
);
|
||||
btnMargin=1.4;
|
||||
set(ExtControl,'String',Btn1);
|
||||
BtnExtent=get(ExtControl,'Extent');
|
||||
BtnWidth=max(BtnWidth,BtnExtent(3)+8);
|
||||
if NumButtons > 1
|
||||
set(ExtControl,'String',Btn2);
|
||||
BtnExtent=get(ExtControl,'Extent');
|
||||
BtnWidth=max(BtnWidth,BtnExtent(3)+8);
|
||||
if NumButtons > 2
|
||||
set(ExtControl,'String',Btn3);
|
||||
BtnExtent=get(ExtControl,'Extent');
|
||||
BtnWidth=max(BtnWidth,BtnExtent(3)*btnMargin);
|
||||
end
|
||||
end
|
||||
BtnHeight=max(BtnHeight,BtnExtent(4)*btnMargin);
|
||||
delete(ExtControl);
|
||||
MsgTxtXOffset=IconXOffset+IconWidth;
|
||||
FigPos(3)=max(FigPos(3),MsgTxtXOffset+NumButtons*(BtnWidth+2*DefOffset));
|
||||
set(QuestFig,'Position',FigPos);
|
||||
BtnXOffset=zeros(NumButtons,1);
|
||||
if NumButtons==1,
|
||||
BtnXOffset=(FigPos(3)-BtnWidth)/2;
|
||||
elseif NumButtons==2,
|
||||
BtnXOffset=[MsgTxtXOffset FigPos(3)-DefOffset-BtnWidth];
|
||||
elseif NumButtons==3,
|
||||
BtnXOffset=[MsgTxtXOffset 0 FigPos(3)-DefOffset-BtnWidth];
|
||||
BtnXOffset(2)=(BtnXOffset(1)+BtnXOffset(3))/2;
|
||||
end
|
||||
MsgTxtYOffset=DefOffset+BtnYOffset+BtnHeight;
|
||||
|
||||
% Calculate current msg text width and height. If negative,
|
||||
% clamp it to 1 since its going to be recalculated/corrected later
|
||||
% based on the actual msg string
|
||||
MsgTxtWidth=max(1, FigPos(3)-DefOffset-MsgTxtXOffset-IconWidth);
|
||||
MsgTxtHeight=max(1, FigPos(4)-DefOffset-MsgTxtYOffset);
|
||||
MsgTxtForeClr=Black;
|
||||
MsgTxtBackClr=get(QuestFig,'Color');
|
||||
CBString='uiresume(gcbf)';
|
||||
DefaultValid=false;
|
||||
DefaultWasPressed=false;
|
||||
BtnHandle=cell(NumButtons, 1);
|
||||
DefaultButton=0;
|
||||
|
||||
% Check to see if the Default string passed does match one of the
|
||||
% strings on the buttons in the dialog. If not, throw a warning.
|
||||
for i=1:NumButtons
|
||||
switch i
|
||||
case 1
|
||||
ButtonString=Btn1;
|
||||
ButtonTag='Btn1';
|
||||
if strcmp(ButtonString, Default)
|
||||
DefaultValid=true;
|
||||
DefaultButton=1;
|
||||
end
|
||||
case 2
|
||||
ButtonString=Btn2;
|
||||
ButtonTag='Btn2';
|
||||
if strcmp(ButtonString, Default)
|
||||
DefaultValid=true;
|
||||
DefaultButton=2;
|
||||
end
|
||||
case 3
|
||||
ButtonString=Btn3;
|
||||
ButtonTag='Btn3';
|
||||
if strcmp(ButtonString, Default)
|
||||
DefaultValid=true;
|
||||
DefaultButton=3;
|
||||
end
|
||||
end
|
||||
|
||||
BtnHandle{i}=uicontrol(QuestFig, ...
|
||||
'Style' ,'pushbutton', ...
|
||||
'Position' ,[ BtnXOffset(1) BtnYOffset BtnWidth BtnHeight ], ...
|
||||
'KeyPressFcn' ,@doControlKeyPress, ...
|
||||
'Callback' ,CBString, ...
|
||||
'String' ,ButtonString, ...
|
||||
'HorizontalAlignment','center', ...
|
||||
'Tag' ,ButtonTag...
|
||||
);
|
||||
end
|
||||
|
||||
if ~DefaultValid
|
||||
warnstate=warning('backtrace','off');
|
||||
warning('MATLAB:QUESTDLG:stringMismatch','Default string does not match any button string name.');
|
||||
warning(warnstate);
|
||||
end
|
||||
|
||||
MsgHandle=uicontrol(QuestFig, ...
|
||||
'Style' ,'text', ...
|
||||
'Position' ,[MsgTxtXOffset MsgTxtYOffset 0.95*MsgTxtWidth MsgTxtHeight ], ...
|
||||
'String' ,{' '}, ...
|
||||
'Tag' ,'Question', ...
|
||||
'HorizontalAlignment','left', ...
|
||||
'FontWeight' ,'bold', ...
|
||||
'BackgroundColor' ,MsgTxtBackClr, ...
|
||||
'ForegroundColor' ,MsgTxtForeClr ...
|
||||
);
|
||||
|
||||
[WrapString,NewMsgTxtPos]=textwrap(MsgHandle,Question,75);
|
||||
% NumLines=size(WrapString,1);
|
||||
AxesHandle=axes('Parent',QuestFig,'Position',[0 0 1 1],'Visible','off');
|
||||
texthandle=text( ...
|
||||
'Parent' ,AxesHandle , ...
|
||||
'Units' ,'pixels' , ...
|
||||
'Color' ,get(BtnHandle{1},'ForegroundColor') , ...
|
||||
'HorizontalAlignment' ,'left' , ...
|
||||
'FontName' ,get(BtnHandle{1},'FontName') , ...
|
||||
'FontSize' ,get(BtnHandle{1},'FontSize') , ...
|
||||
'VerticalAlignment' ,'bottom' , ...
|
||||
'String' ,WrapString , ...
|
||||
'Interpreter' ,Interpreter , ...
|
||||
'Tag' ,'Question' ...
|
||||
);
|
||||
|
||||
textExtent=get(texthandle, 'Extent');
|
||||
% (g357851)textExtent and extent from uicontrol are not the same. For window, extent from uicontrol is larger
|
||||
% than textExtent. But on Mac, it is reverse. Pick the max value.
|
||||
MsgTxtWidth=max([MsgTxtWidth NewMsgTxtPos(3)+2 textExtent(3)]);
|
||||
MsgTxtHeight=max([MsgTxtHeight NewMsgTxtPos(4)+2 textExtent(4)]);
|
||||
MsgTxtXOffset=IconXOffset+IconWidth+DefOffset;
|
||||
FigPos(3)=max(NumButtons*(BtnWidth+DefOffset)+DefOffset, ...
|
||||
MsgTxtXOffset+MsgTxtWidth+DefOffset);
|
||||
% Center Vertically around icon
|
||||
if IconHeight>MsgTxtHeight,
|
||||
IconYOffset=BtnYOffset+BtnHeight+DefOffset;
|
||||
MsgTxtYOffset=IconYOffset+(IconHeight-MsgTxtHeight)/2;
|
||||
FigPos(4)=IconYOffset+IconHeight+DefOffset;
|
||||
% Center around text
|
||||
else
|
||||
MsgTxtYOffset=BtnYOffset+BtnHeight+DefOffset;
|
||||
IconYOffset=MsgTxtYOffset+(MsgTxtHeight-IconHeight)/2;
|
||||
FigPos(4)=MsgTxtYOffset+MsgTxtHeight+DefOffset;
|
||||
end
|
||||
|
||||
if NumButtons==1
|
||||
BtnXOffset=(FigPos(3)-BtnWidth)/2;
|
||||
elseif NumButtons==2
|
||||
BtnXOffset=[(FigPos(3)-DefOffset)/2-BtnWidth (FigPos(3)+DefOffset)/2];
|
||||
elseif NumButtons==3
|
||||
BtnXOffset(2)=(FigPos(3)-BtnWidth)/2;
|
||||
BtnXOffset=[BtnXOffset(2)-DefOffset-BtnWidth BtnXOffset(2) BtnXOffset(2)+BtnWidth+DefOffset];
|
||||
end
|
||||
|
||||
set(QuestFig ,'Position',getnicedialoglocation(FigPos, get(QuestFig,'Units')));
|
||||
assert(iscell(BtnHandle));
|
||||
BtnPos=cellfun(@(bh)get(bh,'Position'), BtnHandle, 'UniformOutput', false);
|
||||
BtnPos=cat(1,BtnPos{:});
|
||||
BtnPos(:,1)=BtnXOffset;
|
||||
BtnPos=num2cell(BtnPos,2);
|
||||
assert(iscell(BtnPos));
|
||||
cellfun(@(bh,pos)set(bh, 'Position', pos), BtnHandle, BtnPos, 'UniformOutput', false);
|
||||
|
||||
if DefaultValid
|
||||
setdefaultbutton(QuestFig, BtnHandle{DefaultButton});
|
||||
end
|
||||
|
||||
delete(MsgHandle);
|
||||
set(texthandle, 'Position',[MsgTxtXOffset MsgTxtYOffset 0]);
|
||||
|
||||
IconAxes=axes(...
|
||||
'Parent' ,QuestFig , ...
|
||||
'Units' ,'Pixels' , ...
|
||||
'Position' ,[IconXOffset IconYOffset IconWidth IconHeight], ...
|
||||
'NextPlot' ,'replace' , ...
|
||||
'Tag' ,'IconAxes' ...
|
||||
);
|
||||
|
||||
set(QuestFig ,'NextPlot','add');
|
||||
load dialogicons.mat questIconData questIconMap;
|
||||
IconData=questIconData;
|
||||
questIconMap(256,:)=get(QuestFig,'Color');
|
||||
IconCMap=questIconMap;
|
||||
Img=image('CData',IconData,'Parent',IconAxes);
|
||||
set(QuestFig, 'Colormap', IconCMap);
|
||||
set(IconAxes, ...
|
||||
'Visible','off' , ...
|
||||
'YDir' ,'reverse' , ...
|
||||
'XLim' ,get(Img,'XData'), ...
|
||||
'YLim' ,get(Img,'YData') ...
|
||||
);
|
||||
|
||||
% Make sure we are on screen
|
||||
movegui(QuestFig)
|
||||
set(QuestFig ,'WindowStyle','modal','Visible','on');
|
||||
drawnow;
|
||||
|
||||
if DefaultButton ~=0
|
||||
uicontrol(BtnHandle{DefaultButton});
|
||||
end
|
||||
|
||||
if ishghandle(QuestFig)
|
||||
% Go into uiwait if the figure handle is still valid.
|
||||
% This is mostly the case during regular use.
|
||||
uiwait(QuestFig);
|
||||
end
|
||||
|
||||
% Check handle validity again since we may be out of uiwait because the
|
||||
% figure was deleted.
|
||||
if ishghandle(QuestFig)
|
||||
if DefaultWasPressed
|
||||
ButtonName=Default;
|
||||
else
|
||||
ButtonName=get(get(QuestFig,'CurrentObject'),'String');
|
||||
end
|
||||
doDelete;
|
||||
else
|
||||
ButtonName='';
|
||||
end
|
||||
|
||||
function doFigureKeyPress(obj, evd) %#ok
|
||||
switch(evd.Key)
|
||||
case {'return','space'}
|
||||
if DefaultValid
|
||||
DefaultWasPressed=true;
|
||||
uiresume(gcbf);
|
||||
end
|
||||
case 'escape'
|
||||
doDelete
|
||||
end
|
||||
end
|
||||
|
||||
function doControlKeyPress(obj, evd) %#ok
|
||||
switch(evd.Key)
|
||||
case {'return'}
|
||||
if DefaultValid
|
||||
DefaultWasPressed=true;
|
||||
uiresume(gcbf);
|
||||
end
|
||||
case 'escape'
|
||||
doDelete
|
||||
end
|
||||
end
|
||||
|
||||
function doDelete(varargin)
|
||||
delete(QuestFig);
|
||||
end
|
||||
end
|
||||
BIN
qhtcp-workflow/apps/matlab/ezview/uipushtool4_image.png
Executable file
BIN
qhtcp-workflow/apps/matlab/ezview/uipushtool4_image.png
Executable file
Binary file not shown.
|
After Width: | Height: | Size: 742 B |
BIN
qhtcp-workflow/apps/matlab/ezview/uitoggletool1_image.png
Executable file
BIN
qhtcp-workflow/apps/matlab/ezview/uitoggletool1_image.png
Executable file
Binary file not shown.
|
After Width: | Height: | Size: 406 B |
BIN
qhtcp-workflow/apps/matlab/ezview/uitoggletool2_image.png
Executable file
BIN
qhtcp-workflow/apps/matlab/ezview/uitoggletool2_image.png
Executable file
Binary file not shown.
|
After Width: | Height: | Size: 633 B |
BIN
qhtcp-workflow/apps/matlab/ezview/uitoggletool3_image.png
Executable file
BIN
qhtcp-workflow/apps/matlab/ezview/uitoggletool3_image.png
Executable file
Binary file not shown.
|
After Width: | Height: | Size: 623 B |
Reference in New Issue
Block a user