EASY passing linter checks

This commit is contained in:
2024-07-27 12:09:09 -04:00
parent d77711acb7
commit 78d5e26d71
10 changed files with 810 additions and 772 deletions

View File

@@ -538,11 +538,11 @@ easy() {
export SCANS_DIR PROJECT_DATE EASY_DIR PROJECT_USER PROJECT_PREFIX EASY_SUFFIX EASY_RESULTS_DIR MASTER_PLATE_FILE DRUG_MEDIA_FILE
echo "Hit enter to use the default EASY results directory $SCANS_DIR/Results_${PROJECT_PREFIX}_($PROJECT_SUFFIX)"
(( YES )) || read -r -p "Or enter a custom suffix: " suffix
EASY_RESULTS_DIR="$SCANS_DIR/Results_${PROJECT_PREFIX}_${Ssuffix:-$PROJECT_SUFFIX}"
EASY_RESULTS_DIR="$SCANS_DIR/Results_${PROJECT_PREFIX}_${suffix:-$PROJECT_SUFFIX}"
while [[ -d $EASY_RESULTS_DIR ]]; do
count=1
if [[ $count -eq 1 ]] && ask "$EASY_RESULTS_DIR already exists, increment dir name (y) or overwrite (N)?"; then
EASY_SUFFIX="${Ssuffix:-$PROJECT_SUFFIX}.$((count++))"
EASY_SUFFIX="${suffix:-$PROJECT_SUFFIX}.$((count++))"
EASY_RESULTS_DIR="$SCANS_DIR/Results_${PROJECT_PREFIX}_${EASY_SUFFIX}"
else
EASY_SUFFIX=${suffix:-$PROJECT_SUFFIX}

View File

@@ -253,13 +253,13 @@ if isequal(Linked,1) % Drugs and Media are linked 1 to 1; else they are combinat
if ispc
while (~isequal(txt{excLnNum,2},'###'))
numb=numb+1;
DM.drug(numb) = {raw(excLnNum,2)};
DM.conc(numb) = {raw(excLnNum,3)};
DM.media(numb) = {raw(excLnNum,4)};
DM.mod1(numb) = {raw(excLnNum,5)};
DM.conc1(numb) = {raw(excLnNum,6)};
DM.mod2(numb) = {raw(excLnNum,7)};
DM.conc2(numb) = {raw(excLnNum,8)};
DM.drug(numb)={raw(excLnNum,2)};
DM.conc(numb)={raw(excLnNum,3)};
DM.media(numb)={raw(excLnNum,4)};
DM.mod1(numb)={raw(excLnNum,5)};
DM.conc1(numb)={raw(excLnNum,6)};
DM.mod2(numb)={raw(excLnNum,7)};
DM.conc2(numb)={raw(excLnNum,8)};
excLnNum=excLnNum+1;
msg=strcat('NumberOf1:1DrugMediaPlates = ',num2str(numb), ' lastLineNo. = ',num2str(excLnNum));
end
@@ -268,20 +268,20 @@ if isequal(Linked,1) % Drugs and Media are linked 1 to 1; else they are combinat
excLnNum=1;
while (~isequal(DMcell{excLnNum+1,2},'###'))
numb=numb+1;
DM.drug(numb) = {DMtbl(excLnNum,2)};
DM.drug(numb)= table2cell(DM.drug{numb});
DM.conc(numb) = {DMtbl(excLnNum,3)};
DM.conc(numb)= table2cell(DM.conc{numb});
DM.media(numb) = {DMtbl(excLnNum,4)};
DM.media(numb)= table2cell(DM.media{numb});
DM.mod1(numb) = {DMtbl(excLnNum,5)};
DM.mod1(numb)= table2cell(DM.mod1{numb});
DM.conc1(numb) = {DMtbl(excLnNum,6)};
DM.conc1(numb)= table2cell(DM.conc1{numb});
DM.mod2(numb) = {DMtbl(excLnNum,7)};
DM.mod2(numb)= table2cell(DM.mod2{numb});
DM.conc2(numb) = {DMtbl(excLnNum,8)};
DM.conc2(numb)= table2cell(DM.conc2{numb});
DM.drug(numb)={DMtbl(excLnNum,2)};
DM.drug(numb)=table2cell(DM.drug{numb});
DM.conc(numb)={DMtbl(excLnNum,3)};
DM.conc(numb)=table2cell(DM.conc{numb});
DM.media(numb)={DMtbl(excLnNum,4)};
DM.media(numb)=table2cell(DM.media{numb});
DM.mod1(numb)={DMtbl(excLnNum,5)};
DM.mod1(numb)=table2cell(DM.mod1{numb});
DM.conc1(numb)={DMtbl(excLnNum,6)};
DM.conc1(numb)=table2cell(DM.conc1{numb});
DM.mod2(numb)={DMtbl(excLnNum,7)};
DM.mod2(numb)=table2cell(DM.mod2{numb});
DM.conc2(numb)={DMtbl(excLnNum,8)};
DM.conc2(numb)=table2cell(DM.conc2{numb});
excLnNum=excLnNum+1;
msg=strcat('NumberOf1:1DrugMediaPlates = ',num2str(numb), ' lastLineNo. = ',num2str(excLnNum));
end
@@ -296,28 +296,28 @@ if isequal(Linked,0) % 0 indicates Drugs and Media are combinatorial
if ispc
while (~isequal(txt{excLnNum,2},'###'))
drgCnt=drgCnt+1;
DM.drug(drgCnt) = {raw(excLnNum,2)};
DM.conc(drgCnt) = {raw(excLnNum,3)};
DM.drug(drgCnt)={raw(excLnNum,2)};
DM.conc(drgCnt)={raw(excLnNum,3)};
excLnNum=excLnNum+1;
end
while (~isequal(txt{excLnNum,4},'###'))
medCnt=medCnt+1;
DM.media(medCnt) = {raw(excLnNum,4)};
DM.media(medCnt)={raw(excLnNum,4)};
excLnNum=excLnNum+1;
end
else
excLnNum=1;
while (~isequal(DMcell{excLnNum+1,2},'###'))
drgCnt=drgCnt+1;
DM.drug(drgCnt) = {DMtbl(excLnNum,2)};
DM.conc(drgCnt) = {DMtbl(excLnNum,3)};
DM.drug(drgCnt)={DMtbl(excLnNum,2)};
DM.conc(drgCnt)={DMtbl(excLnNum,3)};
excLnNum=excLnNum+1;
end
while (~isequal(DMcel{excLnNum+1,4},'###'))
medCnt=medCnt+1;
DM.media(medCnt) = {DMtbl(excLnNum,4)};
DM.media(medCnt)={DMtbl(excLnNum,4)};
excLnNum=excLnNum+1;
end
end

View File

@@ -2,12 +2,12 @@
% Updated 240724 Bryan C Roessler to improve file operations and portability
%
global scansDir
global easyResultsDir
global matFile
global defImParMat
global printResultsDir
global fotosResultsDir
global pointMapsFile
global pointMapsResultsDir
ln=1;
@@ -52,6 +52,7 @@ end
% localscansDir=scansDir;
% end
% TODO this seems weird
expNm=scansDir(max(strfind(scansDir,'/'))+1:end);
drivePos=min(strfind(scansDir,'/'));
drive=scansDir(1:(drivePos-1));
@@ -85,9 +86,9 @@ drgCnt=0;
medCnt=0;
try
load(fullfile(easyResultsDir,'Fotos','Nbdg')) % Convolute scan array data into plates
load(fullfile(fotosResultsDir,'Nbdg')) % Convolute scan array data into plates
catch
load(fullfile(easyResultsDir,'PTmats','Nbdg')) % Convolute scan array data into plates
load(fullfile(pointMapsResultsDir,'Nbdg')) % Convolute scan array data into plates
end
for s=1:size(scan,2)
@@ -102,14 +103,14 @@ for s=1:size(scan,2)
for p=1:size((scan(s).plate),2)
totPlCnt=totPlCnt+1;
if destPerMP>1 && rem(totPlCnt,destPerMP)==1
mpCnt=mpCnt+1
mpCnt=mpCnt+1;
end
if destPerMP==1
mpCnt=mpCnt+1
mpCnt=mpCnt+1;
end
pertCnt=rem(totPlCnt,destPerMP);
if pertCnt==0
pertCnt=destPerMP
pertCnt=destPerMP;
end
pert=strcat('Perturb_',num2str(pertCnt));
s % TODO seems wrong
@@ -365,9 +366,9 @@ if isequal(opt,'DB')||isequal(opt,'Both')
try
copyfile(DBfilename,DBupload)
catch ME
rep = getReport(ME, 'basic');
rep=getReport(ME, 'basic');
rep=strcat('Failed copyfile to ',DBupload,' -', rep);
errordlg(rep)
errordlg(rep)
end
end
@@ -424,8 +425,8 @@ try
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, '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
@@ -438,7 +439,7 @@ try
outIntens=[];
RawIntens=[];
RawIntens=scan(s).plate(p).intens;
RawIntensSize= size(RawIntens,2)
RawIntensSize=size(RawIntens,2);
clear Ag; %Ag is Growth Area
Ag=scan(s).plate(p).Ag;
AgSize= size(Ag);

View File

@@ -20,6 +20,7 @@ function varargout = EASYconsole(varargin)
global mpdmFile
global userName
global srchRange
global searchRangeFile
% Initialize some variables from matlab
easyPath=which(mfilename);
@@ -115,7 +116,7 @@ function varargout = EASYconsole(varargin)
else
% Try to find MasterPlate_ file on our own
mp=fullfile(scansDir,'MasterPlateFiles',strcat('MasterPlate_', easySuffix,'.xlsx'));
if exist(mp, 'file'))
if exist(mp, 'file')
masterPlateFile=mp;
disp(strcat('Using drug media file: ', masterPlateFile, ' from internal logic'))
else
@@ -129,7 +130,7 @@ function varargout = EASYconsole(varargin)
else
% Try to find MasterPlate_ file on our own
dm=fullfile(scansDir,'MasterPlateFiles',strcat('DrugMedia_', easySuffix,'.xlsx'));
if exist(mp, 'file'))
if exist(mp, 'file')
drugMediaFile=dm;
disp(strcat('Using drug media file: ', drugMediaFile, ' from internal logic'))
else
@@ -147,16 +148,16 @@ function varargout = EASYconsole(varargin)
fotosResultsDir=fullfile(easyResultsDir,'Fotos');
figsResultsDir=fullfile(easyResultsDir,'figs');
pointMapsResultsDir=fullfile(easyResultsDir,'PTmats');
pointMapsFile=fullfile(pointMapsResultsDir,'NImParameters.mat')
oldPointMapsFile=fullfile(pointMapsResultsDir,'ImParameters.mat')
CSearchRangeFile=fullfile(fotosResultsDir,'CSearchRange.mat');
pointMapsFile=fullfile(pointMapsResultsDir,'NImParameters.mat');
oldPointMapsFile=fullfile(pointMapsResultsDir,'ImParameters.mat');
searchRangeFile=fullfile(fotosResultsDir,'CSearchRange.mat');
mpdmFile=fullfile(matDir,'MPDM.mat');
% This can be removed, I think it should add the previous search range?
% Might be nice feature but can remove if it causes issues
% We are using searchRangeNum to hold old CSrchRange value(s)
if exist(CSearchRangeFile, 'file')
searchRangeNum=load(CSearchRangeFile);
if exist(searchRangeFile, 'file')
searchRangeNum=load(searchRangeFile);
end
% Add easyDir to the MATLAB path
% I have not idea if this is necessary or works but theoretically should
@@ -212,7 +213,6 @@ end
% varargin--input arguments to EASYconsole (see VARARGIN)
function EASYconsole_OpeningFcn(hObject, ~, handles, varargin)
global fhconsole
global easyResultsDir
% Choose default command line output for EASYconsole
handles.output=hObject;
@@ -371,7 +371,7 @@ function LoadDatFile_Callback(~, ~, ~)
end
% Create supporting dirs
dirs={'PrintResults', 'figs', 'CFfigs', 'PTmats', 'Fotos'}
dirs={'PrintResults', 'figs', 'CFfigs', 'PTmats', 'Fotos'};
for i=1:length(dirs)
d=dirs{i};
if ~exist(fullfile(easyResultsDir, d), 'dir')

View File

@@ -20,18 +20,18 @@ function [par4scanselIntensStd,par4scanselTimesStd,par4scanTimesELr,par4scanInte
par4resMat=zeros(384,27);
par4resMatStd=zeros(384,27);
% Spot(cultures) loop
for ii=1:384 %startSpot:numCultures
ii; %%%db print out the culture number
% Spot (cultures) loop
for ii=1:384 % startSpot:numCultures
ii; % db print out the culture number
timepts=[];
currValues=[];
currSpotAreas=[];
currSpotArea=[];
dataMatrix=[];
selTimesStd=[]; %191024 parfor
selIntensStd=[]; %191024 parfor
FiltTimesELr=[]; %191024 parfor
NormIntensELr=[]; %191024 parfor
selTimesStd=[]; % 191024 parfor
selIntensStd=[]; % 191024 parfor
FiltTimesELr=[]; % 191024 parfor
NormIntensELr=[]; % 191024 parfor
% add offset...1 offset PER PLATE
timepts=times + timeOffsets; % (floor((ii-1)/arrayFormat) + 1);
@@ -48,7 +48,7 @@ function [par4scanselIntensStd,par4scanselTimesStd,par4scanTimesELr,par4scanInte
currNormIntens=currValues/currSpotArea;
tmpx=find(currNormIntens>5); %15jh % 2.3);
validSpot=true;
if(isempty(tmpx) || (length(tmpx)<3))
if(isempty(tmpx) || length(tmpx)<3)
validSpot=false;
normIntens=currNormIntens;
filterTimes=timepts; %filterTimes; %currTimes;
@@ -63,9 +63,9 @@ function [par4scanselIntensStd,par4scanselTimesStd,par4scanTimesELr,par4scanInte
resMat=zeros(1,27);
hold off;
dataMatrix=[];
K=0;r=0;l=0;Klow=0;Kup=0;rlow=0;rup=0;llow=0;lup=0;AUC=0;MSR=0; rsquare=0;
K=0;r=0;l=0;Klow=0;Kup=0;rlow=0;rup=0;llow=0;lup=0;AUC=0;MSR=0;rsquare=0;
bl=0;
Tpt1=0; numFitTpts =0;thresGT2=0;minTime=0;fitbl=0; %diagnostic outputs only
Tpt1=0;numFitTpts=0;thresGT2=0;minTime=0;fitbl=0; % diagnostic outputs only
timepts=timepts; % timepts=currTimes; parfor
normIntens=currNormIntens;
@@ -82,7 +82,7 @@ function [par4scanselIntensStd,par4scanselTimesStd,par4scanTimesELr,par4scanInte
threshold=0;
end
dropThreshold=-0.0001* max(normIntens);
dropThreshold=-0.0001*max(normIntens);
% Initialize dataMatrix
dataMatrix(1,:)=timepts;
@@ -102,7 +102,7 @@ function [par4scanselIntensStd,par4scanselTimesStd,par4scanTimesELr,par4scanInte
% NCLoIntstdTrim
% NCLoSstdTrim.m called by NCfilImCF and NCfil.m
flg1=0;
loScurvLim=stdLoIntLim; %
loScurvLim=stdLoIntLim;
loStimeN=1;
last2n=1;
stdDev=[];
@@ -110,26 +110,27 @@ function [par4scanselIntensStd,par4scanselTimesStd,par4scanTimesELr,par4scanInte
for n=1:meanIntIndPt
if nrmIntens0(n)<=0
nrmIntens0(n)=0;
end
end
if(nrmIntens0(n)<threshold)
if (loStimeN-2)>0
dataMatrix(3,1:(n-2))=2; % add to lowIntensity cull flags, the pre S cull data
else
dataMatrix(3,1:n)=2;end
dataMatrix(3,1:(n-2))=2;
last2n=n;
dataMatrix(3,1:n)=2;
end
dataMatrix(3,1:(n-2))=2;
last2n=n;
end
if n<(length(nrmIntens0)-3)
x=nrmIntens0(n:(n+3));
stdDev(n)=std(x);
if (stdDev(n)<loScurvLim && flg1~=1)
loStime=timepts(n);
loStimeN=n;
end
if n<(length(nrmIntens0)-3)
x=nrmIntens0(n:(n+3));
stdDev(n)=std(x);
if (stdDev(n)<loScurvLim && flg1~=1)
loStime=timepts(n);
loStimeN=n;
end
if stdDev(n)>6
flg1=1
end % detect S curve rise->stop stdLoInt detection
end
flg1=1;
end
end
end
% TODO repetitive code
@@ -142,14 +143,14 @@ function [par4scanselIntensStd,par4scanselTimesStd,par4scanTimesELr,par4scanInte
qcutoff=2;
qind=find(normIntens>2); %,:,'first');
if ~isempty(qind(3))
qcutoff=qind(3)
qcutoff=qind(3);
end
[minInt,I]=min(normIntens(2:qcutoff));
bl=minInt;
minTime=dataMatrix(1,I); %diagnostic output only
minTime=dataMatrix(1,I);
if (length(qind)>5)&&I>1
dataMatrix(3,1:(I-1))=5
dataMatrix(3,1:(I-1))=5;
end
tGT2Flg=0;
@@ -157,7 +158,7 @@ function [par4scanselIntensStd,par4scanselTimesStd,par4scanTimesELr,par4scanInte
dataMatrix(4,n)=normIntens(n)-bl;
if n>I && dataMatrix(4,n)>=2 && tGT2Flg==0
thresGT2=n;thresGT2Tm=dataMatrix(1,n);tGT2Flg=1;
end %diagnostic output only
end
end
resMat(18)=bl;

View File

@@ -86,7 +86,7 @@ function [resMatStd, resMat, selTimesStd, selIntensStd, FiltTimesELr, NormIntens
if(isnan(Klow)||isnan(Kup)||isnan(llow)||isnan(lup)||isnan(rlow)||isnan(rup))
NANcond=1; stdNANcond=1; % stdNANcond added to relay not to attempt ELr as there is no curve to find critical point
end
catch ME
catch
% if no data is given, return zeros
AUC=0;MSR=0;K=0;r=0;l=0;rsquare=0;Klow=0;Kup=0;
rlow=0;rup=0;lup=0;llow=0;
@@ -222,7 +222,7 @@ function [resMatStd, resMat, selTimesStd, selIntensStd, FiltTimesELr, NormIntens
GrowthELr=K ./ (1 + exp(-r.* (t - l )));
fitblELr=min(GrowthELr); %jh diag
end
catch ME
catch
% if no data is given, return zeros
AUC=0;MSR=0;K=0;r=0;l=0;rsquare=0;Klow=0;Kup=0;
rlow=0;rup=0;lup=0;llow=0; %normIntens=[];
@@ -290,7 +290,7 @@ function [resMatStd, resMat, selTimesStd, selIntensStd, FiltTimesELr, NormIntens
resMat(19)=fitblStd; % only applicable to Std curve Fit; ELr superceeds and makes meaningless
resMat(20)=minTime; % only applicable to Std curve Fit; ELr superceeds and makes meaningless
end % if r3>r1
catch ME
catch
% if no data is given, return zeros
AUC=0;MSR=0;K=0;r=0;l=0;rsquare=0;Klow=0;Kup=0;
rlow=0;rup=0;lup=0;llow=0; % normIntens=[];

View File

@@ -21,6 +21,7 @@ function NImParamRadiusGui(scansDir)
global numCols
global scanSize
global scanMax
global searchRangeFile
% Ncode ImRobot adaptation
% TODO this code block and variables needs explanation
@@ -38,17 +39,17 @@ function NImParamRadiusGui(scansDir)
selScan=1;
SWgrowthArea=1;
if exist(pointMapsFile)
if exist(pointMapsFile, 'file')
load(pointMapsFile);
else
load(fullfile(PTmats,'NImParameters')) % hardcoded default
disp('WARNING: Using hardcoded NImParameters.mat')
end
ImParMat
ImParMat;
% if ~exist('searchRangeNum','var') || isempty(searchRangeNum)
if exist(CSearchRangeFile), 'file')
load(CSearchRangeFile);
CSearchRange;
if exist(searchRangeFile, 'file')
load(searchRangeFile);
CSearchRange; % TODO, might be an issue, figure out what this is doing
end
% yInitPos=0.30;
@@ -117,6 +118,8 @@ function NImParamRadiusGui(scansDir)
btnNumber=7;
yPos=0.85-(btnNumber-1)*(btnHt+spacing);
btnPos=[xPos yPos-spacing btnWid btnHt];
% TODO, I don't think these are defined?
try
srchRange=ImParMat(12);
catch % Legacy default value was 18 before being made a user input variable (ImParMat(12)). A preferable value now might be 12 or 14.
@@ -164,7 +167,6 @@ function NImParamRadiusGui(scansDir)
'callback',{@load_listbox}); %'uiresume(gcbf)'); 'Position', [5 100 60 20])
function load_listbox(source,~)
global
userIndx=(get(source,'value'));
userStr=(get(source,'string'));
%scLstIndx=str2num(char(strrep(userStr(userIndx), 'Scan', '')))
@@ -239,7 +241,7 @@ function NImParamRadiusGui(scansDir)
searchRangeNum;
save(pointMapsFile, 'ImParMat');
save(CSearchRangeFile,'searchRangeNum');
save(searchRangeFile,'searchRangeNum');
close
return

File diff suppressed because it is too large Load Diff

View File

@@ -40,7 +40,7 @@ function [p4L2, TmpexpScanIntens3,TmpFexpScanSpots3,TmpFexpScanBMtp3,TmpanlZoneR
fFail=((fullfile(printResultsDir,'ImageFileReadFailure.txt')));
fid=fopen(fFail,'a'); %create,open and append
% fprintf(fid,'%s \n',char(tifFile))
fclose(fid)
fclose(fid);
nndx=nndx-1;
swCatch=1;
rep=getReport(ME, 'basic');
@@ -158,8 +158,8 @@ function [p4L2, TmpexpScanIntens3,TmpFexpScanSpots3,TmpFexpScanBMtp3,TmpanlZoneR
end
locIndx=0;
Ag=zeros(1,384);
for m=1:16 %N code change from 16 %Vert back to 16
for n=1:24 %Ncode change from 24 %Vert back to 24
for m=1:16 % Ncode change from 16 %Vert back to 16
for n=1:24 % Ncode change from 24 %Vert back to 24
growthArea=max(grArea(n,m,:,1));
if SWprint==1
fprintf(fid,'%3.f\n',growthArea);
@@ -294,7 +294,7 @@ function [p4L2, TmpexpScanIntens3,TmpFexpScanSpots3,TmpFexpScanBMtp3,TmpanlZoneR
p4L1{16}=selScan;
p4L1{17}=cirPixA;
p4L1{18}=datestr((now),31);
p4L1{18}=datestr((now),31); % TODO this seems bad
p4L2=p4L1;
end

View File

@@ -100,9 +100,9 @@ NIcircle
lastPlateOnLastScan=1; % Ncode
if size(scLst,1)==1
SWsingleSc=1
SWsingleSc=1;
else
SWsingleSc=0
SWsingleSc=0;
end
dvec=datevec(datestr(floor(now))); %method to get current offset year '01-Jan-"currentyr"'
@@ -220,10 +220,10 @@ end
% Save data in .mat files
save(matFile,'scan');
% save((fullfile(easyResultsDir,'PTmats','Nbdg')), 'sbdg'); %legacy location can probably get rid of in time
save((fullfile(easyResultsDir,'Fotos','Nbdg')), 'sbdg');
save((fullfile(easyResultsDir,'Fotos','Coordinates')),'FexpScanSpots') %Saves frames at each tPt
save((fullfile(easyResultsDir,'Fotos','BGatTpts')),'FexpScanBMtp')
save((fullfile(easyResultsDir,'Fotos','anlZones')),'anlZoneRefs')%Saves anl Positions at each tPt
save((fullfile(fotosResultsDir,'Nbdg')), 'sbdg');
save((fullfile(fotosResultsDir,'Coordinates')),'FexpScanSpots') %Saves frames at each tPt
save((fullfile(fotosResultsDir,'BGatTpts')),'FexpScanBMtp')
save((fullfile(fotosResultsDir,'anlZones')),'anlZoneRefs')%Saves anl Positions at each tPt
% Print FitResults
fileExt='.txt';