%% CALLED BY EASYconsole.m %% %to 'Fotos' from 'PTmaps' %Console globals******* global ExpPath global resDir global ExpOutmat global ImParMat w=pwd; 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); 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; end %MPnum=ImParMat(1); %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 end destPerMP=ImParMat(2); load (ExpOutmat); load (fullfile(ExpPath,'MasterPlateFiles','MPDMmat.mat')) 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 end if length(ExpPath)== max(strfind(ExpPath,'\')) localExpPath=ExpPath(1:end-1); else 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 end if ispc drivePos=min(strfind(localExpPath,'\')); else drivePos= min(strfind(localExpPath,'/')); end 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')); catch 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') %print Results 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 catch 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 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 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)); 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 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 %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\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') for j=1:dataLength fprintf(fid, '\t%.5f', outTseries(j)); end end 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 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 j