-
Notifications
You must be signed in to change notification settings - Fork 11
/
final_table_mouse.m
81 lines (62 loc) · 2.47 KB
/
final_table_mouse.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
function final_table_mouse(path1,ext,toolbox,channels)
%path1 = '*/dotdotdot/output';
%ext = 'Mouse*.czi';
%toolbox = '*/dotdotdot/toolbox';
%channels = {'Cy5','DsRed','EGFP','DAPI'};
addpath(genpath(toolbox))
myfiles = dir(fullfile(path1,ext));
ROI = table;
Img = table;
disp([path1,' : ',num2str(numel(myfiles))])
fprintf('\n')
for fn = 1:numel(myfiles)
filename = fullfile(myfiles(fn).folder,myfiles(fn).name(1:end-4));
load([filename,'_totaldots.mat'])
load([filename,'_dots_of_ROI.mat'])
load([filename,'_img.mat'])
channel = fieldnames(img);
if ~isempty(setdiff(channels,channel))
disp('channel names doesnt match')
setdiff(channel,channels)
disp(filename)
continue
end
name = myfiles(fn).name(1:end-4);
Img1 = cell2table({name});
Da = find(contains(channels,'DAPI'));
names = repmat({name},size(excel_totaldots.(channels{Da}),1),1);
RVolume = excel_totaldots.(channels{Da}).Volume;
ROI1 = [cell2table(names),table(RVolume)];
for ch = 1:numel(channels)
eval(['PO_',channels{ch},' = sum(excel_totaldots.(channels{ch}).Volume);']);
eval(['DO_',channels{ch},' = numel(excel_totaldots.(channels{ch}));']);
eval(['IO_',channels{ch},' = mean(excel_totaldots.(channels{ch}).MeanIntensity);']);
eval(['MI_',channels{ch},' = mean(img.(channels{ch})(:));']);
eval(['Img1 = [Img1, table(PO_',channels{ch},',DO_',channels{ch},',IO_',channels{ch},',MI_',channels{ch},')];']);
end
Img = [Img;Img1];
for ch = 1:numel(channels)
if ch == Da
continue
end
O = cellfun(@(x) intersect(x,cat(1,excel_totaldots.(channels{ch}).VoxelIdxList{:})), excel_totaldots.(channels{Da}).VoxelIdxList, 'UniformOutput',false);
eval(['O_',channels{ch},'=O;']);
P = cellfun(@(x) numel(x),O);
eval(['P_',channels{ch},'=P;']);
MI_P = cellfun(@(x) mean(img.(channels{ch})(x)), O);
eval(['MI_P_',channels{ch},'=MI_P;']);
D = excel_dots_of_ROI.(channels{ch}).count;
eval(['D_',channels{ch},'=D;']);
V = cellfun(@(x) mean(x),excel_dots_of_ROI.(channels{ch}).Volume);
eval(['V_',channels{ch},'=V;']);
MI_D = cellfun(@(x) mean(cellfun(@(y) mean(y),x)),excel_dots_of_ROI.(channels{ch}).Intensity);
eval(['MI_D_',channels{ch},'=MI_D;']);
eval(['ROI1 = [ROI1,table(P_',channels{ch},',MI_P_',channels{ch},',D_',channels{ch},',V_',channels{ch},',MI_D_',channels{ch},')];']);
end
ROI = [ROI;ROI1];
clearex myfiles ROI fn path1 Img channels
disp(['file ',num2str(fn),' completed'])
end
writetable(ROI,fullfile(path1,'long_data.csv'))
writetable(Img,fullfile(path1,'man.csv'))
end