Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
Here is a gallery of all the available widgets using SortingExtractor objects.
'''
import spikeinterface.extractors as se
import spikeinterface.widgets as sw
##############################################################################
# First, let's create a toy example with the `extractors` module:
recording, sorting = se.example_datasets.toy_example(duration=60, num_channels=4, seed=0)
##############################################################################
# plot_rasters()
# ~~~~~~~~~~~~~~~~~
w_rs = sw.plot_rasters(sorting)
##############################################################################
# plot_isi_distribution()
# ~~~~~~~~~~~~~~~~~~~~~~~~
w_isi = sw.plot_isi_distribution(sorting, bins=10, window=1)
##############################################################################
# plot_autocorrelograms()
# ~~~~~~~~~~~~~~~~~~~~~~~~
w_ach = sw.plot_autocorrelograms(sorting, bin_size=1, window=10, unit_ids=[1, 2, 4, 5, 8, 10, 7])
##############################################################################
# plot_crosscorrelograms()
# ~~~~~~~~~~~~~~~~~~~~~~~~
w_cch = sw.plot_crosscorrelograms(sorting, unit_ids=[1, 5, 8], bin_size=0.1, window=5)
#############################################################################
# The multiple sorters comparison internally computes pairwise comparison,
# that can be accessed as follows:
print(mcmp.comparisons[0].sorting1, mcmp.comparisons[0].sorting2)
mcmp.comparisons[0].get_mapped_sorting1().get_mapped_unit_ids()
#############################################################################
print(mcmp.comparisons[1].sorting1, mcmp.comparisons[1].sorting2)
mcmp.comparisons[0].get_mapped_sorting1().get_mapped_unit_ids()
#############################################################################
# The global multi comparison can be visualized with this graph
sw.plot_multicomp_graph(mcmp)
#############################################################################
# We can see that there is a better agreement between tridesclous and
# mountainsort (5 units matched), while klusta only has two matched units
# with tridesclous, and three with mountainsort.
#############################################################################
# Consensus-based method
# ---------------------------
#
# We can pull the units in agreement with different sorters using the
# :code:`get_agreement_sorting` method. This allows to make spike sorting more
# robust by integrating the output of several algorithms. On the other
# hand, it might suffer from weak performance of single algorithms.
#
Here is a gallery of all the available widgets using a pair of RecordingExtractor-SortingExtractor objects.
'''
import spikeinterface.extractors as se
import spikeinterface.widgets as sw
##############################################################################
# First, let's create a toy example with the `extractors` module:
recording, sorting = se.example_datasets.toy_example(duration=10, num_channels=4, seed=0)
##############################################################################
# plot_unit_waveforms()
# ~~~~~~~~~~~~~~~~~~~~~~~~
w_wf = sw.plot_unit_waveforms(recording, sorting, max_num_waveforms=100)
##############################################################################
# plot_amplitudes_distribution()
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
w_ampd = sw.plot_amplitudes_distribution(recording, sorting, max_num_waveforms=300)
##############################################################################
# plot_amplitudes_timeseres()
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
w_ampt = sw.plot_amplitudes_timeseries(recording, sorting, max_num_waveforms=300)
##############################################################################
# plot_pca_features()
# ~~~~~~~~~~~~~~~~~~~~~~~~
w_rs = sw.plot_rasters(sorting)
##############################################################################
# plot_isi_distribution()
# ~~~~~~~~~~~~~~~~~~~~~~~~
w_isi = sw.plot_isi_distribution(sorting, bins=10, window=1)
##############################################################################
# plot_autocorrelograms()
# ~~~~~~~~~~~~~~~~~~~~~~~~
w_ach = sw.plot_autocorrelograms(sorting, bin_size=1, window=10, unit_ids=[1, 2, 4, 5, 8, 10, 7])
##############################################################################
# plot_crosscorrelograms()
# ~~~~~~~~~~~~~~~~~~~~~~~~
w_cch = sw.plot_crosscorrelograms(sorting, unit_ids=[1, 5, 8], bin_size=0.1, window=5)