Figure_2.m 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182
  1. %% Figure 2B
  2. % % Reward preference data of rat [448, 459, 463, 473, 488, 509]
  3. SSCH = [80 85 90 90 95 80];
  4. FRCH = [75 85 85 85 90 90];
  5. SSFR = [35 35 50 50 55 65];
  6. %
  7. fig=figure; hold on;
  8. fig.Position=[0 0 400 500];
  9. % Width=0.3;
  10. c.color=53; c.alpha=0.4;
  11. Jin_MeanSTE_Line(1,SSCH)
  12. for i=1:length(SSCH)
  13. plot(1,SSCH(i),'k.');
  14. end
  15. Jin_MeanSTE_Line(2,FRCH)
  16. for i=1:length(FRCH)
  17. plot(2,FRCH(i),'k.');
  18. end
  19. Jin_MeanSTE_Line(3,SSFR)
  20. for i=1:length(SSFR)
  21. plot(3,SSFR(i),'k.');
  22. end
  23. ylim([0 100])
  24. g=gca;
  25. g.YTick=0:20:100;
  26. % % statistical testing
  27. x1=1*ones(1,6);
  28. x2=2*ones(1,6);
  29. x3=3*ones(1,6);
  30. y1=SSCH;
  31. y2=FRCH;
  32. y3=SSFR;
  33. [p,anovatab,stats] = kruskalwallis([y1 y2 y3],[x1 x2 x3],'off');
  34. multcompare(stats);
  35. %% Figure 2C
  36. clear all; close all;
  37. load('TimeInformation.mat');
  38. % % session number
  39. SS=[1 8 15 22 29 36];
  40. SSCH=[2 3 9 10 16 17 23 24 30 31 37 38];
  41. FRCH=[4 5 11 12 18 19 25 26 32 33 39 40];
  42. SSFR=[6 7 13 14 20 21 27 28 34 35 41 42];
  43. BehaviorParam.SS.Time_B1_Approach=BehaviorParam.Time_B1_Approach(SS,:,:);
  44. BehaviorParam.SS.Time_B2_Approach=BehaviorParam.Time_B2_Approach(SS,:,:);
  45. BehaviorParam.SS.Time_B3_Approach=BehaviorParam.Time_B3_Approach(SS,:,:);
  46. BehaviorParam.SS.Time_B4_Approach=BehaviorParam.Time_B4_Approach(SS,:,:);
  47. BehaviorParam.SSCH.Time_B1_Approach=BehaviorParam.Time_B1_Approach(SSCH,:,:);
  48. BehaviorParam.SSCH.Time_B2_Approach=BehaviorParam.Time_B2_Approach(SSCH,:,:);
  49. BehaviorParam.FRCH.Time_B1_Approach=BehaviorParam.Time_B1_Approach(FRCH,:,:);
  50. BehaviorParam.FRCH.Time_B2_Approach=BehaviorParam.Time_B2_Approach(FRCH,:,:);
  51. BehaviorParam.SSFR.Time_B1_Approach=BehaviorParam.Time_B1_Approach(SSFR,:,:);
  52. BehaviorParam.SSFR.Time_B2_Approach=BehaviorParam.Time_B2_Approach(SSFR,:,:);
  53. BehaviorParam.SSCH.Time_B3_Approach=BehaviorParam.Time_B3_Approach(SSCH,:,:);
  54. BehaviorParam.SSCH.Time_B4_Approach=BehaviorParam.Time_B4_Approach(SSCH,:,:);
  55. BehaviorParam.FRCH.Time_B3_Approach=BehaviorParam.Time_B3_Approach(FRCH,:,:);
  56. BehaviorParam.FRCH.Time_B4_Approach=BehaviorParam.Time_B4_Approach(FRCH,:,:);
  57. BehaviorParam.SSFR.Time_B3_Approach=BehaviorParam.Time_B3_Approach(SSFR,:,:);
  58. BehaviorParam.SSFR.Time_B4_Approach=BehaviorParam.Time_B4_Approach(SSFR,:,:);
  59. BehaviorParam.SSCH.Time_B1_LeaveRewardZone=BehaviorParam.Time_B1_LeaveRewardZone(SSCH,:);
  60. BehaviorParam.SSCH.Time_B2_LeaveRewardZone=BehaviorParam.Time_B2_LeaveRewardZone(SSCH,:);
  61. BehaviorParam.FRCH.Time_B1_LeaveRewardZone=BehaviorParam.Time_B1_LeaveRewardZone(FRCH,:);
  62. BehaviorParam.FRCH.Time_B2_LeaveRewardZone=BehaviorParam.Time_B2_LeaveRewardZone(FRCH,:);
  63. BehaviorParam.SSFR.Time_B1_LeaveRewardZone=BehaviorParam.Time_B1_LeaveRewardZone(SSFR,:);
  64. BehaviorParam.SSFR.Time_B2_LeaveRewardZone=BehaviorParam.Time_B2_LeaveRewardZone(SSFR,:);
  65. BehaviorParam.SSCH.Time_B3_LeaveRewardZone=BehaviorParam.Time_B3_LeaveRewardZone(SSCH,:);
  66. BehaviorParam.SSCH.Time_B4_LeaveRewardZone=BehaviorParam.Time_B4_LeaveRewardZone(SSCH,:);
  67. BehaviorParam.FRCH.Time_B3_LeaveRewardZone=BehaviorParam.Time_B3_LeaveRewardZone(FRCH,:);
  68. BehaviorParam.FRCH.Time_B4_LeaveRewardZone=BehaviorParam.Time_B4_LeaveRewardZone(FRCH,:);
  69. BehaviorParam.SSFR.Time_B3_LeaveRewardZone=BehaviorParam.Time_B3_LeaveRewardZone(SSFR,:);
  70. BehaviorParam.SSFR.Time_B4_LeaveRewardZone=BehaviorParam.Time_B4_LeaveRewardZone(SSFR,:);
  71. track=21;
  72. for Trial=1:2:30
  73. for i=1:size(BehaviorParam.SSCH.Time_B1_Approach,1)
  74. for j=1:size(BehaviorParam.SSCH.Time_B1_Approach,3)
  75. temp=(find(~isnan(BehaviorParam.SSCH.Time_B1_Approach(i,:,j))));
  76. Index_end=temp(end);
  77. Pre_latency_SSCH_B1(i,j,Trial)=(BehaviorParam.SSCH.Time_B1_Approach(i,Index_end-Trial,j));
  78. Post_latency_SSCH_B2(i,j,Trial)=(BehaviorParam.SSCH.Time_B2_Approach(i,Index_end+Trial,j));
  79. end
  80. end
  81. end
  82. for Trial=2:2:30
  83. for i=1:size(BehaviorParam.SSCH.Time_B1_Approach,1)
  84. for j=1:size(BehaviorParam.SSCH.Time_B1_Approach,3)
  85. temp=(find(~isnan(BehaviorParam.SSCH.Time_B1_Approach(i,:,j))));
  86. Index_end=temp(end);
  87. Pre_latency_SSCH_B1(i,j,Trial)=(BehaviorParam.SSCH.Time_B1_Approach(i,Index_end-Trial+2,j));
  88. Post_latency_SSCH_B2(i,j,Trial)=(BehaviorParam.SSCH.Time_B2_Approach(i,Index_end+Trial,j));
  89. end
  90. end
  91. end
  92. latency_SSCH_B12(:,track,5) = Pre_latency_SSCH_B1(:,track,1);
  93. latency_SSCH_B12(:,track,4) = Pre_latency_SSCH_B1(:,track,2);
  94. latency_SSCH_B12(:,track,3) = Pre_latency_SSCH_B1(:,track,3);
  95. latency_SSCH_B12(:,track,2) = Pre_latency_SSCH_B1(:,track,4);
  96. latency_SSCH_B12(:,track,1) = Pre_latency_SSCH_B1(:,track,5);
  97. for i=1:30
  98. latency_SSCH_B12(:,track,i+5) = Post_latency_SSCH_B2(:,track,i);
  99. end
  100. for Trial=1:2:30
  101. for i=1:size(BehaviorParam.FRCH.Time_B1_Approach,1)
  102. for j=1:size(BehaviorParam.FRCH.Time_B1_Approach,3)
  103. temp=(find(~isnan(BehaviorParam.FRCH.Time_B1_Approach(i,:,j))));
  104. Index_end=temp(end);
  105. Pre_latency_FRCH_B1(i,j,Trial)=(BehaviorParam.FRCH.Time_B1_Approach(i,Index_end-Trial,j));
  106. Post_latency_FRCH_B2(i,j,Trial)=(BehaviorParam.FRCH.Time_B2_Approach(i,Index_end+Trial,j));
  107. end
  108. end
  109. end
  110. for Trial=2:2:30
  111. for i=1:size(BehaviorParam.FRCH.Time_B1_Approach,1)
  112. for j=1:size(BehaviorParam.FRCH.Time_B1_Approach,3)
  113. temp=(find(~isnan(BehaviorParam.FRCH.Time_B1_Approach(i,:,j))));
  114. Index_end=temp(end);
  115. Pre_latency_FRCH_B1(i,j,Trial)=(BehaviorParam.FRCH.Time_B1_Approach(i,Index_end-Trial+2,j));
  116. Post_latency_FRCH_B2(i,j,Trial)=(BehaviorParam.FRCH.Time_B2_Approach(i,Index_end+Trial,j));
  117. end
  118. end
  119. end
  120. latency_FRCH_B12(:,track,5) = Pre_latency_FRCH_B1(:,track,1);
  121. latency_FRCH_B12(:,track,4) = Pre_latency_FRCH_B1(:,track,2);
  122. latency_FRCH_B12(:,track,3) = Pre_latency_FRCH_B1(:,track,3);
  123. latency_FRCH_B12(:,track,2) = Pre_latency_FRCH_B1(:,track,4);
  124. latency_FRCH_B12(:,track,1) = Pre_latency_FRCH_B1(:,track,5);
  125. for i=1:30
  126. latency_FRCH_B12(:,track,i+5) = Post_latency_FRCH_B2(:,track,i);
  127. end
  128. for Trial=1:2:30
  129. for i=1:size(BehaviorParam.SSFR.Time_B1_Approach,1)
  130. for j=1:size(BehaviorParam.SSFR.Time_B1_Approach,3)
  131. temp=(find(~isnan(BehaviorParam.SSFR.Time_B1_Approach(i,:,j))));
  132. Index_end=temp(end);
  133. Pre_latency_SSFR_B1(i,j,Trial)=(BehaviorParam.SSFR.Time_B1_Approach(i,Index_end-Trial,j));
  134. Post_latency_SSFR_B2(i,j,Trial)=(BehaviorParam.SSFR.Time_B2_Approach(i,Index_end+Trial,j));
  135. end
  136. end
  137. end
  138. for Trial=2:2:30
  139. for i=1:size(BehaviorParam.SSFR.Time_B1_Approach,1)
  140. for j=1:size(BehaviorParam.SSFR.Time_B1_Approach,3)
  141. temp=(find(~isnan(BehaviorParam.SSFR.Time_B1_Approach(i,:,j))));
  142. Index_end=temp(end);
  143. Pre_latency_SSFR_B1(i,j,Trial)=(BehaviorParam.SSFR.Time_B1_Approach(i,Index_end-Trial+2,j));
  144. Post_latency_SSFR_B2(i,j,Trial)=(BehaviorParam.SSFR.Time_B2_Approach(i,Index_end+Trial,j));
  145. end
  146. end
  147. end
  148. latency_SSFR_B12(:,track,5) = Pre_latency_SSFR_B1(:,track,1);
  149. latency_SSFR_B12(:,track,4) = Pre_latency_SSFR_B1(:,track,2);
  150. latency_SSFR_B12(:,track,3) = Pre_latency_SSFR_B1(:,track,3);
  151. latency_SSFR_B12(:,track,2) = Pre_latency_SSFR_B1(:,track,4);
  152. latency_SSFR_B12(:,track,1) = Pre_latency_SSFR_B1(:,track,5);
  153. for i=1:30
  154. latency_SSFR_B12(:,track,i+5) = Post_latency_SSFR_B2(:,track,i);
  155. end
  156. % % Plotting
  157. figure; hold on;
  158. Jin_Errorbar(1,Latency.SSvsCR_pre)
  159. Jin_Errorbar(2,Latency.SSvsCR_post)
  160. Jin_Errorbar(3,Latency.FLvsCR_pre)
  161. Jin_Errorbar(4,Latency.FLvsCR_post)
  162. Jin_Errorbar(5,Latency.SSvsFL_pre)
  163. Jin_Errorbar(6,Latency.SSvsFL_post)
  164. g=gca; yaxis=g.YLim(2);
  165. % % Statistical testing
  166. [p_ssch, H, stats]=signrank(Latency.SSvsCR_pre,Latency.SSvsCR_post);
  167. [p_frch, H, stat]=signrank(Latency.FLvsCR_pre,Latency.FLvsCR_post);
  168. [p_ssfr, h, stat]=signrank(Latency.SSvsFL_pre,Latency.SSvsFL_post);