%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)= 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