Files
hartman-server/workflow/apps/matlab/ezview/TempBU/EZinteractDev4.m
2024-07-29 12:31:26 -04:00

641 lines
28 KiB
Matlab
Executable File

%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