Skip to content

Commit 4b6f077

Browse files
committed
Added function to create the velocity plots for Fig 2 of paper
1 parent 035d5c8 commit 4b6f077

2 files changed

Lines changed: 403 additions & 4 deletions

File tree

ReversalAnalysis.m

Lines changed: 257 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@
5454
spc1_10000_25 = [];
5555

5656
%% N2 Data:
57-
for trial = 1:10 %totalTrials_N2
57+
for trial = 1:totalTrials_N2
5858
if ismember(trial,[2943:2945])
5959
continue
6060
end
@@ -70,9 +70,12 @@
7070

7171
force = find(Forces == StimulusData.Magnitude,1);
7272
target = find(Targets == TrackingData.TargetLocation,1);
73-
if (isempty(force) || ~ismember(target,[1, 2]))
73+
if isempty(force)
7474
continue;
7575
end
76+
if ~ismember(target,[1, 2])
77+
continue;
78+
end
7679

7780
stim = stimNums{1,1}(trial);
7881

@@ -116,7 +119,7 @@
116119
end
117120

118121
%% spc1 Data
119-
for trials = 1:10 %totalTrials_spc1
122+
for trial = 1:totalTrials_spc1
120123

121124

122125
if (trial<2 || ~strcmp(expNames_spc1{1,1}{trial,1},expNames_spc1{1,1}{trial-1,1}))
@@ -159,6 +162,256 @@
159162

160163
end
161164

165+
%% Compile, Save Data:
166+
167+
rows_25 = max([length(n2_50_25),length(n2_100_25),...
168+
length(n2_500_25),length(n2_1000_25),...
169+
length(n2_5000_25),length(n2_10000_25)]);
170+
data_25 = NaN(rows_25,12);
171+
data_25(1:length(n2_50_25),1) = n2_50_25(:,1);
172+
data_25(1:length(n2_100_25),2) = n2_100_25(:,1);
173+
data_25(1:length(n2_500_25),3) = n2_500_25(:,1);
174+
data_25(1:length(n2_1000_25),4) = n2_1000_25(:,1);
175+
data_25(1:length(n2_5000_25),5) = n2_5000_25(:,1);
176+
data_25(1:length(n2_10000_25),6) = n2_10000_25(:,1);
177+
data_25(1:length(n2_50_25),7) = n2_50_25(:,2);
178+
data_25(1:length(n2_100_25),8) = n2_100_25(:,2);
179+
data_25(1:length(n2_500_25),9) = n2_500_25(:,2);
180+
data_25(1:length(n2_1000_25),10) = n2_1000_25(:,2);
181+
data_25(1:length(n2_5000_25),11) = n2_5000_25(:,2);
182+
data_25(1:length(n2_10000_25),12) = n2_10000_25(:,2);
183+
184+
185+
rows_35 = max([length(n2_50_35),length(n2_100_35),...
186+
length(n2_500_35),length(n2_1000_35),...
187+
length(n2_5000_35),length(n2_10000_35)]);
188+
data_35 = NaN(rows_35,12);
189+
data_35(1:length(n2_50_35),1) = n2_50_35(:,1);
190+
data_35(1:length(n2_100_35),2) = n2_100_35(:,1);
191+
data_35(1:length(n2_500_35),3) = n2_500_35(:,1);
192+
data_35(1:length(n2_1000_35),4) = n2_1000_35(:,1);
193+
data_35(1:length(n2_5000_35),5) = n2_5000_35(:,1);
194+
data_35(1:length(n2_10000_35),6) = n2_10000_35(:,1);
195+
data_35(1:length(n2_50_35),7) = n2_50_35(:,2);
196+
data_35(1:length(n2_100_35),8) = n2_100_35(:,2);
197+
data_35(1:length(n2_500_35),9) = n2_500_35(:,2);
198+
data_35(1:length(n2_1000_35),10) = n2_1000_35(:,2);
199+
data_35(1:length(n2_5000_35),11) = n2_5000_35(:,2);
200+
data_35(1:length(n2_10000_35),12) = n2_10000_35(:,2);
201+
202+
203+
rows_spc1 = max([length(spc1_50_25),length(spc1_100_25),...
204+
length(spc1_500_25),length(spc1_1000_25),...
205+
length(spc1_5000_25),length(spc1_10000_25)]);
206+
data_spc1 = NaN(rows_spc1,12);
207+
data_spc1(1:length(spc1_50_25),1) = spc1_50_25(:,1);
208+
data_spc1(1:length(spc1_100_25),2) = spc1_100_25(:,1);
209+
data_spc1(1:length(spc1_500_25),3) = spc1_500_25(:,1);
210+
data_spc1(1:length(spc1_1000_25),4) = spc1_1000_25(:,1);
211+
data_spc1(1:length(spc1_5000_25),5) = spc1_5000_25(:,1);
212+
data_spc1(1:length(spc1_10000_25),6) = spc1_10000_25(:,1);
213+
data_spc1(1:length(spc1_50_25),7) = spc1_50_25(:,2);
214+
data_spc1(1:length(spc1_100_25),8) = spc1_100_25(:,2);
215+
data_spc1(1:length(spc1_500_25),9) = spc1_500_25(:,2);
216+
data_spc1(1:length(spc1_1000_25),10) = spc1_1000_25(:,2);
217+
data_spc1(1:length(spc1_5000_25),11) = spc1_5000_25(:,2);
218+
data_spc1(1:length(spc1_10000_25),12) = spc1_10000_25(:,2);
219+
220+
221+
directoryDesktop = '/Users/emazzochette/Desktop';
222+
save(fullfile(directoryDesktop,'n2_25_data.mat'),'data_25');
223+
save(fullfile(directoryDesktop,'n2_35_data.mat'),'data_35');
224+
save(fullfile(directoryDesktop,'spc1_25_data.mat'),'data_spc1');
225+
226+
%% Make Plots
227+
forceLabels = {'50 nN', '100 nN', '500 nN', '1000 nN', '5000 nN', '10,000 nN'};
228+
close all
229+
figure(1)
230+
bp_25_deltaV = boxplot_pwhisker(data_25(:,1:6),{'labels',forceLabels,'colors','k'},10,90);
231+
set(bp_25_deltaV,'LineWidth',2.5)
232+
set(gca,'FontSize',16);
233+
ylim([0 6]);
234+
[xNew yNew] = MiriamAxes(gca,'xy');
235+
set(xNew,'XTickLabel',{num2str(sum(~isnan(data_25(:,1)))),...
236+
num2str(sum(~isnan(data_25(:,2)))), num2str(sum(~isnan(data_25(:,3)))),...
237+
num2str(sum(~isnan(data_25(:,4)))), num2str(sum(~isnan(data_25(:,5)))),...
238+
num2str(sum(~isnan(data_25(:,6))))})
239+
240+
figure(2)
241+
bp_25_revAcc = boxplot_pwhisker(data_25(:,7:12),{'labels',forceLabels,'colors','k'},10,90);
242+
set(bp_25_revAcc,'LineWidth',2.5)
243+
set(gca,'FontSize',16);
244+
ylim([ 0 2000]);
245+
[xNew yNew] = MiriamAxes(gca,'xy');
246+
set(xNew,'XTickLabel',{num2str(sum(~isnan(data_25(:,7)))),...
247+
num2str(sum(~isnan(data_25(:,8)))), num2str(sum(~isnan(data_25(:,9)))),...
248+
num2str(sum(~isnan(data_25(:,10)))), num2str(sum(~isnan(data_25(:,11)))),...
249+
num2str(sum(~isnan(data_25(:,12))))});
250+
251+
figure(3)
252+
bp_35_deltaV = boxplot_pwhisker(data_35(:,1:6),{'labels',forceLabels,'colors','k'},10,90);
253+
set(bp_35_deltaV,'LineWidth',2.5)
254+
set(gca,'FontSize',16);
255+
ylim([ 0 6]);
256+
[xNew yNew] = MiriamAxes(gca,'xy');
257+
set(xNew,'XTickLabel',{num2str(sum(~isnan(data_35(:,1)))),...
258+
num2str(sum(~isnan(data_35(:,2)))), num2str(sum(~isnan(data_35(:,3)))),...
259+
num2str(sum(~isnan(data_35(:,4)))), num2str(sum(~isnan(data_35(:,5)))),...
260+
num2str(sum(~isnan(data_35(:,6))))})
261+
262+
figure(4)
263+
bp_35_revAcc = boxplot_pwhisker(data_35(:,7:12),{'labels',forceLabels,'colors','k'},10,90);
264+
set(bp_35_revAcc,'LineWidth',2.5)
265+
set(gca,'FontSize',16);
266+
ylim([ 0 2000]);
267+
[xNew yNew] = MiriamAxes(gca,'xy');
268+
set(xNew,'XTickLabel',{num2str(sum(~isnan(data_35(:,7)))),...
269+
num2str(sum(~isnan(data_35(:,8)))), num2str(sum(~isnan(data_35(:,9)))),...
270+
num2str(sum(~isnan(data_35(:,10)))), num2str(sum(~isnan(data_35(:,11)))),...
271+
num2str(sum(~isnan(data_35(:,12))))});
272+
273+
figure(5)
274+
bp_spc1_deltaV = boxplot_pwhisker(data_spc1(:,1:6),{'labels',forceLabels,'colors','k'},10,90);
275+
set(bp_spc1_deltaV,'LineWidth',2.5)
276+
set(gca,'FontSize',16);
277+
ylim([ 0 6]);
278+
[xNew yNew] = MiriamAxes(gca,'xy');
279+
set(xNew,'XTickLabel',{num2str(sum(~isnan(data_spc1(:,1)))),...
280+
num2str(sum(~isnan(data_spc1(:,2)))), num2str(sum(~isnan(data_spc1(:,3)))),...
281+
num2str(sum(~isnan(data_spc1(:,4)))), num2str(sum(~isnan(data_spc1(:,5)))),...
282+
num2str(sum(~isnan(data_spc1(:,6))))})
283+
284+
figure(6)
285+
bp_spc1_revAcc = boxplot_pwhisker(data_spc1(:,7:12),{'labels',forceLabels,'colors','k'},10,90);
286+
set(bp_spc1_revAcc,'LineWidth',2.5)
287+
set(gca,'FontSize',16);
288+
ylim([ 0 2000]);
289+
[xNew yNew] = MiriamAxes(gca,'xy');
290+
set(xNew,'XTickLabel',{num2str(sum(~isnan(data_spc1(:,7)))),...
291+
num2str(sum(~isnan(data_spc1(:,8)))), num2str(sum(~isnan(data_spc1(:,9)))),...
292+
num2str(sum(~isnan(data_spc1(:,10)))), num2str(sum(~isnan(data_spc1(:,11)))),...
293+
num2str(sum(~isnan(data_spc1(:,12))))});
294+
295+
%% Anova analysis
296+
297+
directoryDesktop = '/Users/emazzochette/Desktop';
298+
load(fullfile(directoryDesktop,'n2_25_data.mat'),'data_25');
299+
load(fullfile(directoryDesktop,'n2_35_data.mat'),'data_35');
300+
load(fullfile(directoryDesktop,'spc1_25_data.mat'),'data_spc1');
301+
302+
303+
treatments = {'Force','Target'};
304+
% deltaV metric:
305+
totalRows = max( size(data_25(:,1:6),1), size(data_35(:,1:6),1));
306+
forceLabels_25(1:size(data_25(:,1:6),1),1) = {'50'};
307+
forceLabels_25(1*size(data_25(:,1:6),1)+1:2*size(data_25(:,1:6),1),1) = {'100'};
308+
forceLabels_25(2*size(data_25(:,1:6),1)+1:3*size(data_25(:,1:6),1),1) = {'500'};
309+
forceLabels_25(3*size(data_25(:,1:6),1)+1:4*size(data_25(:,1:6),1),1) = {'1000'};
310+
forceLabels_25(4*size(data_25(:,1:6),1)+1:5*size(data_25(:,1:6),1),1) = {'5000'};
311+
forceLabels_25(5*size(data_25(:,1:6),1)+1:6*size(data_25(:,1:6),1),1) = {'10000'};
312+
forceLabels_35(1:size(data_35(:,1:6),1),1) = {'50'};
313+
forceLabels_35(1*size(data_35(:,1:6),1)+1:2*size(data_35(:,1:6),1),1) = {'100'};
314+
forceLabels_35(2*size(data_35(:,1:6),1)+1:3*size(data_35(:,1:6),1),1) = {'500'};
315+
forceLabels_35(3*size(data_35(:,1:6),1)+1:4*size(data_35(:,1:6),1),1) = {'1000'};
316+
forceLabels_35(4*size(data_35(:,1:6),1)+1:5*size(data_35(:,1:6),1),1) = {'5000'};
317+
forceLabels_35(5*size(data_35(:,1:6),1)+1:6*size(data_35(:,1:6),1),1) = {'10000'};
318+
forceLabels = [forceLabels_25; forceLabels_35];
319+
320+
targetLabels(1:length(forceLabels_25),1) = {'25'};
321+
targetLabels(length(forceLabels_25)+1:length(forceLabels_25)+length(forceLabels_35),1) = {'35'};
322+
323+
deltaVData = [data_25(:,1); data_25(:,2); data_25(:,3);...
324+
data_25(:,4); data_25(:,5); data_25(:,6);...
325+
data_35(:,1); data_35(:,2); data_35(:,3);...
326+
data_35(:,4); data_35(:,5); data_35(:,6)];
327+
328+
[P,T,STATS,TERMS] = anovan(deltaVData,{forceLabels targetLabels},'model',2,'varnames',treatments,'sstype',3);
329+
330+
331+
%%
332+
treatments_strain = {'Force','Strain'};
333+
% deltaV metric:
334+
totalRows = max( size(data_25(:,1:6),1), size(data_spc1(:,1:6),1));
335+
forceLabels_25(1:size(data_25(:,1:6),1),1) = {'50'};
336+
forceLabels_25(1*size(data_25(:,1:6),1)+1:2*size(data_25(:,1:6),1),1) = {'100'};
337+
forceLabels_25(2*size(data_25(:,1:6),1)+1:3*size(data_25(:,1:6),1),1) = {'500'};
338+
forceLabels_25(3*size(data_25(:,1:6),1)+1:4*size(data_25(:,1:6),1),1) = {'1000'};
339+
forceLabels_25(4*size(data_25(:,1:6),1)+1:5*size(data_25(:,1:6),1),1) = {'5000'};
340+
forceLabels_25(5*size(data_25(:,1:6),1)+1:6*size(data_25(:,1:6),1),1) = {'10000'};
341+
forceLabels_spc1(1:size(data_spc1(:,1:6),1),1) = {'50'};
342+
forceLabels_spc1(1*size(data_spc1(:,1:6),1)+1:2*size(data_spc1(:,1:6),1),1) = {'100'};
343+
forceLabels_spc1(2*size(data_spc1(:,1:6),1)+1:3*size(data_spc1(:,1:6),1),1) = {'500'};
344+
forceLabels_spc1(3*size(data_spc1(:,1:6),1)+1:4*size(data_spc1(:,1:6),1),1) = {'1000'};
345+
forceLabels_spc1(4*size(data_spc1(:,1:6),1)+1:5*size(data_spc1(:,1:6),1),1) = {'5000'};
346+
forceLabels_spc1(5*size(data_spc1(:,1:6),1)+1:6*size(data_spc1(:,1:6),1),1) = {'10000'};
347+
forceLabels = [forceLabels_25; forceLabels_spc1];
348+
349+
strainLabels(1:length(forceLabels_25),1) = {'N2'};
350+
strainLabels(length(forceLabels_25)+1:length(forceLabels_25)+length(forceLabels_spc1),1) = {'spc1'};
351+
352+
deltaVData_strain = [data_25(:,1); data_25(:,2); data_25(:,3);...
353+
data_25(:,4); data_25(:,5); data_25(:,6);...
354+
data_spc1(:,1); data_spc1(:,2); data_spc1(:,3);...
355+
data_spc1(:,4); data_spc1(:,5); data_spc1(:,6)];
356+
357+
[P,T,STATS,TERMS] = anovan(deltaVData_strain,{forceLabels strainLabels},'model',2,'varnames',treatments_strain,'sstype',3);
358+
359+
%%
360+
361+
treatments = {'Force','Target'};
362+
% deltaV metric:
363+
totalRows = max( size(data_25(:,1:6),1), size(data_35(:,1:6),1));
364+
forceLabels_25(1:size(data_25(:,1:6),1),1) = {'50'};
365+
forceLabels_25(1*size(data_25(:,1:6),1)+1:2*size(data_25(:,1:6),1),1) = {'100'};
366+
forceLabels_25(2*size(data_25(:,1:6),1)+1:3*size(data_25(:,1:6),1),1) = {'500'};
367+
forceLabels_25(3*size(data_25(:,1:6),1)+1:4*size(data_25(:,1:6),1),1) = {'1000'};
368+
forceLabels_25(4*size(data_25(:,1:6),1)+1:5*size(data_25(:,1:6),1),1) = {'5000'};
369+
forceLabels_25(5*size(data_25(:,1:6),1)+1:6*size(data_25(:,1:6),1),1) = {'10000'};
370+
forceLabels_35(1:size(data_35(:,1:6),1),1) = {'50'};
371+
forceLabels_35(1*size(data_35(:,1:6),1)+1:2*size(data_35(:,1:6),1),1) = {'100'};
372+
forceLabels_35(2*size(data_35(:,1:6),1)+1:3*size(data_35(:,1:6),1),1) = {'500'};
373+
forceLabels_35(3*size(data_35(:,1:6),1)+1:4*size(data_35(:,1:6),1),1) = {'1000'};
374+
forceLabels_35(4*size(data_35(:,1:6),1)+1:5*size(data_35(:,1:6),1),1) = {'5000'};
375+
forceLabels_35(5*size(data_35(:,1:6),1)+1:6*size(data_35(:,1:6),1),1) = {'10000'};
376+
forceLabels = [forceLabels_25; forceLabels_35];
377+
378+
targetLabels(1:length(forceLabels_25),1) = {'25'};
379+
targetLabels(length(forceLabels_25)+1:length(forceLabels_25)+length(forceLabels_35),1) = {'35'};
380+
revAccData = [data_25(:,7); data_25(:,8); data_25(:,9);...
381+
data_25(:,10); data_25(:,11); data_25(:,12);...
382+
data_35(:,7); data_35(:,8); data_35(:,9);...
383+
data_35(:,10); data_35(:,11); data_35(:,12)];
384+
385+
[P,T,STATS,TERMS] = anovan(revAccData,{forceLabels targetLabels},'model',2,'varnames',treatments,'sstype',3);
386+
387+
388+
%%
389+
treatments_strain = {'Force','Strain'};
390+
% deltaV metric:
391+
totalRows = max( size(data_25(:,1:6),1), size(data_spc1(:,1:6),1));
392+
forceLabels_25(1:size(data_25(:,1:6),1),1) = {'50'};
393+
forceLabels_25(1*size(data_25(:,1:6),1)+1:2*size(data_25(:,1:6),1),1) = {'100'};
394+
forceLabels_25(2*size(data_25(:,1:6),1)+1:3*size(data_25(:,1:6),1),1) = {'500'};
395+
forceLabels_25(3*size(data_25(:,1:6),1)+1:4*size(data_25(:,1:6),1),1) = {'1000'};
396+
forceLabels_25(4*size(data_25(:,1:6),1)+1:5*size(data_25(:,1:6),1),1) = {'5000'};
397+
forceLabels_25(5*size(data_25(:,1:6),1)+1:6*size(data_25(:,1:6),1),1) = {'10000'};
398+
forceLabels_spc1(1:size(data_spc1(:,1:6),1),1) = {'50'};
399+
forceLabels_spc1(1*size(data_spc1(:,1:6),1)+1:2*size(data_spc1(:,1:6),1),1) = {'100'};
400+
forceLabels_spc1(2*size(data_spc1(:,1:6),1)+1:3*size(data_spc1(:,1:6),1),1) = {'500'};
401+
forceLabels_spc1(3*size(data_spc1(:,1:6),1)+1:4*size(data_spc1(:,1:6),1),1) = {'1000'};
402+
forceLabels_spc1(4*size(data_spc1(:,1:6),1)+1:5*size(data_spc1(:,1:6),1),1) = {'5000'};
403+
forceLabels_spc1(5*size(data_spc1(:,1:6),1)+1:6*size(data_spc1(:,1:6),1),1) = {'10000'};
404+
forceLabels = [forceLabels_25; forceLabels_spc1];
405+
406+
strainLabels(1:length(forceLabels_25),1) = {'N2'};
407+
strainLabels(length(forceLabels_25)+1:length(forceLabels_25)+length(forceLabels_spc1),1) = {'spc1'};
408+
409+
revAccData_strain = [data_25(:,7); data_25(:,8); data_25(:,9);...
410+
data_25(:,10); data_25(:,11); data_25(:,12);...
411+
data_spc1(:,7); data_spc1(:,8); data_spc1(:,9);...
412+
data_spc1(:,10); data_spc1(:,11); data_spc1(:,12)];
413+
414+
[P,T,STATS,TERMS] = anovan(revAccData_strain,{forceLabels strainLabels},'model',2,'varnames',treatments_strain,'sstype',3);
415+
162416

163417

164-

0 commit comments

Comments
 (0)