Files
hartman-server/qhtcp-workflow/apps/matlab/easy/NCsingleDisplay.m

90 lines
3.2 KiB
Matlab
Executable File

%% CALLED WHEN ACCESSING 'CurveFit Display' %%
global scLst
global scan
hf=figure;
% Parameter Entry
[scLst, row, col]=NCdisplayGui(projectScansDir);
close(hf)
selSpot=(row-1)*24 + col;
for iPlate=1:length(scLst)
scanPltNum=str2double(scLst(iPlate));
K=scan(scanPltNum).plate(1).CFout((selSpot),3);
r=scan(scanPltNum).plate(1).CFout((selSpot),4);
l=scan(scanPltNum).plate(1).CFout((selSpot),5);
suffix=strcat('Scan-Plate', scLst(iPlate)); % char(QspLst(n));
% fileSpotSuffix=strcat('-Spot#',num2str(selSpot),'-Row=',selSpotRC(1),'-Col=',selSpotRC(2),'-FitData','-L=',num2str(l),'-r=',num2str(r),'-K=',num2str(K));
fileSpotSuffix=strcat('-Spot#',num2str(selSpot),'-Row=',num2str(row),'-Col=',num2str(col),'-FitData','-L=',num2str(l),'-r=',num2str(r),'-K=',num2str(K));
filenameNoExt=[suffix fileSpotSuffix];
timeArr=scan(scanPltNum).plate(1).tSeries;
rawIntens=scan(scanPltNum).plate(1).intens((selSpot),:)/scan(scanPltNum).plate(1).Ag((selSpot));
try
filterTms=scan(scanPltNum).plate(1).filterTimes{(selSpot)};
normInts=scan(scanPltNum).plate(1).normIntens{(selSpot)};
catch
end
if (exist('K','var')&& exist('r','var') && exist('l','var'))
t=(0:1:200);
Growth=K ./ (1 + exp(-r.* (t - l )));
end
if length(scLst)>1
figure
else
cla
end
hold on
plot(timeArr,rawIntens,'g*');
try
plot(filterTms,normInts,'o');
catch
end
hold on;
title(filenameNoExt); % this didn't make sense so changed
xlabel('Hours');
ylabel('Intensities Normalized by Area');
grid on;
if (exist('K','var')&& exist('r','var') && exist('l','var'))
plot(t, Growth,'b-');
% Plot L on curvefit figure
grL=Growth(round(l)); % growthCurve timePT for l in hours
plot(l,0:grL,'-b') % to display position of l
plot(l,grL,'^b') % to display l position on curve as an arrowhead
% Plot Arbitrary User Entry AUC "finalTimePt"
% plot(finalTimePt,0,'+m')
% plot(0:finalTimePt,bl,'-m')
end
end
%Spot entry form------------------------------------------------------
%{
prompt={'Enter spot to analyse:'};
dlg_title='Input spot to curve fit';
num_lines=1;
def={'1'};
selSpot=inputdlg(prompt,dlg_title,num_lines,def);
K=scan(scanPltNum).plate(1).CFout(str2double(selSpot),3);
r=scan(scanPltNum).plate(1).CFout(str2double(selSpot),4);
l=scan(scanPltNum).plate(1).CFout(str2double(selSpot),5);
suffix=strcat('Scan-Plate', scLst); %char(QspLst(n));
fileSpotSuffix=strcat('-Spot#',selSpot,'-FitData','-L=',num2str(l),'-r=',num2str(r),'-K=',num2str(K));
filenameNoExt=[suffix fileSpotSuffix];
timeArr=scan(scanPltNum).plate(1).tSeries;
rawIntens=scan(scanPltNum).plate(1).intens(str2double(selSpot),:)/scan(scanPltNum).plate(1).Ag(str2double(selSpot));
filterTms=scan(scanPltNum).plate(1).filterTimes{str2double(selSpot)};
normInts=scan(scanPltNum).plate(1).normIntens{str2double(selSpot)};
%}
%-----------------------------------------------------------------------
%{
prompt={'Enter Spot row:','Enter Spot column:'};
dlg_title='Input spot to curve fit';
num_lines=2;
def={'1','1'};
selSpotRC=inputdlg(prompt,dlg_title,num_lines,def);
row=str2double(selSpotRC(1)); col=str2double(selSpotRC(2));
%}
%row=cell2mat(row);