fit_gRW_MLE.m 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. clear; clc
  2. task = 'intBlocks';
  3. ott_data = loadData_ott(task);
  4. nStart = 10;
  5. RNG_val = 1;
  6. my_root = fullfile(ottBari2020_root, 'MatlabScripts', '2_Modeling', 'intBlocks', 'fit_model_gauss');
  7. addpath(fullfile(my_root, 'gRWmodels_RPE'))
  8. addpath(fullfile(my_root, 'gRWmodels_value'))
  9. %%
  10. clear os_temp os
  11. models_of_interest_RPE = {'base','base_asymm','curr','mean'};
  12. % models_of_interest_V = {'base','base_asymm','mean'};
  13. all_fits = struct(); % initialize an empty structure
  14. for ind = 1:length(ott_data.RDHz) % for all neurons
  15. fprintf('n %i of %i\n', ind, length(ott_data.RDHz))
  16. os_temp(ind).Blocks = ott_data.Blocks(ind);
  17. os_temp(ind).Blocks12 = ott_data.Blocks12(ind);
  18. os_temp(ind).Region = ott_data.Region{ind};
  19. os_temp(ind).spikeRate_RD = zscore(round(ott_data.RDHz{ind}*1.2)); % RD period; 1.2s long
  20. os_temp(ind).spikeRate_cue = zscore(round(ott_data.CueHz{ind}*0.75)); % cue period; 0.75s long
  21. os_temp(ind).rewards = ott_data.AllTrials{ind}(:, 1); % 0 mal, 1 suc
  22. os_temp(ind).timeLocked = logical(ott_data.AllTrials{ind}(:, 2)); % trials fast enough to have time-locked responses
  23. % spikeRate is a temporary field
  24. % fit RD
  25. os_temp(ind).spikeRate = os_temp(ind).spikeRate_RD;
  26. ms = helper_gRW_RPE(os_temp(ind), 'StartingPoints', nStart, 'RNG', RNG_val, 'ParticularModel', models_of_interest_RPE);
  27. os_temp(ind).mod_RD = ms;
  28. % % fit cue
  29. % os_temp(ind).spikeRate = os_temp(ind).spikeRate_cue;
  30. % ms = helper_gRW_V(os_temp(ind), 'StartingPoints', nStart, 'RNG', RNG_val, 'ParticularModel', models_of_interest_V);
  31. % os_temp(ind).mod_cue = ms;
  32. % remove spikeRate to avoid future confusion
  33. os(ind) = rmfield(os_temp(ind), 'spikeRate');
  34. end
  35. fprintf('Finished\n')
  36. C:\Users\bilal\Dropbox\RPE Manuscript copy\Data\Modeling\ModelFits
  37. save(fullfile(ottBari2020_root, 'Data', 'Modeling', 'ModelFits', 'intBlocks_MLEfits_gauss.mat'),'os')