Note
Go to the end to download the full example code
Peaks Widgets Gallery¶
Some widgets are useful before sorting and works with “peaks” given by 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)
Traceback (most recent call last):
File "/home/docs/checkouts/readthedocs.org/user_builds/spikeinterface/checkouts/0.98.1/examples/modules_gallery/widgets/plot_4_peaks_gallery.py", line 20, in <module>
rec, sorting = si.read_mearec(local_path)
File "/home/docs/checkouts/readthedocs.org/user_builds/spikeinterface/checkouts/0.98.1/src/spikeinterface/extractors/neoextractors/mearec.py", line 133, in read_mearec
recording = MEArecRecordingExtractor(file_path)
File "/home/docs/checkouts/readthedocs.org/user_builds/spikeinterface/checkouts/0.98.1/src/spikeinterface/extractors/neoextractors/mearec.py", line 47, in __init__
NeoBaseRecordingExtractor.__init__(self, all_annotations=all_annotations, **neo_kwargs)
File "/home/docs/checkouts/readthedocs.org/user_builds/spikeinterface/checkouts/0.98.1/src/spikeinterface/extractors/neoextractors/neobaseextractor.py", line 185, in __init__
_NeoBaseExtractor.__init__(self, block_index, **neo_kwargs)
File "/home/docs/checkouts/readthedocs.org/user_builds/spikeinterface/checkouts/0.98.1/src/spikeinterface/extractors/neoextractors/neobaseextractor.py", line 25, in __init__
self.neo_reader = self.get_neo_io_reader(self.NeoRawIOClass, **neo_kwargs)
File "/home/docs/checkouts/readthedocs.org/user_builds/spikeinterface/checkouts/0.98.1/src/spikeinterface/extractors/neoextractors/neobaseextractor.py", line 63, in get_neo_io_reader
neo_reader = neoIOclass(**neo_kwargs)
TypeError: MEArecRawIO.__init__() got an unexpected keyword argument 'load_spiketrains'
Lets filter and detect peak on it
from spikeinterface.sortingcomponents.peak_detection import detect_peaks
rec_filtred = si.bandpass_filter(rec, freq_min=300., freq_max=6000., margin_ms=5.0)
print(rec_filtred)
peaks = detect_peaks(
rec_filtred, method='locally_exclusive',
peak_sign='neg', detect_threshold=6, exclude_sweep_ms=0.3,
local_radius_um=100,
noise_levels=None,
random_chunk_kwargs={},
chunk_memory='10M', n_jobs=1, progress_bar=True)
peaks is a numpy 1D array with structured dtype that contains several fields:
print(peaks.dtype)
print(peaks.shape)
print(peaks.dtype.fields.keys())
- This “peaks” vector can be used in several widgets, for instance
plot_peak_activity_map()
si.plot_peak_activity_map(rec_filtred, peaks=peaks)
can be also animated with bin_duration_s=1.
si.plot_peak_activity_map(rec_filtred, bin_duration_s=1.)
plt.show()
Total running time of the script: ( 0 minutes 0.041 seconds)