cut_trial_block.segments = cut_segment_by_epoch( data_segment, epoch, reset_time=True) # ============================================================================= # Plot data # ============================================================================= # Determine the first existing trial ID i from the Event object containing all # start events. Then, by calling the filter() function of the Neo Block # "data_cut_to_analysis_epochs" containing the data cut into the analysis # epochs, we ask to return all Segments annotated by the behavioral trial ID i. # In this case this call should return one matching analysis epoch around TS-ON # belonging to behavioral trial ID i. For monkey N, this is trial ID 1, for # monkey L this is trial ID 2 since trial ID 1 is not a correct trial. trial_id = int(np.min(start_event.annotations['trial_id'])) trial_segments = cut_trial_block.filter( targdict={"trial_id": trial_id}, objects=Segment) assert len(trial_segments) == 1 trial_segment = trial_segments[0] # Create figure fig = plt.figure(facecolor='w') time_unit = pq.CompoundUnit('1./30000*s') amplitude_unit = pq.microvolt nsx_colors = ['b', 'k', 'r'] # Loop through all analog signals and plot the signal in a color corresponding # to its sampling frequency (i.e., originating from the ns2/ns5 or ns2/ns6). for i, anasig in enumerate(trial_segment.analogsignals): plt.plot( anasig.times.rescale(time_unit), anasig.squeeze().rescale(amplitude_unit),
stlist = [st - st.t_start for st in seg.spiketrains] plt.subplot(len(block.segments), 1, seg.index + 1) count, bins = np.histogram(stlist) plt.bar(bins[:-1], count, width=bins[1] - bins[0]) plt.title(f"PSTH in segment {seg.index}") plt.show() # ..by neuron plt.figure() for i, group in enumerate(block.groups): stlist = [st - st.t_start for st in group.spiketrains] plt.subplot(len(block.groups), 1, i + 1) count, bins = np.histogram(stlist) plt.bar(bins[:-1], count, width=bins[1] - bins[0]) plt.title(f"PSTH of unit {group.name}") plt.show() # ..by tetrode plt.figure() for i, tetrode_id in enumerate(block.annotations["tetrode_ids"]): stlist = [] for unit in block.filter(objects=Group, tetrode_id=tetrode_id): stlist.extend([st - st.t_start for st in unit.spiketrains]) plt.subplot(2, 1, i + 1) count, bins = np.histogram(stlist) plt.bar(bins[:-1], count, width=bins[1] - bins[0]) plt.title(f"PSTH blend of tetrode {tetrode_id}") plt.show()