SpikeInterface Logo

Contents:

  • Overview
  • Getting started
  • Tutorials
  • How to Guides
  • Modules documentation
  • API
  • Development
  • Release notes
  • Contact Us
  • How to Cite
SpikeInterface
  • Peaks Widgets Gallery
  • View page source

Note

Go to the end to download the full example code.

Peaks Widgets Gallery

Some widgets are useful before sorting and works with the “peaks” given by the detect_peaks() function.

They are useful to check drift before running sorters.

import matplotlib.pyplot as plt

import spikeinterface.full as si

First, let’s generate a simulated dataset

recording, sorting = si.generate_ground_truth_recording()

Let’s filter and detect peaks on it

from spikeinterface.sortingcomponents.peak_detection import detect_peaks

rec_filtered = si.bandpass_filter(recording=recording, freq_min=300.0, freq_max=6000.0, margin_ms=5.0)
print(rec_filtered)
peaks = detect_peaks(
    recording=rec_filtered,
    method="locally_exclusive",
    peak_sign="neg",
    detect_threshold=6,
    exclude_sweep_ms=0.3,
    radius_um=100,
    noise_levels=None,
    random_chunk_kwargs={},
    chunk_memory="10M",
    n_jobs=1,
    progress_bar=True,
)
GroundTruthRecording (BandpassFilterRecording): 4 channels - 25.0kHz - 1 segments
                      250,000 samples - 10.00s - float32 dtype - 3.81 MiB

noise_level (no parallelization):   0%|          | 0/20 [00:00<?, ?it/s]
noise_level (no parallelization): 100%|██████████| 20/20 [00:00<00:00, 225.61it/s]

detect peaks using locally_exclusive (no parallelization):   0%|          | 0/1 [00:00<?, ?it/s]
detect peaks using locally_exclusive (no parallelization): 100%|██████████| 1/1 [00:00<00:00,  4.13it/s]
detect peaks using locally_exclusive (no parallelization): 100%|██████████| 1/1 [00:00<00:00,  4.13it/s]

peaks is a numpy 1D array with structured dtype that contains several fields:

print(peaks.dtype)
print(peaks.shape)
print(peaks.dtype.fields.keys())
[('sample_index', '<i8'), ('channel_index', '<i8'), ('amplitude', '<f8'), ('segment_index', '<i8')]
(883,)
dict_keys(['sample_index', 'channel_index', 'amplitude', 'segment_index'])

This “peaks” vector can be used in several widgets, for instance plot_peak_activity()

si.plot_peak_activity(recording=rec_filtered, peaks=peaks)

plt.show()
Probe - 4ch - 1shanks

can be also animated with bin_duration_s=1. The animation only works if you run this code locally

si.plot_peak_activity(recording=rec_filtered, peaks=peaks, bin_duration_s=1.0)

plt.show()
plot 4 peaks gallery

Total running time of the script: (0 minutes 0.482 seconds)

Download Jupyter notebook: plot_4_peaks_gallery.ipynb

Download Python source code: plot_4_peaks_gallery.py

Download zipped: plot_4_peaks_gallery.zip

Gallery generated by Sphinx-Gallery


© Copyright 2022, Alessio Paolo Buccino, Samuel Garcia, Cole Hurwitz, Jeremy Magland, Matthias Hennig.

Built with Sphinx using a theme provided by Read the Docs.