From 4d72a078b54162ea0f29b0323c9266d6a04303bb Mon Sep 17 00:00:00 2001 From: Bryan Roessler Date: Thu, 25 Jul 2024 12:45:16 -0400 Subject: [PATCH] Format DgenResults.m --- workflow/templates/easy/DgenResults.m | 1157 ++++++++++++------------- workflow/templates/easy/datatipp.m | 16 +- 2 files changed, 560 insertions(+), 613 deletions(-) diff --git a/workflow/templates/easy/DgenResults.m b/workflow/templates/easy/DgenResults.m index cd250105..01727e8f 100755 --- a/workflow/templates/easy/DgenResults.m +++ b/workflow/templates/easy/DgenResults.m @@ -1,5 +1,5 @@ %% CALLED BY EASYconsole.m %% -%to 'Fotos' from 'PTmaps' +% Updated 240724 Bryan C Roessler to improve file operations and portability %Console globals******* global ExpPath global resDir @@ -8,718 +8,665 @@ global ImParMat ln=1; - %******Version compatability fixes*******assoc'd with diff and solve v11a='7.12.0.635 (R2011a)'; if verLessThan('matlab','8.3') %original work 23_0227 updated 23_0525 (8.4 changed to 8.3) - fd4=diff(sym('K / (1 + exp(-r* (t - l )))'),4); - sols= solve(fd4); + fd4=diff(sym('K / (1 + exp(-r* (t - l )))'),4); + sols=solve(fd4); else %accomodate new matlab changes after 2014a fix 2nd update 23_0227 - syms t K r l; - fd4= diff(K / (1 + exp(-r* (t - l ))),t,4); - sols= solve(fd4); - tmpswap= sols(1); - sols(1)= sols(3); - sols(3)= tmpswap; + syms t K r l; + fd4=diff(K / (1 + exp(-r* (t - l ))),t,4); + sols=solve(fd4); + tmpswap=sols(1); + sols(1)=sols(3); + sols(3)=tmpswap; end %MPnum=ImParMat(1); -%opt = questdlg('Print Results Only (RES), DB Only (DB), or Both','Results Printout Options','Res','DB','Both','Both'); +%opt=questdlg('Print Results Only (RES), DB Only (DB), or Both','Results Printout Options','Res','DB','Both','Both'); opt='Res'; - if ~exist('ImParMat','var') || isempty(ImParMat) - load ImParameters + load ImParameters end destPerMP=ImParMat(2); load (ExpOutmat); load (fullfile(ExpPath,'MasterPlateFiles','MPDMmat.mat')) -numOfDrgs= length(DM.drug); -numOfMeds= length(DM.media); +numOfDrgs=length(DM.drug); +numOfMeds=length(DM.media); destPerMP=numOfDrgs; %Determine the longest set of intensity(tPts) for the Experiment Data Set maxNumIntens=0; for n=1:size(scan,2) - for m=1:size(scan(n).plate,2) - maxNumIntens= max(maxNumIntens,size(scan(n).plate(m).intens,2)); - end + for m=1:size(scan(n).plate,2) + maxNumIntens=max(maxNumIntens,size(scan(n).plate(m).intens,2)); + end end -if length(ExpPath)== max(strfind(ExpPath,'\')) - localExpPath=ExpPath(1:end-1); +if length(ExpPath)==max(strfind(ExpPath,'\')) + localExpPath=ExpPath(1:end-1); else - localExpPath=ExpPath; + localExpPath=ExpPath; end if ispc %Linux accommodation -expNm=localExpPath(max(strfind(localExpPath,'\'))+1:end); -else - if isunix,expNm=localExpPath(max(strfind(localExpPath,'/'))+1:end);end - if ismac,expNm=localExpPath(max(strfind(localExpPath,'/'))+1:end);end + expNm=localExpPath(max(strfind(localExpPath,'\'))+1:end); + drivePos=min(strfind(localExpPath,'\')); +elseif ((isunix) || (ismac)) + expNm=localExpPath(max(strfind(localExpPath,'/'))+1:end) + drivePos=min(strfind(localExpPath,'/')); end -if ispc -drivePos=min(strfind(localExpPath,'\')); -else - drivePos= min(strfind(localExpPath,'/')); -end -drive= localExpPath(1:(drivePos-1)); +drive=localExpPath(1:(drivePos-1)); DBupload=fullfile(drive,'EZdbFiles','DBupLOADfiles'); -%DBupload=['G:\EZdbFiles\DBupLOADfiles'] -%resultsFilename= strcat(resDir,'\PrintResults\!!Results_Output.txt') %'\PrintResults\zDevelCFitOutIndxSelectedRawDatTimesDrugMedia.txt' -%DBfilename= strcat(resDir,'\PrintResults\!!Dbase_Output.txt') % Print !Dbase file in PrintResults dir -%resultsFilename= strcat(resDir,'\PrintResults\!!Results_',expNm,'.txt') -%DBfilename= strcat(resDir,'\PrintResults\!!Dbase_',expNm,'.txt') %Added to allow backward compatability************************************ %Test for CFoutStd as indication of 2018version with r_refined fit code;If %earlier version with only a standard composite fite, Print results to %!!ResultsStd_...txt only -%*********************** try - scan(1).plate(1).CFoutStd(1,1); - resultsFilename= fullfile(resDir,'PrintResults', strcat('!!ResultsELr_',expNm,'.txt')); - DBfilename= fullfile(resDir,'PrintResults', strcat('!!DbaseELr_',expNm,'.txt')); + scan(1).plate(1).CFoutStd(1,1); + resultsFilename=fullfile(resDir,'PrintResults', strcat('!!ResultsELr_',expNm,'.txt')); + DBfilename=fullfile(resDir,'PrintResults', strcat('!!DbaseELr_',expNm,'.txt')); catch - resultsFilename= fullfile(resDir,'PrintResults', strcat('!!ResultsStd_',expNm,'.txt')); - DBfilename= fullfile(resDir,'PrintResults', strcat('!!DbaseStd_',expNm,'.txt')); + resultsFilename=fullfile(resDir,'PrintResults', strcat('!!ResultsStd_',expNm,'.txt')); + DBfilename=fullfile(resDir,'PrintResults', strcat('!!DbaseStd_',expNm,'.txt')); end -%************************************************************************** -if isequal(opt,'Res')||isequal(opt,'Both'),fid = fopen(resultsFilename,'w');end -if isequal(opt,'DB')||isequal(opt,'Both'),fid2 = fopen(DBfilename,'w');end %121012 Combo +if isequal(opt,'Res')||isequal(opt,'Both'),fid=fopen(resultsFilename,'w');end +if isequal(opt,'DB')||isequal(opt,'Both'),fid2=fopen(DBfilename,'w');end %121012 Combo if isequal(opt,'Res')||isequal(opt,'Both') %print Results - fprintf(fid,'%d\t',ln); %Results header - fprintf(fid,'%s\t\n',localExpPath); - ln=ln+1; - fprintf(fid,'%d\t',ln); + fprintf(fid,'%d\t',ln); %Results header + fprintf(fid,'%s\t\n',localExpPath); + ln=ln+1; + fprintf(fid,'%d\t',ln); end mpCnt=0; totPlCnt=0; drgCnt=0; medCnt=0; -%load(fullfile(resDir,'PTmats','Nbdg')) %Convolute scan array data into plates + try -load(fullfile(resDir,'Fotos','Nbdg')) %Convolute scan array data into plates + load(fullfile(resDir,'Fotos','Nbdg')) %Convolute scan array data into plates catch -load(fullfile(resDir,'PTmats','Nbdg')) %Convolute scan array data into plates + load(fullfile(resDir,'PTmats','Nbdg')) %Convolute scan array data into plates end + for s=1:size(scan,2) - %Convolute scan array data into plates DconB for DBcombo - clear Diag - try - Diag(:,:,:,1)= sbdg{s}(1:1:24,16:-1:1,:); - catch + %Convolute scan array data into plates DconB for DBcombo + clear Diag + try + Diag(:,:,:,1)=sbdg{s}(1:1:24,16:-1:1,:); + catch sbdg{s}; + end + + for p=1:size((scan(s).plate),2) + totPlCnt=totPlCnt+1; + if destPerMP>1 && rem(totPlCnt,destPerMP)==1 + mpCnt=mpCnt+1 end - %***************************************************** - for p=1:size((scan(s).plate),2) - totPlCnt=totPlCnt+1; - - if destPerMP>1 &&rem(totPlCnt,destPerMP)==1, mpCnt=mpCnt+1; end - if destPerMP==1,mpCnt=mpCnt+1; end - pertCnt= rem(totPlCnt,destPerMP); - if pertCnt==0, pertCnt= destPerMP;end - pert= strcat('Perturb_',num2str(pertCnt)); - s - p - clear outCmat - outCmat=scan(s).plate(p).CFout; - %Print Time Point HEADER for each plate for newly added intensity data - if isequal(opt,'Res')||isequal(opt,'Both') - fprintf(fid, '\n'); - ln=ln+1; - fprintf(fid,'%d\t',ln); - fprintf(fid,'Scan\tPlate\tRow\tCol\t'); - try - asd=cell2mat(scan(s).plate(1).CFparameters(1)); - aucEndPt= strcat('AUC',num2str(asd(9))); - catch - asd=cell2mat(scan(s).plate(1).CFparameters{1,1}(1,384)); - aucEndPt= strcat('AUC',num2str(asd(9))); - end - - fprintf(fid, 'Num.\tDiagnostics\tDrug\tConc\tMedia\tModifier1\tConc1\tModifier2\tConc2\tORF\tGene'); - fprintf(fid, '\t %s',aucEndPt); - fprintf(fid, '\triseTm\tK\tr\tl\tR-squared\tK-lower\tK-upper\tr-lower\tr-upper\tl-lower\tl-upper\tArea\tLastInten\tSplineMaxRateTm\tLastFitTm\t1stFitTm\tMedianBase\tFitBase\tMinTm\tThreshTm'); - - if size(outCmat,2)==27 - fprintf(fid, '\ttc11Cut\ttc12Cut\ttc21Cut\ttc22Cut'); %'\tEarly1\tEarly2\tLate1\tLate2'); 17_0629 MinBaseIntens update for MedianBase label - end - fprintf(fid, '\tTotFitPts\tPostThreshFitPts\t1stBackgrd\tLstBackgrd\t1stMeanTotBackgrd\tLstMeanTotBackgrd'); - - - end - clear outTseries - outTseries=[]; - outTseries=scan(s).plate(p).tSeries; - TseriesSize= size(outTseries,1); - - %*************************************************************** - %clear outCmat - %outCmat=scan(s).plate(p).CFout; - clear outIntens - outIntens=[]; - RawIntens=[]; - RawIntens=scan(s).plate(p).intens; - RawIntensSize= size(RawIntens,2) - - clear Ag; %Ag is Growth Area - Ag=scan(s).plate(p).Ag; - AgSize= size(Ag); -%*************************************** -dataLength= min(TseriesSize,RawIntensSize); - %for j=1:length(outTseries)%(size(outTseries,2) - if isequal(opt,'Res')||isequal(opt,'Both') - for j=1:dataLength - fprintf(fid, '\t%.5f', outTseries(j)); - end - end -%numBlkColTm=(maxNumIntens - size(outTseries,1)); - numBlkCol=(maxNumIntens - dataLength); %size(outTseries,1)); - %for nn=1:numBlkColTm %extend to col beyond longest rawDataSet - if isequal(opt,'Res')||isequal(opt,'Both') - for nn=1:numBlkCol %extend to col beyond longest rawDataSet - fprintf(fid, '\t'); - end - - fprintf(fid,'\tOrfRep'); - fprintf(fid,'\tSpecifics'); - fprintf(fid,'\tStrainBkGrd'); - fprintf(fid, '\n'); - ln=ln+1; - fprintf(fid,'%d\t',ln); - end -%*****************************************Begin Data Section - - n=0; - for r=1:16 - - for c=1:24 - n=n+1; - clear selcode; - Kval=outCmat(n,3); - rSq=outCmat(n,6); - lval=outCmat(n,5); - if Kval>160, selcode='K_Hi'; else selcode=' ';end - if Kval<40, selcode=strcat(selcode,' K_Lo'); end %12_1030 - if rSq<.97 && rSq>0, selcode=strcat(selcode,' rSqLo'); end - if lval>(0.85*(max(outTseries))), selcode=strcat(selcode,' late');end - if isnan(outCmat(n,7))||isnan(outCmat(n,8))||isnan(outCmat(n,9))... - ||isnan(outCmat(n,10))||isnan(outCmat(n,11))... - ||isnan(outCmat(n,12)), selcode=strcat(selcode,' NaN'); - end - - %*************RiseTime Calculation***************************************** - K= (outCmat(n,3)); - R= (outCmat(n,4)); - L= (outCmat(n,5)); - - if R>0 && L>0 && K>0 - rr=R; ll=L; - tc1= eval(sols(2)); - tc2= eval(sols(3)); - LL= eval(sols(1)); - riseTm= LL-tc1; - else - riseTm=0; - end -%************************************************************************* - - if Ag(n)< .30*(scan(s).Awindow),selcode=strcat(selcode,' smArea'); end %12_1030 - if outCmat(n,3)==0,selcode=strcat('0 ',selcode); end - - orf=cell2mat(MP(mpCnt).orf{1}(n)); - gene=cell2mat(MP(mpCnt).genename{1}(n)); - orfRep=cell2mat(MP(mpCnt).orfRep{1}(n)); - specifics=cell2mat(MP(mpCnt).specifics{1}(n)); - strain=cell2mat(MP(mpCnt).strain{1}(n)); - drug= char(DM.drug{pertCnt}); - conc= char(DM.conc{pertCnt}); - media= char(DM.media{pertCnt}); - try - mod1= char(DM.mod1{pertCnt}); - conc1= char(DM.conc1{pertCnt}); - catch - mod1= ' '; - conc1= ' '; - end - try - mod2= char(DM.mod2{pertCnt}); - conc2= char(DM.conc2{pertCnt}); - catch - mod2= ' '; - conc2= ' '; - end - - if ~isempty(outCmat) - if isequal(opt,'Res')||isequal(opt,'Both') - fprintf(fid,'%d\t %d\t %d\t %d\t %d\t %s\t %s\t %s\t %s\t %s\t %s\t %s\t %s\t %s\t %s\t',s,p,r,c,n,selcode,drug,conc,media,mod1,conc1,mod2,conc2,orf,gene); - fprintf(fid, '%.5f\t %.5f\t %.5f\t %.5f\t %.5f\t %.5f\t%.5f\t%.5f\t%.5f\t%.5f\t%.5f\t%.5f\t%.5f\t%.5f\t%.5f\t%.5f',... - outCmat(n,1),riseTm,outCmat(n,3),outCmat(n,4),... - outCmat(n,5),outCmat(n,6),outCmat(n,7),outCmat(n,8),... - outCmat(n,9),outCmat(n,10),outCmat(n,11),outCmat(n,12),... - outCmat(n,13),outCmat(n,14),outCmat(n,15),outCmat(n,16)); - - fprintf(fid, '\t%.5f\t%.5f\t%.5f\t%.5f\t%.5f',... - outCmat(n,17),outCmat(n,18),outCmat(n,19),... - outCmat(n,20),outCmat(n,21)); - %failPt= [s n r c] - - %Added for data cut times used in 'r'optomized method 06/14/2018 - if size(outCmat,2)==27 - fprintf(fid, '\t%.5f\t%.5f\t%.5f\t%.5f',... - outCmat(n,24),outCmat(n,25),outCmat(n,26),outCmat(n,27)); + if destPerMP==1 + mpCnt=mpCnt+1 + end + pertCnt=rem(totPlCnt,destPerMP); + if pertCnt==0 + pertCnt=destPerMP + end + pert=strcat('Perturb_',num2str(pertCnt)); + s % TODO seems wrong + p % TODO seems wrong + clear outCmat + outCmat=scan(s).plate(p).CFout; + + %Print Time Point HEADER for each plate for newly added intensity data + if isequal(opt,'Res')||isequal(opt,'Both') + fprintf(fid, '\n'); + ln=ln+1; + fprintf(fid,'%d\t',ln); + fprintf(fid,'Scan\tPlate\tRow\tCol\t'); + try + asd=cell2mat(scan(s).plate(1).CFparameters(1)); + aucEndPt=strcat('AUC',num2str(asd(9))); + catch + asd=cell2mat(scan(s).plate(1).CFparameters{1,1}(1,384)); + aucEndPt=strcat('AUC',num2str(asd(9))); end - fprintf(fid, '\t%d\t%d\t%d\t%d\t%d\t%d',... - outCmat(n,22),outCmat(n,23),Diag(c,r,1,p),Diag(c,r,2,p),Diag(c,r,3,p),Diag(c,r,4,p)); %,Diag(r,c,3,p),Diag(r,c,4,p)); - end %Results print - %DBfile******************************************* - %riseTm calc***** - if isequal(opt,'DB')||isequal(opt,'Both') - dbRsq= 0;dbKup= 0; dbKlo= 0; dbrup= 0; dbrlo= 0; dbLlo= 0; dbLup= 0; - if isnumeric(outCmat(n,6)), dbRsq= outCmat(n,6);end - if isnumeric(outCmat(n,7)), dbKup= outCmat(n,7);end - if isnumeric(outCmat(n,8)), dbKlo= outCmat(n,8);end - if isnumeric(outCmat(n,9)), dbrup= outCmat(n,9);end - if isnumeric(outCmat(n,10)), dbrlo= outCmat(n,10);end - if isnumeric(outCmat(n,11)), dbLlo= outCmat(n,11);end - if isnumeric(outCmat(n,12)), dbLup= outCmat(n,12);end - end - - %**************** - if isequal(opt,'DB')||isequal(opt,'Both') - fprintf(fid2,'%s\t %d\t %d\t %d\t %d\t %d\t %s\t %s\t %s\t %s\t %s\t %s\t %s\t %s\t %s\t %s\t',expNm,s,p,r,c,n,selcode,drug,conc,media,mod1,conc1,mod2,conc2,orf,gene); - fprintf(fid2, '%.5f\t %.5f\t %.5f\t %.5f\t %.5f\t %.5f\t%.5f\t%.5f\t%.5f\t%.5f\t%.5f\t%.5f',... - outCmat(n,1),riseTm,outCmat(n,3),outCmat(n,4),... - outCmat(n,5),dbRsq,dbKup,dbKlo,... - dbrup,dbrlo,dbLlo,dbLup); %\t%.5f\t%.5f\t%.5f\t%.5f - %... outCmat(n,13),outCmat(n,14),outCmat(n,15),outCmat(n,16)); - - end -%*****DB analysis data end************************************************ - %Add Intensities series to end of curve fit data - outIntens=[]; - outIntens=zeros(384,dataLength); - intensBlob=''; - tmBlob =''; - - for j=1:dataLength %size(RawIntens,2) %size(outTseries,1) - if Ag(n)==0,Ag(n)=scan(s).Awindow;end - outIntens(n,j)= RawIntens(n,j)/Ag(n); - if isequal(opt,'Res')||isequal(opt,'Both') - fprintf(fid, '\t%.5f', outIntens(n,j)); % Results print Intens - end - if isequal(opt,'DB')||isequal(opt,'Both') - if j160, selcode='K_Hi'; else selcode=' ';end + if Kval<40, selcode=strcat(selcode,' K_Lo');end + if rSq<.97 && rSq>0, selcode=strcat(selcode,' rSqLo');end + if lval>(0.85*(max(outTseries))), selcode=strcat(selcode,' late');end + if isnan(outCmat(n,7))||isnan(outCmat(n,8))||isnan(outCmat(n,9))... + ||isnan(outCmat(n,10))||isnan(outCmat(n,11))... + ||isnan(outCmat(n,12)), selcode=strcat(selcode,' NaN'); + end + + % RiseTime Calculation + K=(outCmat(n,3)); + R=(outCmat(n,4)); + L=(outCmat(n,5)); + if R>0 && L>0 && K>0 + rr=R; ll=L; + tc1=eval(sols(2)); + tc2=eval(sols(3)); + LL=eval(sols(1)); + riseTm=LL-tc1; + else + riseTm=0; + end + + if Ag(n)< .30*(scan(s).Awindow),selcode=strcat(selcode,' smArea'); end + if outCmat(n,3)==0,selcode=strcat('0 ',selcode);end + + orf=cell2mat(MP(mpCnt).orf{1}(n)); + gene=cell2mat(MP(mpCnt).genename{1}(n)); + orfRep=cell2mat(MP(mpCnt).orfRep{1}(n)); + specifics=cell2mat(MP(mpCnt).specifics{1}(n)); + strain=cell2mat(MP(mpCnt).strain{1}(n)); + drug=char(DM.drug{pertCnt}); + conc=char(DM.conc{pertCnt}); + media=char(DM.media{pertCnt}); + try + mod1=char(DM.mod1{pertCnt}); + conc1=char(DM.conc1{pertCnt}); + catch + mod1=' '; + conc1=' '; + end + try + mod2=char(DM.mod2{pertCnt}); + conc2=char(DM.conc2{pertCnt}); + catch + mod2=' '; + conc2=' '; + end + + if ~isempty(outCmat) + if isequal(opt,'Res')||isequal(opt,'Both') + fprintf(fid,'%d\t %d\t %d\t %d\t %d\t %s\t %s\t %s\t %s\t %s\t %s\t %s\t %s\t %s\t %s\t',s,p,r,c,n,selcode,drug,conc,media,mod1,conc1,mod2,conc2,orf,gene); + fprintf(fid, '%.5f\t %.5f\t %.5f\t %.5f\t %.5f\t %.5f\t%.5f\t%.5f\t%.5f\t%.5f\t%.5f\t%.5f\t%.5f\t%.5f\t%.5f\t%.5f',... + outCmat(n,1),riseTm,outCmat(n,3),outCmat(n,4),... + outCmat(n,5),outCmat(n,6),outCmat(n,7),outCmat(n,8),... + outCmat(n,9),outCmat(n,10),outCmat(n,11),outCmat(n,12),... + outCmat(n,13),outCmat(n,14),outCmat(n,15),outCmat(n,16)); + + fprintf(fid, '\t%.5f\t%.5f\t%.5f\t%.5f\t%.5f',... + outCmat(n,17),outCmat(n,18),outCmat(n,19),... + outCmat(n,20),outCmat(n,21)); + + % Added for data cut times used in 'r'optomized method 06/14/2018 + if (size(outCmat,2) == 27) + fprintf(fid, '\t%.5f\t%.5f\t%.5f\t%.5f',... + outCmat(n,24),outCmat(n,25),outCmat(n,26),outCmat(n,27)); + end + + fprintf(fid, '\t%d\t%d\t%d\t%d\t%d\t%d',... + outCmat(n,22),outCmat(n,23),Diag(c,r,1,p),Diag(c,r,2,p),Diag(c,r,3,p),Diag(c,r,4,p)); %,Diag(r,c,3,p),Diag(r,c,4,p)); + end + + % DBfile + if isequal(opt,'DB')||isequal(opt,'Both') + dbRsq=0;dbKup=0; dbKlo=0; dbrup=0; dbrlo=0; dbLlo=0; dbLup=0; + if isnumeric(outCmat(n,6)), dbRsq=outCmat(n,6);end + if isnumeric(outCmat(n,7)), dbKup=outCmat(n,7);end + if isnumeric(outCmat(n,8)), dbKlo=outCmat(n,8);end + if isnumeric(outCmat(n,9)), dbrup=outCmat(n,9);end + if isnumeric(outCmat(n,10)), dbrlo=outCmat(n,10);end + if isnumeric(outCmat(n,11)), dbLlo=outCmat(n,11);end + if isnumeric(outCmat(n,12)), dbLup=outCmat(n,12);end + end + + if isequal(opt,'DB')||isequal(opt,'Both') + fprintf(fid2,'%s\t %d\t %d\t %d\t %d\t %d\t %s\t %s\t %s\t %s\t %s\t %s\t %s\t %s\t %s\t %s\t',expNm,s,p,r,c,n,selcode,drug,conc,media,mod1,conc1,mod2,conc2,orf,gene); + fprintf(fid2, '%.5f\t %.5f\t %.5f\t %.5f\t %.5f\t %.5f\t%.5f\t%.5f\t%.5f\t%.5f\t%.5f\t%.5f',... + outCmat(n,1),riseTm,outCmat(n,3),outCmat(n,4),... + outCmat(n,5),dbRsq,dbKup,dbKlo,dbrup,dbrlo,dbLlo,dbLup); %\t%.5f\t%.5f\t%.5f\t%.5f + end + + % Add Intensities series to end of curve fit data + outIntens=[]; + outIntens=zeros(384,dataLength); + intensBlob=''; + tmBlob =''; + + for j=1:dataLength %size(RawIntens,2) %size(outTseries,1) + if Ag(n)==0,Ag(n)=scan(s).Awindow;end + outIntens(n,j)=RawIntens(n,j)/Ag(n); + if isequal(opt,'Res')||isequal(opt,'Both') + fprintf(fid, '\t%.5f', outIntens(n,j)); % Results print Intens + end + if isequal(opt,'DB')||isequal(opt,'Both') + if j1 &&rem(totPlCnt,destPerMP)==1, mpCnt=mpCnt+1; end + if destPerMP==1,mpCnt=mpCnt+1; end + pertCnt= rem(totPlCnt,destPerMP); + if pertCnt==0, pertCnt= destPerMP;end + pert= strcat('Perturb_',num2str(pertCnt)); + s % BCR seems wrong - if destPerMP>1 &&rem(totPlCnt,destPerMP)==1, mpCnt=mpCnt+1; end - if destPerMP==1,mpCnt=mpCnt+1; end - pertCnt= rem(totPlCnt,destPerMP); - if pertCnt==0, pertCnt= destPerMP;end - pert= strcat('Perturb_',num2str(pertCnt)); - s - - %Print Time Point HEADER for each plate for newly added intensity data - if isequal(opt,'Res')||isequal(opt,'Both') + %Print Time Point HEADER for each plate for newly added intensity data + if isequal(opt,'Res')||isequal(opt,'Both') fprintf(fid, '\n'); ln=ln+1; fprintf(fid,'%d\t',ln); fprintf(fid,'Scan\tPlate\tRow\tCol\t'); try - asd=cell2mat(scan(s).plate(1).CFparameters(1)); - aucEndPt= strcat('AUC',num2str(asd(9))); + asd=cell2mat(scan(s).plate(1).CFparameters(1)); + aucEndPt= strcat('AUC',num2str(asd(9))); catch - asd=cell2mat(scan(s).plate(1).CFparameters{1,1}(1,384)); - aucEndPt= strcat('AUC',num2str(asd(9))); + asd=cell2mat(scan(s).plate(1).CFparameters{1,1}(1,384)); + aucEndPt= strcat('AUC',num2str(asd(9))); end fprintf(fid, 'Num.\tDiagnostics\tDrug\tConc\tMedia\tModifier1\tConc1\tModifier2\tConc2\tORF\tGene') fprintf(fid, '\t %s',aucEndPt) fprintf(fid, '\triseTm\tK\tr\tl\tR-squared\tK-lower\tK-upper\tr-lower\tr-upper\tl-lower\tl-upper\tArea\tLastInten\tSplineMaxRateTm\tLastFitTm\t1stFitTm\tMedianBase\tFitBase\tMinTm\tThreshTm\tTotFitPts\tPostThreshFitPts\t1stBackgrd\tLstBackgrd\t1stMeanTotBackgrd\tLstMeanTotBackgrd'); %17_0629 MinBaseIntens update for MedianBase label - end - clear outTseries - outTseries=[]; - outTseries=scan(s).plate(p).tSeries; - TseriesSize= size(outTseries,1); - - %*************************************************************** - clear outCmat - outCmat=scan(s).plate(p).CFoutStd; - clear outIntens - outIntens=[]; - RawIntens=[]; - RawIntens=scan(s).plate(p).intens; - RawIntensSize= size(RawIntens,2) - clear Ag; %Ag is Growth Area - Ag=scan(s).plate(p).Ag; - AgSize= size(Ag); -%*************************************** -dataLength= min(TseriesSize,RawIntensSize); - if isequal(opt,'Res')||isequal(opt,'Both') + end + clear outTseries + outTseries=[]; + outTseries=scan(s).plate(p).tSeries; + TseriesSize= size(outTseries,1); + clear outCmat + outCmat=scan(s).plate(p).CFoutStd; + clear outIntens + outIntens=[]; + RawIntens=[]; + RawIntens=scan(s).plate(p).intens; + RawIntensSize= size(RawIntens,2) + clear Ag; %Ag is Growth Area + Ag=scan(s).plate(p).Ag; + AgSize= size(Ag); + + dataLength= min(TseriesSize,RawIntensSize); + if isequal(opt,'Res')||isequal(opt,'Both') for j=1:dataLength - fprintf(fid, '\t%.5f', outTseries(j)); + fprintf(fid, '\t%.5f', outTseries(j)); end - end + end - numBlkCol=(maxNumIntens - dataLength); %size(outTseries,1)); + numBlkCol=(maxNumIntens - dataLength); %size(outTseries,1)); if isequal(opt,'Res')||isequal(opt,'Both') for nn=1:numBlkCol %extend to col beyond longest rawDataSet fprintf(fid, '\t'); end - - fprintf(fid,'\tOrfRep'); - fprintf(fid,'\tSpecifics'); - fprintf(fid,'\tStrainBkGrd'); - fprintf(fid, '\n'); - ln=ln+1; - fprintf(fid,'%d\t',ln); - end -%*****************************************Begin Data Section - - n=0; - for r=1:16 - - for c=1:24 - n=n+1; - clear selcode; - Kval=outCmat(n,3); - rSq=outCmat(n,6); - lval=outCmat(n,5); - if Kval>160, selcode='K_Hi'; else selcode=' ';end - if Kval<40, selcode=strcat(selcode,' K_Lo'); end %12_1030 - if rSq<.97 && rSq>0, selcode=strcat(selcode,' rSqLo'); end - if lval>(0.85*(max(outTseries))), selcode=strcat(selcode,' late');end - if isnan(outCmat(n,7))||isnan(outCmat(n,8))||isnan(outCmat(n,9))... - ||isnan(outCmat(n,10))||isnan(outCmat(n,11))... - ||isnan(outCmat(n,12)), selcode=strcat(selcode,' NaN'); - end - - %*************RiseTime Calculation***************************************** - K= (outCmat(n,3)); - R= (outCmat(n,4)); - L= (outCmat(n,5)); - if R>0 && L>0 && K>0 - rr=R; ll=L; - tc1= eval(sols(2)); - tc2= eval(sols(3)); - LL= eval(sols(1)); - riseTm= LL-tc1; - else - riseTm=0; - end - -%************************************************************************* - - if Ag(n)< .30*(scan(s).Awindow),selcode=strcat(selcode,' smArea'); end %12_1030 - if outCmat(n,3)==0,selcode=strcat('0 ',selcode); end - - orf=cell2mat(MP(mpCnt).orf{1}(n)); - gene=cell2mat(MP(mpCnt).genename{1}(n)); - orfRep=cell2mat(MP(mpCnt).orfRep{1}(n)); - specifics=cell2mat(MP(mpCnt).specifics{1}(n)); - strain=cell2mat(MP(mpCnt).strain{1}(n)); - drug= char(DM.drug{pertCnt}); - conc= char(DM.conc{pertCnt}); - media= char(DM.media{pertCnt}); - try - mod1= char(DM.mod1{pertCnt}); - conc1= char(DM.conc1{pertCnt}); - catch - mod1= ' '; - conc1= ' '; - end - try - mod2= char(DM.mod2{pertCnt}); - conc2= char(DM.conc2{pertCnt}); - catch - mod2= ' '; - conc2= ' '; - end - - if ~isempty(outCmat) - if isequal(opt,'Res')||isequal(opt,'Both') - fprintf(fid,'%d\t %d\t %d\t %d\t %d\t %s\t %s\t %s\t %s\t %s\t %s\t %s\t %s\t %s\t %s\t',s,p,r,c,n,selcode,drug,conc,media,mod1,conc1,mod2,conc2,orf,gene); - fprintf(fid, '%.5f\t %.5f\t %.5f\t %.5f\t %.5f\t %.5f\t%.5f\t%.5f\t%.5f\t%.5f\t%.5f\t%.5f\t%.5f\t%.5f\t%.5f\t%.5f',... - outCmat(n,1),riseTm,outCmat(n,3),outCmat(n,4),... - outCmat(n,5),outCmat(n,6),outCmat(n,7),outCmat(n,8),... - outCmat(n,9),outCmat(n,10),outCmat(n,11),outCmat(n,12),... - outCmat(n,13),outCmat(n,14),outCmat(n,15),outCmat(n,16)); - - fprintf(fid, '\t%.5f\t%.5f\t%.5f\t%.5f\t%.5f\t%d\t%d',... - outCmat(n,17),outCmat(n,18),outCmat(n,19),... - outCmat(n,20),outCmat(n,21),outCmat(n,22),outCmat(n,23)); - - fprintf(fid, '\t%d\t%d\t%d\t%d',... - Diag(c,r,1,p),Diag(c,r,2,p),Diag(c,r,3,p),Diag(c,r,4,p)); %,Diag(r,c,3,p),Diag(r,c,4,p)); - end %Results print - %DBfile******************************************* - %riseTm calc***** - if isequal(opt,'DB')||isequal(opt,'Both') - dbRsq= 0;dbKup= 0; dbKlo= 0; dbrup= 0; dbrlo= 0; dbLlo= 0; dbLup= 0; - if isnumeric(outCmat(n,6)), dbRsq= outCmat(n,6);end - if isnumeric(outCmat(n,7)), dbKup= outCmat(n,7);end - if isnumeric(outCmat(n,8)), dbKlo= outCmat(n,8);end - if isnumeric(outCmat(n,9)), dbrup= outCmat(n,9);end - if isnumeric(outCmat(n,10)), dbrlo= outCmat(n,10);end - if isnumeric(outCmat(n,11)), dbLlo= outCmat(n,11);end - if isnumeric(outCmat(n,12)), dbLup= outCmat(n,12);end + fprintf(fid,'\tOrfRep'); + fprintf(fid,'\tSpecifics'); + fprintf(fid,'\tStrainBkGrd'); + fprintf(fid, '\n'); + ln=ln+1; + fprintf(fid,'%d\t',ln); end - %**************** - if isequal(opt,'DB')||isequal(opt,'Both') - fprintf(fid2,'%s\t %d\t %d\t %d\t %d\t %d\t %s\t %s\t %s\t %s\t %s\t %s\t %s\t %s\t %s\t %s\t',expNm,s,p,r,c,n,selcode,drug,conc,media,mod1,conc1,mod2,conc2,orf,gene); - fprintf(fid2, '%.5f\t %.5f\t %.5f\t %.5f\t %.5f\t %.5f\t%.5f\t%.5f\t%.5f\t%.5f\t%.5f\t%.5f',... - outCmat(n,1),riseTm,outCmat(n,3),outCmat(n,4),... - outCmat(n,5),dbRsq,dbKup,dbKlo,... - dbrup,dbrlo,dbLlo,dbLup); %\t%.5f\t%.5f\t%.5f\t%.5f - %... outCmat(n,13),outCmat(n,14),outCmat(n,15),outCmat(n,16)); - - end -%*****DB analysis data end************************************************ - %Add Intensities series to end of curve fit data + % Data + n=0; + for r=1:16 + for c=1:24 + n=n+1; + clear selcode; + Kval=outCmat(n,3); + rSq=outCmat(n,6); + lval=outCmat(n,5); + if Kval>160, selcode='K_Hi'; else selcode=' ';end + if Kval<40, selcode=strcat(selcode,' K_Lo'); end %12_1030 + if rSq<.97 && rSq>0, selcode=strcat(selcode,' rSqLo'); end + if lval>(0.85*(max(outTseries))), selcode=strcat(selcode,' late');end + if isnan(outCmat(n,7))||isnan(outCmat(n,8))||isnan(outCmat(n,9))... + ||isnan(outCmat(n,10))||isnan(outCmat(n,11))... + ||isnan(outCmat(n,12)), selcode=strcat(selcode,' NaN'); + end + + % RiseTime Calculation + K=(outCmat(n,3)); + R=(outCmat(n,4)); + L=(outCmat(n,5)); + if R>0 && L>0 && K>0 + rr=R; ll=L; + tc1=eval(sols(2)); + tc2=eval(sols(3)); + LL=eval(sols(1)); + riseTm= LL-tc1; + else + riseTm=0; + end + + if Ag(n)< .30*(scan(s).Awindow),selcode=strcat(selcode,' smArea'); end + if outCmat(n,3)==0,selcode=strcat('0 ',selcode); end + orf=cell2mat(MP(mpCnt).orf{1}(n)); + gene=cell2mat(MP(mpCnt).genename{1}(n)); + orfRep=cell2mat(MP(mpCnt).orfRep{1}(n)); + specifics=cell2mat(MP(mpCnt).specifics{1}(n)); + strain=cell2mat(MP(mpCnt).strain{1}(n)); + drug=char(DM.drug{pertCnt}); + conc=char(DM.conc{pertCnt}); + media=char(DM.media{pertCnt}); + try + mod1=char(DM.mod1{pertCnt}); + conc1=char(DM.conc1{pertCnt}); + catch + mod1=' '; + conc1=' '; + end + try + mod2=char(DM.mod2{pertCnt}); + conc2=char(DM.conc2{pertCnt}); + catch + mod2=' '; + conc2=' '; + end + + if ~isempty(outCmat) + if isequal(opt,'Res')||isequal(opt,'Both') + fprintf(fid,'%d\t %d\t %d\t %d\t %d\t %s\t %s\t %s\t %s\t %s\t %s\t %s\t %s\t %s\t %s\t',s,p,r,c,n,selcode,drug,conc,media,mod1,conc1,mod2,conc2,orf,gene); + fprintf(fid, '%.5f\t %.5f\t %.5f\t %.5f\t %.5f\t %.5f\t%.5f\t%.5f\t%.5f\t%.5f\t%.5f\t%.5f\t%.5f\t%.5f\t%.5f\t%.5f',... + outCmat(n,1),riseTm,outCmat(n,3),outCmat(n,4),... + outCmat(n,5),outCmat(n,6),outCmat(n,7),outCmat(n,8),... + outCmat(n,9),outCmat(n,10),outCmat(n,11),outCmat(n,12),... + outCmat(n,13),outCmat(n,14),outCmat(n,15),outCmat(n,16)); + + fprintf(fid, '\t%.5f\t%.5f\t%.5f\t%.5f\t%.5f\t%d\t%d',... + outCmat(n,17),outCmat(n,18),outCmat(n,19),... + outCmat(n,20),outCmat(n,21),outCmat(n,22),outCmat(n,23)); + + fprintf(fid, '\t%d\t%d\t%d\t%d',... + Diag(c,r,1,p),Diag(c,r,2,p),Diag(c,r,3,p),Diag(c,r,4,p)); %,Diag(r,c,3,p),Diag(r,c,4,p)); + end + + % DBFile + % RiseTime calculation + if isequal(opt,'DB')||isequal(opt,'Both') + dbRsq= 0;dbKup= 0; dbKlo= 0; dbrup= 0; dbrlo= 0; dbLlo= 0; dbLup= 0; + if isnumeric(outCmat(n,6)), dbRsq= outCmat(n,6);end + if isnumeric(outCmat(n,7)), dbKup= outCmat(n,7);end + if isnumeric(outCmat(n,8)), dbKlo= outCmat(n,8);end + if isnumeric(outCmat(n,9)), dbrup= outCmat(n,9);end + if isnumeric(outCmat(n,10)), dbrlo= outCmat(n,10);end + if isnumeric(outCmat(n,11)), dbLlo= outCmat(n,11);end + if isnumeric(outCmat(n,12)), dbLup= outCmat(n,12);end + end + + if isequal(opt,'DB')||isequal(opt,'Both') + fprintf(fid2,'%s\t %d\t %d\t %d\t %d\t %d\t %s\t %s\t %s\t %s\t %s\t %s\t %s\t %s\t %s\t %s\t',expNm,s,p,r,c,n,selcode,drug,conc,media,mod1,conc1,mod2,conc2,orf,gene); + fprintf(fid2, '%.5f\t %.5f\t %.5f\t %.5f\t %.5f\t %.5f\t%.5f\t%.5f\t%.5f\t%.5f\t%.5f\t%.5f',... + outCmat(n,1),riseTm,outCmat(n,3),outCmat(n,4),... + outCmat(n,5),dbRsq,dbKup,dbKlo,... + dbrup,dbrlo,dbLlo,dbLup); + end + + % DB Analysis + % Add Intensities series to end of curve fit data outIntens=[]; outIntens=zeros(384,dataLength); intensBlob=''; tmBlob =''; - - for j=1:dataLength %size(RawIntens,2) %size(outTseries,1) - if Ag(n)==0,Ag(n)=scan(s).Awindow;end - outIntens(n,j)= RawIntens(n,j)/Ag(n); - if isequal(opt,'Res')||isequal(opt,'Both') + + for j=1:dataLength %size(RawIntens,2) %size(outTseries,1) + if Ag(n)==0,Ag(n)=scan(s).Awindow;end + outIntens(n,j)= RawIntens(n,j)/Ag(n); + if isequal(opt,'Res')||isequal(opt,'Both') fprintf(fid, '\t%.5f', outIntens(n,j)); % Results print Intens + end + if isequal(opt,'DB')||isequal(opt,'Both') + if j 2 - output_txt{end+1} = ['Z: ',num2str(pos(3),4)]; + % If there is a Z-coordinate in the position, display it as well + if length(pos) > 2 + output_txt{end+1}=['Z: ',num2str(pos(3),4)]; + end end