|
@@ -0,0 +1,453 @@
|
|
|
+%Plotting decoding analysis
|
|
|
+clear all;
|
|
|
+load('UnitMdlDSSucrose.mat')
|
|
|
+load('UnitMdlDSShuffSucrose.mat')
|
|
|
+load('UnitMdlPavSucrose.mat')
|
|
|
+load('UnitMdlPavShuffSucrose.mat')
|
|
|
+if ~exist('RPPSall'),load('RPPSall.mat'); end
|
|
|
+if ~exist('RPSall'),load('RPSall.mat'); end
|
|
|
+load('UnitMdlDSAlcohol.mat')
|
|
|
+load('UnitMdlDSShuffAlcohol.mat')
|
|
|
+load('UnitMdlPavAlcohol.mat')
|
|
|
+load('UnitMdlPavShuffAlcohol.mat')
|
|
|
+if ~exist('RvppasALL'),load('RvppasALL.mat'); end
|
|
|
+if ~exist('RvpppasALL'),load('RvpppasALL.mat'); end
|
|
|
+
|
|
|
+sucrose=[1 0.6 0.1];
|
|
|
+maltodextrin=[.9 0.3 .9];
|
|
|
+water=[0.00 0.75 0.75];
|
|
|
+total=[0.3 0.1 0.8];
|
|
|
+DS=[0 0.4470 0.7410];
|
|
|
+Pav=[0.8500 0.3250 0.0980];
|
|
|
+DSAlcohol=[51/255 160/255 44/255];%[0.4940 0.1840 0.5560];
|
|
|
+PavAlcohol=[180/255 41/255 230/255];%[0.9290 0.6940 0.1250];
|
|
|
+
|
|
|
+DSShuff=[0 0 0];
|
|
|
+PavShuff=[0 0 0];
|
|
|
+
|
|
|
+xaxis=linspace(-0.75,3.15,13);
|
|
|
+
|
|
|
+selection1=RPPSall.Structure==10 & RPPSall.CSPlusRatio>=.5 & (RPPSall.CSPlusRatio./(RPPSall.CSPlusRatio+RPPSall.CSMinusRatio))>=.7;% & RPPSall.Ev(1).RespDir==1;
|
|
|
+selection2=RPSall.Structure==10 & RPSall.CSPlusRatio>=.5 & (RPSall.CSPlusRatio./(RPSall.CSPlusRatio+RPSall.CSMinusRatio))>=.7;% & RPSall.Ev(1).RespDir==1;
|
|
|
+selection3=RvpppasALL.Structure==10 & RvpppasALL.CSPlusRatio>=.5 & (RvpppasALL.CSPlusRatio./(RvpppasALL.CSPlusRatio+RvpppasALL.CSMinusRatio))>=.7;% & RvpppasALL.Ev(1).RespDir==1;
|
|
|
+selection4=RvppasALL.Structure==10 & RvppasALL.CSPlusRatio>=.5 & (RvppasALL.CSPlusRatio./(RvppasALL.CSPlusRatio+RvppasALL.CSMinusRatio))>=.7;% & RvppasALL.Ev(1).RespDir==1;
|
|
|
+
|
|
|
+%Figure code
|
|
|
+
|
|
|
+figure;
|
|
|
+
|
|
|
+%get average accuracy for each bin
|
|
|
+for i = 1:13
|
|
|
+ AvgAccDSSucrose(1,i)=nanmean(UnitMdlAccDSSucrose(selection1,i)); %average accuracy DS
|
|
|
+ SEMAccDSSucrose(1,i)=nanste(UnitMdlAccDSSucrose(selection1,i),1); %SEM
|
|
|
+ AvgAccDSShuffSucrose(1,i)=nanmean(UnitMdlAccDSShuffSucrose(selection1,i)); %average accuracy DSShuff
|
|
|
+ SEMAccDSShuffSucrose(1,i)=nanste(UnitMdlAccDSShuffSucrose(selection1,i),1); %SEM
|
|
|
+ AvgAccPavSucrose(1,i)=nanmean(UnitMdlAccPavSucrose(selection2,i)); %average accuracy DSShuff
|
|
|
+ SEMAccPavSucrose(1,i)=nanste(UnitMdlAccPavSucrose(selection2,i),1); %SEM
|
|
|
+ AvgAccPavShuffSucrose(1,i)=nanmean(UnitMdlAccPavShuffSucrose(selection2,i)); %average accuracy DSShuff
|
|
|
+ SEMAccPavShuffSucrose(1,i)=nanste(UnitMdlAccPavShuffSucrose(selection2,i),1); %SEM
|
|
|
+
|
|
|
+ DSSigSucrose(1,i) = ttest2(UnitMdlAccDSSucrose(:,i),UnitMdlAccDSShuffSucrose(selection1,i),'Vartype','unequal'); %welch's t-test
|
|
|
+ PavSigSucrose(1,i) = ttest2(UnitMdlAccPavSucrose(:,i),UnitMdlAccPavShuffSucrose(selection2,i),'Vartype','unequal'); %welch's t-test
|
|
|
+end
|
|
|
+
|
|
|
+%get normalized accuracy increase over shuffled for each neuron, then take
|
|
|
+%average and find SEM
|
|
|
+for i = 1:13
|
|
|
+ for j = 1:length(UnitMdlAccDSSucrose)
|
|
|
+ NormAccDSSucrose(j,i) = UnitMdlAccDSSucrose(j,i)-nanmean(nanmean(UnitMdlAccDSShuffSucrose(:,i)));
|
|
|
+ end
|
|
|
+ for k = 1:length(UnitMdlAccPavSucrose)
|
|
|
+ NormAccPavSucrose(k,i) = UnitMdlAccPavSucrose(k,i)-nanmean(nanmean(UnitMdlAccPavShuffSucrose(:,i)));
|
|
|
+ end
|
|
|
+
|
|
|
+ AvgNormDSSucrose(1,i)=nanmean(NormAccDSSucrose(selection1,i)); %average norm accuracy DS
|
|
|
+ SEMNormDSSucrose(1,i)=nanste(NormAccDSSucrose(selection1,i),1); %SEM
|
|
|
+ AvgNormPavSucrose(1,i)=nanmean(NormAccPavSucrose(selection2,i)); %average norm accuracy DS
|
|
|
+ SEMNormPavSucrose(1,i)=nanste(NormAccPavSucrose(selection2,i),1); %SEM
|
|
|
+
|
|
|
+ %NormSig(1,i) = ttest2(NormAccDS(:,i),NormAccPav(:,i),'Vartype','unequal'); %welch's t-test
|
|
|
+ [~,NormSig(1,i)] = ranksum(NormAccDSSucrose(selection1,i),NormAccPavSucrose(selection2,i)); %wilcoxon's ranksum test
|
|
|
+end
|
|
|
+
|
|
|
+%prepare shading
|
|
|
+upSEMDS1=AvgAccDSSucrose+SEMAccDSSucrose;
|
|
|
+downSEMDS1=AvgAccDSSucrose-SEMAccDSSucrose;
|
|
|
+upSEMPav1=AvgAccPavSucrose+SEMAccPavSucrose;
|
|
|
+downSEMPav1=AvgAccPavSucrose-SEMAccPavSucrose;
|
|
|
+upSEMDSShuff1=AvgAccDSShuffSucrose+SEMAccDSShuffSucrose;
|
|
|
+downSEMDSShuff1=AvgAccDSShuffSucrose-SEMAccDSShuffSucrose;
|
|
|
+upSEMPavShuff1=AvgAccPavShuffSucrose+SEMAccPavShuffSucrose;
|
|
|
+downSEMPavShuff1=AvgAccPavShuffSucrose-SEMAccPavShuffSucrose;
|
|
|
+upSEMNormDS1=AvgNormDSSucrose+SEMNormDSSucrose;
|
|
|
+downSEMNormDS1=AvgNormDSSucrose-SEMNormDSSucrose;
|
|
|
+upSEMNormPav1=AvgNormPavSucrose+SEMNormPavSucrose;
|
|
|
+downSEMNormPav1=AvgNormPavSucrose-SEMNormPavSucrose;
|
|
|
+
|
|
|
+% %plotting decoder accuracy over time
|
|
|
+% subplot(3,4,1); %accumbens
|
|
|
+% hold on;
|
|
|
+% plot(xaxis,AvgAccDSSucrose(1:13),'Color', DS,'linewidth',3);
|
|
|
+% plot(xaxis,AvgAccDSShuffSucrose(1:13),'Color', DSShuff,'linewidth',3);
|
|
|
+% %plot(xaxis,DSSigSucrose-0.51,'*','Color', 'k');
|
|
|
+% patch([xaxis,xaxis(end:-1:1)],[upSEMDS,downSEMDS(end:-1:1)],DS,'EdgeColor','none');alpha(0.5);
|
|
|
+% patch([xaxis,xaxis(end:-1:1)],[upSEMDSShuff,downSEMDSShuff(end:-1:1)],DSShuff,'EdgeColor','none');alpha(0.5);
|
|
|
+% xlabel('Seconds post cue');
|
|
|
+% legend('Sucrose DS','Shuffled','Location','best');
|
|
|
+% %title('Sucrose DS single unit decoding accuracy');
|
|
|
+% ylabel('Single Unit Decoding Accuracy');
|
|
|
+% axis([-.75 3.15 0.45 0.7]);
|
|
|
+%
|
|
|
+% subplot(3,4,2); %Pav
|
|
|
+% hold on;
|
|
|
+% plot(xaxis,AvgAccPavSucrose(1:13),'Color', Pav,'linewidth',3);
|
|
|
+% plot(xaxis,AvgAccPavShuffSucrose(1:13),'Color', PavShuff,'linewidth',3);
|
|
|
+% %plot(xaxis,PavSig-0.51,'*','Color', 'k');
|
|
|
+% patch([xaxis,xaxis(end:-1:1)],[upSEMPav,downSEMPav(end:-1:1)],Pav,'EdgeColor','none');alpha(0.5);
|
|
|
+% patch([xaxis,xaxis(end:-1:1)],[upSEMPavShuff,downSEMPavShuff(end:-1:1)],PavShuff,'EdgeColor','none');alpha(0.5);
|
|
|
+% xlabel('Seconds post cue');
|
|
|
+% %title('Sucrose CS+ single unit decoding accuracy');
|
|
|
+% legend('Sucrose CS+','Shuffled','Location','northeast');
|
|
|
+% axis([-.75 3.15 0.45 0.7]);
|
|
|
+
|
|
|
+%get average accuracy for each bin
|
|
|
+for i = 1:13
|
|
|
+ AvgAccDSAlcohol(1,i)=nanmean(UnitMdlAccDSAlcohol(selection3,i)); %average accuracy DS
|
|
|
+ SEMAccDSAlcohol(1,i)=nanste(UnitMdlAccDSAlcohol(selection3,i),1); %SEM
|
|
|
+ AvgAccDSShuffAlcohol(1,i)=nanmean(UnitMdlAccDSShuffAlcohol(selection3,i)); %average accuracy DSShuff
|
|
|
+ SEMAccDSShuffAlcohol(1,i)=nanste(UnitMdlAccDSShuffAlcohol(selection3,i),1); %SEM
|
|
|
+ AvgAccPavAlcohol(1,i)=nanmean(UnitMdlAccPavAlcohol(selection4,i)); %average accuracy DSShuff
|
|
|
+ SEMAccPavAlcohol(1,i)=nanste(UnitMdlAccPavAlcohol(selection4,i),1); %SEM
|
|
|
+ AvgAccPavShuffAlcohol(1,i)=nanmean(UnitMdlAccPavShuffAlcohol(selection4,i)); %average accuracy DSShuff
|
|
|
+ SEMAccPavShuffAlcohol(1,i)=nanste(UnitMdlAccPavShuffAlcohol(selection4,i),1); %SEM
|
|
|
+
|
|
|
+ DSSigAlcohol(1,i) = ttest2(UnitMdlAccDSAlcohol(:,i),UnitMdlAccDSShuffAlcohol(selection3,i),'Vartype','unequal'); %welch's t-test
|
|
|
+ PavSigAlcohol(1,i) = ttest2(UnitMdlAccPavAlcohol(:,i),UnitMdlAccPavShuffAlcohol(selection4,i),'Vartype','unequal'); %welch's t-test
|
|
|
+end
|
|
|
+
|
|
|
+%get normalized accuracy increase over shuffled for each neuron, then take
|
|
|
+%average and find SEM
|
|
|
+for i = 1:13
|
|
|
+ for j = 1:length(UnitMdlAccDSAlcohol)
|
|
|
+ NormAccDSAlcohol(j,i) = UnitMdlAccDSAlcohol(j,i)-nanmean(nanmean(UnitMdlAccDSShuffAlcohol(:,i)));
|
|
|
+ end
|
|
|
+ for k = 1:length(UnitMdlAccPavAlcohol)
|
|
|
+ NormAccPavAlcohol(k,i) = UnitMdlAccPavAlcohol(k,i)-nanmean(nanmean(UnitMdlAccPavShuffAlcohol(:,i)));
|
|
|
+ end
|
|
|
+
|
|
|
+ AvgNormDSAlcohol(1,i)=nanmean(NormAccDSAlcohol(selection3,i)); %average norm accuracy DS
|
|
|
+ SEMNormDSAlcohol(1,i)=nanste(NormAccDSAlcohol(selection3,i),1); %SEM
|
|
|
+ AvgNormPavAlcohol(1,i)=nanmean(NormAccPavAlcohol(selection4,i)); %average norm accuracy DS
|
|
|
+ SEMNormPavAlcohol(1,i)=nanste(NormAccPavAlcohol(selection4,i),1); %SEM
|
|
|
+
|
|
|
+ %NormSig(1,i) = ttest2(NormAccDS(:,i),NormAccPav(:,i),'Vartype','unequal'); %welch's t-test
|
|
|
+ [~,NormSig(1,i)] = ranksum(NormAccDSAlcohol(selection3,i),NormAccPavAlcohol(selection4,i)); %wilcoxon's ranksum test
|
|
|
+end
|
|
|
+
|
|
|
+%prepare shading
|
|
|
+upSEMDS=AvgAccDSAlcohol+SEMAccDSAlcohol;
|
|
|
+downSEMDS=AvgAccDSAlcohol-SEMAccDSAlcohol;
|
|
|
+upSEMPav=AvgAccPavAlcohol+SEMAccPavAlcohol;
|
|
|
+downSEMPav=AvgAccPavAlcohol-SEMAccPavAlcohol;
|
|
|
+upSEMDSShuff=AvgAccDSShuffAlcohol+SEMAccDSShuffAlcohol;
|
|
|
+downSEMDSShuff=AvgAccDSShuffAlcohol-SEMAccDSShuffAlcohol;
|
|
|
+upSEMPavShuff=AvgAccPavShuffAlcohol+SEMAccPavShuffAlcohol;
|
|
|
+downSEMPavShuff=AvgAccPavShuffAlcohol-SEMAccPavShuffAlcohol;
|
|
|
+upSEMNormDS=AvgNormDSAlcohol+SEMNormDSAlcohol;
|
|
|
+downSEMNormDS=AvgNormDSAlcohol-SEMNormDSAlcohol;
|
|
|
+upSEMNormPav=AvgNormPavAlcohol+SEMNormPavAlcohol;
|
|
|
+downSEMNormPav=AvgNormPavAlcohol-SEMNormPavAlcohol;
|
|
|
+
|
|
|
+% %plotting decoder accuracy over time
|
|
|
+% subplot(3,4,5); %accumbens
|
|
|
+% hold on;
|
|
|
+% plot(xaxis,AvgAccDSAlcohol(1:13),'Color', DSAlcohol,'linewidth',3);
|
|
|
+% plot(xaxis,AvgAccDSShuffAlcohol(1:13),'Color', DSShuff,'linewidth',3);
|
|
|
+% %plot(xaxis,DSSigAlcohol-0.51,'*','Color', 'k');
|
|
|
+% patch([xaxis,xaxis(end:-1:1)],[upSEMDS,downSEMDS(end:-1:1)],DSAlcohol,'EdgeColor','none');alpha(0.5);
|
|
|
+% patch([xaxis,xaxis(end:-1:1)],[upSEMDSShuff,downSEMDSShuff(end:-1:1)],DSShuff,'EdgeColor','none');alpha(0.5);
|
|
|
+% xlabel('Seconds post cue');
|
|
|
+% legend('Suc(alc) DS','Shuffled','Location','northeast');
|
|
|
+% %title('Alcohol DS single unit decoding accuracy');
|
|
|
+% axis([-.75 3.15 0.45 0.7]);
|
|
|
+% ylabel('Single Unit Decoding Accuracy');
|
|
|
+%
|
|
|
+% subplot(3,4,6); %Pav
|
|
|
+% hold on;
|
|
|
+% plot(xaxis,AvgAccPavAlcohol(1:13),'Color', PavAlcohol,'linewidth',3);
|
|
|
+% plot(xaxis,AvgAccPavShuffAlcohol(1:13),'Color', PavShuff,'linewidth',3);
|
|
|
+% %plot(xaxis,PavSig-0.51,'*','Color', 'k');
|
|
|
+% patch([xaxis,xaxis(end:-1:1)],[upSEMPav,downSEMPav(end:-1:1)],PavAlcohol,'EdgeColor','none');alpha(0.5);
|
|
|
+% patch([xaxis,xaxis(end:-1:1)],[upSEMPavShuff,downSEMPavShuff(end:-1:1)],PavShuff,'EdgeColor','none');alpha(0.5);
|
|
|
+% xlabel('Seconds post cue');
|
|
|
+% %title('Alcohol CS+ single unit decoding accuracy');
|
|
|
+% legend('Suc(alc) CS+','Shuffled','Location','northeast');
|
|
|
+% axis([-.75 3.15 0.45 0.7]);
|
|
|
+
|
|
|
+% combined single unit decoding over time
|
|
|
+subplot(2,2,1);
|
|
|
+hold on;
|
|
|
+plot(xaxis,AvgAccDSAlcohol(1:13),'Marker','o','Color', DSAlcohol,'linewidth',1);
|
|
|
+plot(xaxis,AvgAccPavAlcohol(1:13),'Marker','o','Color', PavAlcohol,'linewidth',1);
|
|
|
+plot(xaxis,AvgAccDSShuffAlcohol(1:13),'Marker','o','Color', DSShuff,'linewidth',1);
|
|
|
+plot(xaxis,AvgAccPavShuffAlcohol(1:13),'Marker','o','Color', PavShuff,'linewidth',1);
|
|
|
+%plot(xaxis,DSSigAlcohol-0.51,'*','Color', 'k');
|
|
|
+patch([0 0.3 0.3 0],[0 0 1 1],[0.5 0.5 0.5],'EdgeColor','none');alpha(0.5);
|
|
|
+patch([xaxis,xaxis(end:-1:1)],[upSEMDS,downSEMDS(end:-1:1)],DSAlcohol,'EdgeColor','none');alpha(0.5);
|
|
|
+patch([xaxis,xaxis(end:-1:1)],[upSEMDSShuff,downSEMDSShuff(end:-1:1)],DSShuff,'EdgeColor','none');alpha(0.5);
|
|
|
+patch([xaxis,xaxis(end:-1:1)],[upSEMPav,downSEMPav(end:-1:1)],PavAlcohol,'EdgeColor','none');alpha(0.5);
|
|
|
+patch([xaxis,xaxis(end:-1:1)],[upSEMPavShuff,downSEMPavShuff(end:-1:1)],PavShuff,'EdgeColor','none');alpha(0.5);
|
|
|
+
|
|
|
+
|
|
|
+%this adds all 4 plots
|
|
|
+% plot(xaxis,AvgAccDSSucrose(1:13),'Color', DS,'linewidth',1);
|
|
|
+% plot(xaxis,AvgAccDSShuffSucrose(1:13),'Color', DSShuff,'linewidth',1);
|
|
|
+% patch([xaxis,xaxis(end:-1:1)],[upSEMDS1,downSEMDS1(end:-1:1)],DS,'EdgeColor','none');alpha(0.5);
|
|
|
+% patch([xaxis,xaxis(end:-1:1)],[upSEMDSShuff1,downSEMDSShuff1(end:-1:1)],DSShuff,'EdgeColor','none');alpha(0.5);
|
|
|
+% plot(xaxis,AvgAccPavSucrose(1:13),'Color', Pav,'linewidth',1);
|
|
|
+% plot(xaxis,AvgAccPavShuffSucrose(1:13),'Color', PavShuff,'linewidth',1);
|
|
|
+% patch([xaxis,xaxis(end:-1:1)],[upSEMPav1,downSEMPav1(end:-1:1)],Pav,'EdgeColor','none');alpha(0.5);
|
|
|
+% patch([xaxis,xaxis(end:-1:1)],[upSEMPavShuff1,downSEMPavShuff1(end:-1:1)],PavShuff,'EdgeColor','none');alpha(0.5);
|
|
|
+
|
|
|
+xlabel('Seconds post cue');
|
|
|
+legend('Suc(alc) DS','Suc(alc) CS+','Shuffled','Location','northeast');
|
|
|
+%title('Alcohol DS single unit decoding accuracy');
|
|
|
+axis([-.75 3.15 0.45 0.7]);
|
|
|
+ylabel('Single Unit Decoding Accuracy');
|
|
|
+
|
|
|
+%plotting cdf plots for DS at time of max predictive power
|
|
|
+subplot(2,2,2);
|
|
|
+DSbin=4;
|
|
|
+[cdfDS,xDS] = ecdf(UnitMdlAccDSAlcohol(selection3,DSbin));
|
|
|
+[cdfPav,xPav] = ecdf(UnitMdlAccPavAlcohol(selection4,DSbin));
|
|
|
+[cdfDSsuc,xDSsuc] = ecdf(UnitMdlAccDSSucrose(selection1,DSbin));
|
|
|
+[cdfPavsuc,xPavsuc] = ecdf(UnitMdlAccPavSucrose(selection2,DSbin));
|
|
|
+%subplot(4,3,[3 6]);
|
|
|
+hold on;
|
|
|
+plot(xDSsuc,cdfDSsuc,'Color',DS,'linewidth',1);
|
|
|
+plot(xPavsuc,cdfPavsuc,'Color',Pav,'linewidth',1);
|
|
|
+plot(xDS,cdfDS,'Color',DSAlcohol,'linewidth',1);
|
|
|
+plot(xPav,cdfPav,'Color',PavAlcohol,'linewidth',1);
|
|
|
+plot([.5 .5], [0 1],'LineStyle',':','Color','k');
|
|
|
+plot([AvgAccDSSucrose(1,4) AvgAccDSSucrose(1,4)], [0 1],'Color',DS,'linewidth',1);
|
|
|
+plot([AvgAccDSAlcohol(1,4) AvgAccDSAlcohol(1,4)], [0 1],'Color',DSAlcohol,'linewidth',1);
|
|
|
+plot([AvgAccPavSucrose(1,4) AvgAccPavSucrose(1,4)], [0 1],'Color',Pav,'linewidth',1);
|
|
|
+plot([AvgAccPavAlcohol(1,4) AvgAccPavAlcohol(1,4)], [0 1],'Color',PavAlcohol,'linewidth',1);
|
|
|
+axis([0.25 1 0 1]);
|
|
|
+title(['Cumulative Distribution 0 to .3s']);
|
|
|
+xlabel('Decoding Accuracy')
|
|
|
+ylabel('Proportion of Population')
|
|
|
+legend('Sucrose DS','Sucrose CS+','Suc(alc) DS','Suc(alc) CS+','Location','best');
|
|
|
+
|
|
|
+
|
|
|
+%Plotting ensemble decoding
|
|
|
+
|
|
|
+clear all;
|
|
|
+DS=[0 0.4470 0.7410];
|
|
|
+Pav=[0.8500 0.3250 0.0980];
|
|
|
+DSAlcohol=[51/255 160/255 44/255];%[0.4940 0.1840 0.5560];
|
|
|
+PavAlcohol=[180/255 41/255 230/255];%[0.9290 0.6940 0.1250];
|
|
|
+NumNeurons=[1 5 10 25 50 100];
|
|
|
+
|
|
|
+load('PoolMdlAccDSSucrose.mat','PoolMdlAccDSSucrose')
|
|
|
+load('PoolMdlAccDSSucroseShuff.mat','PoolMdlAccDSSucroseShuff')
|
|
|
+load('PoolMdlAccPavSucrose.mat','PoolMdlAccPavSucrose')
|
|
|
+load('PoolMdlAccPavSucroseShuff.mat','PoolMdlAccPavSucroseShuff')
|
|
|
+load('PoolMdlAccDSAlcohol.mat','PoolMdlAccDSAlcohol')
|
|
|
+load('PoolMdlAccDSAlcoholShuff.mat','PoolMdlAccDSAlcoholShuff')
|
|
|
+load('PoolMdlAccPavAlcohol.mat','PoolMdlAccPavAlcohol')
|
|
|
+load('PoolMdlAccPavAlcoholShuff.mat','PoolMdlAccPavAlcoholShuff')
|
|
|
+
|
|
|
+
|
|
|
+for i=1:6
|
|
|
+AvgAccDSSucrose(i)=nanmean(PoolMdlAccDSSucrose{i,1}); %average accuracy
|
|
|
+SEMAccDSSucrose(i)=nanste(PoolMdlAccDSSucrose{i,1},1); %SEM
|
|
|
+
|
|
|
+AvgAccPavSucrose(i)=nanmean(PoolMdlAccPavSucrose{i,1}); %average accuracy
|
|
|
+SEMAccPavSucrose(i)=nanste(PoolMdlAccPavSucrose{i,1},1); %SEM
|
|
|
+
|
|
|
+AvgAccDSAlcohol(i)=nanmean(PoolMdlAccDSAlcohol{i,1}); %average accuracy
|
|
|
+SEMAccDSAlcohol(i)=nanste(PoolMdlAccDSAlcohol{i,1},1); %SEM
|
|
|
+
|
|
|
+AvgAccPavAlcohol(i)=nanmean(PoolMdlAccPavAlcohol{i,1}); %average accuracy
|
|
|
+SEMAccPavAlcohol(i)=nanste(PoolMdlAccPavAlcohol{i,1},1); %SEM
|
|
|
+
|
|
|
+AvgAccDSSucroseShuff(i)=nanmean(PoolMdlAccDSSucroseShuff{i,1}); %average accuracy
|
|
|
+SEMAccDSSucroseShuff(i)=nanste(PoolMdlAccDSSucroseShuff{i,1},1); %SEM
|
|
|
+
|
|
|
+AvgAccPavSucroseShuff(i)=nanmean(PoolMdlAccPavSucroseShuff{i,1}); %average accuracy
|
|
|
+SEMAccPavSucroseShuff(i)=nanste(PoolMdlAccPavSucroseShuff{i,1},1); %SEM
|
|
|
+
|
|
|
+AvgAccDSAlcoholShuff(i)=nanmean(PoolMdlAccDSAlcoholShuff{i,1}); %average accuracy
|
|
|
+SEMAccDSAlcoholShuff(i)=nanste(PoolMdlAccDSAlcoholShuff{i,1},1); %SEM
|
|
|
+
|
|
|
+AvgAccPavAlcoholShuff(i)=nanmean(PoolMdlAccPavAlcoholShuff{i,1}); %average accuracy
|
|
|
+SEMAccPavAlcoholShuff(i)=nanste(PoolMdlAccPavAlcoholShuff{i,1},1); %SEM
|
|
|
+end
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+subplot(2,2,3); %ensemble decoding results
|
|
|
+errorbar(NumNeurons, AvgAccDSSucrose,SEMAccDSSucrose,'Color',DS,'linewidth',1);
|
|
|
+hold on;
|
|
|
+errorbar(NumNeurons, AvgAccPavSucrose,SEMAccPavSucrose, 'Color',Pav,'linewidth',1);
|
|
|
+errorbar(NumNeurons, AvgAccDSAlcohol,SEMAccDSAlcohol, 'Color',DSAlcohol,'linewidth',1);
|
|
|
+errorbar(NumNeurons, AvgAccPavAlcohol,SEMAccPavAlcohol, 'Color',PavAlcohol,'linewidth',1);
|
|
|
+% errorbar(NumNeurons, AvgAccDSSucroseShuff,SEMAccDSSucroseShuff, 'Color','k');
|
|
|
+% errorbar(NumNeurons, AvgAccPavSucroseShuff,SEMAccPavSucroseShuff, 'Color','k');
|
|
|
+% errorbar(NumNeurons, AvgAccDSAlcoholShuff,SEMAccDSAlcoholShuff, 'Color','k');
|
|
|
+% errorbar(NumNeurons, AvgAccPavAlcoholShuff,SEMAccPavAlcoholShuff, 'Color','k');
|
|
|
+legend('Sucrose DS','Sucrose CS+','Suc(alc) DS','Suc(alc) CS+','Location','best');
|
|
|
+plot([-5 105], [.5 .5],'LineStyle',':','Color','k');
|
|
|
+xlabel('Neurons used');
|
|
|
+ylabel('Mean Accuracy (+/- SEM)');
|
|
|
+xticks([1 5 10 25 50 100])
|
|
|
+%xticklabels({'-3\pi','-2\pi','-\pi','0','\pi','2\pi','3\pi'})
|
|
|
+axis([-5 105 0.4 1]);
|
|
|
+
|
|
|
+%make matrices with bins at all levels
|
|
|
+A=[];
|
|
|
+B=[];
|
|
|
+C=[];
|
|
|
+D=[];
|
|
|
+A1=[];
|
|
|
+B1=[];
|
|
|
+C1=[];
|
|
|
+D1=[];
|
|
|
+
|
|
|
+for v=1:length(PoolMdlAccDSSucrose)
|
|
|
+A=cat(1,A,PoolMdlAccDSSucrose{v,1});
|
|
|
+B=cat(1,B,PoolMdlAccPavSucrose{v,1});
|
|
|
+C=cat(1,C,PoolMdlAccDSAlcohol{v,1});
|
|
|
+D=cat(1,D,PoolMdlAccPavAlcohol{v,1});
|
|
|
+A1=cat(1,A1,PoolMdlAccDSSucroseShuff{v,1});
|
|
|
+B1=cat(1,B1,PoolMdlAccPavSucroseShuff{v,1});
|
|
|
+C1=cat(1,C1,PoolMdlAccDSAlcoholShuff{v,1});
|
|
|
+D1=cat(1,D1,PoolMdlAccPavAlcoholShuff{v,1});
|
|
|
+end
|
|
|
+
|
|
|
+subplot(2,2,4); %summary of accuracy
|
|
|
+errorbar(1,nanmean(A),nanste(A,1),'o','Color',DS,'linewidth',1);
|
|
|
+hold on;
|
|
|
+errorbar(2,nanmean(C),nanste(C,1),'o', 'Color',DSAlcohol,'linewidth',1);
|
|
|
+errorbar(3,nanmean(B),nanste(B,1),'o', 'Color',Pav,'linewidth',1);
|
|
|
+errorbar(4,nanmean(D),nanste(D,1),'o', 'Color',PavAlcohol,'linewidth',1);
|
|
|
+plot([-5 105], [.5 .5],'LineStyle',':','Color','k');
|
|
|
+plot([1 2], [0.93 0.93],'Color','k','linewidth',1);
|
|
|
+plot([3 4], [0.86 0.86],'Color','k','linewidth',1);
|
|
|
+plot(1.5,.95,'*','Color','k');
|
|
|
+plot(3.5,.88,'*','Color','k');
|
|
|
+axis([0.5 4.5 0.4 1]);
|
|
|
+set(gca,'xtick',[])
|
|
|
+ylabel('Mean Accuracy (+/- SEM)');
|
|
|
+%xlabel('DS/Suc DS/Suc(a) CS+/Suc CS+/Suc(a)');
|
|
|
+legend('Sucrose DS','Suc(alc) DS','Sucrose CS+','Suc(alc) CS+','Location','best');
|
|
|
+
|
|
|
+%% STATS
|
|
|
+
|
|
|
+%Plotting single All decoding
|
|
|
+bins = 1; %number of bins
|
|
|
+binint = 0.3; %spacing of bins
|
|
|
+binstart = 0; %start time of first bin relative to event
|
|
|
+Dura=[0 0.3]; %size of bin used for decoding:
|
|
|
+NumNeurons=[1 5 10 25 50 100]; %matrix of how many neurons to use on each iteration
|
|
|
+repetitions=20; %how many times to run the analysis
|
|
|
+
|
|
|
+%ANOVA for effect of ensemble size, task and reward on accuracy 0-.3 sec
|
|
|
+size=[];
|
|
|
+for i=1:length(NumNeurons)
|
|
|
+ size=cat(1,size,i*ones(repetitions,1));
|
|
|
+end
|
|
|
+size2=cat(1,size,size,size,size);
|
|
|
+%shuffd=cat(1,zeros(length(A),1),zeros(length(B),1),ones(length(C),1),zeros(length(D),1));
|
|
|
+reward=cat(1,ones(length(A)+length(B),1),zeros(length(C)+length(D),1));
|
|
|
+task=cat(1,ones(length(A),1),zeros(length(B),1),ones(length(C),1),zeros(length(D),1));
|
|
|
+[~,AccAnova,AccStats]=anovan(cat(1,A,B,C,D),{reward,task,size2},'varnames',{'reward','task','ens size'},'model','full');
|
|
|
+%multcompare(AccStats,'Dimension',[1:3])
|
|
|
+
|
|
|
+rewardtask=cat(1,zeros(length(A),1),ones(length(B),1),2*ones(length(C),1),3*ones(length(D),1));
|
|
|
+[~,AccAnova,AccStats]=anovan(cat(1,A,B,C,D),{rewardtask,size2},'varnames',{'reward and task','ens size'},'model','full');
|
|
|
+
|
|
|
+
|
|
|
+size=[];
|
|
|
+for i=1:length(NumNeurons)
|
|
|
+ size=cat(1,size,i*ones(repetitions,1));
|
|
|
+end
|
|
|
+size1=cat(1,size,size,size,size,size,size,size,size);
|
|
|
+shuffd=cat(1,zeros(length(A)+length(B)+length(C)+length(D),1),ones(length(A)+length(B)+length(C)+length(D),1));
|
|
|
+reward=cat(1,ones(length(A)+length(B),1),zeros(length(C)+length(D),1),ones(length(A)+length(B),1),zeros(length(C)+length(D),1));
|
|
|
+task=cat(1,ones(length(A),1),zeros(length(B),1),ones(length(C),1),zeros(length(D),1),ones(length(A),1),zeros(length(B),1),ones(length(C),1),zeros(length(D),1));
|
|
|
+[~,AccAnova,AccStats]=anovan(cat(1,A,B,C,D,A1,B1,C1,D1),{reward,task,size1,shuffd},'varnames',{'reward','task','ens size','shuffled vs real'},'model','full');
|
|
|
+
|
|
|
+
|
|
|
+rewardtask=cat(1,zeros(length(A),1),ones(length(B),1),2*ones(length(C),1),3*ones(length(D),1));
|
|
|
+[~,AccAnova,AccStats]=anovan(cat(1,A,B,C,D),{rewardtask,size2},'varnames',{'reward and task','ens size'},'model','full');
|
|
|
+
|
|
|
+
|
|
|
+%without shuff vs true
|
|
|
+% size3=cat(1,size,size);
|
|
|
+% region3=cat(1,ones(length(A),1),zeros(length(C),1));
|
|
|
+% [~,AccAnovaNoShuff,~]=anovan(cat(1,A,C),{region3,size3},'varnames',{'region','ens size'},'display','off','model','full');
|
|
|
+
|
|
|
+%% Sinlge Unit Stats
|
|
|
+
|
|
|
+if ~exist('RPPSall'),load('RPPSall.mat'); end
|
|
|
+if ~exist('RPSall'),load('RPSall.mat'); end
|
|
|
+load('UnitMdlDSAlcohol.mat')
|
|
|
+load('UnitMdlDSShuffAlcohol.mat')
|
|
|
+load('UnitMdlPavAlcohol.mat')
|
|
|
+load('UnitMdlPavShuffAlcohol.mat')
|
|
|
+if ~exist('RvppasALL'),load('RvppasALL.mat'); end
|
|
|
+if ~exist('RvpppasALL'),load('RvpppasALL.mat'); end
|
|
|
+
|
|
|
+sucrose=[1 0.6 0.1];
|
|
|
+maltodextrin=[.9 0.3 .9];
|
|
|
+water=[0.00 0.75 0.75];
|
|
|
+total=[0.3 0.1 0.8];
|
|
|
+DS=[0 0.4470 0.7410];
|
|
|
+Pav=[0.8500 0.3250 0.0980];
|
|
|
+DSAlcohol=[0.4940 0.1840 0.5560];
|
|
|
+PavAlcohol=[0.9290 0.6940 0.1250];
|
|
|
+DSShuff=[0 0 0];
|
|
|
+PavShuff=[0 0 0];
|
|
|
+
|
|
|
+xaxis=linspace(-0.75,3.15,13);
|
|
|
+
|
|
|
+selection1=RPPSall.Structure==10 & RPPSall.CSPlusRatio>=.5 & (RPPSall.CSPlusRatio./(RPPSall.CSPlusRatio+RPPSall.CSMinusRatio))>=.7;
|
|
|
+selection2=RPSall.Structure==10 & RPSall.CSPlusRatio>=.5 & (RPSall.CSPlusRatio./(RPSall.CSPlusRatio+RPSall.CSMinusRatio))>=.7;
|
|
|
+selection3=RvpppasALL.Structure==10 & RvpppasALL.CSPlusRatio>=.5 & (RvpppasALL.CSPlusRatio./(RvpppasALL.CSPlusRatio+RvpppasALL.CSMinusRatio))>=.7;
|
|
|
+selection4=RvppasALL.Structure==10 & RvppasALL.CSPlusRatio>=.5 & (RvppasALL.CSPlusRatio./(RvppasALL.CSPlusRatio+RvppasALL.CSMinusRatio))>=.7;
|
|
|
+
|
|
|
+%LME for the 2 alc exposed
|
|
|
+task=cat(1,ones(length(UnitMdlAccDSAlcohol(:,4)),1),ones(length(UnitMdlAccDSAlcohol(:,4)),1),zeros(length(UnitMdlAccPavAlcohol(:,4)),1),zeros(length(UnitMdlAccPavAlcohol(:,4)),1));
|
|
|
+shuffd=cat(1,ones(length(UnitMdlAccDSAlcohol(:,4)),1),zeros(length(UnitMdlAccDSAlcohol(:,4)),1),ones(length(UnitMdlAccPavAlcohol(:,4)),1),zeros(length(UnitMdlAccPavAlcohol(:,4)),1));
|
|
|
+rat=cat(1,RvpppasALL.Rat,RvpppasALL.Rat,RvppasALL.Rat,RvppasALL.Rat);
|
|
|
+tbl=table(cat(1,UnitMdlAccDSAlcohol(:,4),UnitMdlAccDSShuffAlcohol(:,4),UnitMdlAccPavAlcohol(:,4),UnitMdlAccPavShuffAlcohol(:,4)),task,shuffd,rat,'variablenames',{'Accuracy','Task','Shuffled','Subject'});
|
|
|
+lme=fitlme(tbl,'Accuracy~Task+Shuffled+(Task:Shuffled)+(1|Subject)');%+(1|Subject:Task:Shuffled)');
|
|
|
+
|
|
|
+%all 4
|
|
|
+load('UnitMdlDSSucrose.mat')
|
|
|
+load('UnitMdlDSShuffSucrose.mat')
|
|
|
+load('UnitMdlPavSucrose.mat')
|
|
|
+load('UnitMdlPavShuffSucrose.mat')
|
|
|
+if ~exist('RPPSall'),load('RPPSall.mat'); end
|
|
|
+if ~exist('RPSall'),load('RPSall.mat'); end
|
|
|
+task=cat(1,ones(length(UnitMdlAccDSAlcohol(:,4)),1),ones(length(UnitMdlAccDSAlcohol(:,4)),1),zeros(length(UnitMdlAccPavAlcohol(:,4)),1),zeros(length(UnitMdlAccPavAlcohol(:,4)),1),ones(length(UnitMdlAccDSSucrose(:,4)),1),ones(length(UnitMdlAccDSSucrose(:,4)),1),zeros(length(UnitMdlAccPavSucrose(:,4)),1),zeros(length(UnitMdlAccPavSucrose(:,4)),1));
|
|
|
+shuffd=cat(1,ones(length(UnitMdlAccDSAlcohol(:,4)),1),zeros(length(UnitMdlAccDSAlcohol(:,4)),1),ones(length(UnitMdlAccPavAlcohol(:,4)),1),zeros(length(UnitMdlAccPavAlcohol(:,4)),1),ones(length(UnitMdlAccDSSucrose(:,4)),1),zeros(length(UnitMdlAccDSSucrose(:,4)),1),ones(length(UnitMdlAccPavSucrose(:,4)),1),zeros(length(UnitMdlAccPavSucrose(:,4)),1));
|
|
|
+rat=cat(1,RvpppasALL.Rat,RvpppasALL.Rat,RvppasALL.Rat,RvppasALL.Rat,RPPSall.Rat,RPPSall.Rat,RPSall.Rat,RPSall.Rat);
|
|
|
+exposure=cat(1,ones(length(UnitMdlAccDSAlcohol(:,4)),1),ones(length(UnitMdlAccDSAlcohol(:,4)),1),ones(length(UnitMdlAccPavAlcohol(:,4)),1),ones(length(UnitMdlAccPavAlcohol(:,4)),1),zeros(length(UnitMdlAccDSSucrose(:,4)),1),zeros(length(UnitMdlAccDSSucrose(:,4)),1),zeros(length(UnitMdlAccPavSucrose(:,4)),1),zeros(length(UnitMdlAccPavSucrose(:,4)),1));
|
|
|
+tbl=table(cat(1,UnitMdlAccDSAlcohol(:,4),UnitMdlAccDSShuffAlcohol(:,4),UnitMdlAccPavAlcohol(:,4),UnitMdlAccPavShuffAlcohol(:,4),UnitMdlAccDSSucrose(:,4),UnitMdlAccDSShuffSucrose(:,4),UnitMdlAccPavSucrose(:,4),UnitMdlAccPavShuffSucrose(:,4)),task,shuffd,rat,exposure,'variablenames',{'Accuracy','Task','Shuffled','Subject','Exposure'});
|
|
|
+lme=fitlme(tbl,'Accuracy~Task+Exposure+Task:Exposure+(1|Subject)');%+(1|Subject:Task:Exposure)');
|
|
|
+
|
|
|
+% [~,AccAnova,AccStats]=anovan(cat(1,UnitMdlAccDSAlcohol(:,4),UnitMdlAccDSShuffAlcohol(:,4),UnitMdlAccPavAlcohol(:,4),UnitMdlAccPavShuffAlcohol(:,4)),{task,shuffd,rat},'varnames',{'task','shuff vs true','subject'},'random',[3],'nested',[0 0 0;0 0 0;1 0 0],'model','full');
|
|
|
+% %no subject
|
|
|
+% [~,AccAnova,AccStats]=anovan(cat(1,UnitMdlAccDSAlcohol(:,4),UnitMdlAccDSShuffAlcohol(:,4),UnitMdlAccPavAlcohol(:,4),UnitMdlAccPavShuffAlcohol(:,4)),{task,shuffd},'varnames',{'task','shuff vs true',},'model','full');
|
|
|
+% %no shuff vs true
|
|
|
+% fitlme
|
|
|
+% task=cat(1,ones(length(UnitMdlAccDSAlcohol(:,4)),1),zeros(length(UnitMdlAccPavAlcohol(:,4)),1));
|
|
|
+% rat=cat(1,RvpppasALL.Rat,RvppasALL.Rat);
|
|
|
+% [~,AccAnova,AccStats]=anovan(cat(1,UnitMdlAccDSAlcohol(:,4),UnitMdlAccPavAlcohol(:,4)),{task,rat},'varnames',{'task','subject'},'random',[2],'nested',[0 0;1 0],'model','full');
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|