Add ezview

This commit is contained in:
2024-07-29 12:31:26 -04:00
parent 1c0c84f3e6
commit c323eef935
122 changed files with 57619 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

Binary file not shown.

View File

@@ -0,0 +1,137 @@
%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,245 @@
%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 (in
%********************
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,245 @@
%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,129 @@
%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
%for n= 1:length(RFcmpTraces +1)
%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********************
%try
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,649 @@
%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
%++++++++++++++++++++LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL+++++++++++++++++++++++
%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
%++++++++++++++++++++++KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK++++++++++++++++++++++
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
%+++++++++++++++++++++rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr+++++++++++++++++++++++++++++
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 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
%*************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 %if CompositeTrendFlg==0 || EZdatatip==1
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 %for I=1:length(plNums)
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 %if lstBoxCmpFlg==1
%***********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(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');
%+++++++++++++++++LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL+++++++++++++++++++++++++++++++++
%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
%+++++++++++++++++KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK+++++++++++++++++++++++++++++++++++++++++++++++++++++++
%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])
%++++++++++++++++++rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr+++++++++++++++++++++++++++++++++++++++++++++++
%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 EZdatatip==2 Response to Overlay click
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 %00000000000000000000000000000
% 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 %111111111111111111111111111
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 %2222222222222222222222222222 TEMPorily Same as interacPBsel==1
% set(ghandles.DNLaxes1,'Visible','on')
%set(ghandles.Dlaxes1,'Visible','off')
end %if Exp(4).interacPBsel==0
if verLessThan('matlab','8.4')
else %accomodate new matlab changes after 2014a fix update 23_0807
close(tempFig2)
end
%------------------------------------------------------------------------------------------------------------
%=====================================================================================================================
%end %if isempty(msg)
%BONEYARD BONEYARD BONEYARD BONEYARD BONEYARD BONEYARD BONEYARD BONEYARD BONEYARD
%*********************************************************************************
%{
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,134 @@
%Diagnostic sheet called by EZvInitLoad.m, EZexpSel.m ?EZinteractDev_.m?
%EZdiagRFsSheet.m
try %Try the whole routine
global Exp
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', cell2mat(RFmd1LB), mval1,mean1,std1,min1,max1)
fprintf(fid,'\n')
rCnt=rCnt+1;
data(rCnt,1:5)= [mval1,mean1,std1,min1,max1];
rnames(rCnt)= RFmd1LB;
catch mErr
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', cell2mat(RFmd2LB),mval2,mean2,std2,min2,max2)
fprintf(fid,'\n')
rCnt=rCnt+1;
data(rCnt,1:5)= [mval2,mean2,std2,min2,max2];
rnames(rCnt)= RFmd2LB;
catch ME
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', cell2mat(RFmdGLB),mvalsDG,RFmeanG,RFstdG,minG,maxG)
fprintf(fid,'\n')
rCnt=rCnt+1;
data(rCnt,1:5)= [mvalsDG,RFmeanG,RFstdG,minG,maxG];
rnames(rCnt)= RFmdGLB;
catch ME
message= 'No RF2 MasterPlate'
end
end %for d=1:DMnum
%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', cell2mat(RFmdPLB),mval1Disp,mean1Disp,std1Disp,minDisp,maxDisp);
fprintf(fid,'\n');
rCnt=rCnt+1;
data(rCnt,1:5)= [mval1Disp,mean1Disp,std1Disp,minDisp,maxDisp];
rnames(rCnt)= RFmdPLB; %cell2mat(RFmdPLB);
end %for mm=1:length(dMPs)
end %for d=1:DMnum
catch ME
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
%{
mErr
message= mErr.stack(end).line
error_line = mErr.stack(end).line
%}

View File

@@ -0,0 +1,75 @@
%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 d=1:DMnum
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 %for d=1:DMnum
end %for mm=1:length(dMPs)
%{
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

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,594 @@
%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 % for trc= 1:
end %for n=1:length(Exp(expN).Dexp)
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 %if isequal(get(Exp(1).hOL(trc),'Visible'),'on')
catch
end
end %for trc=
end %for n=1:length(Exp(expN).Dexp)
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 %if isequal(get(Exp(1).hOL(trc),'Visible'),'on')
catch
end
end % for trc= 1:
end %for
%end %for n=1:length(Exp(expN).Dexp)
%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 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 %for trc=
end %for dm=1:length(Exp(expN).Dexp(DexpN).DM.drug)
%{
if isequal(tempLB(4:6),'cmp')||isequal(tempLB(3:6),'cmpG'),
RFcmpFlg=1;
else
RFcmpFlg=0;
end
%}
end %if strcmp(Exp(expN).DexpType, 'chrono') else if Single or Multi experiment
%***********************************************************************************************
%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 %if userlPars.boxplotFlg==1
% END OF BOX PLOT CODE****************************************************
%++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
%*****************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 %for n=1:length(Exp(expN).Dexp)
% end %if isequal(get(Exp(1).hOL(trc),'Visible'),'on')
%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 %try
end % if isequal(get(Exp(expN).hOL(trc),'Visible'),'on') approx ln322
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 %for trc= 1:Exp(expN).traceN approx. ln319
%************** 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 %for n=1:length(Exp(expN).Dexp)
end % if isequal(get(Exp(expN).hOL(trc),'Visible'),'on')
end %for trc= 1:Exp(expN).traceN
%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 %if isequal(get(Exp(1).hOL(trc),'Visible'),'on')
end %for n=1:length(Exp(expN).Dexp(DexpN).DM.drug) %LOOP Thru Drug-Media perturbations
%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 %for trc= 1:Exp(expN).traceN
%************** 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 %for n=1:length(Exp(expN).Dexp)
end %for trc= 1:Exp(expN).traceN
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 %if ~strcmp(Exp(expN).DexpType, 'chrono') %Single or Multi-Experiment 395
%***************************************************************
%+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
%end
hold off
end %if userPars.boxplotFlg~=1 %PLOT OVERLAY OF TRENDS 266

View File

@@ -0,0 +1,427 @@
%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
%00000000 LLLLLLLLLLLLLL 00000000000000000000000000000000000000000000000
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) %Fix added 230814
%3333333333 KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK
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
%444444444 rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
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
%33333333333333333333333333333333333333333333333333333(1111111111111111111)
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 %if htMapTogPBfg==1
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]; %*
EZintRFs %* Call subroutine to interpret user RF inputs & det. Rn and Rs values
%****************
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 %for i=1:384
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
% end %for m=1:1
%end %for j=1:1
%4444444444444444444444444444444444444444444444444444444444(22222222222222222)
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);
elsef
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 %if htTog==
prntHt= 0;
%************* *****
EZhtMapText %* Update htMapText for location on the first 'roll thru of htMapPB
%************* *****

View File

@@ -0,0 +1,82 @@
%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,162 @@
%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)
%********************11111111111111111111111111111111111111111****************************************************************************************************************
%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)
%********************222222222222222222222222222222222222222222222****************************************************************************************************************
%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)
%********************3333333333333333333333333333333333333333333333****************************************************************************************************************
%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)
%********************44444444444444444444444444444444444444444444****************************************************************************************************************%Interaction Printout for Negative (shorter L interaction values) Non-Adjusted for Ref std and curve fit boundaries
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,453 @@
%single gene L based interaction shift display
function EZinterAgingDev0
[openExpfile,openExppath] = uigetfile('.mat','Open Experiment folder and data storage .mat file name','MultiSelect','on');
AgMPDM=load (fullfile(openExppath,'MasterPlateFiles','MPDMmat.mat'));
for i=1:size(openExpfile,2)
ExpOutmat{i}= fullfile(openExppath,openExpfile{i});
EScan{i}=load(ExpOutmat{1});
end
%single gene L based interaction shift display
%function EZinteractDev3
global Exp
% 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 %m=1:mpN
%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 %j=1:dmN
%****************************************************************************************
%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 % for j= when subplotX~=1 standard one plot per figure
if strcmpi(subplotX,'N')
figure
bar3(ybb);
%xxbb=yb{1}(2,:);
%figure
end
else
end %if subplotX==1 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

View File

@@ -0,0 +1,238 @@
%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');
%************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;
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
%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
end %if sgdInfoOnly==1
%***********************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')
%EZdatatip=2; %**
%************
EZmDayTrend %**
%************
end
%***********************************************************************************************************************

View File

@@ -0,0 +1,238 @@
%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');
%************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;
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
%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
end %if sgdInfoOnly==1
%***********************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')
%EZdatatip=2; %**
%************
EZmDayTrend %**
%************
end
%***********************************************************************************************************************

View File

@@ -0,0 +1,307 @@
%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');
%************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).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 %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')
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 % trycatch zoneSel<4 datatip selection from Image (not from an OverLay Plot)
end %if get(ghandles.CompositeTog1,'value')==1
%**************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 %if sgdInfoOnly==1

View File

@@ -0,0 +1,307 @@
%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');
%************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).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 %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')
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 % trycatch zoneSel<4 datatip selection from Image (not from an OverLay Plot)
end %if get(ghandles.CompositeTog1,'value')==1
%**************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 %if sgdInfoOnly==1

View File

@@ -0,0 +1,257 @@
%EZlstBoxExt
%global Exp
%expN=1;
RFDMflg=0;
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
%***********PLOT Selected Gene/Orf Spot ******************************************
try
destPerMP= Exp(zoneSel).Dexp(DexpN).destPerMP; %length(gS.DM1.drug);
%MPsel=LBmb; %floor(get(handles.MPsldr1,'value'));
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;
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');
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 %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')
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).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 % 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
%*****************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')
%***********************GraphicDestinationPertibationComparison**15_0821************************************************
EZdatatip=0;
EZdestComp
%***********************************************************************************************************************
%*********************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 %if sgdInfoOnly==1

View File

@@ -0,0 +1,292 @@
%***********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 %if isempty(regexpi(char((Exp(expN).Dexp(n).MP(mp).genename{1}(ind384))),'blank'))...
%*******************************************************************************
catch
msgBadGeneName= strcat('check genename at mp=',num2str(mp),' indx=',num2str(ind384))
end
end %end associated with for ind384=1:384
mp
end %end associated with for mp=1:length(Exp(expN).Dexp(n).MP)
%*****************************************************
%************************************************************************************************
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 %for mm=1:length(dMPs)
%****************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 % if exist('drf','var')
%END OF DISPERSE Gene data collection
%*********************************************************************
%####################################################################
end %for n=1:Exp(expN).DexpLength %Loop thru Dayexps
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 ******************************************try
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
%************CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC**************************************
%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 %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
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 % trycatch zoneSel<4 datatip selection from Image (not from an OverLay Plot)

View File

@@ -0,0 +1,677 @@
%***********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 %if isempty(regexpi(char((Exp(expN).Dexp(n).MP(mp).genename{1}(ind384))),'blank'))...
%*******************************************************************************
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 %end associated with for ind384=1:384
mp
end %end associated with for mp=1:length(Exp(expN).Dexp(n).MP)
%*****************************************************
%************************************************************************************************
%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 % if exist('drf','var')
%END OF DISPERSE REFERENCE PLATAES CALCULATIONS AND LIST ADDITIONS
%*********************************************************************
%####################################################################
end %for n=1:Exp(expN).DexpLength %Loop thru Dayexps
Exp(expN).UgeneCnt= Exp(expN).UgeneCnt +1;
Exp(expN).UgeneSpLst(Exp(expN).UgeneCnt)= usrGnSp;
%#######################################################################
%***********PLOT Values Selected Gene-Specifics Composite ******************************************try
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');
%************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).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 %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
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
catchissue='Ln141 EZlstBoxExt'
msg='Error'
end % trycatch zoneSel<4 datatip selection from Image (not from an OverLay Plot)
%{
% 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,568 @@
%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
%++++++++++++++++++++LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL+++++++++++++++++++++++
%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
%++++++++++++++++++++++KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK++++++++++++++++++++++
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
%+++++++++++++++++++++rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr+++++++++++++++++++++++++++++
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 %if CompositeTrendFlg==0 || EZdatatip==1
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 %for nn=1:Exp(expN).DexpLength
%**************************ELSEIF
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 % Second for nn loop lstBoxCmpFlg==1 %for nn=1:Exp(expN).DexpLength
end %if lstBoxCmpFlg~= 1
%end
%///////////////////////////////////////////////////////////////////
%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
%***********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');
%+++++++++++++++++LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL+++++++++++++++++++++++++++++++++
%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
%+++++++++++++++++KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK+++++++++++++++++++++++++++++++++++++++++++++++++++++++
%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])
%++++++++++++++++++rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr+++++++++++++++++++++++++++++++++++++++++++++++
%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 EZdatatip==2 Response to Overlay click
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 %00000000000000000000000000000
% 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 %111111111111111111111111111
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 %2222222222222222222222222222 TEMPorily Same as interacPBsel==1
% set(ghandles.DNLaxes1,'Visible','on')
%set(ghandles.Dlaxes1,'Visible','off')
end %if Exp(4).interacPBsel==0
%pause(2)
%------------------------------------------------------------------------------------------------------------
%=====================================================================================================================
%end %if isempty(msg)
%{
%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,48 @@
%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 %for o=1:size(matFlst,1)
end %if sum(ismember('Results2', dirLst(n).name))
end %for n=1:size(dirLst,1)
end %for m= 1:size(expDlst,2)
Exp(expN).DexpLength= size(matFile,2);
Exp(expN).DexpN= size(matFile,2);

View File

@@ -0,0 +1,67 @@
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,133 @@
%EZmultiDayGui.m called by EZexpSel.m ln957 && ln963
%EZmultiday is called after this EZmultiDayGui.m also by EZexpSel.m
function EZmultiDayGui
%global Exp
global exDlst
global exFolder
global expType
global usrExpJobsDir
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];
datacursormode off;
%====================================
%{
w= pwd;
%Linux accommodatition
if ispc,cd(fullfile('C:\')); %end % \Easy\Experiments'));
else
cd(fullfile('~'))
end
%}
%====================================
w= pwd;
%Linux accommodatition
%try to use user selected 'ExpJobs' folder otherwise use a default
%directory in the uigetfile to load the experiment .mat file.
try
load ('ExpJobsFldr')
catch
end
%try %Linux accommodatition
if ispc
try
cd(usrExpJobsDir);
catch
cd(fullfile('C:\')); %end % \Easy\Experiments'));
end
else
try
cd(usrExpJobsDir);
catch
cd(fullfile('~'))
end
end
%*****************************************
exFolder=uigetdir
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 %if expType==2
%*********************************************
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)
cd(w)
end
%*****************************************************************

View File

@@ -0,0 +1,353 @@
%EZmultiExLoad
%Calls to EZVimDisplay (ln 185) EZmultiGeneRFsLst (ln213) EZdiagRFsSheet(ln218)
global Exp
global zonePB
global Expaa
global Expbb
global exDlst
global exFolder
%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(n).MP(mx).genename{1}(384)))
MPnum=mx;
catch
break
end
end
%*************************************************
%}
%********************************************************************************
%Begin .mat Data Loading section
%********************************************************************************
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) %fullfile(openExppath,openExpfile);
load(char(ExpOutmat));
%cd(openExppath)
%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 %for n=1:size(matFile,2)
%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,730 @@
%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) %mp;
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) %mp;
%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
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 %end associated with for ind384=1:384
mp
end %end associated with for mp=1:length(Exp(expN).Dexp(n).MP)
%*****************************************************
%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 %~isempty(nonZeroIndx) && length(medianIndx) > (.15*384)
catch %try ~ln375
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
catchissue='Ln209'
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
catchissue='Ln209'
Exp(expN).Dexp(n).RFmd1pltN= 1;
end
error='EZexpSel lineAfter 209'
end %try ~ln209
end %for d=0:DMnum
end % if exist('RF1scanN','var')
%**********************************************************************************
%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
error='EZexpSel lineAfter 279'
end %if RF2scanN doesn't exist this addition to list will be skipped
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 %for d=0:DMnum ln446
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 %if exist('RF2scanN','var') ln445
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%*************************************************************************************************
%***********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);
try % Determine the dispersed RFs median mean and std if such exist
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 %~isempty(NZrefIndxP) && length(medianIndxDisp) > 3 ln584
catch %try ln565
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
error='EZexpSel lineAfter 565'
end %try ~ln565
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(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 % if exist('drf','var')
%END OF DISPERSE REFERENCE PLATAES CALCULATIONS AND LIST ADDITIONS
%*********************************************************************
%Added 17-1023 For User Addition of Gene Composites to ListBox
%Expaa{expN,n}= aa; Expbb{expN,n}= bb;
%>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
%********************************************************************
%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,299 @@
%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
global exFolder
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 %if isempty(regexpi(char((Exp(expN).Dexp(DexpN).MP(mp).genename{1}(ind384))),'blank'))...
%*******************************************************************************
catch
msgBadGeneName= strcat('check genename at mp=',num2str(mp),' indx=',num2str(ind384))
end
end %end associated with for ind384=1:384
mp
end %end associated with for mp=1:length(Exp(expN).Dexp(DexpN).MP)
%*****************************************************
%************************************************************************************************
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);
%For Global Ref Composite 17_1009 %**************************************************************************
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 %for mm=1:length(dMPs)
%****************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')
%END OF DISPERSE
%*********************************************************************
%####################################################################
%end %for n=1:Exp(expN).DexpLength %Loop thru Dayexps
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 ******************************************try
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
%************CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC**************************************
%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 %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
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 % trycatch zoneSel<4 datatip selection from Image (not from an OverLay Plot)

Binary file not shown.

View File

@@ -0,0 +1,147 @@
%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
%***************************
%*********************************************************************
%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
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,245 @@
function EZspotview(expN,DexpN, imLoc,OLresDir,OLplateNum,NoOLay)
datacursormode(gcf)
global Exp
global ghandles
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 %if matchfound==1
end %if prevExp==0
%**************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 IMGAGE
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 %for tPt=1:tPtsSize end of for Fotos Spot image cutout
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 %function end
%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
%XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

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,223 @@
%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 %~isempty(NZrefIndxP) && length(medianIndxDisp) > 3 ln584
catch %try ln565
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
catchissue='try at Ln565'
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
catchissue='Ln619'
Exp(expN).Dexp(DexpN).RFmdPpltN= 1; %This might keep from breaking BUT ???
end
error='EZexpSel lineAfter 565'
end %try ~ln565
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 % if exist('drf','var')
%END OF DISPERSE REFERENCE PLATAES CALCULATIONS AND LIST ADDITIONS
%*********************************************************************
catch
msg= 'Failed attempt to apply User Selected Reference'
end %if n==1 && ~exist('RF1scanN','var') && ~exist('RF2scanN','var')

View File

@@ -0,0 +1,665 @@
%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 %for n=1:16
end %for m=1:24
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 %trycatch
%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;
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;
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;
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 % trycatch expN<4 datatip selection from Image (not from an OverLay Plot)
end %if ~exist('OLay','var')
%******************************************************************************************
%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 % => for i=1:length(Exp(OLay).hOL(:))
%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 %=> try for Write Selected Trace Info to OLAY header******
%HIDE HIDE HIDE ---------------------------------------------------
%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 22222222222222222-----
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 %if rotPB2 ....==1
%------HIDE 33333333333333-----
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,668 @@
%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 %for n=1:16
end %for m=1:24
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 %trycatch
%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 % trycatch expN<4 datatip selection from Image (not from an OverLay Plot)
end %if ~exist('OLay','var')
%******************************************************************************************
%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 % => for i=1:length(Exp(OLay).hOL(:))
%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 %=> try for Write Selected Trace Info to OLAY header******
%HIDE HIDE HIDE ---------------------------------------------------
%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 22222222222222222-----
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 %if rotPB2 ....==1
%------HIDE 33333333333333-----
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,522 @@
global ghandles
global Exp
%datacursormode(gcf)
%{
[output_txt]=datatipp(obj,event_obj);
clkPos=getCursorInfo(datacursormode(gcf));
cpos=clkPos.Position;
htargetAxes= clkPos.Target;
%}
%pause(1)
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; %zone=1; datacursormode off;
elseif ghandles.OLaxes2==get(htargetAxes,'Parent'),OLay=2; %zone=2; datacursormode off;
elseif ghandles.OLaxes3==get(htargetAxes,'Parent'),OLay=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
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;
%x2ypos= [1400-cpos(2) cpos(1)] %for HorzRotatedImage
ptrPos=[cpos(1),cpos(2)]; %for VerticleImage
if htMapFg==0
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];
%indx=(picLoc1(1)-1)*24+picLoc1(2)
%spotFrm= Exp(expN).Dexp(DexpN).FexpScanSpots{1}{m,n,tPtSel};
spotFrm= Exp(expN).Dexp(DexpN).FexpScanSpots{plateNum}{m,n,tPtSel}; %20160108
end
end
end %for n=1:16
end %for m=1:24
destcompMsg= 'GoodDataTip';
catch
destcompMsg= 'BadDataTip';
m
n
end
plateLoc= [(17-picLoc1(1)) picLoc1(2)];
indx=(plateLoc(1)-1)*24+plateLoc(2);
elseif htMapFg==1
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
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*');
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 %trycatch
%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)));
%graphStr=strcat(grfgenestr,'_','L=',num2str(l),'_','r=',num2str(r),'_','K=',num2str(K));
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)-1) +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).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(expN).Dexp(DexpN).srtOrfLst)
else
set(ghandles.listboxGnOrf,'string',Exp(expN).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).srtOrfLst)
else
set(ghandles.listboxGnOrf,'string',Exp(2).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).srtOrfLst)
else
set(ghandles.listboxGnOrf,'string',Exp(3).srtGnLst)
end
end
%**************************************************************
catch
msg='NotImage'
end % trycatch expN<4 datatip selection from Image (not from an OverLay Plot)
%******************************************************************************************
%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);
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);
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);
OLplateNum= Exp(OLay).hOLplateNum(i);
seltraceN=i;
end
Exp(OLay).seltraceN=seltraceN;
else
msg='Cant Find trace'
end
end % => for i=1:length(Exp(OLay).hOL(:))
%Extract row and col values from stored trace label for dest compare plots(EZdestComp)
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).scan;
EZdatatip=2;
catch
end
catch
msg='Not in OLay frame-axis'
end %=> try for Write Selected Trace Info to OLAY header******
%HIDE HIDE HIDE ---------------------------------------------------
%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(:))
%htargetAxes %debug info
%Exp(OLay).hOL(i) %debug info
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 22222222222222222-----
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 %if rotPB2 ....==1
%------HIDE 33333333333333-----
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'
end
%**********************************************************************************
%prevExp=1
NoOLay=0;
try
OLay
expN=OLay
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, imLoc,OLresDir,OLplateNum,NoOLay)
end
%*******************************GraphicDestinationPertibationComparison**15_821*******************
%EZdatatip=1;
EZdestComp
%********************************
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
[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
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
n2= 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
try
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
catch
end
%datacursormode(gcf)
%**********************************************Test Area
%{
if get(ghandles.rotPB3,'value') ==1 && OLay==3,
for i=1:length(Exp(OLay).hOL(:))
for j=1:length(Exp(OLay).hOL(:)) %Set all traces blue
set(Exp(OLay).hOL(i),'color',[0 0 1])
end
if htargetAxes==Exp(OLay).hOL(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==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 %if rotPB3...==1
%}

View File

@@ -0,0 +1,164 @@
%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,32 @@
%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,956 @@
%EZvInitLoad
clear Exp
global Exp
global Expaa
global Expbb
global userPars
global usrExpJobsDir %added 23_0508
global zonePB %added 230828 to fix migration issues
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));
%Exp(expN).expLoadCnt=0; ??? May need to add in Future
Exp(1).cTraceN= 1; %Added for Cummulative Composite Olay plotting
Exp(2).cTraceN= 1;
Exp(3).cTraceN= 1;
Exp(1).cTraceIndx(1)= 1;
Exp(2).cTraceIndx(1)= 1;
Exp(3).cTraceIndx(1)= 1;
Exp(1).CompositPlot= 0; Exp(2).CompositPlot= 0; Exp(3).CompositPlot= 0;
w=pwd;
Exp(1).DexpType='single';
Exp(2).DexpType='single';
Exp(3).DexpType='single';
Exp(1).DexpN= 1;
Exp(2).DexpN= 1;
Exp(3).DexpN= 1;
Exp(1).DexpLength= 1;
Exp(2).DexpLength= 1;
Exp(3).DexpLength= 1;
set(handles.DN1,'value',1)
set(handles.DN2,'value',1)
set(handles.DN3,'value',1)
set(handles.GeneOrfTog,'value',0)
try
load 'EZsgdInfo';
catch
disp('Fail to load EZsgdInfo file from code directory');
end
Exp(4).SGDnum=SGDnum;
Exp(4).SGDtext=SGDtext;
Exp(4).SGDraw=SGDraw;
Exp(4).interacPBsel=0;
%{
try
%Non PC accommodatition
if ispc,cd(fullfile('C:\')); % \Easy\Experiments'));
else
cd(fullfile('~'))
end
%}
try %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
load('ExpJobsFldr')
catch
disp('Fail to load ExpJobsFldr.mat file from code directory. Create one under the [File] Menu option.');
end
%try %Linux accommodatition
if ispc
try
cd(usrExpJobsDir);
catch
cd(fullfile('C:\')); %end % \Easy\Experiments'));
end
else
try
cd(usrExpJobsDir);
catch
cd(fullfile('~'))
end
end
[openExpfile,openExppath] = uigetfile('.mat','Open Experiment folder and data storage .mat file name','MultiSelect','off')
try
ExpOutmat= fullfile(openExppath,openExpfile);
load(ExpOutmat);
cd(openExppath)
cd ..;
resDir=pwd;
Exp(1).Dexp(1).resDir=resDir;
Exp(2).Dexp(1).resDir=resDir;
Exp(3).Dexp(1).resDir=resDir;
cd ..;
try
test4imageDir= imread(fullfile(pwd,'1','1.bmp'));
ExpPath=pwd;
Exp(1).Dexp(1).ExpFoldr=ExpPath;
Exp(2).Dexp(1).ExpFoldr=ExpPath;
Exp(3).Dexp(1).ExpFoldr=ExpPath;
catch
try
cd ..
test4imageDir= imread(fullfile(pwd,'1','1.bmp'));
ExpPath=pwd;
Exp(1).Dexp(1).ExpFoldr=ExpPath;
Exp(2).Dexp(1).ExpFoldr=ExpPath;
Exp(3).Dexp(1).ExpFoldr=ExpPath;
catch
cd(w)
end
end
cd(w)
load (fullfile(Exp(1).Dexp(1).ExpFoldr,'MasterPlateFiles','MPDMmat.mat'))
Exp(1).Dexp(1).DM=DM;
Exp(2).Dexp(1).DM=DM;
Exp(3).Dexp(1).DM=DM;
Exp(1).Dexp(1).MP=MP;
Exp(2).Dexp(1).MP=MP;
Exp(3).Dexp(1).MP=MP;
Exp(1).Dexp(1).scan=scan;
Exp(2).Dexp(1).scan=scan;
Exp(3).Dexp(1).scan=scan;
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'))
Exp(1).Dexp(1).FexpScanSpots=FexpScanSpots;
Exp(2).Dexp(1).FexpScanSpots=FexpScanSpots;
Exp(3).Dexp(1).FexpScanSpots=FexpScanSpots;
Exp(1).Dexp(1).FexpScanBMtp=FexpScanBMtp;
Exp(2).Dexp(1).FexpScanBMtp=FexpScanBMtp;
Exp(3).Dexp(1).FexpScanBMtp=FexpScanBMtp;
Exp(1).Dexp(1).anlZoneRefs=anlZoneRefs;
Exp(2).Dexp(1).anlZoneRefs=anlZoneRefs;
Exp(3).Dexp(1).anlZoneRefs=anlZoneRefs;
catch
end
Exp(1).traceN=0; Exp(2).traceN=0; Exp(3).traceN=0; %ZoneRelated
Exp(1).hOL =[]; Exp(1).hOLb=[];
Exp(1).hOLname = {}; Exp(1).hOLexpNm={}; Exp(1).hOLresDir={}
Exp(1).hOLplateNum=[];
Exp(1).hOLresDir= {};
Exp(1).RFmd1indx=[];
Exp(1).RFmd1pltN=[];
Exp(1).RFmd2indx=[];
Exp(1).RFmd2pltN=[];
Exp(2).hOL =[]; Exp(2).hOLb=[];
Exp(2).hOLname = {}; Exp(2).hOLexpNm={}; Exp(2).hOLresDir={};
Exp(2).hOLplateNum=[];
Exp(2).hOLresDir= {};
Exp(2).RFmd1indx=[];
Exp(2).RFmd1pltN=[];
Exp(2).RFmd2indx=[];
Exp(2).RFmd2pltN=[];
Exp(3).hOL =[]; Exp(3).hOLb=[];
Exp(3).hOLname = {}; Exp(3).hOLexpNm={}; Exp(3).hOLresDir={};
Exp(3).hOLplateNum=[];
Exp(3).hOLresDir= {};
Exp(3).RFmd1indx=[];
Exp(3).RFmd1pltN=[];
Exp(3).RFmd2indx=[];
Exp(3).RFmd2pltN=[];
%sefaults 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 %nested try-catch-end from ->ExpOutmat= fullfile(openExppath,openExpfile);
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
error='EZexpSel lineAfter 135 EZvInitLoad.m'
mp
ind384
msgBadGeneName= strcat('check genename at mp=',num2str(mp),' indx=',num2str(ind384))
end
end %end associated with for ind384=1:384
mp
end %end associated with for mp=1:length(Exp(expN).Dexp(1).MP)
%*****************************************************
%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 %try ~ln219
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
catchissue='Ln328'
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
error='EZvInit after Ln278'
end %try ~ln219
end %for d=0:DMnum
end % if exist('RF1scanN','var')
%*************************************************************************************
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
catchissue='Ln402'
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
catchissue='Ln408'
Exp(1).Dexp(1).RFmd2pltN= 1; Exp(2).Dexp(1).RFmd2pltN= 1; Exp(3).Dexp(1).RFmd2pltN= 1;
end
error='EZexpSel lineAfter 354'
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);
%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 %for d=0:DMnum
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 %if exist('RF2scanN','var')
%*************************************************************************************************
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%*************************************************************************************************
%***********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 %~isempty(NZrefIndxP) && length(medianIndxDisp) > 3 ln584
catch %try ln565
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
error='EZexpSel lineAfter 565'
end %try ~ln565
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
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 %if ~isempty(NZrfIndxG(:,d)) && length(medianIndxD) > (.15*size(drf,1))
end %for d=1:DMnum
end % if exist('drf','var')
%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'}; {' '}]);
%[openExpfile,openExppath]
if isempty(strfind(openExpfile,'.mat'))
cd(openExppath)
cd ..
ExpPath=pwd;
cd(w)
ExpOutImFile= fullfile(openExppath,openExpfile);
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
%************************************************************************
%Added 17-1023 For User Addition of Gene Composites to ListBox
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
%------Adapt for AppDesigner 230821-----------
global ghandles
ghandles= handles;
%global Exp(4)
ghandles.guiFig= gcf;
Exp(4).guiFig=gcf;

View File

@@ -0,0 +1,749 @@
%EZvInitLoad
clear Exp
global Exp
w=pwd;
Exp(1).Dexp(1).DexpType='single';
Exp(2).Dexp(1).DexpType='single';
Exp(3).Dexp(1).DexpType='single';
Exp(1).Dexp(1).DexpType= 1;
Exp(2).Dexp(1).DexpN= 1;
Exp(3).Dexp(1).DexpN= 1;
set(handles.GeneOrfTog,'value',0)
try load 'EZsgdInfo'; catch disp('Fail to load EZsgdInfo file from code directory'); end
Exp(4).SGDnum=SGDnum;
Exp(4).SGDtext=SGDtext;
Exp(4).SGDraw=SGDraw;
Exp(4).interacPBsel=0;
try
%Non PC accommodatition
if ispc,cd(fullfile('C:\')); % \Easy\Experiments'));
else
cd(fullfile('~'))
end
[openExpfile,openExppath] = uigetfile('.mat','Open Experiment folder and data storage .mat file name','MultiSelect','off')
try
ExpOutmat= fullfile(openExppath,openExpfile);
load(ExpOutmat);
cd(openExppath)
cd ..;
resDir=pwd;
Exp(1).Dexp(1).resDir=resDir;
Exp(2).Dexp(1).resDir=resDir;
Exp(3).Dexp(1).resDir=resDir;
cd ..;
ExpPath=pwd;
Exp(1).Dexp(1).ExpFoldr=ExpPath;
Exp(2).Dexp(1).ExpFoldr=ExpPath;
Exp(3).Dexp(1).ExpFoldr=ExpPath;
cd(w)
load (fullfile(Exp(1).Dexp(1).ExpFoldr,'MasterPlateFiles','MPDMmat.mat'))
Exp(1).Dexp(1).DM=DM;
Exp(2).Dexp(1).DM=DM;
Exp(3).Dexp(1).DM=DM;
Exp(1).Dexp(1).MP=MP;
Exp(2).Dexp(1).MP=MP;
Exp(3).Dexp(1).MP=MP;
Exp(1).Dexp(1).scan=scan;
Exp(2).Dexp(1).scan=scan;
Exp(3).Dexp(1).scan=scan;
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'))
Exp(1).Dexp(1).FexpScanSpots=FexpScanSpots;
Exp(2).Dexp(1).FexpScanSpots=FexpScanSpots;
Exp(3).Dexp(1).FexpScanSpots=FexpScanSpots;
Exp(1).Dexp(1).FexpScanBMtp=FexpScanBMtp;
Exp(2).Dexp(1).FexpScanBMtp=FexpScanBMtp;
Exp(3).Dexp(1).FexpScanBMtp=FexpScanBMtp;
Exp(1).Dexp(1).anlZoneRefs=anlZoneRefs;
Exp(2).Dexp(1).anlZoneRefs=anlZoneRefs;
Exp(3).Dexp(1).anlZoneRefs=anlZoneRefs;
catch
end
Exp(1).traceN=0; Exp(2).traceN=0; Exp(3).traceN=0; %ZoneRelated
Exp(1).hOL =[]; Exp(1).hOLb=[];
Exp(1).hOLname = {}; Exp(1).hOLexpNm={}; Exp(1).hOLresDir={}
Exp(1).hOLplateNum=[];
Exp(1).hOLresDir= {};
Exp(1).RFmd1indx=[];
Exp(1).RFmd1pltN=[];
Exp(1).RFmd2indx=[];
Exp(1).RFmd2pltN=[];
Exp(2).hOL =[]; Exp(2).hOLb=[];
Exp(2).hOLname = {}; Exp(2).hOLexpNm={}; Exp(2).hOLresDir={}
Exp(2).hOLplateNum=[];
Exp(2).hOLresDir= {};
Exp(2).RFmd1indx=[];
Exp(2).RFmd1pltN=[];
Exp(2).RFmd2indx=[];
Exp(2).RFmd2pltN=[];
Exp(3).hOL =[]; Exp(3).hOLb=[];
Exp(3).hOLname = {}; Exp(3).hOLexpNm={}; Exp(3).hOLresDir={}
Exp(3).hOLplateNum=[];
Exp(3).hOLresDir= {};
Exp(3).RFmd1indx=[];
Exp(3).RFmd1pltN=[];
Exp(3).RFmd2indx=[];
Exp(3).RFmd2pltN=[];
%sefaults values for EZvFigPrint that meet JLH preferences
Exp(4).plotPars={'4','36','10','5'};
expN=1;
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/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/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.MPsldr3,'SliderStep',[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]);
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 %nested try-catch-end from ->ExpOutmat= fullfile(openExppath,openExpfile);
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: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== length(Exp(expN).Dexp(1).MP) ) && ...
~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
error='EZexpSel lineAfter 135 EZvInitLoad.m'
mp
ind384
msgBadGeneName= strcat('check genename at mp=',num2str(mp),' indx=',num2str(ind384))
end
end %end associated with for ind384=1:384
mp
end %end associated with for mp=1:length(Exp(expN).Dexp(1).MP)
%*****************************************************
%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
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)
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))};
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;
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 %try ~ln219
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
catchissue='Ln328'
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
error='EZvInit after Ln278'
end %try ~ln219
end %for d=0:DMnum
end % if exist('RF1scanN','var')
%*************************************************************************************
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
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);
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))};
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;
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
catchissue='Ln402'
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
catchissue='Ln408'
Exp(1).Dexp(1).RFmd2pltN= 1; Exp(2).Dexp(1).RFmd2pltN= 1; Exp(3).Dexp(1).RFmd2pltN= 1;
end
error='EZexpSel lineAfter 354'
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);
%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 %for d=0:DMnum
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 %if exist('RF2scanN','var')
%*************************************************************************************************
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%*************************************************************************************************
%***********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);
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 %~isempty(NZrefIndxP) && length(medianIndxDisp) > 3 ln584
catch %try ln565
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
error='EZexpSel lineAfter 565'
end %try ~ln565
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
medianIndxD=[];
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;
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(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;
end %if ~isempty(NZrfIndxG(:,d)) && length(medianIndxD) > (.15*size(drf,1))
end %for d=1:DMnum
end % if exist('drf','var')
%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'}; {' '}]);
%[openExpfile,openExppath]
if isempty(strfind(openExpfile,'.mat'))
cd(openExppath)
cd ..
ExpPath=pwd;
cd(w)
ExpOutImFile= fullfile(openExppath,openExpfile);
EZvImagesOnly
end
end
%*********************************************************
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).resetHtmpTg =3; Exp(2).resetHtmpTg =3; Exp(3).resetHtmpTg =3; %ZoneRelated
if RFconfig==0,
RFconfigMsg= 'No RF1 references in this Experiment Job'
Exp(1).resetHtmpTg =1; Exp(2).resetHtmpTg =1; Exp(3).resetHtmpTg =1; %ZoneRelated
end
catch
end
%*****************************
% HtMapTog 'string', 'Current user HL/HN' selection'
try
Exp(1).htmapPBsel=0;
set(handles.HtMapTog1,'string','HL')
Exp(2).htmapPBsel=0; %ZoneRelated
set(handles.HtMapTog2,'string','HL')
Exp(3).htmapPBsel=0;
set(handles.HtMapTog3,'string','HL')
catch
% expN=1;
end
htMapTogPBfg=0;
Exp(1).htmapRFanswer= {'G','L'}; %ZoneRelated
Exp(2).htmapRFanswer= {'G','L'};
Exp(3).htmapRFanswer= {'G','L'};

View File

@@ -0,0 +1,62 @@
%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,4 @@
%EZviewGui.m startup
EZviewGui

View File

@@ -0,0 +1,4 @@
%EZviewGui_export.m startup
EZviewGui_export

View File

@@ -0,0 +1,4 @@
%EZviewGui_App.mlapp startup
EZviewGui_App
EZviewGui_App

View File

@@ -0,0 +1,4 @@
%EZviewGui_App.mlapp startup
EZviewGui_App_7

View File

@@ -0,0 +1,4 @@
%EZviewGui_App.mlapp startup
EZviewGui_App

View File

@@ -0,0 +1,160 @@
%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

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

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.

Binary file not shown.

View File

@@ -0,0 +1,144 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Migration Report for EZviewGui</title>
<style type="text/css">
html body {
height: 100%;
padding: 0; margin: 0;
color: #474747;
font: 13px/1.384 Arial, Helvetica, sans-serif;
}
/*Report Title Header*/
h1 {
font-family: Futura, Arial, Helvetica, sans-serif;
font-size: 28px;
font-weight: 400;
color: #fff;
margin: 0;
padding: 15px;
}
/*Report Section Headers*/
h2 {
padding-bottom: 2px;
margin: 20px 0 17px 0;
border-bottom: 1px solid #cbcbcb;
color: #c45400;
font: normal normal 22px/1.136 Arial,Helvetica,sans-serif;
}
/*Report Subsection Headers*/
h3 {
margin: 20px 0 20px 0;
font: normal bold 17px/1.35 Arial, Helvetica, sans-serif;
}
ul.childHasIcon {
padding-left: 20px;
}
ul > li.success {
list-style: none;
/*Check-mark image*/
background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAK2SURBVHjaVJNPaFRXFMZ/b96MmUZGURMyHaoTa0QrRReD4KIlwriRRhPpoi1ddeNG4krFRbAbceOf0qJuSoWWWlooIiKlCSkp1ARksEmpi8GSQjKJUSYk/p1J5r17vi7ee609cFf3+33n3HvO8SgdJYn+oZFODw4DBxB7hYoSMzJVZBo12a2fzr9X55XwEoOBoZGyYNCDfgEyIQkMzIRkBKupYXN89svVg8OJgU+hxMDQSBk45+GVJSJQQk5IYGbIhIfrcSF78ttrC3P336wC+ANXlzqBs0A5EgtkSMJMMRxXFN11mSm/pr05sTSXX0qBDkvqj0Qx6MBC/QuVt77Pp/uvkV9bxJzhZ5r7cx2LHwGZtMQBGUhRmSaB/Zd9rb+OD98+zub1Paxbs5FjNw9GJm2NXuDLtMz2RuUC8VsVG2T9di4fGqaQ6+ZubZTvJ69goWEy/PTKTmBDykxFc0LOOLHvMu+8cQjnjDRtXDsyTiHXTaU2xpmfP6EyO4Y5Q6EgFXQBubRMM+a0zcx4t9hHb3c/j5/Ncbr3Cpva80w9HOfU7Q8IwhbmonaagQv8x0A25ZxVzAxz4tupS0jG5323eT1XZHL+DoM3+mgFLZwzEp2c0WpmqsBKypxGLb785vcLfH3vAgCT878xeKMvAp1FM5Ecg5Wn6+8Bz1Pm3K1W0xu2UFhofDf5BX8t/snFsZPxDMSZzaLOSKw2suOPHuyaAJb9v+c+bmze/aBuTnuE6wrCgJt/fMVyox6NcNwRCTARtjLV5fkt1+vTb1WAmk+hxOzUjumOrTMLkuVTXtCdgMmHJTux2nxt/Ml88Xptat+vwCzw0qdQAmCh2lPNZBsTJluU8ySsDazdhf6j1sts5cVS548P75d+qE/vrMTw8v+28ZXIAB3ABiAHZIEV4HkMLQJBIv5nAPq180UQOlmCAAAAAElFTkSuQmCC') no-repeat;
padding-left: 20px;
margin-bottom: 5px;
}
ul.verifications > li {
margin: 7px 0 7px 0;
}
table {
width: 100%;
border-collapse: collapse;
}
table,th,tr,td {
border: 1px solid #ccc;
text-align: left;
vertical-align: top;
padding: 8px 15px;
}
tr:nth-child(odd) {
background-color: #fafafa;
}
a { color: #187dbb; text-decoration: none; }
a:visited { color: #004b87; text-decoration: none; }
a:hover { color: #004b87; text-decoration: underline;}
code {
font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
}
.reportTitle {
min-height: 52px;
background: #2f7eb2;
}
.reportBody {
padding: 0 15px 0 15px;
}
/*Classes that are used by HTML that is added dynamically by the report generator */
.detailsWorkaround {
padding: 10px 0px;
}
.detailsWorkaroundHeader {
padding-right: 5px;
font-weight: bold;
}
.hidden {
display: none;
}
.visible {
display: block;
}
.showMore {
margin-top: 5px;
}
</style>
</head>
<body>
<div class="reportTitle">
<h1>Migration Report for <code>EZviewGui</code></h1>
</div>
<div class="reportBody">
<section>
<h3>Your GUIDE app was migrated to App Designer and is ready for validation.</h3>
<h2>Migration Results</h2>
<ul class="childHasIcon">
<li class="success"><b>EZviewGui_App_7.mlapp</b> file created</li>
<li class="success"><b>2105</b> lines of code analyzed in EZviewGui.m</li>
<li class="success"><b>160</b> components created and initialized</li>
<li class="success"><b>75</b> callbacks and utility functions configured and enabled to function in App Designer</li>
</ul>
</section>
<section>
<h2>Validate Your Migrated App</h2>
<p>The migration tool enables most of your app code to execute. Now, you need to fully validate your migrated app to make sure it behaves as expected. Consider doing the following verifications:</p>
<ul>
<li>Verify Layout
<ul class="verifications">
<li>Run your app and verify the initial layout of all components is as expected.</li>
<li>If your app dynamically shows, hides, or enables additional components or options in response to selections made within the app, confirm these behave as expected.</li>
</ul>
</li>
<li>Verify Callbacks
<ul class="verifications">
<li>Run and close your app to confirm there are no startup or termination errors.</li>
<li>Exercise the workflows specific to your app, starting with the most basic, and gradually proceeding to the more complex ones.</li>
</ul>
</li>
</ul>
<p>If unexpected errors occur, either within the app or at the MATLAB command line, address those issues before continuing with the validation. For troubleshooting assistance and additional information, see <a href="matlab:helpview(fullfile(docroot,'matlab', 'creating_guis', 'differences-between-app-designer-and-guide.html#mw_7f306e19-74d0-4c0b-989d-74ed63e32ddd'));">GUIDE Migration Strategies</a>.</p>
</section>
</div>
<script type="text/javascript">
// Toggles showing the "Show More (10)" hyperlink with the "Show less" hyperlink
function toggleShowMore(selectedHyperlink) {
// Find the parent td for the selected hyperlink ("Show more" or "Show less")
var td = selectedHyperlink.parentElement.parentElement;
// Toggle the "hidden" class on all of the elements but the first 3. The first 3 we want to always be
// visible.
var tags = td.children;
for (var i=3; i<tags.length; i++) {
tags[i].classList.toggle("hidden");
}
}
</script>
</body>
</html>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,426 @@
%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
%00000000 LLLLLLLLLLLLLL 00000000000000000000000000000000000000000000000
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
%3333333333 KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK
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
%444444444 rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
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
%33333333333333333333333333333333333333333333333333333(1111111111111111111)
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 %if htMapTogPBfg==1
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]; %*
EZintRFs %* Call subroutine to interpret user RF inputs & det. Rn and Rs values
%****************
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 %for i=1:384
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
% end %for m=1:1
%end %for j=1:1
%4444444444444444444444444444444444444444444444444444444444(22222222222222222)
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);
elsef
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 %if htTog==
prntHt= 0;
%************* *****
EZhtMapText %* Update htMapText for location on the first 'roll thru of htMapPB
%************* *****

View File

@@ -0,0 +1,641 @@
%single gene L based interaction shift display
%function EZinteractDev4
global Exp
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 sum(ismember(fieldnames(Exp(expN).Dexp(DexpN)),'RFmean'))&&...
~isempty(Exp(expN).Dexp(DexpN).RFmean)&&...
sum(ismember(fieldnames(Exp(expN).Dexp(DexpN)),'RFmeanG'))&&...
isempty(Exp(expN).Dexp(DexpN).RFmeanG)
RFconfig=1;
end
if sum(ismember(fieldnames(Exp(expN).Dexp(DexpN)),'RFmean'))==0 ||...
isempty(Exp(expN).Dexp(DexpN).RFmean)&&...
sum(ismember(fieldnames(Exp(expN).Dexp(DexpN)),'RFmeanG'))&&...
~isempty(Exp(expN).Dexp(DexpN).RFmeanG)
RFconfig=2;
end
if sum(ismember(fieldnames(Exp(expN).Dexp(DexpN)),'RFmean'))&&...
~isempty(Exp(expN).Dexp(DexpN).RFmean)&&...
sum(ismember(fieldnames(Exp(expN).Dexp(DexpN)),'RFmeanG'))&&...
~isempty(Exp(expN).Dexp(DexpN).RFmeanG)
RFconfig=3;
end
if (sum(ismember(fieldnames(Exp(expN).Dexp(DexpN)),'RFmean'))==0 ||...
isempty(Exp(expN).Dexp(DexpN).RFmean))&&...
(sum(ismember(fieldnames(Exp(expN).Dexp(DexpN)),'RFmeanG'))==0||...
isempty(Exp(expN).Dexp(DexpN).RFmeanG))
return
end
%RFconfig= 2; %1= FullPlateOnly; 2= DistributedOnly; 3= Both FullPlate && Distributed
if RFconfig==1,
defaultanswer={'80','60','100','3,4,5','N','39','Y'};
end
if RFconfig==2,
QctrlRF= 'Select Distributed Control RF option: (G)Global, (L)Local';
QpertRF= 'Select Distributed Perturbation RF option: (G)Global, (L)Local';
defaultanswer={'80','60','100','3,4,5','N','39','Y','G','L'};
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={'80','60','100','3,4,5','N','39','Y','F','L'};
end
%User Input decode for application ***************************
if RFconfig==1,
prompt={'Enter LeftSide Central Boundary in Percent:',...
'Enter RightSide Central Boundary in Percent:', ...
'Enter percent of Reference Standard Deviation to use', ...
'Enter Perturbation Numbers for set intersect:' ...
'Remove No Growth Infinite Interactors:' ...
'Number of Bins for Histograms'...
'Subplots(Y), Multiple Plots(N), Suspend Plots(S)'};
else
prompt={'Enter LeftSide Central Boundary in Percent:',...
'Enter RightSide Central Boundary in Percent:', ...
'Enter percent of Reference Standard Deviation to use', ...
'Enter Perturbation Numbers for set intersect:' ...
'Remove No Growth Infinite Interactors:' ...
'Number of Bins for Histograms'...
'Subplots(Y), Multiple Plots(N), Suspend Plots(S)',...
QctrlRF,...
QpertRF,...
};
end
name='Interaction User Input';
numlines=1;
%defaultanswer={'80','60','100','3,4,5','N','39','Y','0,',''};
answer=inputdlg(prompt,name,numlines,defaultanswer);
negPercent= str2double(cell2mat(answer(1)));
posPercent= str2double(cell2mat(answer(2)));
percentRs= str2double(cell2mat(answer(3)));
DMstr= cell2mat(answer(4));
DMcomas=strfind((cell2mat(answer(4))),',');
removInfinL= answer(5);
numBins= str2double(cell2mat(answer(6)));
subplotX= answer(7);
%{
rfMPstr= cell2mat(answer(8));
rfMPcomas=strfind((cell2mat(answer(8))),',');
rfGeneName= answer(9);
n=0;
rfMPsel(1)=0;
for i= rfMPcomas,
n=n+1
rfMPsel(n)= str2double(rfMPstr(i-1:i))
if i== max(rfMPcomas)
rfMPsel(n+1)= str2double(rfMPstr(i:end))
end
end
%}
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).Dexp(DexpN).RFmean;
%Rs=Exp(expN).Dexp(DexpN).RFstd;
dmN= length(Exp(expN).Dexp(DexpN).DM.drug);
mpN= length(Exp(expN).Dexp(DexpN).MP);
%Intc1=3; IntcLst=5;
%Calculate Interaction values (with and without
%standardDeviation/Upper-Lower boundary compensation
for j=1:dmN
for m=1:mpN
%****************
DM0= 1;
DMj= j;
anN= [8 9];
EZintRFs %* Call subroutine to interpret user RF inputs
%****************
scnN= j + (dmN*(m-1)) % 1,6,11..; 2,7,12 ..; 3,8,13..;
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);
Xn{m,j,:}(Xn{m,j,:}==0)= 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);
methCalc=1;
if methCalc==0
intL{m,j,:} = (Xn{m,j,:} - Rn(j));
intL{m,j,:}(Xn{m,j,:}==140)= 100;
else
intL{m,j,:} = ((Xn{m,j,:} - Xn{m,1,:}) - (Rn(j)-Rn(1)));
intL{m,j,:}(Xn{m,j,:}==140)= 100;
intL{m,j,:}(intL{m,j,:}==0)=-0.1;
end
if methCalc==0
deltaXR{m,j}= zeros(1,384);
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));
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
%else else else else
else %if methCalc~=0
%percentRs= 100;
RsReduced(j)= percentRs/100* Rs(j)
%{
Yn{m,j}= Xn{m,j}-Xn{m,1}; %Yn is deltaXn
Yn{m,j}(Yn{m,j}==0)=-0.5;
Yln{m,j}= Xln{m,j}-Xln{m,1};
Yln{m,j}(Yln{m,j}==0)=-0.5;
Yhn{m,j}= Xhn{m,j}-Xhn{m,1};
Yhn{m,j}(Yhn{m,j}==0)=-0.5;
%}
%deltaRp(j)= (Rn(j)+RsReduced(j))-Rn(1); %
deltaRp(j)= (Rn(j)+RsReduced(j))-(Rn(1)+RsReduced(1));
%deltaRn(j)= (Rn(j)-RsReduced(j))-Rn(1); %
deltaRn(j)=(Rn(j)-RsReduced(j))-(Rn(1)-RsReduced(1));
if deltaRp(j)==0, deltaRp(j)=0.2; end
if deltaRn(j)==0, deltaRn(j)=0.2; 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 %for i=1:384
%**************************************************************************
end %if methCalc==0
deltaXR{m,j,:}(Xn{m,j,:}==140)= 100;
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 %m=1:mpN
%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).Dexp(DexpN).mutSpotIndx.woRFs,j);
intLwoRFs{j}(2,:)= Exp(expN).Dexp(DexpN).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);
if ~isempty(intLcmpSortGT0)
centPosCnt= round(posPercent/100 * length(intLcmpSortGT0));
intLposSel{j}=intLwoRFsorted{j}((length(intLcmpSortGT0)+centPosCnt): end,:);
posIntboundryCentralVal(j)= intLcmpSortGT0((centPosCnt),:); %For Histogram use
else
posIntboundryCentralVal(j)= 0;
end
intLcmpSortLT0= tempIntL((tempIntL) <0);
if ~isempty(intLcmpSortLT0)
centNegCnt= round(negPercent/100 * length(intLcmpSortLT0));
intLnegSel{j}=intLwoRFsorted{j}((1:(length(intLcmpSortLT0)-centNegCnt)),:);
negIntboundryCentralVal(j)= intLcmpSortLT0(((length(intLcmpSortLT0))-(centNegCnt)),:); %For Histogram use
else
negIntboundryCentralVal(j)=0;
end
%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
try
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);
catch
end
try
intLnegDIndx{j}(:,2)=ceil((intLnegSel{j}(:,2))/384); %mp plate numb column
intLnegDIndx{j}(:,3)=(rem(intLnegSel{j}(:,2),384));
nn=(intLnegDIndx{j}(:,3)==0); %fixed 170405 was using (intL'pos'DIndx{j}(:,3)==0);
intLnegDIndx{j}(nn,3)= 384;
intLnegDIndx{j}(:,1)= j + (dmN*((intLnegDIndx{j}(:,2))-1)); %scan numb
catch
end
%++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
%********************************************************************************************
%ADJUSTED L for Reference Standard deviation(More conservative) Interaction List compilation
if strcmpi(removInfinL,'N')
intLadjwoRFs{j}(1,:)=intLadjcmp(Exp(expN).Dexp(DexpN).mutSpotIndx.woRFs,j);
intLadjwoRFs{j}(2,:)= Exp(expN).Dexp(DexpN).mutSpotIndx.woRFs; %intLadjcmp(385:(mpN-1)*384,j); %intLadjcmp(Exp(expN).Dexp(DexpN).mutSpotIndx.woRFs,j);
elseif strcmpi(removInfinL,'Y')
intLadjwoRFs{j}(1,:)=intLadjcmp(Exp(expN).Dexp(DexpN).mutSpotIndx.woRFs,j);
intLadjwoRFs{j}(2,:)= Exp(expN).Dexp(DexpN).mutSpotIndx.woRFs; %intLadjcmp(385:(mpN-1)*384,j); %intLadjcmp(Exp(expN).Dexp(DexpN).mutSpotIndx.woRFs,j);
intLadjwoRFs100{j}(1,:)= intLadjwoRFs{j}(1,(intLadjwoRFs{j}(1,:)~= 100)) ; %intLcmp(Exp(1).mutSpotIndx.woRFs,j);
intLadjwoRFs100{j}(2,:)= intLadjwoRFs{j}(2,(intLadjwoRFs{j}(1,:)~= 100)) ; % Remove Index where spots are infinite (=100);
intLadjwoRFs0{j}(1,:)= intLadjwoRFs100{j}(1,(intLadjwoRFs100{j}(1,:)~= 0)); % Remove Index where spots are indeterminely within the range of Ref STD
intLadjwoRFs0{j}(2,:)= intLadjwoRFs100{j}(2,(intLadjwoRFs100{j}(1,:)~= 0)); % Remove Index where spots are indeterminely within the range of Ref STD
clear intLadjwoRFs
intLadjwoRFs{j}(1,:)= intLadjwoRFs0{j}(1,:); %Put filtered results back into intLadjwoRFs
intLadjwoRFs{j}(2,:)= intLadjwoRFs0{j}(2,:); %Put filtered results back into intLadjwoRFs
end
intLwoRFsortedAdj{j}= sortrows(intLadjwoRFs{j}',1);
clear intLadjSortGT0 intLadjSortLT0
tempIntLadj= intLwoRFsortedAdj{j}(:,1);
intLadjSortLT0= tempIntLadj((tempIntLadj) <0);
intLadjSort0s= tempIntLadj(tempIntLadj ==0)
intLadjSortGT0= tempIntLadj(tempIntLadj >0); %=0);
if ~isempty(intLadjSortGT0)&& ~isempty(intLadjSortLT0)
centPosCntAdj= round(posPercent/100 * length(intLadjSortGT0));
intLposSelAdj{j}=intLwoRFsortedAdj{j}((length(intLadjSortLT0)+ length(intLadjSort0s) + centPosCntAdj): end,:);
posIntboundryCentralValAdj(j)= intLadjSortGT0(centPosCntAdj,:);
else
posIntboundryCentralValAdj(j)= 0;
end
if ~isempty(intLadjSortLT0)
try
centNegCntAdj= round(negPercent/100 * length(intLadjSortLT0));
intLnegSelAdj{j}=intLwoRFsortedAdj{j}((1:(length(intLadjSortLT0)-centNegCntAdj)),:);
negIntboundryCentralValAdj(j)= intLadjSortLT0(((length(intLadjSortLT0))-(centNegCntAdj)),:);
catch,negIntboundryCentralValAdj(jj)= 1;
end
else
negIntboundryCentralValAdj(j)= 1;
end
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
try
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);
catch
end
try
intLnegDIndxAdj{j}(:,2)=ceil((intLnegSelAdj{j}(:,2))/384); %mp plate numb column
intLnegDIndxAdj{j}(:,3)=(rem(intLnegSelAdj{j}(:,2),384));
nn=(intLnegDIndxAdj{j}(:,3)==0); %Fixed 170405 (intL'pos'DIndxAdj{j}(:,3)==0);
intLnegDIndxAdj{j}(nn,3)= 384;
intLnegDIndxAdj{j}(:,1)= j + (dmN*((intLnegDIndxAdj{j}(:,2))-1)); %scan numb
catch
end
end %j=1:dmN
%****************************************************************************************
%*****End of Main looping proceedure***********************************************************************************
%****************************************************************************************
%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).Dexp(DexpN).MP(selIntP(i,2)).genename{1}(selIntP(i,3));
IPorf(i)= Exp(expN).Dexp(DexpN).MP(selIntP(i,2)).orf{1}(selIntP(i,3));
IPstrain(i)= Exp(expN).Dexp(DexpN).MP(selIntP(i,2)).strain{1}(selIntP(i,3));
IPspecifics(i)=Exp(expN).Dexp(DexpN).MP(selIntP(i,2)).specifics{1}(selIntP(i,3));
IPorfRep(i)=Exp(expN).Dexp(DexpN).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).Dexp(DexpN).scan(selIntP(i,1)).plate(1).CFout(selIntP(i,3),5);
ipLlower(i)= Exp(expN).Dexp(DexpN).scan(selIntP(i,1)).plate(1).CFout(selIntP(i,3),11);
ipLupper(i)= Exp(expN).Dexp(DexpN).scan(selIntP(i,1)).plate(1).CFout(selIntP(i,3),12);
%*************************************************************************
end
for i=1:size(selIntN,1)
INgene(i)=Exp(expN).Dexp(DexpN).MP(selIntN(i,2)).genename{1}(selIntN(i,3));
INorf(i)= Exp(expN).Dexp(DexpN).MP(selIntN(i,2)).orf{1}(selIntN(i,3));
INstrain(i)= Exp(expN).Dexp(DexpN).MP(selIntN(i,2)).strain{1}(selIntN(i,3));
INspecifics(i)=Exp(expN).Dexp(DexpN).MP(selIntN(i,2)).specifics{1}(selIntN(i,3));
INorfRep(i)=Exp(expN).Dexp(DexpN).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).Dexp(DexpN).scan(selIntN(i,1)).plate(1).CFout(selIntN(i,3),5);
inLlower(i)= Exp(expN).Dexp(DexpN).scan(selIntN(i,1)).plate(1).CFout(selIntN(i,3),11);
inLupper(i)= Exp(expN).Dexp(DexpN).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);
if ~isempty(InterslstNegAdj{1})
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);
end
for i=1:size(selIntPAdj,1)
IPgeneAdj(i)=Exp(expN).Dexp(DexpN).MP(selIntPAdj(i,2)).genename{1}(selIntPAdj(i,3));
IPorfAdj(i)= Exp(expN).Dexp(DexpN).MP(selIntPAdj(i,2)).orf{1}(selIntPAdj(i,3));
IPstrainAdj(i)= Exp(expN).Dexp(DexpN).MP(selIntPAdj(i,2)).strain{1}(selIntPAdj(i,3));
IPspecificsAdj(i)=Exp(expN).Dexp(DexpN).MP(selIntPAdj(i,2)).specifics{1}(selIntPAdj(i,3));
IPorfRepAdj(i)=Exp(expN).Dexp(DexpN).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).Dexp(DexpN).scan(selIntPAdj(i,1)).plate(1).CFout(selIntPAdj(i,3),5);
ipLlowerAdj(i)= Exp(expN).Dexp(DexpN).scan(selIntPAdj(i,1)).plate(1).CFout(selIntPAdj(i,3),11);
ipLupperAdj(i)= Exp(expN).Dexp(DexpN).scan(selIntPAdj(i,1)).plate(1).CFout(selIntPAdj(i,3),12);
%************************************************************************************
end
if ~isempty(InterslstNegAdj{1})
for i=1:size(selIntNAdj,1)
INgeneAdj(i)=Exp(expN).Dexp(DexpN).MP(selIntNAdj(i,2)).genename{1}(selIntNAdj(i,3));
INorfAdj(i)= Exp(expN).Dexp(DexpN).MP(selIntNAdj(i,2)).orf{1}(selIntNAdj(i,3));
INstrainAdj(i)= Exp(expN).Dexp(DexpN).MP(selIntNAdj(i,2)).strain{1}(selIntNAdj(i,3));
INspecificsAdj(i)=Exp(expN).Dexp(DexpN).MP(selIntNAdj(i,2)).specifics{1}(selIntNAdj(i,3));
INorfRepAdj(i)=Exp(expN).Dexp(DexpN).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).Dexp(DexpN).scan(selIntNAdj(i,1)).plate(1).CFout(selIntNAdj(i,3),5);
inLlowerAdj(i)= Exp(expN).Dexp(DexpN).scan(selIntNAdj(i,1)).plate(1).CFout(selIntNAdj(i,3),11);
inLupperAdj(i)= Exp(expN).Dexp(DexpN).scan(selIntNAdj(i,1)).plate(1).CFout(selIntNAdj(i,3),12);
%*************************************************************************************
end
end
%++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
%Plot Histogram******************************************************
%subplotX=1;
figure
RFstds=', ';
for j=1:dmN,
RFstds=strcat(RFstds,'Rs',num2str(j),'_',num2str(Rs(j)));
if j~=dmN, strcat(RFstds,', ');end
end
histName= strcat('ExpZone ',num2str(expN),'-',Exp(expN).Dexp(DexpN).ExpFoldr,', Interaction Values ', ...
', LfFilter-',num2str(negPercent),', RtFilter-',num2str(posPercent),', RemoveNoGrowth-',char(removInfinL), ...
RFstds)
histAdjName= strcat('ExpZone ',num2str(expN),'-',Exp(expN).Dexp(DexpN).ExpFoldr,', Interaction Compensated by Reference Standard Deviation @',num2str(percentRs),'%', '& Upper/Lower Curvefit Boundaries', ...
', LfFilter-',num2str(negPercent),', RtFilter-',num2str(posPercent),', RemoveNoGrowth-',char(removInfinL), ...
RFstds)
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
if strcmpi(removInfinL,'N')
histLadjData= intLwoRFsortedAdj{j}(:,1); %intLadjcmp(385:(mpN-1)*384,j);
else
intLwoRFsortedAdj4HisW0{j}= sortrows(intLadjwoRFs100{j}',1); %Data including with 0's indeterminate within STD
histLadjData= intLwoRFsortedAdj4HisW0{j}(:,1)
end
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', histName);
figure
for j=1:dmN
if strcmpi(removInfinL,'N')
histLadjData= intLwoRFsortedAdj{j}(:,1); %intLadjcmp(385:(mpN-1)*384,j);
else
intLwoRFsortedAdj4HisW0{j}= sortrows(intLadjwoRFs100{j}',1); %Data including with 0's indeterminate within STD
histLadjData= intLwoRFsortedAdj4HisW0{j}(:,1)
end
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', histAdjName)
%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);
%intLwoRFsortedAdj4HisW0{j}= sortrows(intLadjwoRFs100{j}',1); %Data including with 0's indeterminate within STD
%histLadjData= intLwoRFsortedAdj4HisW0{j}(:,1);
%histLadjData= intLwoRFsortedAdj{j}(:,1); %intLadjcmp(385:(mpN-1)*384,j);%intLadjcmp(385:(mpN-1)*384,j); %intLcmp(:,j); %intLadjcmp(:,j);
if strcmpi(removInfinL,'N')
histLadjData= intLwoRFsortedAdj{j}(:,1); %intLadjcmp(385:(mpN-1)*384,j);
else
intLwoRFsortedAdj4HisW0{j}= sortrows(intLadjwoRFs100{j}',1); %Data including with 0's indeterminate within STD
histLadjData= intLwoRFsortedAdj4HisW0{j}(:,1)
end
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')
set(gcf,'Name', strcat('DM-',num2str(j),'-',histName));
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')
set(gcf,'Name', strcat('DM-',num2str(j),'-',histAdjName));
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 % for j= when subplotX~=1 standard one plot per figure
end %if subplotX==1 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

View File

@@ -0,0 +1,697 @@
%single gene L based interaction shift display
%function EZinteractDev5
global Exp
DexpLen= Exp(expN).DexpLength;
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 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 sum(ismember(fieldnames(Exp(expN).Dexp(DexpN)),'RFmean'))&&...
~isempty(Exp(expN).Dexp(DexpN).RFmean)&&...
sum(ismember(fieldnames(Exp(expN).Dexp(DexpN)),'RFmeanG'))&&...
isempty(Exp(expN).Dexp(DexpN).RFmeanG)
RFconfig=1;
end
if sum(ismember(fieldnames(Exp(expN).Dexp(DexpN)),'RFmean'))==0 ||...
isempty(Exp(expN).Dexp(DexpN).RFmean)&&...
sum(ismember(fieldnames(Exp(expN).Dexp(DexpN)),'RFmeanG'))&&...
~isempty(Exp(expN).Dexp(DexpN).RFmeanG)
RFconfig=2;
end
if sum(ismember(fieldnames(Exp(expN).Dexp(DexpN)),'RFmean'))&&...
~isempty(Exp(expN).Dexp(DexpN).RFmean)&&...
sum(ismember(fieldnames(Exp(expN).Dexp(DexpN)),'RFmeanG'))&&...
~isempty(Exp(expN).Dexp(DexpN).RFmeanG)
RFconfig=3;
end
if (sum(ismember(fieldnames(Exp(expN).Dexp(DexpN)),'RFmean'))==0 ||...
isempty(Exp(expN).Dexp(DexpN).RFmean))&&...
(sum(ismember(fieldnames(Exp(expN).Dexp(DexpN)),'RFmeanG'))==0||...
isempty(Exp(expN).Dexp(DexpN).RFmeanG))
return
end
%RFconfig= 2; %1= FullPlateOnly; 2= DistributedOnly; 3= Both FullPlate && Distributed
if RFconfig==1,
defaultanswer={'80','60','100','3,4,5','N','39','Y'};
end
if RFconfig==2,
QctrlRF= 'Select Distributed Control RF option: (G)Global, (L)Local';
QpertRF= 'Select Distributed Perturbation RF option: (G)Global, (L)Local';
defaultanswer={'80','60','100','3,4,5','N','39','Y','G','L'};
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={'80','60','100','3,4,5','N','39','Y','F','L'};
end
%User Input decode for application ***************************
if RFconfig==1,
prompt={'Enter LeftSide Central Boundary in Percent:',...
'Enter RightSide Central Boundary in Percent:', ...
'Enter percent of Reference Standard Deviation to use', ...
'Enter Day Sequence Numbers for set intersect:' ...
'Remove No Growth Infinite Interactors:' ...
'Number of Bins for Histograms'...
'Subplots(Y), Multiple Plots(N), Suspend Plots(S)'};
else
prompt={'Enter LeftSide Central Boundary in Percent:',...
'Enter RightSide Central Boundary in Percent:', ...
'Enter percent of Reference Standard Deviation to use', ...
'Enter Day Sequence Numbers for set intersect:' ...
'Remove No Growth Infinite Interactors:' ...
'Number of Bins for Histograms'...
'Subplots(Y), Multiple Plots(N), Suspend Plots(S)',...
QctrlRF,...
QpertRF,...
};
end
name='Interaction User Input';
numlines=1;
%defaultanswer={'80','60','100','3,4,5','N','39','Y','0,',''};
answer=inputdlg(prompt,name,numlines,defaultanswer);
negPercent= str2double(cell2mat(answer(1)));
posPercent= str2double(cell2mat(answer(2)));
percentRs= str2double(cell2mat(answer(3)));
DMstr= cell2mat(answer(4));
DMcomas=strfind((cell2mat(answer(4))),',');
removInfinL= answer(5);
numBins= str2double(cell2mat(answer(6)));
subplotX= 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
if strcmp(Exp(expN).DexpType,'chrono'), daysSel= DMsel; end
%**************************************************************
dmN= length(Exp(expN).Dexp(DexpN).DM.drug);
mpN= length(Exp(expN).Dexp(DexpN).MP);
%Intc1=3; IntcLst=5;
%Calculate Interaction values (with and without
%standardDeviation/Upper-Lower boundary compensation
%{
if strcmp(Exp(expN).DexpType, 'single') || strcmp(Exp(expN).DexpType, 'multi')
DMs2use= DMsel;
Dexps2use= DexpN;
elseif strcmp(Exp(expN).DexpType, 'chrono')
DMs2use= pertSel;
nn= daysSel;
end
%}
for j= 1:1:DexpLen
%nn= daysSel(j);
for m=1:mpN
scnN= pertSel + (dmN*(m-1))
%****************
DM0= pertSel; %the DrugMedia choice is constant based on left screeen choice
DMj= pertSel; %j here is the Day experiment number Which
DexpN= j; %Day experiment is also where to find data%nn;
anN= [8 9];
%****************
EZintRFs %* Call subroutine to interpret user RF inputs
%****************
DexpN= Exp(expN).DexpN; %reestablish DexpN
%****************
Xn{m,j,:}=Exp(expN).Dexp(j).scan(scnN).plate(1).CFout(:,5); %Exp(expN).Dexp(nn).scan(DM{j}(m)).plate(1).CFout(:,5);
Xn{m,j,:}(Xn{m,j,:}==0)= 140;
Xln{m,j,:}=Exp(expN).Dexp(j).scan(scnN).plate(1).CFout(:,11); %Exp(expN).Dexp(nn).scan(DM{j}(m)).plate(1).CFout(:,11);
Xhn{m,j,:}=Exp(expN).Dexp(j).scan(scnN).plate(1).CFout(:,12); %Exp(expN).Dexp(nn).scan(DM{j}(m)).plate(1).CFout(:,12);
%methCalc=1;
intL{m,j,:} = ((Xn{m,j,:} - Xn{m,1,:}) - (Rn(j)-Rn(1)));
intL{m,j,:}(Xn{m,j,:}==140)= 100;
intL{m,j,:}(intL{m,j,:}==0)=-0.1;
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.2; end
if deltaRn(j)==0, deltaRn(j)=0.2; 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 %for i=1:384
%**************************************************************************
%end %if methCalc==0
deltaXR{m,j,:}(Xn{m,j,:}==140)= 100;
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 Dexp sequencially(j).
addend= (1+((m-1)*384)) %((((m-1)*j)*384)+1);
intLcmp(addend:addend+383,j)= cell2mat(intL(m,j,:)); %For only pertSel across Dexps (((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 %m=1:mpN
%********END m loop assoc'd with MPs for loop***************
%***********************************************************
%Remove RFs and Blank (or non annotated ' ') orf data Then
%Filter data per user intput
intLc{j}= intLcmp(:,j); %j);
intLwoRFs{j}(1,:)= intLcmp(Exp(expN).Dexp(j).mutSpotIndx.woRFs,j);
intLwoRFs{j}(2,:)= Exp(expN).Dexp(j).mutSpotIndx.woRFs;%Index of non-RF non-blank spots
if strcmpi(removInfinL,'Y')
intLwoRFs0{j}(1,:)= intLwoRFs{j}(1,(intLwoRFs{j}(1,:)~= 100)); %Values intLcmp(Exp(1).mutSpotIndx.woRFs,j);
intLwoRFs0{j}(2,:)= intLwoRFs{j}(2,(intLwoRFs{j}(1,:)~= 100)); %MP Spot Index position 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); %SortBy Values field
clear intLcmpSortGT0 intLcmpSortLT0
tempIntL= intLwoRFsorted{j}(:,1);
intLcmpSortGT0= tempIntL((tempIntL) >0);
if ~isempty(intLcmpSortGT0)
centPosCnt= round(posPercent/100 * length(intLcmpSortGT0));
intLposSel{j}=intLwoRFsorted{j}((length(intLcmpSortGT0)+centPosCnt): end,:);
posIntboundryCentralVal(j)= intLcmpSortGT0((centPosCnt),:); %For Histogram use
else
posIntboundryCentralVal(j)= 0;
end
intLcmpSortLT0= tempIntL((tempIntL) <0);
if ~isempty(intLcmpSortLT0)
centNegCnt= round(negPercent/100 * length(intLcmpSortLT0));
intLnegSel{j}=intLwoRFsorted{j}((1:(length(intLcmpSortLT0)-centNegCnt)),:);
negIntboundryCentralVal(j)= intLcmpSortLT0(((length(intLcmpSortLT0))-(centNegCnt)),:); %For Histogram use
else
negIntboundryCentralVal(j)=0;
end
%Find potential Interactors within selected range
jj=j;
daysSel= daysSel;
%maxNperts= Exp(expN).DexpLength; %(daysSel); %(daysSel);
if jj== daysSel(1) %Intc1,
InterslstPos{1}= intLposSel{daysSel(1)}(:,2) %intLcmpposInd{Intc1}
InterslstNeg{1}= intLnegSel{daysSel(1)}(:,2) %intLcmpnegInd{Intc1}
elseif sum(ismember(daysSel,jj))==1 %Intc1 && jj<=IntcLst
InterslstPos{1}=(intersect(InterslstPos{1},intLposSel{jj}(:,2))); %,intLcmpposInd{jj}))
InterslstNeg{1}=(intersect(InterslstNeg{1},intLnegSel{jj}(:,2))); %,intLcmpnegInd{jj}))
end
%Convolute experiment spot index to get scan#, MP# and plateIndx needed
%later to obtain genename and other descriptors and correlate data
if sum(ismember(daysSel,jj))==1 %might need to? restrict to only the 'daysSel' entered by user
try
intLposDIndx{jj}(:,4)= jj; %Dexp number
intLposDIndx{jj}(:,2)= ceil((intLposSel{jj}(:,2))/(384)); %mp plate numb column
intLposDIndx{jj}(:,3)=rem(intLposSel{jj}(:,2),(384)); %384));
tmp= intLposDIndx{jj}(:,3)==0;
intLposDIndx{jj}(tmp,3)= 384;
intLposDIndx{jj}(:,1)= pertSel + (dmN*((intLposDIndx{jj}(:,2))-1)); %((intLposDIndx{jj}(:,2))-1)); %scan numb column %intLposDIndx(:,2)* intLposDIndx(:,3);
catch
end
try
intLnegDIndx{jj}(:,4)= j; %Dexp number
intLnegDIndx{jj}(:,2)= ceil((intLposSel{jj}(:,2))/(384)); %384); %mp plate numb column
intLnegDIndx{jj}(:,3)= rem(intLnegSel{jj}(:,2),(384));
tmp=(intLnegDIndx{jj}(:,3)==0);
intLnegDIndx{jj}(tmp,3)= 384;
intLnegDIndx{jj}(:,1)= pertSel + (dmN*((intLnegDIndx{jj}(:,2))-1)); %scan numb
catch
end
end %might want to restrict to only the 'daysSel' entered by user
%++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
%********************************************************************************************
%ADJUSTED L for Reference Standard deviation(More conservative) Interaction List compilation
if strcmpi(removInfinL,'N')
intLadjwoRFs{jj}(1,:)=intLadjcmp(Exp(expN).Dexp(DexpN).mutSpotIndx.woRFs,jj);
intLadjwoRFs{jj}(2,:)= Exp(expN).Dexp(DexpN).mutSpotIndx.woRFs; %intLadjcmp(385:(mpN-1)*384,jj); %intLadjcmp(Exp(expN).Dexp(DexpN).mutSpotIndx.woRFs,jj);
elseif strcmpi(removInfinL,'Y')
intLadjwoRFs{jj}(1,:)=intLadjcmp(Exp(expN).Dexp(DexpN).mutSpotIndx.woRFs,jj);
intLadjwoRFs{jj}(2,:)= Exp(expN).Dexp(DexpN).mutSpotIndx.woRFs; %intLadjcmp(385:(mpN-1)*384,jj); %intLadjcmp(Exp(expN).Dexp(DexpN).mutSpotIndx.woRFs,jj);
intLadjwoRFs100{jj}(1,:)= intLadjwoRFs{jj}(1,(intLadjwoRFs{jj}(1,:)~= 100)) ; %intLcmp(Exp(1).mutSpotIndx.woRFs,jj);
intLadjwoRFs100{jj}(2,:)= intLadjwoRFs{jj}(2,(intLadjwoRFs{jj}(1,:)~= 100)) ; % Remove Index where spots are infinite (=100);
intLadjwoRFs0{jj}(1,:)= intLadjwoRFs100{jj}(1,(intLadjwoRFs100{jj}(1,:)~= 0)); % Remove Index where spots are indeterminely within the range of Ref STD
intLadjwoRFs0{jj}(2,:)= intLadjwoRFs100{jj}(2,(intLadjwoRFs100{jj}(1,:)~= 0)); % Remove Index where spots are indeterminely within the range of Ref STD
clear intLadjwoRFs
intLadjwoRFs{jj}(1,:)= intLadjwoRFs0{jj}(1,:); %Put filtered results back into intLadjwoRFs
intLadjwoRFs{jj}(2,:)= intLadjwoRFs0{jj}(2,:); %Put filtered results back into intLadjwoRFs
end
intLwoRFsortedAdj{jj}= sortrows(intLadjwoRFs{jj}',1);
clear intLadjSortGT0 intLadjSortLT0
tempIntLadj= intLwoRFsortedAdj{jj}(:,1);
intLadjSortLT0= tempIntLadj((tempIntLadj) <0);
intLadjSort0s= tempIntLadj(tempIntLadj ==0)
intLadjSortGT0= tempIntLadj(tempIntLadj >0); %=0);
if ~isempty(intLadjSortGT0)&& ~isempty(intLadjSortLT0)
centPosCntAdj= round(posPercent/100 * length(intLadjSortGT0));
intLposSelAdj{jj}=intLwoRFsortedAdj{jj}((length(intLadjSortLT0)+ length(intLadjSort0s) + centPosCntAdj): end,:);
posIntboundryCentralValAdj(jj)= intLadjSortGT0(centPosCntAdj,:);
else
posIntboundryCentralValAdj(jj)= 0;
end
if ~isempty(intLadjSortLT0)
try
centNegCntAdj= round(negPercent/100 * length(intLadjSortLT0));
intLnegSelAdj{jj}=intLwoRFsortedAdj{jj}((1:(length(intLadjSortLT0)-centNegCntAdj)),:);
negIntboundryCentralValAdj(jj)= intLadjSortLT0(((length(intLadjSortLT0))-(centNegCntAdj)),:);
catch,negIntboundryCentralValAdj(jj)= 1;
end
else
negIntboundryCentralValAdj(jj)= 1;
end
if jj== daysSel(1) %Intc1,
InterslstPosAdj{1}= intLposSelAdj{daysSel(1)}(:,2) %intLcmpposInd{Intc1}
InterslstNegAdj{1}= intLnegSelAdj{daysSel(1)}(:,2) %intLcmpnegInd{Intc1}
elseif sum(ismember(daysSel,jj))==1 % jj>Intc1 && jj<=IntcLst
InterslstPosAdj{1}=(intersect(InterslstPosAdj{1},intLposSelAdj{jj}(:,2))); %,intLcmpposInd{jj}))
InterslstNegAdj{1}=(intersect(InterslstNegAdj{1},intLnegSelAdj{jj}(:,2))); %,intLcmpnegInd{jj}))
end
%Convolute experiment spot index to get scan#, MP# and plateIndx needed
%later to obtain genename and other descriptors and correlate data
try
intLposDIndxAdj{jj}(:,2)= ceil((intLposSelAdj{jj}(:,2))/(384)); %mp plate numb column
intLposDIndxAdj{jj}(:,4)= jj;
intLposDIndxAdj{jj}(:,3)=(rem(intLposSelAdj{jj}(:,2),(384)));
tmp=(intLposDIndxAdj{jj}(:,3)==0);
intLposDIndx{jj}(tmp,3)= 384;
intLposDIndxAdj{jj}(:,1)= pertSel + (dmN*((intLposDIndxAdj{jj}(:,2))-1)); %scan numb column
catch
end
try
intLnegDIndxAdj{jj}(:,2)= m; %ceil((intLnegSelAdj{jj}(:,2))/384); %mp plate numb column
intLnegDIndxAdj{jj}(:,4)= jj;
intLnegDIndxAdj{jj}(:,3)=(rem(intLnegSelAdj{jj}(:,2),(384)));
tmp=(intLnegDIndxAdj{jj}(:,3)==0);
intLnegDIndxAdj{jj}(tmp,3)= 384;
intLnegDIndxAdj{jj}(:,1)= pertSel + (dmN*((intLnegDIndxAdj{jj}(:,2))-1)); %scan numb
catch
end
%end %for Perts2use jj= DMs2use
end % for j= 1:DexpLen
%****************************************************************************************
%******END OF Big Loop*******************************************************************
%****************************************************************************************
%get interaction values for each DM drugmedia agar type
IntersValsPos= intLcmp(InterslstPos{1},daysSel);
IntersValsNeg= intLcmp(InterslstNeg{1},daysSel);
IntersValsPosAdj= intLadjcmp(InterslstPosAdj{1},daysSel);
IntersValsNegAdj= intLadjcmp(InterslstNegAdj{1},daysSel);
%*********************************************************
%Build 'genelist' data sheet for interactors
if ~isempty(InterslstPos{1})
selIntPx{1}(:,6)=InterslstPos{1};
selIntPx{1}(:,2)=ceil((InterslstPos{1})/(384)); %mp plate numb column
selIntPx{1}(:,3)= rem(InterslstPos{1},(384));
tmpMovV1=(selIntPx{1}(:,3)==0);
selIntPx{1}(tmpMovV1,3)= 384;
selIntPx{1}(:,4)= ceil(selIntPx{1}(:,3)/24); %row numb
selIntPx{1}(:,5)= rem(selIntPx{1}(:,3),24);
tmp2=(selIntPx{1}(:,5)==0);
selIntPx{1}(tmp2,5)= 24;
selIntPx{1}(:,1)= pertSel + (dmN*((selIntPx{1}(:,2))-1)); %scan numb column %intLposDIndx(:,2)* intLposDIndx(:,3);
selIntP= cell2mat(selIntPx);
end
if ~isempty(InterslstNeg{1})
selIntNx{1}(:,6)=InterslstNeg{1};
selIntNx{1}(:,2)=ceil((InterslstNeg{1})/(384)); %mp plate numb column
selIntNx{1}(:,3)=(rem(InterslstNeg{1},(384)));
tmp1=(selIntNx{1}(:,3)==0);
selIntNx{1}(tmp1,3)= 384;
selIntNx{1}(:,4)= ceil(selIntNx{1}(:,3)/24); %row numb
selIntNx{1}(:,5)= rem(selIntNx{1}(:,3),24);
tmp2=(selIntNx{1}(:,5)==0);
selIntNx{1}(tmp2,5)= 24;
selIntNx{1}(:,1)= pertSel + (dmN*((selIntNx{1}(:,2))-1)); %jj + (maxNperts*((selIntNx{1}(:,2))-1)); %scan numb
selIntN= cell2mat(selIntNx);
end
if strcmp(Exp(expN).DexpType, 'single') || strcmp(Exp(expN).DexpType,'multi')
d1= DexpN;
elseif strcmp(Exp(expN).DexpType, 'chrono')
d1= daysSel(1); %Dexps2use(1);
end
if ~isempty(InterslstPos{1})
for i=1:size(selIntP,1)
IPgene(i)=Exp(expN).Dexp(d1).MP(selIntP(i,2)).genename{1}(selIntP(i,3));
IPorf(i)= Exp(expN).Dexp(d1).MP(selIntP(i,2)).orf{1}(selIntP(i,3));
IPstrain(i)= Exp(expN).Dexp(d1).MP(selIntP(i,2)).strain{1}(selIntP(i,3));
IPspecifics(i)=Exp(expN).Dexp(d1).MP(selIntP(i,2)).specifics{1}(selIntP(i,3));
IPorfRep(i)=Exp(expN).Dexp(d1).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 perts2use value
ipL(i)= Exp(expN).Dexp(d1).scan(selIntP(i,1)).plate(1).CFout(selIntP(i,3),5);
ipLlower(i)= Exp(expN).Dexp(d1).scan(selIntP(i,1)).plate(1).CFout(selIntP(i,3),11);
ipLupper(i)= Exp(expN).Dexp(d1).scan(selIntP(i,1)).plate(1).CFout(selIntP(i,3),12);
%*************************************************************************
end
end
if ~isempty(InterslstNeg{1})
for i=1:size(selIntN,1)
i
INgene(i)=Exp(expN).Dexp(d1).MP(selIntN(i,2)).genename{1}(selIntN(i,3));
INorf(i)= Exp(expN).Dexp(d1).MP(selIntN(i,2)).orf{1}(selIntN(i,3));
INstrain(i)= Exp(expN).Dexp(d1).MP(selIntN(i,2)).strain{1}(selIntN(i,3));
INspecifics(i)=Exp(expN).Dexp(d1).MP(selIntN(i,2)).specifics{1}(selIntN(i,3));
INorfRep(i)=Exp(expN).Dexp(d1).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 perts2use value
inL(i)= Exp(expN).Dexp(d1).scan(selIntN(i,1)).plate(1).CFout(selIntN(i,3),5);
inLlower(i)= Exp(expN).Dexp(d1).scan(selIntN(i,1)).plate(1).CFout(selIntN(i,3),11);
inLupper(i)= Exp(expN).Dexp(d1).scan(selIntN(i,1)).plate(1).CFout(selIntN(i,3),12);
%*************************************************************************
end
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)));
tmpMovV1=(selIntPxAdj{1}(:,3)==0);
selIntPxAdj{1}(tmpMovV1,3)= 384;
selIntPxAdj{1}(:,4)= ceil(selIntPxAdj{1}(:,3)/24); %row numb
selIntPxAdj{1}(:,5)= rem(selIntPxAdj{1}(:,3),24);
tmpMovV2=(selIntPxAdj{1}(:,5)==0);
selIntPxAdj{1}(tmpMovV2,5)= 24;
selIntPxAdj{1}(:,1)= pertSel + (dmN*((selIntPxAdj{1}(:,2))-1)); %scan numb column %intLposDIndx(:,2)* intLposDIndx(:,3);
selIntPAdj= cell2mat(selIntPxAdj);
if ~isempty(InterslstNegAdj{1})
selIntNxAdj{1}(:,2)=ceil((InterslstNegAdj{1})/(384)); %mp plate numb column
selIntNxAdj{1}(:,3)= rem(InterslstNegAdj{1},(384));
tmpMovV1=(selIntNxAdj{1}(:,3)==0);
selIntNxAdj{1}(tmpMovV1,3)= 384;
selIntNxAdj{1}(:,4)= ceil(selIntNxAdj{1}(:,3)/24); %row numb
selIntNxAdj{1}(:,5)= rem(selIntNxAdj{1}(:,3),24);
tmpMovV2=(selIntNxAdj{1}(:,5)==0);
selIntNxAdj{1}(tmpMovV2,5)= 24;
selIntNxAdj{1}(:,1)= pertSel + (dmN*((selIntNxAdj{1}(:,2))-1)); %scan numb
selIntNAdj= cell2mat(selIntNxAdj);
end
for i=1:size(selIntPAdj,1)
IPgeneAdj(i)=Exp(expN).Dexp(d1).MP(selIntPAdj(i,2)).genename{1}(selIntPAdj(i,3));
IPorfAdj(i)= Exp(expN).Dexp(d1).MP(selIntPAdj(i,2)).orf{1}(selIntPAdj(i,3));
IPstrainAdj(i)= Exp(expN).Dexp(d1).MP(selIntPAdj(i,2)).strain{1}(selIntPAdj(i,3));
IPspecificsAdj(i)=Exp(expN).Dexp(d1).MP(selIntPAdj(i,2)).specifics{1}(selIntPAdj(i,3));
IPorfRepAdj(i)=Exp(expN).Dexp(d1).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 perts2use value
ipLAdj(i)= Exp(expN).Dexp(d1).scan(selIntPAdj(i,1)).plate(1).CFout(selIntPAdj(i,3),5);
ipLlowerAdj(i)= Exp(expN).Dexp(d1).scan(selIntPAdj(i,1)).plate(1).CFout(selIntPAdj(i,3),11);
ipLupperAdj(i)= Exp(expN).Dexp(d1).scan(selIntPAdj(i,1)).plate(1).CFout(selIntPAdj(i,3),12);
%************************************************************************************
end
if ~isempty(InterslstNegAdj{1})
for i=1:size(selIntNAdj,1)
INgeneAdj(i)=Exp(expN).Dexp(d1).MP(selIntNAdj(i,2)).genename{1}(selIntNAdj(i,3));
INorfAdj(i)= Exp(expN).Dexp(d1).MP(selIntNAdj(i,2)).orf{1}(selIntNAdj(i,3));
INstrainAdj(i)= Exp(expN).Dexp(d1).MP(selIntNAdj(i,2)).strain{1}(selIntNAdj(i,3));
INspecificsAdj(i)=Exp(expN).Dexp(d1).MP(selIntNAdj(i,2)).specifics{1}(selIntNAdj(i,3));
INorfRepAdj(i)=Exp(expN).Dexp(d1).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 perts2use value
inLAdj(i)= Exp(expN).Dexp(d1).scan(selIntNAdj(i,1)).plate(1).CFout(selIntNAdj(i,3),5);
inLlowerAdj(i)= Exp(expN).Dexp(d1).scan(selIntNAdj(i,1)).plate(1).CFout(selIntNAdj(i,3),11);
inLupperAdj(i)= Exp(expN).Dexp(d1).scan(selIntNAdj(i,1)).plate(1).CFout(selIntNAdj(i,3),12);
%*************************************************************************************
end
end
%++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
%Plot Histogram******************************************************
%subplotX=1;
figure
RFstds=', ';
for jj=1:DexpLen,
RFstds=strcat(RFstds,'Rs',num2str(jj),'_',num2str(Rs(jj)));
if jj~=DexpLen, strcat(RFstds,', ');end
end
histName= strcat('ExpZone ',num2str(expN),'-',Exp(expN).Dexp(DexpN).ExpFoldr,', Interaction Values ', ...
', LfFilter-',num2str(negPercent),', RtFilter-',num2str(posPercent),', RemoveNoGrowth-',char(removInfinL), ...
RFstds)
histAdjName= strcat('ExpZone ',num2str(expN),'-',Exp(expN).Dexp(DexpN).ExpFoldr,', Interaction Compensated by Reference Standard Deviation @',num2str(percentRs),'%', '& Upper/Lower Curvefit Boundaries', ...
', LfFilter-',num2str(negPercent),', RtFilter-',num2str(posPercent),', RemoveNoGrowth-',char(removInfinL), ...
RFstds)
if strcmpi(subplotX,'Y')
for jj=1:DexpLen
histLdata= intLwoRFsorted{jj}(:,1); %intLcmp(385:(mpN-1)*384,jj);
%histLadjData= intLadjcmp(385:(mpN-1)*384,jj);
hgLdat{jj}=histfitJR(histLdata,numBins,'kernel');
x{jj}= get(hgLdat{jj}(2),'xdata');
y{jj}= get(hgLdat{jj}(2),'ydata');
xb{jj}=get(hgLdat{jj}(1),'xdata');
yb{jj}=get(hgLdat{jj}(1),'ydata');
ybpostot{jj}=sum(yb{jj}(2,(xb{jj}(1,:)>=0)));
ybnegtot{jj}=sum(yb{jj}(2,(xb{jj}(1,:) <0)));
xbb(jj,:)=xb{jj}(2,:);
ybb(jj,:)=yb{jj}(2,:);
clf
end
% figure
if strcmpi(removInfinL,'N')
histLadjData= intLwoRFsortedAdj{jj}(:,1); %intLadjcmp(385:(mpN-1)*384,jj);
else
intLwoRFsortedAdj4HisW0{jj}= sortrows(intLadjwoRFs100{jj}',1); %Data including with 0's indeterminate within STD
histLadjData= intLwoRFsortedAdj4HisW0{jj}(:,1)
end
for jj=1:DexpLen
histLdata= intLwoRFsorted{jj}(:,1); %intLcmp(385:(mpN-1)*384,jj);
hgL{jj}=subplot(2, 4, jj), histfitJR(histLdata,numBins,'kernel') ; hold %hgL{jj}=histfit(intLcmp(:,jj),31,'kernel')
subplot(2, 4, jj),plot(posIntboundryCentralVal(jj), 1:3000,'--r')
subplot(2, 4, jj),plot(negIntboundryCentralVal(jj), 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', histName);
figure
for jj=1:DexpLen
if strcmpi(removInfinL,'N')
histLadjData= intLwoRFsortedAdj{jj}(:,1); %intLadjcmp(385:(mpN-1)*384,jj);
else
intLwoRFsortedAdj4HisW0{jj}= sortrows(intLadjwoRFs100{jj}',1); %Data including with 0's indeterminate within STD
histLadjData= intLwoRFsortedAdj4HisW0{jj}(:,1)
end
hgLadj{jj}=subplot(2, 4, jj),histfitJR(histLadjData,numBins,'kernel') ; hold %hgLadj{jj}=histfit(intLadjcmp(:,jj),31,'kernel')
subplot(2, 4, jj),plot(posIntboundryCentralValAdj(jj), 1:3000,'--r')
subplot(2, 4, jj),plot(negIntboundryCentralValAdj(jj), 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', histAdjName)
%set(gcf,'Name', 'Interaction Compensated by Standard Deviation and Upper/Lower Curvefit boundaries')
elseif strcmpi(subplotX,'N')
for jj=1:DexpLen
histLdata= intLwoRFsorted{jj}(:,1); %intLcmp(385:(mpN-1)*384,jj);
%intLwoRFsortedAdj4HisW0{jj}= sortrows(intLadjwoRFs100{jj}',1); %Data including with 0's indeterminate within STD
%histLadjData= intLwoRFsortedAdj4HisW0{jj}(:,1);
%histLadjData= intLwoRFsortedAdj{jj}(:,1); %intLadjcmp(385:(mpN-1)*384,jj);%intLadjcmp(385:(mpN-1)*384,jj); %intLcmp(:,jj); %intLadjcmp(:,jj);
if strcmpi(removInfinL,'N')
histLadjData= intLwoRFsortedAdj{jj}(:,1); %intLadjcmp(385:(mpN-1)*384,jj);
else
intLwoRFsortedAdj4HisW0{jj}= sortrows(intLadjwoRFs100{jj}',1); %Data including with 0's indeterminate within STD
histLadjData= intLwoRFsortedAdj4HisW0{jj}(:,1)
end
figure
hgL{jj}=histfitJR(histLdata,numBins,'kernel') ; hold %hgL{jj}=histfit(intLcmp(:,jj),31,'kernel')
plot(posIntboundryCentralVal(jj), 1:3000,'--r')
plot(negIntboundryCentralVal(jj), 1:3000,'--g')
set(gcf,'Name', strcat('DM-',num2str(jj),'-',histName));
hold off
figure
hgLadj{jj}=histfitJR(histLadjData,numBins,'kernel') ; hold %hgLadj{jj}=histfit(intLadjcmp(:,jj),31,'kernel')
plot(posIntboundryCentralValAdj(jj), 1:3000,'--r')
plot(negIntboundryCentralValAdj(jj), 1:3000,'--g')
set(gcf,'Name', strcat('DM-',num2str(jj),'-',histAdjName));
hold off
x{jj}= get(hgL{jj}(2),'xdata')
y{jj}= get(hgL{jj}(2),'ydata');
xb{jj}=get(hgL{jj}(1),'xdata')
yb{jj}=get(hgL{jj}(1),'ydata')
ybpostot{jj}=sum(yb{jj}(2,(xb{jj}(1,:)>=0)))
ybnegtot{jj}=sum(yb{jj}(2,(xb{jj}(1,:) <0)))
xbb(jj,:)=xb{jj}(2,:);
ybb(jj,:)=yb{jj}(2,:);
end % for jj= when subplotX~=1 standard one plot per figure
end %if subplotX==1 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
%{
if methCalc==0
deltaXR{m,j}= zeros(1,384);
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));
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
%else else else else
else %if methCalc~=0
%percentRs= 100;
RsReduced(j)= percentRs/100* Rs(j)
%{
Yn{m,j}= Xn{m,j}-Xn{m,1}; %Yn is deltaXn
Yn{m,j}(Yn{m,j}==0)=-0.5;
Yln{m,j}= Xln{m,j}-Xln{m,1};
Yln{m,j}(Yln{m,j}==0)=-0.5;
Yhn{m,j}= Xhn{m,j}-Xhn{m,1};
Yhn{m,j}(Yhn{m,j}==0)=-0.5;
%}
%deltaRp(j)= (Rn(j)+RsReduced(j))-Rn(1); %
deltaRp(j)= (Rn(j)+RsReduced(j))-(Rn(1)+RsReduced(1));
%deltaRn(j)= (Rn(j)-RsReduced(j))-Rn(1); %
deltaRn(j)=(Rn(j)-RsReduced(j))-(Rn(1)-RsReduced(1));
if deltaRp(j)==0, deltaRp(j)=0.2; end
if deltaRn(j)==0, deltaRn(j)=0.2; 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 %for i=1:384
%**************************************************************************
end %if methCalc==0
%}

View File

@@ -0,0 +1,590 @@
%EZvDatatip
%Calls to EZdestComp.m EZmDayTrend.m
global ghandles
global Exp
RFcmpGFlg=0; %Test 180105 as it goes to EZmDayTrend.m
lstBoxCmpFlg=0;
%datacursormode(gcf)
%{
[output_txt]=datatipp(obj,event_obj);
clkPos=getCursorInfo(datacursormode(gcf));
cpos=clkPos.Position;
htargetAxes= clkPos.Target;
%}
%pause(1)
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;
%x2ypos= [1400-cpos(2) cpos(1)] %for HorzRotatedImage
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];
%indx=(picLoc1(1)-1)*24+picLoc1(2)
%spotFrm= Exp(expN).Dexp(DexpN).FexpScanSpots{1}{m,n,tPtSel};
spotFrm= Exp(expN).Dexp(DexpN).FexpScanSpots{plateNum}{m,n,tPtSel}; %20160108
end
end
end %for n=1:16
end %for m=1:24
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
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;
%************************************************
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 %trycatch
%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=',num2str(l),'_','r=',num2str(r),'_','K=',num2str(K));
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
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 % trycatch expN<4 datatip selection from Image (not from an OverLay Plot)
end %if ~exist('OLay','var')
%******************************************************************************************
%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 % => for i=1:length(Exp(OLay).hOL(:))
%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 %=> try for Write Selected Trace Info to OLAY header******
%HIDE HIDE HIDE ---------------------------------------------------
%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 22222222222222222-----
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 %if rotPB2 ....==1
%------HIDE 33333333333333-----
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******************
%EZdatatip=1;
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
%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
%datacursormode(gcf)
%**********************************************Test Area
%Added 18_0105 to define RFcmpGFlg for EZmDayTrend.m when an Image spot
%is clicked
%try
%listboxGnOrf=get(handles.listboxGnOrf,'string');
%selGnOrf=listboxGnOrf(usrInxSel);
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
%catch
%end

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,144 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Migration Report for EZviewGui</title>
<style type="text/css">
html body {
height: 100%;
padding: 0; margin: 0;
color: #474747;
font: 13px/1.384 Arial, Helvetica, sans-serif;
}
/*Report Title Header*/
h1 {
font-family: Futura, Arial, Helvetica, sans-serif;
font-size: 28px;
font-weight: 400;
color: #fff;
margin: 0;
padding: 15px;
}
/*Report Section Headers*/
h2 {
padding-bottom: 2px;
margin: 20px 0 17px 0;
border-bottom: 1px solid #cbcbcb;
color: #c45400;
font: normal normal 22px/1.136 Arial,Helvetica,sans-serif;
}
/*Report Subsection Headers*/
h3 {
margin: 20px 0 20px 0;
font: normal bold 17px/1.35 Arial, Helvetica, sans-serif;
}
ul.childHasIcon {
padding-left: 20px;
}
ul > li.success {
list-style: none;
/*Check-mark image*/
background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAK2SURBVHjaVJNPaFRXFMZ/b96MmUZGURMyHaoTa0QrRReD4KIlwriRRhPpoi1ddeNG4krFRbAbceOf0qJuSoWWWlooIiKlCSkp1ARksEmpi8GSQjKJUSYk/p1J5r17vi7ee609cFf3+33n3HvO8SgdJYn+oZFODw4DBxB7hYoSMzJVZBo12a2fzr9X55XwEoOBoZGyYNCDfgEyIQkMzIRkBKupYXN89svVg8OJgU+hxMDQSBk45+GVJSJQQk5IYGbIhIfrcSF78ttrC3P336wC+ANXlzqBs0A5EgtkSMJMMRxXFN11mSm/pr05sTSXX0qBDkvqj0Qx6MBC/QuVt77Pp/uvkV9bxJzhZ5r7cx2LHwGZtMQBGUhRmSaB/Zd9rb+OD98+zub1Paxbs5FjNw9GJm2NXuDLtMz2RuUC8VsVG2T9di4fGqaQ6+ZubZTvJ69goWEy/PTKTmBDykxFc0LOOLHvMu+8cQjnjDRtXDsyTiHXTaU2xpmfP6EyO4Y5Q6EgFXQBubRMM+a0zcx4t9hHb3c/j5/Ncbr3Cpva80w9HOfU7Q8IwhbmonaagQv8x0A25ZxVzAxz4tupS0jG5323eT1XZHL+DoM3+mgFLZwzEp2c0WpmqsBKypxGLb785vcLfH3vAgCT878xeKMvAp1FM5Ecg5Wn6+8Bz1Pm3K1W0xu2UFhofDf5BX8t/snFsZPxDMSZzaLOSKw2suOPHuyaAJb9v+c+bmze/aBuTnuE6wrCgJt/fMVyox6NcNwRCTARtjLV5fkt1+vTb1WAmk+hxOzUjumOrTMLkuVTXtCdgMmHJTux2nxt/Ml88Xptat+vwCzw0qdQAmCh2lPNZBsTJluU8ySsDazdhf6j1sts5cVS548P75d+qE/vrMTw8v+28ZXIAB3ABiAHZIEV4HkMLQJBIv5nAPq180UQOlmCAAAAAElFTkSuQmCC') no-repeat;
padding-left: 20px;
margin-bottom: 5px;
}
ul.verifications > li {
margin: 7px 0 7px 0;
}
table {
width: 100%;
border-collapse: collapse;
}
table,th,tr,td {
border: 1px solid #ccc;
text-align: left;
vertical-align: top;
padding: 8px 15px;
}
tr:nth-child(odd) {
background-color: #fafafa;
}
a { color: #187dbb; text-decoration: none; }
a:visited { color: #004b87; text-decoration: none; }
a:hover { color: #004b87; text-decoration: underline;}
code {
font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
}
.reportTitle {
min-height: 52px;
background: #2f7eb2;
}
.reportBody {
padding: 0 15px 0 15px;
}
/*Classes that are used by HTML that is added dynamically by the report generator */
.detailsWorkaround {
padding: 10px 0px;
}
.detailsWorkaroundHeader {
padding-right: 5px;
font-weight: bold;
}
.hidden {
display: none;
}
.visible {
display: block;
}
.showMore {
margin-top: 5px;
}
</style>
</head>
<body>
<div class="reportTitle">
<h1>Migration Report for <code>EZviewGui</code></h1>
</div>
<div class="reportBody">
<section>
<h3>Your GUIDE app was migrated to App Designer and is ready for validation.</h3>
<h2>Migration Results</h2>
<ul class="childHasIcon">
<li class="success"><b>EZviewGui_App_1.mlapp</b> file created</li>
<li class="success"><b>2069</b> lines of code analyzed in EZviewGui.m</li>
<li class="success"><b>151</b> components created and initialized</li>
<li class="success"><b>76</b> callbacks and utility functions configured and enabled to function in App Designer</li>
</ul>
</section>
<section>
<h2>Validate Your Migrated App</h2>
<p>The migration tool enables most of your app code to execute. Now, you need to fully validate your migrated app to make sure it behaves as expected. Consider doing the following verifications:</p>
<ul>
<li>Verify Layout
<ul class="verifications">
<li>Run your app and verify the initial layout of all components is as expected.</li>
<li>If your app dynamically shows, hides, or enables additional components or options in response to selections made within the app, confirm these behave as expected.</li>
</ul>
</li>
<li>Verify Callbacks
<ul class="verifications">
<li>Run and close your app to confirm there are no startup or termination errors.</li>
<li>Exercise the workflows specific to your app, starting with the most basic, and gradually proceeding to the more complex ones.</li>
</ul>
</li>
</ul>
<p>If unexpected errors occur, either within the app or at the MATLAB command line, address those issues before continuing with the validation. For troubleshooting assistance and additional information, see <a href="matlab:helpview(fullfile(docroot,'matlab', 'creating_guis', 'differences-between-app-designer-and-guide.html#mw_7f306e19-74d0-4c0b-989d-74ed63e32ddd'));">GUIDE Migration Strategies</a>.</p>
</section>
</div>
<script type="text/javascript">
// Toggles showing the "Show More (10)" hyperlink with the "Show less" hyperlink
function toggleShowMore(selectedHyperlink) {
// Find the parent td for the selected hyperlink ("Show more" or "Show less")
var td = selectedHyperlink.parentElement.parentElement;
// Toggle the "hidden" class on all of the elements but the first 3. The first 3 we want to always be
// visible.
var tags = td.children;
for (var i=3; i<tags.length; i++) {
tags[i].classList.toggle("hidden");
}
}
</script>
</body>
</html>

View File

@@ -0,0 +1,144 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Migration Report for EZviewGui</title>
<style type="text/css">
html body {
height: 100%;
padding: 0; margin: 0;
color: #474747;
font: 13px/1.384 Arial, Helvetica, sans-serif;
}
/*Report Title Header*/
h1 {
font-family: Futura, Arial, Helvetica, sans-serif;
font-size: 28px;
font-weight: 400;
color: #fff;
margin: 0;
padding: 15px;
}
/*Report Section Headers*/
h2 {
padding-bottom: 2px;
margin: 20px 0 17px 0;
border-bottom: 1px solid #cbcbcb;
color: #c45400;
font: normal normal 22px/1.136 Arial,Helvetica,sans-serif;
}
/*Report Subsection Headers*/
h3 {
margin: 20px 0 20px 0;
font: normal bold 17px/1.35 Arial, Helvetica, sans-serif;
}
ul.childHasIcon {
padding-left: 20px;
}
ul > li.success {
list-style: none;
/*Check-mark image*/
background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAK2SURBVHjaVJNPaFRXFMZ/b96MmUZGURMyHaoTa0QrRReD4KIlwriRRhPpoi1ddeNG4krFRbAbceOf0qJuSoWWWlooIiKlCSkp1ARksEmpi8GSQjKJUSYk/p1J5r17vi7ee609cFf3+33n3HvO8SgdJYn+oZFODw4DBxB7hYoSMzJVZBo12a2fzr9X55XwEoOBoZGyYNCDfgEyIQkMzIRkBKupYXN89svVg8OJgU+hxMDQSBk45+GVJSJQQk5IYGbIhIfrcSF78ttrC3P336wC+ANXlzqBs0A5EgtkSMJMMRxXFN11mSm/pr05sTSXX0qBDkvqj0Qx6MBC/QuVt77Pp/uvkV9bxJzhZ5r7cx2LHwGZtMQBGUhRmSaB/Zd9rb+OD98+zub1Paxbs5FjNw9GJm2NXuDLtMz2RuUC8VsVG2T9di4fGqaQ6+ZubZTvJ69goWEy/PTKTmBDykxFc0LOOLHvMu+8cQjnjDRtXDsyTiHXTaU2xpmfP6EyO4Y5Q6EgFXQBubRMM+a0zcx4t9hHb3c/j5/Ncbr3Cpva80w9HOfU7Q8IwhbmonaagQv8x0A25ZxVzAxz4tupS0jG5323eT1XZHL+DoM3+mgFLZwzEp2c0WpmqsBKypxGLb785vcLfH3vAgCT878xeKMvAp1FM5Ecg5Wn6+8Bz1Pm3K1W0xu2UFhofDf5BX8t/snFsZPxDMSZzaLOSKw2suOPHuyaAJb9v+c+bmze/aBuTnuE6wrCgJt/fMVyox6NcNwRCTARtjLV5fkt1+vTb1WAmk+hxOzUjumOrTMLkuVTXtCdgMmHJTux2nxt/Ml88Xptat+vwCzw0qdQAmCh2lPNZBsTJluU8ySsDazdhf6j1sts5cVS548P75d+qE/vrMTw8v+28ZXIAB3ABiAHZIEV4HkMLQJBIv5nAPq180UQOlmCAAAAAElFTkSuQmCC') no-repeat;
padding-left: 20px;
margin-bottom: 5px;
}
ul.verifications > li {
margin: 7px 0 7px 0;
}
table {
width: 100%;
border-collapse: collapse;
}
table,th,tr,td {
border: 1px solid #ccc;
text-align: left;
vertical-align: top;
padding: 8px 15px;
}
tr:nth-child(odd) {
background-color: #fafafa;
}
a { color: #187dbb; text-decoration: none; }
a:visited { color: #004b87; text-decoration: none; }
a:hover { color: #004b87; text-decoration: underline;}
code {
font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
}
.reportTitle {
min-height: 52px;
background: #2f7eb2;
}
.reportBody {
padding: 0 15px 0 15px;
}
/*Classes that are used by HTML that is added dynamically by the report generator */
.detailsWorkaround {
padding: 10px 0px;
}
.detailsWorkaroundHeader {
padding-right: 5px;
font-weight: bold;
}
.hidden {
display: none;
}
.visible {
display: block;
}
.showMore {
margin-top: 5px;
}
</style>
</head>
<body>
<div class="reportTitle">
<h1>Migration Report for <code>EZviewGui</code></h1>
</div>
<div class="reportBody">
<section>
<h3>Your GUIDE app was migrated to App Designer and is ready for validation.</h3>
<h2>Migration Results</h2>
<ul class="childHasIcon">
<li class="success"><b>EZviewGui_App_2.mlapp</b> file created</li>
<li class="success"><b>2105</b> lines of code analyzed in EZviewGui.m</li>
<li class="success"><b>160</b> components created and initialized</li>
<li class="success"><b>75</b> callbacks and utility functions configured and enabled to function in App Designer</li>
</ul>
</section>
<section>
<h2>Validate Your Migrated App</h2>
<p>The migration tool enables most of your app code to execute. Now, you need to fully validate your migrated app to make sure it behaves as expected. Consider doing the following verifications:</p>
<ul>
<li>Verify Layout
<ul class="verifications">
<li>Run your app and verify the initial layout of all components is as expected.</li>
<li>If your app dynamically shows, hides, or enables additional components or options in response to selections made within the app, confirm these behave as expected.</li>
</ul>
</li>
<li>Verify Callbacks
<ul class="verifications">
<li>Run and close your app to confirm there are no startup or termination errors.</li>
<li>Exercise the workflows specific to your app, starting with the most basic, and gradually proceeding to the more complex ones.</li>
</ul>
</li>
</ul>
<p>If unexpected errors occur, either within the app or at the MATLAB command line, address those issues before continuing with the validation. For troubleshooting assistance and additional information, see <a href="matlab:helpview(fullfile(docroot,'matlab', 'creating_guis', 'differences-between-app-designer-and-guide.html#mw_7f306e19-74d0-4c0b-989d-74ed63e32ddd'));">GUIDE Migration Strategies</a>.</p>
</section>
</div>
<script type="text/javascript">
// Toggles showing the "Show More (10)" hyperlink with the "Show less" hyperlink
function toggleShowMore(selectedHyperlink) {
// Find the parent td for the selected hyperlink ("Show more" or "Show less")
var td = selectedHyperlink.parentElement.parentElement;
// Toggle the "hidden" class on all of the elements but the first 3. The first 3 we want to always be
// visible.
var tags = td.children;
for (var i=3; i<tags.length; i++) {
tags[i].classList.toggle("hidden");
}
}
</script>
</body>
</html>

Some files were not shown because too many files have changed in this diff Show More