-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsave_data.m
111 lines (97 loc) · 5.29 KB
/
save_data.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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
function [] = save_data()
%% save_data saves data as an xlsx file
global info
global vals
info.analysis_selection = info.analysis_selection(~contains(info.analysis_selection, 'No Plots')); %Remove 'No plots' cell if present
if any(contains(info.analysis_selection, 'Final location relative to odor'))
info.analysis_selection = info.analysis_selection(~contains(info.analysis_selection, 'Final location relative to odor')); %Remove placeholder
info.analysis_selection = [info.analysis_selection, ...
'Final_Location_Relative_to_Control_cm', 'Final_Location_Relative_to_Experimental_cm'];
end
if any(contains(info.analysis_selection, 'Time in Odor Zones'))
info.analysis_selection = info.analysis_selection(~contains(info.analysis_selection, 'Time in Odor Zones')); %Remove placeholder
info.analysis_selection = [info.analysis_selection, ...
'Time_in_Control_Zone_sec', 'Time_in_Experimental_Zone_sec'];
end
if any(contains(info.analysis_selection, 'Distance up/down gradient'))
info.analysis_selection = info.analysis_selection(~contains(info.analysis_selection, 'Distance up/down gradient')); %Remove placeholder
info.analysis_selection = [info.analysis_selection, ...
'Distance_up_gradient', 'Distance_down_gradient'];
end
if any(contains(info.analysis_selection, 'Time up/down gradient'))
info.analysis_selection = info.analysis_selection(~contains(info.analysis_selection, 'Time up/down gradient')); %Remove placeholder
info.analysis_selection = [info.analysis_selection, ...
'Time_up_gradient', 'Time_down_gradient'];
end
if any(contains(info.analysis_selection, 'Min/Max value on gradient'))
info.analysis_selection = info.analysis_selection(~contains(info.analysis_selection, 'Min/Max value on gradient')); %Remove placeholder
info.analysis_selection = [info.analysis_selection, ...
'Max_gradient', 'Min_gradient'];
end
if any(contains(info.analysis_selection, 'Starting Position on Gradient'))
info.analysis_selection = info.analysis_selection(~contains(info.analysis_selection, 'Starting Position on Gradient')); %Remove placeholder
info.analysis_selection = [info.analysis_selection, ...
'Gradient_start'];
end
if any(contains(info.analysis_selection, 'Number of Worms in Zone(s)'))
info.analysis_selection = info.analysis_selection(~contains(info.analysis_selection, 'Number of Worms in Zone(s)')); %Remove placeholder
TT=table(vals.nfinal.C, vals.nfinal.E,'VariableNames', ...
{'number_of_worms_ending_in_Control_Zone', 'number_of_worms_ending_in_Experimenal_Zone'});
writetable(TT,fullfile(info.pathstr,info.name, strcat(info.name,'_Ctrls_vs_Exp_count.xlsx')));
end
if any(contains(info.analysis_selection, 'Number of Worms Higher/Lower on Gradient'))
info.analysis_selection = info.analysis_selection(~contains(info.analysis_selection, 'Number of Worms Higher/Lower on Gradient')); %Remove placeholder
TT=table(vals.fN, vals.fP, vals.fE, 'VariableNames', ...
{'number_of_worms_ending_down_gradient', 'number_of_worms_ending_up_gradient', 'number_of_worms_in_thresholded_exclusion_zone'});
writetable(TT,fullfile(info.pathstr,info.name, strcat(info.name,'_ending_category_count.xlsx')));
end
if any(contains(info.analysis_selection, 'Instant Speed'))
info.analysis_selection = info.analysis_selection(~contains(info.analysis_selection, 'Instant Speed'));
TT=table(vals.instantspeed,'VariableNames',{'InstantSpeed'});
writetable(TT,fullfile(info.pathstr,info.name,strcat(info.name,'_instantspeed.xlsx')));
end
if any(contains(info.analysis_selection, 'Travel Path'))
info.analysis_selection = info.analysis_selection(~contains(info.analysis_selection, 'Travel Path'));
TT=table(vals.travelpath,'VariableNames',{'TravelPath'});
writetable(TT,fullfile(info.pathstr,info.name,strcat(info.name,'_travelpath.xlsx')));
end
for X = 1:length(info.analysis_selection)
switch info.analysis_selection{X}
case 'Distance Ratio'
T(:,X) = vals.distanceratio';
case 'Mean Speed'
T(:,X) = vals.meanspeed';
case 'Pathlength'
T(:,X) = vals.pathlength';
case 'Final location in gradient'
T(:,X) = vals.finalgradientval';
case 'Change in gradient location'
T(:,X) = vals.gradientdiff';
case 'Final_Location_Relative_to_Control_cm'
T(:,X) = vals.EndLoc.Cport';
case 'Final_Location_Relative_to_Experimental_cm'
T(:,X) = vals.EndLoc.Eport';
case 'Time_in_Control_Zone_sec'
T(:,X) = vals.zonetime.C';
case 'Time_in_Experimental_Zone_sec'
T(:,X) = vals.zonetime.E';
case 'Distance_up_gradient'
T(:,X) = vals.sumUp';
case 'Distance_down_gradient'
T(:,X) = vals.sumDown';
case 'Time_up_gradient'
T(:,X) = vals.timeUp';
case 'Time_down_gradient'
T(:,X) = vals.timeDown';
case 'Max_gradient'
T(:,X) = vals.gradientMax;
case 'Min_gradient'
T(:,X) = vals.gradientMin;
case 'Gradient_start'
T(:,X) = vals.gradientStart;
end
end
headers = strrep(info.analysis_selection, ' ', '_');
T = array2table(T, 'VariableNames', headers);
writetable(T,fullfile(info.pathstr,info.name,strcat(info.name,'_results.xlsx')));
end