Skip to content
Snippets Groups Projects
Commit 81d28400 authored by ac_fx's avatar ac_fx
Browse files

SSF drawTracks and leversc impad

parent 688ccd38
No related branches found
No related tags found
No related merge requests found
......@@ -30,6 +30,7 @@ classdef leversc <handle
optional_figNumber=1;
end
[im,imD,figNumber]=parseArgs(optional_im,optional_imD,optional_figNumber);
im = imPad4(im);
obj.figNumber=figNumber;
if isfield(imD,'imageData')
CONSTANTS=imD;
......@@ -122,3 +123,19 @@ end
end
function im = imPad4(im)
pad = [0,0,0];
for d = 1:3
if 0~=mod(size(im,d),4)
pad(d) = size(im,d) + 4-mod(size(im,d),4);
end
end
if any(pad)
sz = size(im);
sz = sz(1:3);
pad = max(pad,sz);
im(pad(1),pad(2),pad(3),:) = 0;
end
end
\ No newline at end of file
function batchProc(ROOT,nproc,nthread)
parpool(nproc)
ljsStartParallel(nproc);
flist = dir(fullfile(ROOT,'*.LEVER'));
parfor ff=1:length(flist)
......
% strDB = '/g/leverjs/Olivier/Agne/march_2023_20x/2022-04-05_steady_state_48h_deprived_13_ori.LEVER';
function drawSSFtracks(ROOT,cache, kymo_channel, channel_description)
function drawSSFtracks(ROOT,cache, kymo_channel, channel_description,fnames)
[~,dsName,ext] = fileparts(ROOT);
if ~exist('fnames','var')
fnames = [];
end
outfile = [dsName ' [0,1] ' channel_description ' SSF projection_y_t.pdf'];
outfile = [dsName ' ' channel_description ' SSF projection_y_t.pdf'];
if isempty(ext)
flist = dir(fullfile(ROOT,'*.LEVER'));
else
......@@ -13,6 +16,8 @@ end
f=figure(1);
f.WindowState = 'maximized';
pause(1)
kymoPixels = {};
for ff=1:length(flist)
strDB = fullfile(flist(ff).folder,flist(ff).name);
[ROOT,lf] = fileparts(strDB);
......@@ -21,22 +26,35 @@ for ff = 1:length(flist)
continue
end
imKymo = SSF.loadImage(strKymoDB,kymo_channel);
kymoPixels = imKymo(find(imKymo));
kymoPixels{ff} = imKymo(find(imKymo));
end
kymoPixels = vertcat(kymoPixels{:});
erkClipLimits = [prctile(kymoPixels,2.5),prctile(kymoPixels,97.5)];
% erkClipLimits = [0,prctile(kymoPixels,95)];
for ff = 1:length(flist)
strDB = fullfile(flist(ff).folder,flist(ff).name);
[ROOT,lf] = fileparts(strDB);
strKymoDB = fullfile(ROOT,cache,[lf '.LEVER_ssf_cache.LEVER']);
if ~exist(strKymoDB,'file')
continue
end
imKymo = SSF.loadImage(strKymoDB,kymo_channel);
%
imp = squeeze(max(imKymo,[],2));
imn = squeeze(min(imKymo,[],2));
imn = abs(imn);
idx = find(imn>imp);
imp(idx) = -1 .* imn(idx);
imp(imp<-0.5) = 0;
% imp(imp<-0.5) = 0;
impq = SSF.quantize8(imp,erkClipLimits);
impq(imp==0 & imn==0) = 0;
% impq(imp==0 & imn==0) = 0;
% keep just [0,1] SSF
% % keep just [0,1] SSF
% imp = squeeze(max(imKymo,[],2));
% erkClipLimits = [0,prctile(kymoPixels,99.9)];
% impq = SSF.quantize8(imp,erkClipLimits);
% impq(imp==0) = 0; % set the background
%
clf;imagesc(impq)
cm = colormap('parula');
......@@ -47,10 +65,18 @@ for ff = 1:length(flist)
cticks = [clim(1)+1, mean([clim(1),mean(clim)]), mean(clim), mean([clim(2),mean(clim)]),clim(2)];
c.Ticks = cticks;
% c.TickLabels = {'-1','-0.5','0','0.5','1'}
c.TickLabels = {'0.0','0.25','0.5','0.75','1.0'};
c.Label.String = [channel_description ' SSF (dataset reference)'];
title([lf ' ' channel_description ' SSF [0,1] projection to (Y,time)'],'interpreter','none')
ticksSSF = linspace(erkClipLimits(1),erkClipLimits(2),5);
ticksSSF = arrayfun(@(x) num2str(x,2),ticksSSF,'UniformOutput',false);
c.TickLabels = ticksSSF;
c.Label.String = [channel_description ' SSF (dataset reference)'];
if ~isempty(fnames)
lf = fnames{ff};
end
hold on
yl = ylim();
plot([62,62],[yl(1),yl(2)],'--r','linewidth',2)
title([lf ' ' channel_description ' SSF projection to (Y/2,time)'],'interpreter','none')
xlabel('time (frames)')
ylabel('Y (max intensity projection along X)')
bAppend = ff>1;
......
......@@ -11,3 +11,4 @@ im = (im - clipLimits(1)) ./ (clipLimits(2) - clipLimits(1));
im = im2uint8(im);
im = max(im,1); % exclude 0 -- only for background
im(1,1) = 0; % make sure at least 1 pixel hits background
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment