H5_raster.m 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. % The script plots the neural and behavioural data contained in a .h5 file
  2. % of the repository in the form of a raster plot
  3. % authors: Francesco E. Vaccari
  4. % date: 10/2022
  5. clear all; clc; close all;
  6. addpath('supportFunctions')
  7. currentFolder = pwd;
  8. parentFolder = fileparts(fileparts(currentFolder));
  9. [filename,path_folder_data] = uigetfile('*.h5','Select a h5 dataset',[parentFolder '\data']);
  10. str = '/DATA'; %it can be either unitXXX, unitXXX/conditionYY or unitXXX/conditionYY/trialZZ
  11. [data, all_strings] = get_all_data_from_level_h5_rec([path_folder_data filename],str, {}, {}); %extract data
  12. markers = data(:,1); spikes = data(:,2);
  13. str2readmk = ['/DATA/unit_001/condition_01/trial_01/event_markers'];
  14. marker_labels = h5readatt([path_folder_data filename],str2readmk,'Marker labels'); %extract names of event markers
  15. figure
  16. hold on
  17. for count = 1:length(spikes)
  18. clmap = jet(length(markers{count}));
  19. scatter(spikes{count},count,'|','k')
  20. sz = 30;
  21. c = linspace(1,10,length(markers{count}));
  22. if count == length(spikes)
  23. for mk = 1:size(markers{count},2)
  24. tmp = scatter(markers{count}(mk),1*count,sz,clmap(mk,:),'filled','DisplayName',marker_labels{mk});
  25. dots(mk) = tmp;
  26. end
  27. end
  28. scatter(markers{count},ones(size(markers{count}))*count,sz,clmap,'filled')
  29. end
  30. hold off
  31. ylim([0 count+1])
  32. xlabel('Time (ms)')
  33. ylabel('Trial #')
  34. legend(dots,marker_labels)
  35. colormap(jet)
  36. title('Raster Plot')