Squashed initial commit

This commit is contained in:
2024-09-10 13:47:29 -04:00
commit 8ebb6ad265
6221 changed files with 2512206 additions and 0 deletions

View 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

View 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

View 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

View 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};

View 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
%}

View 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

View 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)

File diff suppressed because it is too large Load Diff

View 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

View 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

View 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

View 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)

View 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

View 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

View 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

View 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

View 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

View 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
%}

View 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
%}

View 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);

View 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

View 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

View 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;

View 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]);
%}

View 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

Binary file not shown.

View 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;

View 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

View 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]);

View 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

View 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
%}

View 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

View 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',[])

View 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;

View 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)

View 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

View 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)

Binary file not shown.

File diff suppressed because it is too large Load Diff

View 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')

Binary file not shown.

Binary file not shown.

Binary file not shown.

View 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

View 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

Binary file not shown.

After

Width:  |  Height:  |  Size: 742 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 406 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 633 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 623 B