Plot raster across sessionΒΆ

Example of how to plot scatter plot of spike depths vs spike times with colour and size of scatter points scaled by spike amplitude

[1]:
import numpy as np
from one.api import ONE

from brainbox.ephys_plots import scatter_raster_plot
from brainbox.plot_base import plot_scatter

one = ONE(base_url='https://openalyx.internationalbrainlab.org', silent=True)

eid = '4ecb5d24-f5cc-402c-be28-9d0f7cb14b3a'
probe = 'probe00'

spikes = one.load_object(eid, obj='spikes', collection=f'alf/{probe}')
metrics = one.load_dataset(eid, dataset='clusters.metrics.pqt', collection=f'alf/{probe}')

# Find the clusters that have been labelled as good and their corresponding spike indices
good_clusters = np.where(metrics.label == 1)
spike_idx = np.where(np.isin(spikes['clusters'], good_clusters))[0]

# Also filter for nans in amplitude and depth
kp_idx = spike_idx[np.where(~np.isnan(spikes['depths'][spike_idx])
                            & ~np.isnan(spikes['amps'][spike_idx]))[0]]

# Get ScatterPlot object
data = scatter_raster_plot(spikes['amps'][kp_idx], spikes['depths'][kp_idx],
                           spikes['times'][kp_idx])

# Add v lines 10s after start and 10s before end or recording
x1 = np.min(spikes['times'][kp_idx] + 100)
x2 = np.max(spikes['times'][kp_idx] - 100)
data.add_lines(pos=x1, orientation='v', style='dashed', width=3, color='k')
data.add_lines(pos=x2, orientation='v', style='dashed', width=3, color='k')


plot_dict = data.convert2dict()

fig, ax = plot_scatter(plot_dict)
../_images/notebooks_external_docs_scatter_raster_plot_1_0.png