plot_cueScatter.m 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. clear; clc
  2. load(fullfile(ottBari2020_root, 'Data', 'Modeling', 'ModelFits', 'cue_MLEfits.mat'));
  3. myColors = importColors_bb;
  4. VP_color = myColors.bluishGreen;
  5. % get relevant behavior models
  6. modelCriterion = 'AIC';
  7. plotFlag = true;
  8. m_RPE = {'base','base_cue','curr','curr_cue','mean','mean_cue'};
  9. m_V = {'base','base_cue','mean','mean_cue'};
  10. timePeriod = 'RD';
  11. bm_RD = select_RPEmods(os, timePeriod,'scoreToUse',modelCriterion,'plotModels_Flag',plotFlag,...
  12. 'particularModel',m_RPE);
  13. timePeriod = 'cue';
  14. bm_cue = select_RPEmods(os, timePeriod,'scoreToUse',modelCriterion,'plotModels_Flag',plotFlag,...
  15. 'particularModel',m_V);
  16. %%
  17. timePeriod = 'cue';
  18. switch timePeriod
  19. case 'RD'
  20. bm = bm_RD;
  21. models_to_cycle = {'base_cue','curr_cue','mean_cue'};
  22. signFlip = -1; % flip to keep consistent with cue-value
  23. case 'cue'
  24. bm = bm_cue;
  25. models_to_cycle = {'base_cue','mean_cue'};
  26. signFlip = 1;
  27. end
  28. valueStruct = struct();
  29. valueStruct.vsuc = [];
  30. valueStruct.vmal = [];
  31. for m = models_to_cycle
  32. m = m{:};
  33. mOfInt = bm.(['mask_' m]);
  34. if any(mOfInt)
  35. valueStruct.(['vsuc_' m]) = getParameters_ott(os(mOfInt),timePeriod,m,'vsuc');
  36. valueStruct.(['vmal_' m]) = getParameters_ott(os(mOfInt),timePeriod,m,'vmal');
  37. valueStruct.vsuc = [valueStruct.vsuc getParameters_ott(os(mOfInt),timePeriod,m,'vsuc')];
  38. valueStruct.vmal = [valueStruct.vmal getParameters_ott(os(mOfInt),timePeriod,m,'vmal')];
  39. else
  40. valueStruct.(['vsuc_' m]) = [];
  41. valueStruct.(['vmal_' m]) = [];
  42. end
  43. end
  44. valueStruct.vsuc = signFlip*valueStruct.vsuc;
  45. valueStruct.vmal = signFlip*valueStruct.vmal;
  46. h_scatter = figure; hold on
  47. scatter(valueStruct.vsuc, valueStruct.vmal)
  48. plot([-1 1],[0 0],'Color',myColors.gray)
  49. plot([0 0],[-1 1],'Color',myColors.gray)
  50. xlim([-1 1])
  51. ylim([-1 1])
  52. xlabel('Sucrose value','interpreter','latex')
  53. ylabel('Maltodextrin value','interpreter','latex')
  54. title(timePeriod)
  55. set(gca,'tickdir','out','xtick',-1:0.5:1,'ytick',-1:0.5:1)
  56. nTot = numel(valueStruct.vsuc);
  57. q1 = sum(valueStruct.vsuc > 0 & valueStruct.vmal > 0)/nTot * 100;
  58. q2 = sum(valueStruct.vsuc < 0 & valueStruct.vmal > 0)/nTot * 100;
  59. q3 = sum(valueStruct.vsuc < 0 & valueStruct.vmal < 0)/nTot * 100;
  60. q4 = sum(valueStruct.vsuc > 0 & valueStruct.vmal < 0)/nTot * 100;
  61. strFormat = '%0.1f';
  62. text( 0.5, 0.5, [num2str(q1, strFormat) '%'])
  63. text(-0.5, 0.5, [num2str(q2, strFormat) '%'])
  64. text(-0.5, -0.5, [num2str(q3, strFormat) '%'])
  65. text( 0.5, -0.5, [num2str(q4, strFormat) '%'])
  66. p_prop = myBinomTest(sum(valueStruct.vsuc > 0 & valueStruct.vmal < 0), nTot, 0.25, 'two');
  67. fprintf('p_value for quadrant 4 is %0.1e\n', p_prop)
  68. axis square