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

Commit

Permalink
added a specific script for leona and fixed the "shift" problems
Browse files Browse the repository at this point in the history
  • Loading branch information
MPIBR-vollrathf committed Mar 15, 2017
1 parent 717abc9 commit 0a7c392
Show file tree
Hide file tree
Showing 4 changed files with 63 additions and 15 deletions.
4 changes: 2 additions & 2 deletions functions/CellSortLoadTrialsShiftCorrOnTrials.m
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,8 @@
shiftVector = findshift(reference, medianProj, 'iter');
%shift frames
for f = 1:size(data_r{i},3)
data_r{i}(:,:,f) = shift(data_r{i}(:,:,f),shiftVector);
data_g{i}(:,:,f) = shift(data_g{i}(:,:,f),shiftVector);
data_r{i}(:,:,f) = imtranslate(data_r{i}(:,:,f),shiftVector', 'linear');
data_g{i}(:,:,f) = imtranslate(data_g{i}(:,:,f),shiftVector', 'linear');
end
end
%put them in single arrays
Expand Down
4 changes: 2 additions & 2 deletions functions/CellSortShiftCorrection.m
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@
parfor r = 1:size(data_g, 3)
% waitbar(r/size(data_g, 3), wb,[num2str(r) ' of ' num2str(size(data_g, 3))]);
shiftVector = findshift(referenceFrame, data_r(:,:,r), mode);
data_r(:,:,r) = shift(data_r(:,:,r),shiftVector);
data_g(:,:,r) = shift(data_g(:,:,r),shiftVector);
data_r(:,:,r) = imtranslate(data_r(:,:,r),shiftVector', 'linear');
data_g(:,:,r) = imtranslate(data_g(:,:,r),shiftVector', 'linear');
end
disp('Finished Shift Correction!');
% close(wb);
Expand Down
66 changes: 55 additions & 11 deletions functions/trialAlignmentScript_Leona.m
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
close all
clc
%% Load Trial Files
inFolder = 'D:\data\session_1';
inFolder = 'D:\data\Leona';
outFolder = 'D:\data\out';
binningFactor = [1, 1, 2];
nSubIm = 10;
Expand Down Expand Up @@ -67,11 +67,7 @@
data_r(:,:,i) = circshift(data_r(:,:,i),[rs(i),cs(i)]);
data_g(:,:,i) = circshift(data_g(:,:,i),[rs(i),cs(i)]);
end

%binning
data_r = uint16(binning(data_r, binningFactor, 'mean'));
data_g = uint16(binning(data_g, binningFactor, 'mean'));


%save stacks in memory
cd(outFolder);
disp(['Write Files Of Folder ', folders(f).name ' in ' outFolder ' to RAM']);
Expand All @@ -98,17 +94,59 @@
shiftVector = findshift(reference, medianProj, 'iter');
%shift frames
for f = 1:size(data_r{i},3)
data_r{i}(:,:,f) = shift(data_r{i}(:,:,f),shiftVector);
data_g{i}(:,:,f) = shift(data_g{i}(:,:,f),shiftVector);
data_r{i}(:,:,f) = imtranslate(data_r{i}(:,:,f),shiftVector', 'linear');
data_g{i}(:,:,f) = imtranslate(data_g{i}(:,:,f),shiftVector', 'linear');
end
end
%% do another med align
for j =1:numberGreen
disp(['Working on Trial ' num2str(j)]);
[rs, cs] = medAlign(data_r{j}, nSubIm, 50, -inf);
temp_r = data_r{j};
temp_g = data_g{j};
%shift red and green channel
parfor f = 1:size(data_r{j},3)
temp_r(:,:,f) = circshift(temp_r(:,:,f),[rs(f),cs(f)]);
temp_g(:,:,f) = circshift(temp_g(:,:,f),[rs(f),cs(f)]);
end
data_r{j} = temp_r;
data_g{j} = temp_g;
end
%% do another shift correction for every frame, takes some time
reference = median(data_r{1},3);
numberGreen = size(data_g,2);
for i = 1:numberGreen
disp(['Working on Trial ' num2str(i)]);
for f = 1:size(data_r{i},3)
shiftVector = findshift(reference, data_r{j}(:,:,f), 'iter');
%shift frames

data_r{i}(:,:,f) = imtranslate(data_r{i}(:,:,f),shiftVector', 'linear');
data_g{i}(:,:,f) = imtranslate(data_g{i}(:,:,f),shiftVector', 'linear');
end
end
%% do another shift correctionto align trials to each other
reference = median(data_r{1},3);
numberGreen = size(data_g,2);
for i = 1:numberGreen
disp(['Working on Trial ' num2str(i)]);
medianProj = median(data_r{i},3);
shiftVector = findshift(reference, medianProj, 'iter');
%shift frames
for f = 1:size(data_r{i},3)
data_r{i}(:,:,f) = imtranslate(data_r{i}(:,:,f),shiftVector', 'linear');
data_g{i}(:,:,f) = imtranslate(data_g{i}(:,:,f),shiftVector', 'linear');
end
end
%% save tiff files
parfor i=1:numberGreen
%binning
data_r{i} = uint16(binning(data_r{i}, binningFactor, 'mean'));
data_g{i} = uint16(binning(data_g{i}, binningFactor, 'mean'));

%save tiff files
for i=1:numberGreen
saveastiff(data_r{i}, [outFolder filesep folders(i).name '_r.tif']);
saveastiff(data_g{i}, [outFolder filesep folders(i).name '_g.tif']);
end

%% generate quality plot
%put them in single arrays
numFrames = 0;
Expand Down Expand Up @@ -143,5 +181,11 @@
title('Quality Of Shift Correction');
xlabel('frame');
ylabel('std of frame');
%% export complete files
disp('Saving Big Data Set..');
options.big = true;
saveastiff(data_r_array, [outFolder filesep folders(i).name '_complete_r.tif'], options);
saveastiff(data_g_array, [outFolder filesep folders(i).name '_complete_g.tif'], options);
%% Finished
clear all
disp('Finished Complete Script!!!');
4 changes: 4 additions & 0 deletions main.m
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,10 @@

data_g = data_g(xInterval,yInterval,:);
data_r = data_r(xInterval,yInterval,:);
%% bin data again
secondBinningFactor = [1,1,1];
data_g = binning(data_g, secondBinningFactor, 'mean');
data_r = binning(data_r, secondBinningFactor, 'mean');
%% 1. PCA
%calculate PCAs
nPCs = 100;
Expand Down

0 comments on commit 0a7c392

Please sign in to comment.