跳转到主要内容

EEG/MEEG数据预处理和分析工具

项目描述

Paper code-quality code-formatter Unittests PyPI version GitHub license

Team Logo CRNL Logo

与里昂神经科学研究中心(里昂)、Memo Team、PI: Dezso Nemeth 合作。

meeg-tools

EEG/MEG数据预处理和分析框架

概述

meeg-tools作为半自动和可重复方式预处理和分析EEG/MEG信号的食谱。该软件包的一般用途是从Jupyter笔记本中使用它。在tutorials文件夹中包含一些笔记本,展示了在背景部分描述的数据操作和转换。

安装

将最新版本从PyPI安装到现有环境中

$ pip install meeg_tools

由于该项目处于开发中,我建议使用pip以可编辑模式从源代码安装它

$ git clone https://github.com/weiglszonja/meeg-tools.git
$ cd meeg-tools
$ pip install -e .

背景

预处理

Pipeline diagram

脑电图(EEG)和磁电图(MEG)测量大脑的神经活动。从多个传感器记录的信号天生会受到噪声的污染。预处理旨在在去除有意义信号的过程中衰减EEG/MEG数据中的噪声。在这里,我们提出了一种半自动管道,可以准备数据以便进行功能连接或事件相关电位(ERP)分析。

meeg-tools软件包旨在作为预处理EEG/MEG信号以便进行基于时间-频率分析的前处理半自动和可重复框架。它最小化了基于视觉检查所需的手动步骤,并减少了取决于研究者的数据段拒绝或电极插值的选项数量。此软件包利用了来自mne-Python(Gramfort et al.,2013)的模块,这是一个用于处理神经生理数据的流行开源Python软件包。对于自动拒绝不良数据范围和插值不良电极,它使用了Autoreject(Jas et al.,2017)和随机样本一致性(RANSAC)软件包。

该包的一般用途案例是从 Jupyter notebook 中使用它。tutorials 文件夹包含笔记本,演示了数据操作,例如加载数据和写入数据,以及下面描述的转换步骤。

为了消除高频伪迹和低频漂移,使用 mne-Python 对连续数据应用零相位带通滤波器(0.5 - 45 Hz)。该时间滤波器根据截止频率调整滤波长度和过渡带宽度。下限和上限截止频率可以在 utils 文件夹中的配置文件(config.py)中更改。

随后,滤波后的数据被分割成非重叠的段(epochs),以方便分析。epochs 的默认持续时间为一秒,但可以在配置文件中更改。

去除不良数据段分为三步。首先,根据全局阈值(> 3)拒绝基于 epoch 方差和幅度的 z 分数。为了进一步提高信噪比,对 epochs 应用独立成分分析(ICA)。ICA 是一种源分离技术,将数据分解成一系列唯一数据方差源。组件的数量和要使用的算法可以在配置文件中指定。默认方法是 infomax 算法,该方法通过最大化熵来寻找独立信号,如 Bell 和 Sejnowski(1995 年)、Nadal 和 Parga(1999 年)所述。使用 mne-Python 自动识别包含眨眼伪迹的组件。ICA 源的交互式可视化让用户根据其地形和时程决定哪些组件应该被拒绝。从数据中移除的组件数量在 epochs 实例“info”结构的“description”字段中记录。epoch 拒绝的最后一步是对 ICA 清洗后的数据应用 Autoreject(Jas 等,2017 年)。Autoreject 使用无监督学习来估计 epoch 的拒绝阈值。为了减少与 epoch 和通道数量增加的计算时间,可以在代表性的子集(总 epoch 的 25%)上拟合 autoreject。一旦学习到参数,解决方案可以应用于包含在拟合期间使用的通道的任何数据。

预处理的最后一步是找到并插值异常通道。随机样本一致性(RANSAC)算法(Fischler 和 Bolles,1981 年)选择随机子样本的良好通道,以预测每个通道在短的非重叠 4 秒时间窗口中的每个通道。它使用球面样条(Perrin 等,1989 年)来插值不良传感器。

此外,可以使用 mne-Python 将 EEG/MEG 参考更改为“虚拟参考”,即所有通道的平均值。

时频分析

tutorials 文件夹包含一个 jupyter notebook,演示了 mne-Python 中一些时频分析函数的用法。

$ jupyter notebook tutorials/time_frequency_analysis_tutorial.ipynb

用法

tutorials 文件夹包含一个示例 jupyter notebook,演示了预处理管道。有关支持的文件格式,请参阅此文档

$ jupyter notebook tutorials/preprocessing_tutorial_without_triggers.ipynb

测试

使用终端运行 unittests

$ python -m unittest

贡献

该项目处于开发中;欢迎并鼓励所有评论!有关此项目的建议可以通过在项目的 issue 跟踪器中打开问题来提出。可以通过首先对项目进行分叉;提交分叉项目的更改,然后从分叉分支向 meeg-tools 的主分支打开拉取请求,来对代码做出贡献和改进。

参考文献

Bell, A. J. & Sejnowski, T. J. (1995). An information-maximization approach to blind separation and blind deconvolution. Neural Computation, 7(6), 1129–1159.

Su, K.-M., & Robbins, K. A. (2015). The PREP pipeline: standardized preprocessing for large-scale EEG analysis. In Frontiers in Neuroinformatics (Vol. 9). https://doi.org/10.3389/fninf.2015.00016

菲舍尔,M. A.,& 博莱斯,R. C. (1981). 随机样本一致性。在《ACM通讯》(第24卷,第6期,第381-395页)。 https://doi.org/10.1145/358669.358692

格拉蒙特,A.,卢埃西,M.,拉尔森,E.,恩格曼,D. A.,斯特罗梅耶,D.,布罗德贝克,C.,戈伊,R.,贾斯,M.,布鲁克斯,T.,帕尔科嫩,L.,& 赫马莱宁,M. (2013)。使用MNE-Python进行MEG和EEG数据分析。神经科学前沿,7,267。

贾斯,M.,恩格曼,D. A.,贝希蒂,Y.,雷蒙多,F.,& 格拉蒙特,A. (2017)。Autoreject:MEG和EEG数据自动伪迹拒绝。神经图像,159,417–429。

纳达尔,J.-P.,& 帕加,N. (1999)。感觉编码:信息最大化与冗余度减少。在《神经元信息处理》(第164-171页)。 https://doi.org/10.1142/9789812818041_0008

佩林,F.,佩尔尼尔,J.,贝特朗,O.,& 埃夏利耶,J. F. (1989)。头皮电位和电流密度映射的球面样条。脑电图和临床神经生理学,72(2),184–187。

项目详情


下载文件

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

源分布

meeg-tools-0.3.6.tar.gz (35.3 kB 查看哈希值)

上传时间

构建分布

meeg_tools-0.3.6-py3-none-any.whl (37.0 kB 查看哈希值)

上传时间 Python 3

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面