大数跨境

SpikeInterface系列-2-数据载入与预处理

SpikeInterface系列-2-数据载入与预处理 锦脑科技
2026-03-20
2
导读:上一篇我们介绍了SI的整体架构和核心概念。从今天开始,我们将进入实战环节。本文将详细讲解如何读取各种格式的电生理数据、进行必要的预处理操作,以及如何通过可视化检查信号质量。


SpikeInterface:数据载入与预处理完全指南

上一篇我们介绍了SI的整体架构和核心概念。从今天开始,我们将进入实战环节。本文将详细讲解如何读取各种格式的电生理数据、进行必要的预处理操作,以及如何通过可视化检查信号质量


SpikeInterface

一.数据读取

电生理数据来自不同的采集系统,格式各异。SI的 extractors 模块为你统一了这些差异。

1.1 支持的数据格式


1.2 读取.jnt数据文件

.jnt文件是Panda系列采集系统常用的数据格式,与.plx文件格式相同,可以使用相同的读取方法:

代码参考:https://spikeinterface.readthedocs.io/en/latest/api.html#spikeinterface.extractors.read_plexon


1.3 读取其他格式

代码参考:https://spikeinterface.readthedocs.io/en/latest/modules/extractors.html


1.4 使用模拟数据练习

如果你没有现成的数据,可以使用SI自带的模拟数据:


SpikeInterface

二.电极位置与Probe信息

正确的电极位置信息对尖峰分类很重要,尤其是在使用多通道探针时。探针信息告诉SI每个通道在空间中的位置,这对于基于空间信息的分类算法(如Kilosort)至关重要。


2.1 自动读取Probe信息

大多数现代数据格式(如SpikeGLX)会在元数据中包含probe信息:

2.2 手动设置Probe

如果数据中没有probe信息,可以手动设置:

代码参考:https://spikeinterface.readthedocs.io/en/latest/tutorials/probe_handling.html


SpikeInterface


三.预处理操作

预处理是尖峰分类前最关键的步骤,直接影响分类质量。预处理的目的是去除噪声、提高信噪比(SNR,Signal-to-Noise Ratio),使后续的分类算法能够更准确地检测和分类spike。


3.1 滤波(Filtering)

带通滤波是最基本的预处理步骤,用于提取动作电位信号。动作电位的主要频段在300-6000 Hz之间。

陷波滤波用于去除工频干扰(50/60 Hz):

代码参考:https://spikeinterface.readthedocs.io/en/latest/tutorials/preprocessing/bandpass_filter.html


3.2 重参考(Re-referencing)

重参考可以减少共模噪声,提高信噪比。共模噪声是指同时出现在所有通道上的噪声,如环境电磁干扰、动物的呼吸和心跳等。

代码参考:https://spikeinterface.readthedocs.io/en/latest/tutorials/preprocessing/common_reference.html


3.3 坏道检测与处理

坏道(bad channels)会严重影响分类质量。坏道可能是由于电极损坏、接触不良或其他硬件问题导致的。

检测坏道

处理坏道

代码参考:https://spikeinterface.readthedocs.io/en/latest/tutorials/preprocessing/detect_and_remove_bad_channels.html


3.4 预处理链的组合

SI的惰性计算特性让你可以方便地组合多个预处理步骤:


SpikeInterface


四.信号质量检查

预处理完成后,应该通过可视化检查信号质量。这是确保预处理效果的重要步骤。


4.1 查看原始信号

代码参考:https://spikeinterface.readthedocs.io/en/latest/tutorials/widgets/plot_traces.html


4.2 功率谱密度分析

功率谱密度(PSD,Power Spectral Density)可以显示信号在不同频率上的能量分布。


SpikeInterface


五.保存预处理后的数据

预处理链是惰性的,如果需要重复使用,可以保存到磁盘:

代码参考:https://spikeinterface.readthedocs.io/en/latest/tutorials/core/save.html


SpikeInterface


六.完整代码示例


SpikeInterface


七、下一步

完成预处理后,数据已经准备好进行尖峰分类了。在下一篇文章中,我们将介绍SI支持的各种尖峰分类器,以及如何使用Docker轻松运行Kilosort等需要MATLAB环境的分类器。


参考资源:

Preprocessing Tutorial: https://spikeinterface.readthedocs.io/en/latest/tutorials/preprocessing/

Extractors文档: https://spikeinterface.readthedocs.io/en/latest/modules/extractors.html


有任何问题或建议,欢迎在评论区留言讨论!




【声明】内容源于网络
0
0
锦脑科技
内容 9
粉丝 0
锦脑科技
总阅读5
粉丝0
内容9