forked from restrepd-zz/CaImAnDR
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathAll_mice_lda_reversal_recalc.m~
172 lines (139 loc) · 5.77 KB
/
All_mice_lda_reversal_recalc.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
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
close all
clear all
no_mice=3;
%mmG7f09 processed
outFileName='20180608_mmG7f09_Cerebellum_lda.mat';
outPathName='/Users/restrepd/Documents/Projects/MOM slidebook/mmG7f09/20180608_mmG7f09_Cerebellum new analysis/';
load([outPathName outFileName])
handles_par_per_mouse(1).handles_par=handles_par;
handles_par_per_mouse(1).handles_sig=handles_sig;
%mmPVG04 processed
outFileName='20180917and19_mmPVG04_Cerebellum_lda.mat';
outPathName='/Users/restrepd/Documents/Projects/MOM slidebook/mmPVG04/20180917_mmPVG04_Cerebellum new analysis/';
load([outPathName outFileName])
handles_par_per_mouse(2).handles_par=handles_par;
handles_par_per_mouse(2).handles_sig=handles_sig;
%mmG06 processed
outFileName='20180419and23_mmG06_cerebellum_lda.mat';
outPathName='/Users/restrepd/Documents/Projects/MOM slidebook/mmG06/20180419_mmG06_cerebellum new analysis/';
load([outPathName outFileName])
handles_par_per_mouse(3).handles_par=handles_par;
handles_par_per_mouse(3).handles_sig=handles_sig;
edges=0:2.5:100;
rand_offset=0.8;
figNo=0;
winNo=1;
figNo=figNo+1;
try
close(figNo)
catch
end
hFig = figure(figNo);
set(hFig, 'units','normalized','position',[.25 .2+0.1*(winNo-1) .5 .5])
hold on
x_val=0;
%Percent correct before reversal
sample_no=1;
for mouseNo=1:no_mice
x_val=x_val+1;
bar(x_val,mean(handles_par_per_mouse(mouseNo).handles_sig.win(1).discriminant_correct),'FaceColor',[1 0 0])
plot(x_val*ones(1,length(handles_par_per_mouse(mouseNo).handles_sig.win(1).discriminant_correct)),handles_par_per_mouse(mouseNo).handles_sig.win(1).discriminant_correct,'o','MarkerFaceColor','k','MarkerEdgeColor','k','MarkerSize',2)
plot(x_val,mean(handles_par_per_mouse(mouseNo).handles_sig.win(1).discriminant_correct),'ok','MarkerFaceColor','k')
end
x_val=x_val+1;
%Percent correct before reversal (shufffled)
sample_no=2;
for mouseNo=1:no_mice
x_val=x_val+1;
bar(x_val,mean(handles_par_per_mouse(mouseNo).handles_sig.win(3).discriminant_correct),'FaceColor',[0 0 1])
drgViolinPoint(handles_par_per_mouse(mouseNo).handles_sig.win(3).discriminant_correct,edges,x_val,rand_offset,'k','k',2);
end
x_val=x_val+3;
%Percent correct after reversal
sample_no=3;
for mouseNo=1:no_mice
x_val=x_val+1;
bar(x_val,mean(handles_par_per_mouse(mouseNo).handles_sig.win(4).discriminant_correct),'FaceColor',[1 0 0])
plot(x_val*ones(1,length(handles_par_per_mouse(mouseNo).handles_sig.win(4).discriminant_correct)),handles_par_per_mouse(mouseNo).handles_sig.win(4).discriminant_correct,'o','MarkerFaceColor','k','MarkerEdgeColor','k','MarkerSize',2)
plot(x_val,mean(handles_par_per_mouse(mouseNo).handles_sig.win(4).discriminant_correct),'ok','MarkerFaceColor','k')
end
x_val=x_val+1;
%Percent correct after reversal (shuffled)
sample_no=4;
for mouseNo=1:no_mice
x_val=x_val+1;
bar(x_val,mean(handles_par_per_mouse(mouseNo).handles_sig.win(6).discriminant_correct),'FaceColor',[0 0 1])
drgViolinPoint(handles_par_per_mouse(mouseNo).handles_sig.win(6).discriminant_correct,edges,x_val,rand_offset,'k','k',2);
end
xlim([0 18])
ylim([30 110])
title(['Percent correct in decoding analysis for window No' num2str(winNo)])
text(3,107.5,'Forward','FontSize',18)
plot([0.5 7.5],[105 105],'-k','LineWidth',3)
plot([10.5 17.5],[105 105],'-k','LineWidth',3)
text(13,107.5,'Reversed','FontSize',18)
ylabel('Percent correct')
text(0.5,102,'Original','FontSize',18,'Color','r')
text(4.5,102,'Shuffled','FontSize',18,'Color','b')
text(10.5,102,'Original','FontSize',18,'Color','b')
text(14.5,102,'Shuffled','FontSize',18,'Color','r')
samples_to_compare=[1 2 3 4]
sample_description{1}='Original forward';
sample_description{2}='Shuffled forward';
sample_description{3}='Original reversed';
sample_description{4}='Shuffled reversed';
winNo=1
p_vals_LDA=0;
no_comps=0;
fprintf(1, ['\n\np values for dFF for window %d\n\n'],winNo);
glm_LDA=[];
glm_ii=0;
LDAs=[];
LDAs_ii=0;
these_LDAs=[];
for mouseNo=1:3
these_LDAs(mouseNo)= mean(handles_par_per_mouse(mouseNo).handles_sig.win(1).discriminant_correct);
end
glm_LDA.data(glm_ii+1:glm_ii+3)=these_LDAs;
glm_LDA.orig_shuffled(glm_ii+1:glm_ii+3)=1;
glm_LDA.fwd_rev(glm_ii+1:glm_ii+3)=1;
LDAs_ii=LDAs_ii+1;
LDAs(LDAs_ii).data=these_LDAs;
LDAs(LDAs_ii).description='Odor 1 Forward';
glm_LDA.orig_shuffled(glm_ii+1:glm_ii+3)=2;
glm_LDA.fwd_rev(glm_ii+1:glm_ii+3)=1;
LDAs(LDAs_ii).description='Odor 2 Forward';
glm_LDA.orig_shuffled(glm_ii+1:glm_ii+3)=1;
glm_LDA.fwd_rev(glm_ii+1:glm_ii+3)=2;
LDAs(LDAs_ii).description='Odor 1 Reverse';
glm_LDA.orig_shuffled(glm_ii+1:glm_ii+3)=2;
glm_LDA.fwd_rev(glm_ii+1:glm_ii+3)=2;
LDAs(LDAs_ii).description='Odor 2 Reverse';
glm_ii=glm_ii+3;
for sampleNo2=sampleNo1+1:4
no_comps=no_comps+1;
LDA1=[];
LDA2=[];
for mouseNo=1:3
sample_no=samples_to_compare(sampleNo1);
LDA1(mouseNo)= mean(handles_par_per_mouse(mouseNo).handles_sig.win(winNo).disc_corr(sample_no).discriminant_correct);
sample_no=samples_to_compare(sampleNo2);
LDA2(mouseNo)= mean(handles_par_per_mouse(mouseNo).handles_sig.win(winNo).disc_corr(sample_no).discriminant_correct);
end
[h p_vals_LDA(no_comps)]=ttest2(LDA1,LDA2);
fprintf(1, ['p values ranksum for window %d ' sample_description{sampleNo1} ' vs. ' sample_description{sampleNo2} ' =%d\n'],winNo,p_vals_LDA(no_comps));
end
pFDRLDA=drsFDRpval(p_vals_LDA);
fprintf(1, ['pFDR for window %d = %d\n\n'],winNo, pFDRLDA);
fprintf(1, ['\n\nglm for LDA for window' num2str(winNo) '\n'])
tbl = table(glm_LDA.data',glm_LDA.orig_shuffled',glm_LDA.fwd_rev',...
'VariableNames',{'per_corr_LDA','orig_shuffled','fwd_rev'});
mdl = fitglm(tbl,'per_corr_LDA~orig_shuffled+fwd_rev+orig_shuffled*fwd_rev'...
,'CategoricalVars',[2,3])
fprintf(1, ['\n\nRanksum or t-test p values for LDA for window ' num2str(winNo) '\n'])
try
[output_data] = drgMutiRanksumorTtest(dFFs);
fprintf(1, '\n\n')
catch
end
pffft=1;