RPE_symmetry.m 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. Colors = load_colors();
  2. load('ModData_intBlocks.mat');
  3. load ('R_intBlocks.mat');
  4. load ('intBlocks_MLEfits.mat');
  5. bm_RD=select_RPEmods(os, 'RD', 'particularModels', {'mean','curr','base'},'plotmodels_Flag',false);
  6. masks=cat(2,bm_RD.mask_base',bm_RD.mask_curr',bm_RD.mask_mean');
  7. region = strcmp(R_blocks.Region,'VP');
  8. task = R_blocks.Blocks==0;
  9. figure;
  10. %% activity plots
  11. ymax=4;
  12. alph=0.3;
  13. Sel=region&task&masks(:,1);
  14. neuronIDs = find(Sel);
  15. pos_error=[];
  16. neg_error=[];
  17. for neuron = 1:sum(Sel)
  18. neuronID = neuronIDs(neuron);
  19. SSHz = mean(CS.RDHz{neuronID}(CS.Predictors{neuronID}(:,1)==1 & CS.Predictors{neuronID}(:,2)==1));
  20. SMHz = mean(CS.RDHz{neuronID}(CS.Predictors{neuronID}(:,1)==1 & CS.Predictors{neuronID}(:,2)==0));
  21. pos_error(neuron,1) = (SMHz - SSHz) / std(CS.RDHz{neuronID});
  22. MSHz = mean(CS.RDHz{neuronID}(CS.Predictors{neuronID}(:,1)==0 & CS.Predictors{neuronID}(:,2)==1));
  23. MMHz = mean(CS.RDHz{neuronID}(CS.Predictors{neuronID}(:,1)==0 & CS.Predictors{neuronID}(:,2)==0));
  24. neg_error(neuron,1) = (MSHz - MMHz) / std(CS.RDHz{neuronID});
  25. end
  26. subplot(1,1,1);
  27. hold on;
  28. scatter(pos_error,neg_error);
  29. plot([-1.5 1.5],[0 0],'color','k','linewidth',1);
  30. plot([0 0],[-1.5 1.5],'color','k','linewidth',1);
  31. xlabel('(suc after mal) - (suc after suc)');
  32. ylabel('(mal after suc) - (mal after mal)');
  33. title('Negative prediction error vs. positive prediction error');