Skip to content
This repository has been archived by the owner. It is now read-only.

Commit

Permalink
deleted iterative shift correction and implemented cross correlation
Browse files Browse the repository at this point in the history
  • Loading branch information
MPIBR-vollrathf committed Sep 20, 2016
1 parent 9fdec86 commit 9f5231e
Show file tree
Hide file tree
Showing 4 changed files with 119 additions and 23 deletions.
73 changes: 73 additions & 0 deletions CellSortXCorr.m
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
function CellSortXCorr(nSubIm, nImages, m, n)
% nSubIm = 10;
% nImages = 1344;
% m=14;
% n=24;

for k = m:n;
% Compose image stack from filenames
folder = sprintf('/storage/letz/Data/Data/Elisabeth_Abs/75EA/habituation/%u', k)
if exist(folder) == 0
continue
end
folder_corr = '/storage/letz/Data/Data/Elisabeth_Abs/75EA/habituation/corrected';

file_image_red = [folder, 'ChanB_0001_0001_0001_0001.tif'];
filePrefix_red = 'ChanB_0001_0001_0001_';

file_image_green = [folder, 'ChanA_0001_0001_0001_0001.tif'];
filePrefix_green = 'ChanA_0001_0001_0001_';

filename_red = sprintf([folder,filesep,filePrefix_red,'%04u.tif'],1);
im_red = imread(filename_red);

filename_green = sprintf([folder,filesep,filePrefix_green,'%04u.tif'],1);
im_green = imread(filename_green);

%preallocate data variable
allIm_red = zeros(size(im_red,1),size(im_red,2),nImages);
%read tiffs
for i = 1:nImages
filename_red = sprintf([folder,filesep,filePrefix_red,'%04u.tif'],i);
allIm_red(:,:,i) = readTiffNoStack(filename_red);
end

%preallocate data variable
allIm_green = zeros(size(im_green,1),size(im_green,2),nImages);
%read tiffs
for i = 1:nImages
filename_green = sprintf([folder,filesep,filePrefix_green,'%04u.tif'],i);
allIm_green(:,:,i) = readTiffNoStack(filename_green);
end


[rs, cs] = medAlign(allIm_red, nSubIm, 50, -inf);

registered = zeros(size(allIm_red,1),size(allIm_red,2),size(allIm_red,3), class(allIm_red));
parfor i = 1:nImages
registered(:,:,i) = circshift(allIm_red(:,:,i),[rs(i),cs(i)]);
end

data = binning(registered,[1,1,2],'mean');

filename = sprintf([folder_corr,filesep,'red_%u.tiff'],k);
for j=1:(nImages/2)
imwrite(uint16(data(:,:,j)),filename, 'tiff','WriteMode','append');
end



%align green channel with parameters from red alignment
parfor i = 1:nImages
registered(:,:,i) = circshift(allIm_green(:,:,i),[rs(i),cs(i)]);
end

data = binning(registered,[1,1,2],'mean');

filename = sprintf([folder_corr,filesep,'green_%u.tiff'],k);
for j=1:(nImages/2)
imwrite(uint16(data(:,:,j)),filename, 'tiff','WriteMode','append');
end


end
33 changes: 10 additions & 23 deletions main.m
Original file line number Diff line number Diff line change
@@ -1,29 +1,16 @@
%% load and prepare all single tiffs
%importing
[data_g, data_r] = CellSortLoadSingleFiles('ChanA_*_*.tif', 'ChanB_*_*.tif');
%% matVis
matVis(data_r);
%% get ref frame for shift correction
interval = 1:20;
refFrame = cast(mean(data_r(:,:,interval), 3), class(data_r));
matVis(refFrame);
%% shiftCorrection
%generates shift corrected files for the green and red channels, needs
%DIPlib (available for free)
[data_g, data_r] = CellSortShiftCorrection(data_g, data_r, refFrame);
%temporal binning
binningFactor = [1 1 2]; %x, y, t
[data_g, data_r] = CellSortTemporalBinning(data_g, data_r, binningFactor);

fn = 'processedData.mat';
save(fn, 'data_g', 'data_r', '-v7.3');
%% load files and do cross correlation alignment
nSubIm = 10;
nImages = 1344;
m=14;
n=24;
CellSortXCorr(nSubIm, nImages, m, n);
%% load files
%if you haven't used the shiftCorrection you have to load the already processed files
fn= 'processedData.mat';
load(fn);
fn_green = 'data_g.tif';
fn_red = 'data_r.tif';
data_g = readTiff(fn_green);
data_r = readTiff(fn_red);
%% 1. PCA
%calculate PCAs
fn_green = 'processedData.mat';
nPCs = 100;
flims = [];
dSamp = [1 1]; %temporal, spatial downsampling
Expand Down
4 changes: 4 additions & 0 deletions readTiffNoStack.m
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
function data = readTiffNoStack(filename)
t_g = Tiff(filename, 'r');
data = t_g.read();
end
32 changes: 32 additions & 0 deletions testOfDifferentTifImports.m
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
fn = 'test.tif';

tic;

for i=1:5000
data = readTiff(fn);
end

timeReadTiff = toc;

tic;
for i=1:5000
data = imread(fn);
end

timeImread = toc;


tic;
for i=1:5000
data = readTiffNoStack(fn);
end

timeNoStack = toc;

tic;
for i=1:5000
t_g = Tiff(fn, 'r');
data = t_g.read();
end

timeNoStackNoFunction = toc;

0 comments on commit 9f5231e

Please sign in to comment.