跳转到主要内容

spikeinterface的Qt GUI

项目描述

spikeinterface-gui

无需数据复制的spikeinterface对象GUI。

这是一个跨平台交互式查看器,用于检查spikeinterface支持的任何刺激排序器的最终结果和质量(kilosort、spykingcircus、tridesclous、mountainssort、yass、ironclust、herdingspikes、hdsort、klusta...)

这个交互式GUI提供几个视图,这些视图会动态刷新其他视图。这使得我们可以非常快速地检查任何排序器输出的优缺点。

与其他查看器(如phy)不同,此查看器跳过了复制和重新格式化整个数据集(过滤信号 + 波形 + PCA)到特定格式或文件夹组织的繁琐且耗时的步骤。此GUI建立在spikeinterface对象(Recording、Sorting、SortingAnalyzer)之上。这些对象是“懒惰”的,并实时检索数据(无复制)!

主要使用

主要思想是使一个或多个单元可见,并可视地检查它们是否应该合并或删除。为此可见性

  • probeview中按ctlr + 双击一个单元
  • unitlist中双击一个单元

可以通过移动坞站重新组织视图

每个视图都有一个?按钮,可以打开上下文帮助。这些内联文档是最重要的阅读材料。(但包含错别字)

当一些单元可见时,相关的尖峰列表可以被刷新。然后逐个选择尖峰也可以刷新一些视图。这使得在轨迹上逐个跳转尖峰变得非常快速和方便。

通道可见性可以通过探针视图中的ROI来处理。

管理模式

默认情况下,此工具仅是查看器。但您可以使用curation=True选项将其转换为手动管理工具。此工具支持来自spikeinterface的管理格式。此格式可以

  1. 删除单元
  2. 合并单元
  3. 创建手动标签

当此模式被激活时,在左上角会添加一个新视图来维护删除和合并的列表。管理格式可以导出为json。

此查看器内部使用Qt(带有PySide6、PyQT6或PyQt5)和pyqtgraph。因此,此查看器是一个本地桌面应用程序(老式!)。还有一个基于Web的查看器在这里

screenshot

重要说明

实际的main分支正在使用spikeinterface中的新SortingAnalyzer对象,该对象尚未发布。您可能会遇到一些小错误。如果您想可视化spikeinterface≤0.100.1的旧WaveformExtractor,则需要回到版本spikeinterface-gui=0.8.0。

启动

为了使用此查看器,您需要了解一些spikeinterface的知识。

步骤1:创建和计算SortingAnalyzer

您首先需要使用spikeinterface获取一个SortingAnalyzer对象。

请参阅此处的帮助。

请注意

  • 某些扩展是强制性的(单元位置、模板等)
  • 某些扩展是可选的
  • 计算的扩展越多,显示的视图就越多

示例

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)


job_kwargs = dict(n_jobs=-1, progress_bar=True, chunk_duration="1s")

# make the SortingAnalyzer with necessary and some optional extensions
sorting_analyzer = si.create_sorting_analyzer(sorting, recording,
                                              format="binary_folder", folder="/my_sorting_analyzer",
                                              **job_kwargs)
sorting_analyzer.compute("random_spikes", method="uniform", max_spikes_per_unit=500)
sorting_analyzer.compute("waveforms", **job_kwargs)
sorting_analyzer.compute("templates", **job_kwargs)
sorting_analyzer.compute("noise_levels")
sorting_analyzer.compute("unit_locations", method="monopolar_triangulation")
sorting_analyzer.compute("isi_histograms")
sorting_analyzer.compute("correlograms", window_ms=100, bin_ms=5.)
sorting_analyzer.compute("principal_components", n_components=3, mode='by_channel_global', whiten=True, **job_kwargs)
sorting_analyzer.compute("quality_metrics", metric_names=["snr", "firing_rate"])
sorting_analyzer.compute("template_similarity")
sorting_analyzer.compute("spike_amplitudes", **job_kwargs)

步骤2:打开GUI

使用Python

import spikeinterface_gui
# This creates a Qt app
app = spikeinterface_gui.mkQApp() 
# reload the SortingAnalyzer
sorting_analyzer = si.load_sorting_analyzer("/my_sorting_analyzer")
# create the mainwindow and show
win = spikeinterface_gui.MainWindow(sorting_analyzer)
win.show()
# run the main Qt6 loop
app.exec_()

或者更简单

  import spikeinterface.widgets as sw
  sorting_analyzer = load_sorting_analyzer(test_folder / "sorting_analyzer")
  sw.plot_sorting_summary(sorting_analyzer, backend="spikeinterface_gui")

使用命令行

sigui /path/for/my/sorting_analyzer

使用管理模式

要使用管理模式打开查看器,请使用curation=True

此模式相当新颖,是在朋友的友好诱导下实现的。我希望这可以成为phy的公平替代。

import spikeinterface_gui
app = spikeinterface_gui.mkQApp() 
win = spikeinterface_gui.MainWindow(sorting_analyzer, curation=True)
win.show()
app.exec_()
  from spikeinterface.widgets import plot_sorting_summary
  sw.plot_sorting_summary(sorting_analyzer, curation=True, backend="spikeinterface_gui")

curation_dict可以保存到分析器的文件夹中(对于"binary_folder"或"zarr"格式)。然后当GUI重新打开时,它会自动重新加载。

安装

对于初学者或Anaconda用户,请参阅我们的安装提示,其中我们提供了Mac/Windows/Linux的yaml文件,以帮助您在专用conda环境中正确安装spikeinterfacespikeinterface-gui

否则

您需要首先安装以下三个包之一(按优先顺序)

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

从pypi

pip install spikeinterface-gui

从源

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

作者

Samuel Garcia,CNRS,法国里昂

这项工作是旧tridesclous.gui子模块在spikeinterface之上的移植。

与spikeinterface包相反,为了开发此查看器,故意放弃了所有良好的编码实践:没有测试、没有CI、没有自动格式化、没有文档等。请自由贡献,这是一个开放的荒野。欢迎代码无政府主义者。所以在这片混乱中,不受欢迎的人:pre-commit、black、pytest fixture、...

项目详情


下载文件

下载适用于您平台文件的文件。如果您不确定选择哪一个,请了解有关安装包的更多信息。

源代码分发

spikeinterface_gui-0.9.0.tar.gz (48.0 kB 查看散列值)

上传 源代码

构建分发

spikeinterface_gui-0.9.0-py3-none-any.whl (59.5 kB 查看散列值)

上传 Python 3

由以下组织支持