EZinterAgingDev0 debug

This commit is contained in:
2024-07-29 19:42:31 -04:00
parent 80aab5e486
commit 1ec1037c82
6 changed files with 485 additions and 566 deletions

View File

@@ -73,7 +73,7 @@ end
Exp(expN).htmapRFanswer= {'G','L'}; %ZoneData Exp(expN).htmapRFanswer= {'G','L'}; %ZoneData
if expType==1 if expType==1
Exp(expN).DexpType= 'single'; Exp(expN).DexpType='single';
% Test for Bad MP cell array (usually 384 [NaN}'s) % Test for Bad MP cell array (usually 384 [NaN}'s)
% replaced length(Exp(expN).Dexp(1).MP) with MPnum % replaced length(Exp(expN).Dexp(1).MP) with MPnum
@@ -86,65 +86,29 @@ if expType==1
end end
end end
% TODO don't want to cd here
try
cd(usrExpJobsDir);
catch
if ispc
cd(fullfile('C:\')); %end % \Easy\Experiments'));
else
cd(fullfile('/mnt/data/scans'))
end
end
datacursormode off; datacursormode off;
if ispc % Return without execution if user cancels or doesn't select a .mat file
try try
cd(usrExpJobsDir); if openExpfile==0 || scansDir==0
catch
cd(fullfile('C:\')); %end % \Easy\Experiments'));
end
else
try
cd(usrExpJobsDir);
catch
cd(fullfile('~'));
end
end
try
[openExpfile,openExppath] = uigetfile('.mat','Open Experiment folder and data storage .mat file name','MultiSelect','off')
catch ME
catchissue='Ln50'
ME
cd(w)
return return
end end
catch
end
%Return without execution if user cancels or doesn't select a .mat file if expN==1 || expN==2 || expN==3
try
if openExpfile==0 || openExppath==0, cd(w), return, end
catch
end
if expN==1
orfLstSel=get(handles.GeneOrfTog,'value') orfLstSel=get(handles.GeneOrfTog,'value')
end end
if expN==2
orfLstSel=get(handles.GeneOrfTog,'value')
end
if expN==3
orfLstSel=get(handles.GeneOrfTog,'value')
end
Exp(expN).Dexp(1).srtGnLst={('CheckMP/MPDMfile')}; Exp(expN).Dexp(1).srtGnLst={('CheckMP/MPDMfile')};
Exp(expN).Dexp(1).srtOrfLst={('CheckMP/MPDMfile')}; Exp(expN).Dexp(1).srtOrfLst={('CheckMP/MPDMfile')};
set(handles.listboxGnOrf,'value',1) %Fix accomodation for bug in App Designer .. .wlapp converter 230906 set(handles.listboxGnOrf,'value',1) %Fix accomodation for bug in App Designer .. .wlapp converter 230906
set(handles.listboxGnOrf,'string',cellstr([{'Failed To Load'}; {' '}])); set(handles.listboxGnOrf,'string',cellstr([{'Failed To Load'}; {' '}]));
%try %try
ExpOutmat= fullfile(openExppath,openExpfile); ExpOutmat=fullfile(scansDir,openExpfile);
load(ExpOutmat); load(ExpOutmat);
cd(openExppath) cd(scansDir)
cd ..; cd ..;
resDir=pwd; resDir=pwd;
Exp(expN).Dexp(1).resDir=resDir; Exp(expN).Dexp(1).resDir=resDir;

View File

@@ -1,179 +1,154 @@
%single gene L based interaction shift display %single gene L based interaction shift display
function EZinterAgingDev0 function EZinterAgingDev0
global Exp
[openExpfile,openExppath] = uigetfile('.mat','Open Experiment folder and data storage .mat file name','MultiSelect','on'); [openExpfile,scansDir]=uigetfile('.mat','Open Experiment folder and data storage .mat file name','MultiSelect','on');
AgMPDM=load(fullfile(scansDir,'MasterPlateFiles','MPDMmat.mat'));
AgMPDM=load (fullfile(openExppath,'MasterPlateFiles','MPDMmat.mat')); for i=1:size(openExpfile,2)
ExpOutmat{i}= fullfile(scansDir,openExpfile{i});
EScan{i}=load(ExpOutmat{1});
end
for i=1:size(openExpfile,2) % single gene L based interaction shift display
ExpOutmat{i}= fullfile(openExppath,openExpfile{i}); % function EZinteractDev3
EScan{i}=load(ExpOutmat{1}); % expN=1;
end
% User Input decode for application
prompt={...
'Enter LeftSide Central Boundary in Percent:',...
%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 RightSide Central Boundary in Percent:', ...
'Enter Perturbation Numbers for set intersect:' ... 'Enter Perturbation Numbers for set intersect:' ...
'Remove No Growth Infinite Interactors:' ... 'Remove No Growth Infinite Interactors:' ...
'Number of Bins for Histograms'... 'Number of Bins for Histograms'...
'Subplots(Y), Multiple Plots(N), Suspend Plots(S)'};%... 'Subplots(Y), Multiple Plots(N), Suspend Plots(S)'};
%'Select Experiment(zone) number:' % 'Select Experiment(zone) number:'
name='Interaction User Input'; name='Interaction User Input';
numlines=1; numlines=1;
defaultanswer={'80','60','1','N','39','Y'}; defaultanswer={'80','60','1','N','39','Y'};
answer=inputdlg(prompt,name,numlines,defaultanswer); answer=inputdlg(prompt,name,numlines,defaultanswer);
negPercent= str2double(cell2mat(answer(1))); negPercent= str2double(cell2mat(answer(1)));
posPercent= str2double(cell2mat(answer(2))); posPercent= str2double(cell2mat(answer(2)));
DMstr= cell2mat(answer(3)); DMstr= cell2mat(answer(3));
DMcomas=strfind((cell2mat(answer(3))),','); DMcomas=strfind((cell2mat(answer(3))),',');
removInfinL= answer(4); removInfinL= answer(4);
numBins= str2double(cell2mat(answer(5))); numBins= str2double(cell2mat(answer(5)));
subplotX= answer(6); subplotX= answer(6);
%expN= str2double(cell2mat(answer(7))); % expN= str2double(cell2mat(answer(7)));
n=0; n=0;
for i= DMcomas, for i= DMcomas,
n=n+1 n=n+1
DMsel(n)= str2double(DMstr(i-1:i)) DMsel(n)= str2double(DMstr(i-1:i))
if i== max(DMcomas) if i== max(DMcomas)
DMsel(n+1)= str2double(DMstr(i:end)) DMsel(n+1)= str2double(DMstr(i:end))
end end
end
Rn=Exp(expN).RFmean;
end Rs=Exp(expN).RFstd;
%************************************************************** dmN=length(Exp(expN).DM.drug);
mpN=length(Exp(expN).MP);
Rn=Exp(expN).RFmean; % Intc1=3; IntcLst=5;
Rs=Exp(expN).RFstd; % Calculate Interaction values (with and without
% standardDeviation/Upper-Lower boundary compensation
dmN= length(Exp(expN).DM.drug); for j=1:dmN
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 for m=1:mpN
scnN= j + (dmN*(m-1)) % 1,6,11..; 2,7,12 ..; 3,8,13..; 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,:}=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; 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); 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); 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,:} - Rn(j));
intL{m,j,:}(Xn{m,j,:}==140)= 100; 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,1,:}-Xn{m,j,:}) - Rn(1)-Rn(j));
intLhw{m,j,:}(Xn{m,j,:}==140)= 100; 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)))= ( 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)); 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)); Xneg= Xhn{m,j}- (Rn(j)-Rs(j));
Xpos= Xln{m,j}- (Rn(j)+Rs(j)); Xpos= Xln{m,j}- (Rn(j)+Rs(j));
deltaXR{m,j}= zeros(1,384); deltaXR{m,j}= zeros(1,384);
for i=1:length(Xpos(:)), for i=1:length(Xpos(:)),
%deltaXR{m,j}(i)= Xpos(i); % deltaXR{m,j}(i)= Xpos(i);
if deltaXR{m,j}(i)==0 if deltaXR{m,j}(i)==0
try try
if abs(Xpos(i))<abs(Xneg(i)), deltaXR{m,j}(i)= Xpos(i);end if abs(Xpos(i))<abs(Xneg(i)), deltaXR{m,j}(i)= Xpos(i);end
catch, end catch
end end
end end
for i=1:length(Xneg(:)), end
for i=1:length(Xneg(:))
if deltaXR{m,j}(i)==0, deltaXR{m,j}(i)= Xneg(i); end if deltaXR{m,j}(i)==0, deltaXR{m,j}(i)= Xneg(i); end
try try
if abs(Xpos(i))>abs(Xneg(i)), deltaXR{m,j}(i)= Xneg(i); end if abs(Xpos(i))>abs(Xneg(i)), deltaXR{m,j}(i)= Xneg(i); end
catch,end catch
end
end end
deltaXR{m,j,:}(Xln{m,j,:}==0)= 100; deltaXR{m,j,:}(Xln{m,j,:}==0)= 100;
deltaXR{m,j,:}(isnan(Xln{m,j,:}))= 120; deltaXR{m,j,:}(isnan(Xln{m,j,:}))= 120;
deltaXR{m,j,:}(Xhn{m,j,:}==0)= 100; deltaXR{m,j,:}(Xhn{m,j,:}==0)= 100;
deltaXR{m,j,:}(isnan(Xhn{m,j,:}))= 120; deltaXR{m,j,:}(isnan(Xhn{m,j,:}))= 120;
% Compile all gene related L values for the each pert-DM (j).
%Compile all gene related L values for the each pert-DM (j). addend=(1+((m-1)*384)) % ((((m-1)*j)*384)+1);
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,:));
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,:));
intLadjcmp(addend:addend+383,j)= cell2mat(deltaXR(m,j,:)); %((addend:addend+383),j)= cell2mat(deltaXR(j,m,:)); end
% Remove RFs and Blank (or non annotated ' ') orf data Then
end %m=1:mpN % Filter data per user intput
%Remove RFs and Blank (or non annotated ' ') orf data Then intLc{j}=intLcmp(:,j);
%Filter data per user intput intLwoRFs{j}(1,:)=intLcmp(Exp(expN).mutSpotIndx.woRFs,j);
intLc{j}= intLcmp(:,j); intLwoRFs{j}(2,:)=Exp(expN).mutSpotIndx.woRFs; % index of non-RF non-blank spots %Crude early intLcmp(385:(mpN-1)*384,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') if strcmpi(removInfinL,'Y')
intLwoRFs0{j}(1,:)=intLwoRFs{j}(1,(intLwoRFs{j}(1,:)~=100)); % intLcmp(Exp(1).mutSpotIndx.woRFs,j);
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);
intLwoRFs0{j}(2,:)= intLwoRFs{j}(2,(intLwoRFs{j}(1,:)~= 100)); % intLcmp(385:(mpN-1)*384,j);
clear intLwoRFs clear intLwoRFs
intLwoRFs{j}(1,:)= intLwoRFs0{j}(1,:); intLwoRFs{j}(1,:)=intLwoRFs0{j}(1,:);
intLwoRFs{j}(2,:)= intLwoRFs0{j}(2,:); intLwoRFs{j}(2,:)=intLwoRFs0{j}(2,:);
end end
intLwoRFsorted{j}=sortrows(intLwoRFs{j}',1);
intLwoRFsorted{j}= sortrows(intLwoRFs{j}',1);
clear intLcmpSortGT0 intLcmpSortLT0 clear intLcmpSortGT0 intLcmpSortLT0
tempIntL=intLwoRFsorted{j}(:,1);
tempIntL= intLwoRFsorted{j}(:,1); intLcmpSortGT0=tempIntL((tempIntL) >=0);
intLcmpSortGT0= tempIntL((tempIntL) >=0); intLcmpSortLT0=tempIntL((tempIntL) <0);
intLcmpSortLT0= tempIntL((tempIntL) <0); centPosCnt=round(posPercent/100 * length(intLcmpSortGT0));
centNegCnt=round(negPercent/100 * length(intLcmpSortLT0));
centPosCnt= round(posPercent/100 * length(intLcmpSortGT0));
centNegCnt= round(negPercent/100 * length(intLcmpSortLT0));
intLposSel{j}=intLwoRFsorted{j}((length(intLcmpSortLT0)+centPosCnt): end,:); intLposSel{j}=intLwoRFsorted{j}((length(intLcmpSortLT0)+centPosCnt): end,:);
intLnegSel{j}=intLwoRFsorted{j}((1:(length(intLcmpSortLT0)-centNegCnt)),:); intLnegSel{j}=intLwoRFsorted{j}((1:(length(intLcmpSortLT0)-centNegCnt)),:);
posIntboundryCentralVal(j)= intLcmpSortGT0((centPosCnt),:); %For Histogram use posIntboundryCentralVal(j)= intLcmpSortGT0((centPosCnt),:); % For Histogram use
negIntboundryCentralVal(j)= intLcmpSortLT0(((length(intLcmpSortLT0))-(centNegCnt)),:); %For Histogram use negIntboundryCentralVal(j)= intLcmpSortLT0(((length(intLcmpSortLT0))-(centNegCnt)),:); % For Histogram use
% Find potential Interactors within selected range
if j==DMsel(1) % Intc1,
%Find potential Interactors within selected range InterslstPos{1}= intLposSel{DMsel(1)}(:,2) % intLcmpposInd{Intc1}
if j== DMsel(1) %Intc1, InterslstNeg{1}= intLnegSel{DMsel(1)}(:,2) % intLcmpnegInd{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 elseif sum(ismember(DMsel,j))==1 %Intc1 && j<=IntcLst
InterslstPos{1}=(intersect(InterslstPos{1},intLposSel{j}(:,2))); %,intLcmpposInd{j})) InterslstPos{1}=(intersect(InterslstPos{1},intLposSel{j}(:,2))); % ,intLcmpposInd{j}))
InterslstNeg{1}=(intersect(InterslstNeg{1},intLnegSel{j}(:,2))); %,intLcmpnegInd{j})) InterslstNeg{1}=(intersect(InterslstNeg{1},intLnegSel{j}(:,2))); % ,intLcmpnegInd{j}))
end end
% Convolute experiment spot index to get scan#, MP# and plateIndx needed
%Convolute experiment spot index to get scan#, MP# and plateIndx needed % later to obtain genename and other descriptors and correlate data
%later to obtain genename and other descriptors and correlate data intLposDIndx{j}(:,2)=ceil((intLposSel{j}(:,2))/384); % mp plate numb column
intLposDIndx{j}(:,2)=ceil((intLposSel{j}(:,2))/384); %mp plate numb column
intLposDIndx{j}(:,3)=(rem(intLposSel{j}(:,2),384)); intLposDIndx{j}(:,3)=(rem(intLposSel{j}(:,2),384));
nn=(intLposDIndx{j}(:,3)==0); nn=(intLposDIndx{j}(:,3)==0);
intLposDIndx{j}(nn,3)= 384; intLposDIndx{j}(nn,3)= 384;
intLposDIndx{j}(:,1)= j + (dmN*((intLposDIndx{j}(:,2))-1)); %scan numb column %intLposDIndx(:,2)* intLposDIndx(:,3); 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}(:,2)=ceil((intLnegSel{j}(:,2))/384); % mp plate numb column
intLnegDIndx{j}(:,3)=(rem(intLnegSel{j}(:,2),384)); intLnegDIndx{j}(:,3)=(rem(intLnegSel{j}(:,2),384));
nn=(intLposDIndx{j}(:,3)==0); nn=(intLposDIndx{j}(:,3)==0);
intLnegDIndx{j}(nn,3)= 384; intLnegDIndx{j}(nn,3)= 384;
intLnegDIndx{j}(:,1)= j + (dmN*((intLnegDIndx{j}(:,2))-1)); %scan numb intLnegDIndx{j}(:,1)= j + (dmN*((intLnegDIndx{j}(:,2))-1)); % scan numb
%++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ % ADJUSTED L for Reference Standard deviation(More conservative) Interaction List compilation
%********************************************************************************************
%ADJUSTED L for Reference Standard deviation(More conservative) Interaction List compilation
intLadjwoRFs{j}(1,:)=intLadjcmp(Exp(expN).mutSpotIndx.woRFs,j); 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); intLadjwoRFs{j}(2,:)= Exp(expN).mutSpotIndx.woRFs; % intLadjcmp(385:(mpN-1)*384,j); %intLadjcmp(Exp(expN).mutSpotIndx.woRFs,j);
if strcmpi(removInfinL,'Y') if strcmpi(removInfinL,'Y')
intLadjwoRFs0{j}(1,:)= intLadjwoRFs{j}(1,(intLadjwoRFs{j}(1,:)~= 100)) ; %intLcmp(Exp(1).mutSpotIndx.woRFs,j); intLadjwoRFs0{j}(1,:)= intLadjwoRFs{j}(1,(intLadjwoRFs{j}(1,:)~= 100)) ; %intLcmp(Exp(1).mutSpotIndx.woRFs,j);
@@ -185,114 +160,100 @@ for j=1:dmN
intLwoRFsortedAdj{j}= sortrows(intLadjwoRFs{j}',1); intLwoRFsortedAdj{j}= sortrows(intLadjwoRFs{j}',1);
clear intLadjSortGT0 intLadjSortLT0 clear intLadjSortGT0 intLadjSortLT0
tempIntLadj= intLwoRFsortedAdj{j}(:,1); tempIntLadj=intLwoRFsortedAdj{j}(:,1);
intLadjSortGT0= tempIntLadj((tempIntLadj) >=0); intLadjSortGT0=tempIntLadj((tempIntLadj) >=0);
intLadjSortLT0= tempIntLadj((tempIntLadj) <0); intLadjSortLT0=tempIntLadj((tempIntLadj) <0);
centPosCntAdj=round(posPercent/100 * length(intLadjSortGT0));
centPosCntAdj= round(posPercent/100 * length(intLadjSortGT0)); centNegCntAdj=round(negPercent/100 * length(intLadjSortLT0));
centNegCntAdj= round(negPercent/100 * length(intLadjSortLT0));
intLposSelAdj{j}=intLwoRFsortedAdj{j}((length(intLadjSortLT0)+centPosCntAdj): end,:); intLposSelAdj{j}=intLwoRFsortedAdj{j}((length(intLadjSortLT0)+centPosCntAdj): end,:);
intLnegSelAdj{j}=intLwoRFsortedAdj{j}((1:(length(intLadjSortLT0)-centNegCntAdj)),:); intLnegSelAdj{j}=intLwoRFsortedAdj{j}((1:(length(intLadjSortLT0)-centNegCntAdj)),:);
posIntboundryCentralValAdj(j)= intLadjSortGT0((centPosCntAdj),:); posIntboundryCentralValAdj(j)=intLadjSortGT0((centPosCntAdj),:);
negIntboundryCentralValAdj(j)= intLadjSortLT0(((length(intLadjSortLT0))-(centNegCntAdj)),:); negIntboundryCentralValAdj(j)=intLadjSortLT0(((length(intLadjSortLT0))-(centNegCntAdj)),:);
if j==DMsel(1) % Intc1
if j== DMsel(1) %Intc1, InterslstPosAdj{1}= intLposSelAdj{DMsel(1)}(:,2) % intLcmpposInd{Intc1}
InterslstPosAdj{1}= intLposSelAdj{DMsel(1)}(:,2) %intLcmpposInd{Intc1} InterslstNegAdj{1}= intLnegSelAdj{DMsel(1)}(:,2) % intLcmpnegInd{Intc1}
InterslstNegAdj{1}= intLnegSelAdj{DMsel(1)}(:,2) %intLcmpnegInd{Intc1}
elseif sum(ismember(DMsel,j))==1 % j>Intc1 && j<=IntcLst elseif sum(ismember(DMsel,j))==1 % j>Intc1 && j<=IntcLst
InterslstPosAdj{1}=(intersect(InterslstPosAdj{1},intLposSelAdj{j}(:,2))); %,intLcmpposInd{j})) InterslstPosAdj{1}=(intersect(InterslstPosAdj{1},intLposSelAdj{j}(:,2))); % ,intLcmpposInd{j}))
InterslstNegAdj{1}=(intersect(InterslstNegAdj{1},intLnegSelAdj{j}(:,2))); %,intLcmpnegInd{j})) InterslstNegAdj{1}=(intersect(InterslstNegAdj{1},intLnegSelAdj{j}(:,2))); % ,intLcmpnegInd{j}))
end end
% Convolute experiment spot index to get scan#, MP# and plateIndx needed
%Convolute experiment spot index to get scan#, MP# and plateIndx needed % later to obtain genename and other descriptors and correlate data
%later to obtain genename and other descriptors and correlate data intLposDIndxAdj{j}(:,2)=ceil((intLposSelAdj{j}(:,2))/384); % mp plate numb column
intLposDIndxAdj{j}(:,2)=ceil((intLposSelAdj{j}(:,2))/384); %mp plate numb column
intLposDIndxAdj{j}(:,3)=(rem(intLposSelAdj{j}(:,2),384)); intLposDIndxAdj{j}(:,3)=(rem(intLposSelAdj{j}(:,2),384));
nn=(intLposDIndxAdj{j}(:,3)==0); nn=(intLposDIndxAdj{j}(:,3)==0);
intLposDIndx{j}(nn,3)= 384; intLposDIndx{j}(nn,3)= 384;
intLposDIndxAdj{j}(:,1)= j + (dmN*((intLposDIndxAdj{j}(:,2))-1)); %scan numb column %intLposDIndx(:,2)* intLposDIndx(:,3); 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}(:,2)=ceil((intLnegSelAdj{j}(:,2))/384); % mp plate numb column
intLnegDIndxAdj{j}(:,3)=(rem(intLnegSelAdj{j}(:,2),384)); intLnegDIndxAdj{j}(:,3)=(rem(intLnegSelAdj{j}(:,2),384));
nn=(intLposDIndxAdj{j}(:,3)==0); nn=(intLposDIndxAdj{j}(:,3)==0);
intLnegDIndxAdj{j}(nn,3)= 384; intLnegDIndxAdj{j}(nn,3)= 384;
intLnegDIndxAdj{j}(:,1)= j + (dmN*((intLnegDIndxAdj{j}(:,2))-1)); %scan numb intLnegDIndxAdj{j}(:,1)= j + (dmN*((intLnegDIndxAdj{j}(:,2))-1)); % scan numb
end
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
%get interaction values for each DM drugmedia agar type selIntPx{1}(:,6)=InterslstPos{1};
IntersValsPos= intLcmp(InterslstPos{1},DMsel); selIntPx{1}(:,2)=ceil((InterslstPos{1})/384); % mp plate numb column
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)); selIntPx{1}(:,3)=(rem(InterslstPos{1},384));
nn=(selIntPx{1}(:,3)==0); nn=(selIntPx{1}(:,3)==0);
selIntPx{1}(nn,3)= 384; selIntPx{1}(nn,3)= 384;
selIntPx{1}(:,4)= ceil(selIntPx{1}(:,3)/24); %row numb selIntPx{1}(:,4)= ceil(selIntPx{1}(:,3)/24); % row numb
selIntPx{1}(:,5)= rem(selIntPx{1}(:,3),24); selIntPx{1}(:,5)= rem(selIntPx{1}(:,3),24);
mm=(selIntPx{1}(:,5)==0); mm=(selIntPx{1}(:,5)==0);
selIntPx{1}(mm,5)= 24; selIntPx{1}(mm,5)= 24;
selIntPx{1}(:,1)= j + (dmN*((selIntPx{1}(:,2))-1)); %scan numb column %intLposDIndx(:,2)* intLposDIndx(:,3); selIntPx{1}(:,1)= j + (dmN*((selIntPx{1}(:,2))-1)); % scan numb column %intLposDIndx(:,2)* intLposDIndx(:,3);
selIntP= cell2mat(selIntPx); selIntP= cell2mat(selIntPx);
selIntNx{1}(:,6)=InterslstNeg{1}; selIntNx{1}(:,6)=InterslstNeg{1};
selIntNx{1}(:,2)=ceil((InterslstNeg{1})/384); %mp plate numb column selIntNx{1}(:,2)=ceil((InterslstNeg{1})/384); % mp plate numb column
selIntNx{1}(:,3)=(rem(InterslstNeg{1},384)); selIntNx{1}(:,3)=(rem(InterslstNeg{1},384));
nn=(selIntNx{1}(:,3)==0); nn=(selIntNx{1}(:,3)==0);
selIntNx{1}(nn,3)= 384; selIntNx{1}(nn,3)= 384;
selIntNx{1}(:,4)= ceil(selIntNx{1}(:,3)/24); %row numb selIntNx{1}(:,4)= ceil(selIntNx{1}(:,3)/24); % row numb
selIntNx{1}(:,5)= rem(selIntNx{1}(:,3),24); selIntNx{1}(:,5)= rem(selIntNx{1}(:,3),24);
mm=(selIntNx{1}(:,5)==0); mm=(selIntNx{1}(:,5)==0);
selIntNx{1}(mm,5)= 24; selIntNx{1}(mm,5)= 24;
selIntNx{1}(:,1)= j + (dmN*((selIntNx{1}(:,2))-1)); % scan numb
selIntNx{1}(:,1)= j + (dmN*((selIntNx{1}(:,2))-1)); %scan numb
selIntN= cell2mat(selIntNx); selIntN= cell2mat(selIntNx);
for i=1:size(selIntP,1) for i=1:size(selIntP,1)
IPgene(i)=Exp(expN).MP(selIntP(i,2)).genename{1}(selIntP(i,3)); 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)); 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)); 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)); 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)); 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 % Bad this is the L data for only the last selected DM perturbation
%Would need to calculate each scan# for each DMsel value % 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); 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); 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); ipLupper(i)= Exp(expN).scan(selIntP(i,1)).plate(1).CFout(selIntP(i,3),12);
%************************************************************************* end
end
for i=1:size(selIntN,1) for i=1:size(selIntN,1)
INgene(i)=Exp(expN).MP(selIntN(i,2)).genename{1}(selIntN(i,3)); 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)); 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)); 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)); 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)); 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 % Bad this is the L data for only the last selected DM perturbation
%Would need to calculate each scan# for each DMsel value % 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); 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); 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); inLupper(i)= Exp(expN).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
%ADJUSTED with STD and curve fit boundaries to produce more conservative interaction values selIntPxAdj{1}(:,2)=ceil((InterslstPosAdj{1})/384); %mp plate numb column
%Build 'genelist' data sheet for interactors
selIntPxAdj{1}(:,2)=ceil((InterslstPosAdj{1})/384); %mp plate numb column
selIntPxAdj{1}(:,3)=(rem(InterslstPosAdj{1},384)); selIntPxAdj{1}(:,3)=(rem(InterslstPosAdj{1},384));
nn=(selIntPxAdj{1}(:,3)==0); nn=(selIntPxAdj{1}(:,3)==0);
selIntPxAdj{1}(nn,3)= 384; selIntPxAdj{1}(nn,3)= 384;
@@ -300,12 +261,9 @@ selIntPxAdj{1}(:,2)=ceil((InterslstPosAdj{1})/384); %mp plate numb column
selIntPxAdj{1}(:,5)= rem(selIntPxAdj{1}(:,3),24); selIntPxAdj{1}(:,5)= rem(selIntPxAdj{1}(:,3),24);
mm=(selIntPxAdj{1}(:,5)==0); mm=(selIntPxAdj{1}(:,5)==0);
selIntPxAdj{1}(mm,5)= 24; selIntPxAdj{1}(mm,5)= 24;
selIntPxAdj{1}(:,1)= j + (dmN*((selIntPxAdj{1}(:,2))-1)); %scan numb column %intLposDIndx(:,2)* intLposDIndx(:,3); selIntPxAdj{1}(:,1)= j + (dmN*((selIntPxAdj{1}(:,2))-1)); %scan numb column %intLposDIndx(:,2)* intLposDIndx(:,3);
selIntPAdj= cell2mat(selIntPxAdj); selIntPAdj= cell2mat(selIntPxAdj);
selIntNxAdj{1}(:,2)=ceil((InterslstNegAdj{1})/384); %mp plate numb column
selIntNxAdj{1}(:,2)=ceil((InterslstNegAdj{1})/384); %mp plate numb column
selIntNxAdj{1}(:,3)=(rem(InterslstNegAdj{1},384)); selIntNxAdj{1}(:,3)=(rem(InterslstNegAdj{1},384));
nn=(selIntNxAdj{1}(:,3)==0); nn=(selIntNxAdj{1}(:,3)==0);
selIntNxAdj{1}(nn,3)= 384; selIntNxAdj{1}(nn,3)= 384;
@@ -313,52 +271,44 @@ selIntNxAdj{1}(:,2)=ceil((InterslstNegAdj{1})/384); %mp plate numb column
selIntNxAdj{1}(:,5)= rem(selIntNxAdj{1}(:,3),24); selIntNxAdj{1}(:,5)= rem(selIntNxAdj{1}(:,3),24);
mm=(selIntNxAdj{1}(:,5)==0); mm=(selIntNxAdj{1}(:,5)==0);
selIntNxAdj{1}(mm,5)= 24; selIntNxAdj{1}(mm,5)= 24;
selIntNxAdj{1}(:,1)= j + (dmN*((selIntNxAdj{1}(:,2))-1)); %scan numb selIntNxAdj{1}(:,1)= j + (dmN*((selIntNxAdj{1}(:,2))-1)); %scan numb
selIntNAdj= cell2mat(selIntNxAdj); selIntNAdj= cell2mat(selIntNxAdj);
for i=1:size(selIntPAdj,1) for i=1:size(selIntPAdj,1)
IPgeneAdj(i)=Exp(expN).MP(selIntPAdj(i,2)).genename{1}(selIntPAdj(i,3)); 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)); 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)); 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)); 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)); 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
%Bad this is the L data for only the last selected DM perturbation % Would need to calculate each scan# for each DMsel value
%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); 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); 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); ipLupperAdj(i)= Exp(expN).scan(selIntPAdj(i,1)).plate(1).CFout(selIntPAdj(i,3),12);
%************************************************************************************ end
end
for i=1:size(selIntNAdj,1) for i=1:size(selIntNAdj,1)
INgeneAdj(i)=Exp(expN).MP(selIntNAdj(i,2)).genename{1}(selIntNAdj(i,3)); 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)); 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)); 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)); 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)); 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 %Bad this is the L data for only the last selected DM perturbation
%Would need to calculate each scan# for each DMsel value %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); 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); 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); inLupperAdj(i)= Exp(expN).scan(selIntNAdj(i,1)).plate(1).CFout(selIntNAdj(i,3),12);
%************************************************************************************* end
end
%++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
%Plot Histogram******************************************************
%subplotX=1; % Plot Histogram
figure % subplotX=1;
if strcmpi(subplotX,'Y') figure
if strcmpi(subplotX,'Y')
for j=1:dmN for j=1:dmN
histLdata= intLwoRFsorted{j}(:,1); %intLcmp(385:(mpN-1)*384,j); histLdata= intLwoRFsorted{j}(:,1); % intLcmp(385:(mpN-1)*384,j);
%histLadjData= intLadjcmp(385:(mpN-1)*384,j); % histLadjData=intLadjcmp(385:(mpN-1)*384,j);
hgLdat{j}=histfitJR(histLdata,numBins,'kernel'); hgLdat{j}=histfitJR(histLdata,numBins,'kernel');
x{j}= get(hgLdat{j}(2),'xdata'); x{j}= get(hgLdat{j}(2),'xdata');
y{j}= get(hgLdat{j}(2),'ydata'); y{j}= get(hgLdat{j}(2),'ydata');
xb{j}=get(hgLdat{j}(1),'xdata'); xb{j}=get(hgLdat{j}(1),'xdata');
@@ -370,9 +320,9 @@ if strcmpi(subplotX,'Y')
clf clf
end end
% figure % Figure
for j=1:dmN for j=1:dmN
histLdata= intLwoRFsorted{j}(:,1); %intLcmp(385:(mpN-1)*384,j); 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') 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(posIntboundryCentralVal(j), 1:3000,'--r')
subplot(2, 4, j),plot(negIntboundryCentralVal(j), 1:3000,'--g') subplot(2, 4, j),plot(negIntboundryCentralVal(j), 1:3000,'--g')
@@ -396,58 +346,47 @@ if strcmpi(subplotX,'Y')
round(scnsize(3) -scnsize(3)/80),round(scnsize(4)/2 -scnsize(4)/80)] round(scnsize(3) -scnsize(3)/80),round(scnsize(4)/2 -scnsize(4)/80)]
set(gcf,'outerposition',pos2) set(gcf,'outerposition',pos2)
set(gcf,'Name', 'Interaction Compensated by Standard Deviation and Upper/Lower Curvefit boundaries') set(gcf,'Name', 'Interaction Compensated by Standard Deviation and Upper/Lower Curvefit boundaries')
elseif strcmpi(subplotX,'N')
elseif strcmpi(subplotX,'N') for j=1:dmN
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);
histLdata= intLwoRFsorted{j}(:,1); %intLcmp(385:(mpN-1)*384,j); figure
histLadjData= intLwoRFsortedAdj{j}(:,1); %intLadjcmp(385:(mpN-1)*384,j);%intLadjcmp(385:(mpN-1)*384,j); %intLcmp(:,j); %intLadjcmp(:,j); hgL{j}=histfitJR(histLdata,numBins,'kernel') ; hold %hgL{j}=histfit(intLcmp(:,j),31,'kernel')
plot(posIntboundryCentralVal(j), 1:3000,'--r')
figure plot(negIntboundryCentralVal(j), 1:3000,'--g')
hgL{j}=histfitJR(histLdata,numBins,'kernel') ; hold %hgL{j}=histfit(intLcmp(:,j),31,'kernel') hold off
plot(posIntboundryCentralVal(j), 1:3000,'--r') figure
plot(negIntboundryCentralVal(j), 1:3000,'--g') hgLadj{j}=histfitJR(histLadjData,numBins,'kernel') ; hold %hgLadj{j}=histfit(intLadjcmp(:,j),31,'kernel')
hold off plot(posIntboundryCentralValAdj(j), 1:3000,'--r')
figure plot(negIntboundryCentralValAdj(j), 1:3000,'--g')
hgLadj{j}=histfitJR(histLadjData,numBins,'kernel') ; hold %hgLadj{j}=histfit(intLadjcmp(:,j),31,'kernel') hold off
plot(posIntboundryCentralValAdj(j), 1:3000,'--r') x{j}= get(hgL{j}(2),'xdata')
plot(negIntboundryCentralValAdj(j), 1:3000,'--g') y{j}= get(hgL{j}(2),'ydata');
hold off xb{j}=get(hgL{j}(1),'xdata')
yb{j}=get(hgL{j}(1),'ydata')
x{j}= get(hgL{j}(2),'xdata') ybpostot{j}=sum(yb{j}(2,(xb{j}(1,:)>=0)))
y{j}= get(hgL{j}(2),'ydata'); ybnegtot{j}=sum(yb{j}(2,(xb{j}(1,:) <0)))
xb{j}=get(hgL{j}(1),'xdata') xbb(j,:)=xb{j}(2,:);
yb{j}=get(hgL{j}(1),'ydata') ybb(j,:)=yb{j}(2,:);
ybpostot{j}=sum(yb{j}(2,(xb{j}(1,:)>=0))) end
ybnegtot{j}=sum(yb{j}(2,(xb{j}(1,:) <0))) if strcmpi(subplotX,'N')
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 figure
bar3(ybb); bar3(ybb);
% xxbb=yb{1}(2,:);
% figure
end
else
end
% histograms placed in subplot figure else multiple histogram plots
if strcmpi(subplotX,'Y')
figure
bar3(ybb);
set(gcf,'Name', 'Unfiltered Interaction Histogram for all DrugMedias; NoGrowth Interactors set to 100hr (highest bin)')
%xxbb=yb{1}(2,:); %xxbb=yb{1}(2,:);
%figure %figure
end
EZintPrint
a=1 % TODO what is this for
end 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

@@ -8,23 +8,8 @@ global Expbb
global exDlst global exDlst
global exFolder global exFolder
%Test for Bad MP cell array (usually 384 [NaN}'s) % Load .mat file
%replaced length(Exp(expN).Dexp(1).MP) with MPnum expN=zonePB; % added to accomodate AppDesigner limitations 230821
%{
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).UgeneCnt=0;
Exp(expN).DexpLength= size(matFile,2); DexpLength= size(matFile,2); Exp(expN).DexpLength= size(matFile,2); DexpLength= size(matFile,2);
for n=1:Exp(expN).DexpLength %size(matFile,2) for n=1:Exp(expN).DexpLength %size(matFile,2)
@@ -45,9 +30,9 @@ 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,'value',1) %Fix accomodation for bug in App Designer .. .wlapp converter 230918
set(handles.listboxGnOrf,'string',cellstr([{'Failed To Load'}; {' '}])); set(handles.listboxGnOrf,'string',cellstr([{'Failed To Load'}; {' '}]));
%try %try
ExpOutmat= matFile(n) %fullfile(openExppath,openExpfile); ExpOutmat= matFile(n) %fullfile(scansDir,openExpfile);
load(char(ExpOutmat)); load(char(ExpOutmat));
%cd(openExppath) %cd(scansDir)
%cd ..; %cd ..;
%resDir=pwd; %resDir=pwd;
Exp(expN).Dexp(n).resDir= cell2mat(resDir(n)); Exp(expN).Dexp(n).resDir= cell2mat(resDir(n));
@@ -57,7 +42,7 @@ set(handles.listboxGnOrf,'string',cellstr([{'Failed To Load'}; {' '}]));
Exp(expN).Dexp(n).ExpFoldr= ExpPath; Exp(expN).Dexp(n).ExpFoldr= ExpPath;
cd(w) cd(w)
%Experiment LOADs %Experiment LOADs
load (fullfile(Exp(expN).Dexp(n).ExpFoldr,'MasterPlateFiles','MPDMmat.mat')) 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','Coordinates'))
load(fullfile(Exp(expN).Dexp(n).resDir,'Fotos','anlZones')) 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,'Fotos','BGatTpts'))

View File

@@ -6,6 +6,76 @@ global userPars
global usrExpJobsDir global usrExpJobsDir
global zonePB global zonePB
% Initialize some variables from matlab
ezPath=which(mfilename);
[ezDir,ezFileName]=fileparts(ezPath);
ezDir=fullfile(easyDir);
[parentDir, ~]=fileparts(ezDir);
parentDir=fullfile(parentDir); % ../easy/apps
debug=1;
if debug
disp('Running in debug mode');
disp('Initialized variables:');
whos;
end
% Set scansDir (project scans directory) intelligently
if exist('PROJECT', 'var') && ~isempty(getenv('PROJECT'))
scansDir=getenv('PROJECT');
fprintf('Using project path: %s from environment variable PROJECT\n', scansDir);
disp('This usually indicates that we are in standalone mode');
elseif exist('PROJECT_SCANS_DIR', 'var') && ~isempty(getenv('PROJECT_SCANS_DIR'))
scansDir=getenv('PROJECT_SCANS_DIR');
fprintf('Using scans directory: %s from environment variable PROJECT_SCANS_DIR\n', scansDir);
disp('This usually indicates that we are in module mode');
else
% TODO Lots of this is hardcoded logic, this TODO is just a reminder to change this block
% when changing EZ_DIR and other variables in the parent script
fprintf('Beginning parent scans directory search\n');
fprintf('This usually indicates that we are in stand-alone mode without PROJECT or PROJECT_SCANS_DIR environment variables\n');
dirsToScan={
fullfile(parentDir,'..', '..', 'scans'),
fullfile(parentDir, '..', '..', 'ExpJobs'),
fullfile('/mnt/data/scans'),
fullfile('/mnt/data/ExpJobs'),
fullfile(parentDir, '..', '..', 'templates', 'scans-demo')
};
for d=dirsToScan
if exist(d, 'dir')
subDirs=dir(d);
if ~isempty(subDirs)
fprintf('Found a non-empty parent scans directory in our list: %s\n', d);
fprintf('Scanning inside for a project scan directory\n');
[~, sortedIndices]=sort(datenum({dirs.date}), 'descend'); % sort by newest first
sortedDirs=dirs{sortedIndices};
scansDir=sortedDirs{1};
fprintf('Selected newest project scans directory: %s\n', scansDir);
end
end
end
end
% User sanity check and warning
if exist('PROJECT_USER', 'var') && ~isempty(getenv('PROJECT_USER'))
if ~equal(getenv('PROJECT_USER'), userName)
disp("WARNING: PROJECT_USER does not match the current namespace");
end
end
% Allow module to override hardcoded default EZview directory
if exist('EZVIEW_DIR','var') && ~isempty(getenv('EZVIEW_DIR'))
EZVIEW_DIR=fullfile(getenv('EZVIEW_DIR'));
if ~strcmp(ezDir, EZVIEW_DIR) % sanity check
disp("WARNING: EZVIEW_DIR does not match this script's hardcoded EZview location");
disp("This is probably OK but if strange beahvior arises, we'll need to fix it in code");
ezDir=EZVIEW_DIR;
end
fprintf('Using EZview script directory: %s from environment variable EZVIEW_DIR\n', ezDir);
else
fprintf('Using EZview script directory: %s from hardcoded default\n', ezDir);
end
userPars.BPdefault={'on','on','0.3','8','45','1000'}; userPars.BPdefault={'on','on','0.3','8','45','1000'};
userPars.boxplotFlg=1; userPars.boxplotFlg=1;
userPars.BPoutliers='On'; userPars.BPoutliers='On';
@@ -16,92 +86,54 @@ userPars.BProt=45;
userPars.Trenddefault={'1000'}; userPars.Trenddefault={'1000'};
userPars.kfiltLim=str2double(userPars.BPdefault(6)); 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)
% Generate the Exp arrays
numExps=3;
for i=1:numExps
Exp(i).cTraceN=0;
Exp(i).cTraceIndx(1)=1;
end
Exp(1).CompositPlot=0;Exp(2).CompositPlot=0;Exp(3).CompositPlot=0;
for i=1:numExps
Exp(i).DexpType='single';
Exp(i).DexpN=1;
Exp(i).DexpLength=1;
eval(['set(handles.DN' num2str(i) ', ''value'', 1);']); % MATLAB level unlocked
end
set(handles.GeneOrfTog,'value',0)
try try
load('EZsgdInfo'); load('EZsgdInfo');
catch catch
disp('Fail to load EZsgdInfo file from code directory'); disp('Fail to load EZsgdInfo file from code directory');
end end
Exp(4).SGDnum=SGDnum; Exp(numExps+1).SGDnum=SGDnum;
Exp(4).SGDtext=SGDtext; Exp(numExps+1).SGDtext=SGDtext;
Exp(4).SGDraw=SGDraw; Exp(numExps+1).SGDraw=SGDraw;
Exp(4).interacPBsel=0; Exp(numExps+1).interacPBsel=0;
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 %Linux accommodatition
if ispc
try
cd(usrExpJobsDir);
catch
cd(fullfile('C:\')); %end % \Easy\Experiments'));
end
else % Big outer loop try catch to ln844 end ln868
try % try to use user selected 'ExpJobs' folder otherwise use a default
cd(usrExpJobsDir); % directory in the uigetfile to load the experiment .mat file.
catch
cd(fullfile('~'))
end
end
[openExpfile,openExppath] = uigetfile('.mat','Open Experiment folder and data storage .mat file name','MultiSelect','off') try
[openExpfile,scansDir] = 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')) load (fullfile(Exp(1).Dexp(1).ExpFoldr,'MasterPlateFiles','MPDMmat.mat'))
for i=1:numExps
Exp(i).Dexp.DM=;
Exp(i).cTraceIndx(1)=1;
end
Exp(1).Dexp(1).DM=DM; Exp(1).Dexp(1).DM=DM;
Exp(2).Dexp(1).DM=DM; Exp(2).Dexp(1).DM=DM;
Exp(3).Dexp(1).DM=DM; Exp(3).Dexp(1).DM=DM;
@@ -224,7 +256,7 @@ try %big outer loop try catch to ln844 end ln868
msg='LOADing or Setup issue' msg='LOADing or Setup issue'
%if no load, then Message try SelExp PB to reload or try and different %if no load, then Message try SelExp PB to reload or try and different
%Experiment %Experiment
end %nested try-catch-end from ->ExpOutmat= fullfile(openExppath,openExpfile); end %nested try-catch-end from ->ExpOutmat= fullfile(scansDir,openExpfile);
try try
DNLaxes1= handles.DNLaxes1; DNLaxes2= handles.DNLaxes2; DNLaxes3= handles.DNLaxes3; DNLaxes1= handles.DNLaxes1; DNLaxes2= handles.DNLaxes2; DNLaxes3= handles.DNLaxes3;
@@ -847,14 +879,14 @@ try %big outer loop try catch to ln844 end ln868
Exp(2).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'}; {' '}]); Exp(3).Dexp(1).srtOrfLst=cellstr([{'Failed To Load'}; {' '}]);
%[openExpfile,openExppath] %[openExpfile,scansDir]
if isempty(strfind(openExpfile,'.mat')) if isempty(strfind(openExpfile,'.mat'))
cd(openExppath) cd(scansDir)
cd .. cd ..
ExpPath=pwd; ExpPath=pwd;
cd(w) cd(w)
ExpOutImFile= fullfile(openExppath,openExpfile); ExpOutImFile= fullfile(scansDir,openExpfile);
EZvImagesOnly EZvImagesOnly
end end

View File

@@ -84,13 +84,7 @@ function EZviewGui_OpeningFcn(hObject, eventdata, handles, varargin)
%} %}
% Load experiment data .... % Load experiment data ....
newMLgraph=0;
if newMLgraph==0
clear Exp
Exp=[];
EZvInitLoad EZvInitLoad
else
end
% Func Call setup for @myupdatfcn % Func Call setup for @myupdatfcn
dcm_obj=datacursormode(gcf); dcm_obj=datacursormode(gcf);

View File

@@ -606,6 +606,7 @@ easy() {
DRUG_MEDIA_FILE="$PROJECT_SCANS_DIR/MasterPlateFiles/DrugMedia_$PROJECT.xls" DRUG_MEDIA_FILE="$PROJECT_SCANS_DIR/MasterPlateFiles/DrugMedia_$PROJECT.xls"
MASTER_PLATE_FILE="$PROJECT_SCANS_DIR/MasterPlateFiles/MasterPlate_$PROJECT.xls" MASTER_PLATE_FILE="$PROJECT_SCANS_DIR/MasterPlateFiles/MasterPlate_$PROJECT.xls"
# Make EASY dirs # Make EASY dirs
debug "mkdir -p $EASY_RESULTS_DIR" debug "mkdir -p $EASY_RESULTS_DIR"
mkdir -p "$EASY_RESULTS_DIR" mkdir -p "$EASY_RESULTS_DIR"
@@ -638,6 +639,10 @@ ezview() {
EZVIEW_DIR="$APPS_DIR/matlab/ezview" EZVIEW_DIR="$APPS_DIR/matlab/ezview"
script="$EZVIEW_DIR/EZviewGui.m" script="$EZVIEW_DIR/EZviewGui.m"
# Make EZview dirs
debug "mkdir -p $EZVIEW_DIR"
matlab -nosplash -r "run $script" matlab -nosplash -r "run $script"