Skip to main content

GUI for spikeinterface objects

Project description

spikeinterface-gui

GUI for spikeinterface objects without data copy.

This is a cross platform interactive viewer to inspect the final results and quality of any spike sorter supported by spikeinterface (kilosort, spykingcircus, tridesclous, moutainssort, yass, ironclust, herdinspikes, hdsort, klusta...)

This interactive GUI offer several views that dynamically refresh other views. This allow to very quickly check strenght and wikness of a sorter otuput.

Contrary to other viewers (like phy), this viewer skip the tedious and long step of copying and reformating the entire dataset (filetred signal + waveform + PCA) to a particular format or folder organisation. This gui is built on top of spike interface objects (Recording, Sorting, WaveformExtractor) Theses objects are "lazy" and retrieve data on the fly (no copy!). And contrary to phy, this is a view only tool : no manual curation at the moment (split/merge/trash have to be done outside).

This viewer internally use Qt (with PySide6, PyQT6 or PyQt5) and pyqtgraph. And so, this viewer is local desktop app (old school!!). There is a web based viewer work-in-progres here.

screenshot

Launch

You will need this viewer only and only if you known a bit of spikeinterface

Step 1 : extract waveforms

You first need to "extract waveform" with spikeinterface See help here

Note that:

  • not all waveforms snipet are extracted (See max_spikes_per_unit) only some of then
  • this step is cached to a folder (and can be reloaded)
  • this step can be run in parralel (and so quite fast)
  • optionaly PCa can be compute and displayed

Example:

import spikeinterface.full as si
recording = si.read_XXXX('/path/to/my/recording')
recording_filtered = si.bandpass_filter(recording)
sorting = si.run_sorter('YYYYY', recording_filtered)
waveform_folder = '/path/for/my/waveforms'
we = si.extract_waveforms(
    recording_filtered, sorting, waveform_folder,
    max_spikes_per_unit=500,
    ms_before=1.5, ms_after=2.5,
    n_jobs=10, total_memory='500M',
    progress_bar=True,
)
# and optionally compute principal component
pc = si.compute_principal_components(we,
    n_components=5,
    mode='by_channel_local',
    whiten=True)

Step 2 : open the GUI

With python:

import spikeinterface_gui
# This cerate a Qt app
app = spikeinterface_gui.mkQApp() 
# reload the waveform folder
we = si.WaveformExtractor.load_from_folder(waveform_folder)
# create the mainwindow and show
win = spikeinterface_gui.MainWindow(we)
win.show()
# run the main Qt6 loop
app.exec_()

With the commend line

sigui /path/for/my/waveforms

Install

You need first to install one of this 3 packages (by order of preference):

  • pip install PySide6
  • pip install PyQt6
  • pip install PyQt5

From pypi:

pip install spikeinterface-gui

From sources:

git clone https://github.com/SpikeInterface/spikeinterface-gui.git
cd spikeinterface-gui
pip install .

Author

Samuel Garcia, CNRS, Lyon, France

This work is a port of the old tridesclous.gui submodule of top of spikeinterface.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

spikeinterface-gui-0.5.0.tar.gz (38.3 kB view details)

Uploaded Source

Built Distribution

spikeinterface_gui-0.5.0-py3-none-any.whl (48.3 kB view details)

Uploaded Python 3

File details

Details for the file spikeinterface-gui-0.5.0.tar.gz.

File metadata

  • Download URL: spikeinterface-gui-0.5.0.tar.gz
  • Upload date:
  • Size: 38.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.8.13

File hashes

Hashes for spikeinterface-gui-0.5.0.tar.gz
Algorithm Hash digest
SHA256 74d0bf58f7a187fe4f321f2eea9f6ea3d73b6876e1c124b074aea1b6b9842f74
MD5 e3a5ffb73c43f346dc8c8270aafefe39
BLAKE2b-256 9fab4688959b0e581f5c5e46961d436635024dca0e9545eae0e2f56f117d21de

See more details on using hashes here.

Provenance

File details

Details for the file spikeinterface_gui-0.5.0-py3-none-any.whl.

File metadata

File hashes

Hashes for spikeinterface_gui-0.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e40e4873467ae7cb1481525bf17ba31b5beb2d55dad29f1d97be639c8339958d
MD5 1595c72b32a84c91be424f4bdb20c2ea
BLAKE2b-256 f067837a3b785977f675d60d3be7918113af068a3c651d7c96054ec8e7d9cd6b

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page