SpikeInterface
0.100.0

Contents:

  • Overview
  • Installation
  • Importing SpikeInterface
  • Modules documentation
  • How to guides
  • Modules example gallery
    • Core tutorials
    • Extractors tutorials
    • Quality metrics tutorial
    • Comparison tutorial
    • Widgets tutorials
      • RecordingExtractor Widgets Gallery
      • SortingExtractor Widgets Gallery
      • Waveforms Widgets Gallery
      • Peaks Widgets Gallery
  • Installing Spike Sorters
  • Viewers
  • Development
  • API
  • Release notes
  • Contact Us
SpikeInterface
  • »
  • Modules example gallery »
  • Peaks Widgets Gallery
  • Edit on GitHub

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 download a simulated dataset from the repo ‘https://gin.g-node.org/NeuralEnsemble/ephy_testing_data’

local_path = si.download_dataset(remote_path='mearec/mearec_test_10s.h5')
rec, sorting = si.read_mearec(local_path)

Let’s filter and detect peaks on it

from spikeinterface.sortingcomponents.peak_detection import detect_peaks

rec_filtred = si.bandpass_filter(recording=rec, freq_min=300., freq_max=6000., margin_ms=5.0)
print(rec_filtred)
peaks = detect_peaks(
        recording=rec_filtred, 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)
BandpassFilterRecording: 32 channels - 32.0kHz - 1 segments - 320,000 samples - 10.00s
                         float32 dtype - 39.06 MiB

detect peaks using locally_exclusive:   0%|          | 0/5 [00:00<?, ?it/s]
detect peaks using locally_exclusive:  20%|##        | 1/5 [00:00<00:01,  2.56it/s]
detect peaks using locally_exclusive:  40%|####      | 2/5 [00:00<00:01,  2.56it/s]
detect peaks using locally_exclusive:  60%|######    | 3/5 [00:00<00:00,  3.84it/s]
detect peaks using locally_exclusive:  80%|########  | 4/5 [00:00<00:00,  5.01it/s]
detect peaks using locally_exclusive: 100%|##########| 5/5 [00:01<00:00,  4.98it/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')]
(749,)
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_filtred, peaks=peaks)

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

can be also animated with bin_duration_s=1.

si.plot_peak_activity(recording=rec_filtred, peaks=peaks, bin_duration_s=1.)


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

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

Download Jupyter notebook: plot_4_peaks_gallery.ipynb

Download Python source code: plot_4_peaks_gallery.py

Gallery generated by Sphinx-Gallery

Previous Next

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

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