spikeinterface
stable

Contents:

  • Overview
  • Installation
  • Getting started tutorial
  • Modules documentation
  • Modules tutorials
    • Core tutorials
    • Extractors tutorials
    • Preprocessing tutorial
    • Sorters tutorials
    • Postprocessing tutorial
    • Quality metrics tutorial
    • Comparison tutorials
    • Widgets tutorials
      • Core tutorials
      • Extractors tutorials
      • Preprocessing tutorial
      • Sorters tutorials
      • Postprocessing tutorial
      • Quality metrics tutorial
      • Comparison tutorials
      • Widgets tutorials
        • RecordingExtractor Widgets Gallery
        • SortingExtractor Widgets Gallery
        • Waveforms Widgets Gallery
        • Peaks Widgets Gallery
  • Compatible Technology
  • Containerized Sorters
  • Installing Spike Sorters
  • SpikeInterface-based spike sorters
  • Viewers
  • Contribute
  • API
  • Release notes
  • Contact Us
spikeinterface
  • Modules tutorials
  • Widgets tutorials
  • Waveforms Widgets Gallery
  • Edit on GitHub

Note

Click here to download the full example code

Waveforms Widgets Gallery¶

Here is a gallery of all the available widgets using a pair of RecordingExtractor-SortingExtractor objects.

import matplotlib.pyplot as plt

import spikeinterface as si
import spikeinterface.extractors as se
import spikeinterface.postprocessing as spost
import spikeinterface.widgets as sw
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')
recording = se.MEArecRecordingExtractor(local_path)
sorting = se.MEArecSortingExtractor(local_path)
print(recording)
print(sorting)
MEArecRecordingExtractor: 32 channels - 1 segments - 32.0kHz - 10.000s
  file_path: /home/docs/spikeinterface_datasets/ephy_testing_data/mearec/mearec_test_10s.h5
MEArecSortingExtractor: 10 units - 1 segments - 32.0kHz
  file_path: /home/docs/spikeinterface_datasets/ephy_testing_data/mearec/mearec_test_10s.h5

Extract spike waveforms¶

For convenience, metrics are computed on the WaveformExtractor object that gather recording/sorting and extracted waveforms in a single object

folder = 'waveforms_mearec'
we = si.extract_waveforms(recording, sorting, folder,
    load_if_exists=True,
    ms_before=1, ms_after=2., max_spikes_per_unit=500,
    n_jobs=1, chunk_size=30000)

# pre-compute postprocessing data
_ = spost.compute_spike_amplitudes(we)
_ = spost.compute_unit_locations(we)
_ = spost.compute_spike_locations(we)
_ = spost.compute_template_metrics(we)
/home/docs/checkouts/readthedocs.org/user_builds/spikeinterface-test/checkouts/stable/examples/modules/widgets/plot_3_waveforms_gallery.py:32: DeprecationWarning: load_if_exists=True/false is deprcated. Use load_waveforms() instead.
  we = si.extract_waveforms(recording, sorting, folder,

extract waveforms memmap:   0%|          | 0/11 [00:00<?, ?it/s]
extract waveforms memmap: 100%|##########| 11/11 [00:00<00:00, 119.19it/s]

extract amplitudes:   0%|          | 0/10 [00:00<?, ?it/s]
extract amplitudes: 100%|##########| 10/10 [00:00<00:00, 316.94it/s]

localize peaks:   0%|          | 0/10 [00:00<?, ?it/s]
localize peaks: 100%|##########| 10/10 [00:00<00:00, 430.04it/s]

plot_unit_waveforms()¶

unit_ids = sorting.unit_ids[:4]

sw.plot_unit_waveforms(we, unit_ids=unit_ids)
template #0, template #1, template #2, template #3
<spikeinterface.widgets.matplotlib.unit_waveforms.UnitWaveformPlotter object at 0x7fa4289191f0>

plot_unit_templates()¶

unit_ids = sorting.unit_ids

sw.plot_unit_templates(we, unit_ids=unit_ids, ncols=5)
template #0, template #1, template #2, template #3, template #4, template #5, template #6, template #7, template #8, template #9
<spikeinterface.widgets.matplotlib.unit_templates.UnitTemplatesPlotter object at 0x7fa428919af0>

plot_amplitudes()¶

sw.plot_amplitudes(we, plot_histograms=True)
plot 3 waveforms gallery
<spikeinterface.widgets.matplotlib.amplitudes.AmplitudesPlotter object at 0x7fa4286ca610>

plot_unit_locations()¶

sw.plot_unit_locations(we)
plot 3 waveforms gallery
<spikeinterface.widgets.matplotlib.unit_locations.UnitLocationsPlotter object at 0x7fa44ab75100>

plot_unit_waveform_density_map()¶

This is your best friend to check over merge

unit_ids = sorting.unit_ids[:4]
sw.plot_unit_waveforms_density_map(we, unit_ids=unit_ids, max_channels=5)
Traceback (most recent call last):
  File "/home/docs/checkouts/readthedocs.org/user_builds/spikeinterface-test/checkouts/stable/examples/modules/widgets/plot_3_waveforms_gallery.py", line 82, in <module>
    sw.plot_unit_waveforms_density_map(we, unit_ids=unit_ids, max_channels=5)
  File "/home/docs/checkouts/readthedocs.org/user_builds/spikeinterface-test/conda/stable/lib/python3.8/site-packages/spikeinterface/widgets/base.py", line 116, in widget_func
    W.do_plot(W.backend, **W.backend_kwargs)
  File "/home/docs/checkouts/readthedocs.org/user_builds/spikeinterface-test/conda/stable/lib/python3.8/site-packages/spikeinterface/widgets/base.py", line 52, in do_plot
    self.check_backend_kwargs(plotter, backend, **backend_kwargs)
  File "/home/docs/checkouts/readthedocs.org/user_builds/spikeinterface-test/conda/stable/lib/python3.8/site-packages/spikeinterface/widgets/base.py", line 46, in check_backend_kwargs
    raise Exception(f"{k} is not a valid plot argument or backend keyword argument. "
Exception: max_channels is not a valid plot argument or backend keyword argument. Possible backend keyword arguments for matplotlib are: ['figure', 'ax', 'axes', 'ncols', 'figsize', 'figtitle']

plot_amplitudes_distribution()¶

sw.plot_all_amplitudes_distributions(we)

plot_units_depths()¶

sw.plot_unit_depths(we)

plot_unit_probe_map()¶

unit_ids = sorting.unit_ids[:4]
sw.plot_unit_probe_map(we, unit_ids=unit_ids)



plt.show()

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

Download Python source code: plot_3_waveforms_gallery.py

Download Jupyter notebook: plot_3_waveforms_gallery.ipynb

Gallery generated by Sphinx-Gallery

Previous Next

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

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