Neurokit———开源多模态电生理数据处理Python包
一. Neurokit 介绍
NeuroKit是一个开源的多模态电生理数据处理Python包,提供了高级生物信号处理的例程。它允许研究人员和临床医生在没有广泛的编程或生物医学信号处理知识的情况下,仅用两行代码就能分析生理数据。
二. Neurokit2 功能
NeuroKit2 支持处理多种生理信号,具体包括:
心电图(ECG):用于分析心脏电活动,包括定位心跳周期中的P波、QRS复合波和T波,以及计算心率变异性(HRV)指数。
光电容积描记图(PPG/BVP):通过测量血液容积变化来监测心血管健康和呼吸活动。
皮肤电活动(EDA/GSR):测量皮肤电导,反映情绪和压力水平的变化。
肌电图(EMG):记录肌肉电活动,用于分析肌肉紧张度和运动。
呼吸信号(RSP):监测呼吸模式和呼吸率的变化。
眼电图(EOG):记录眼部电活动,用于研究睡眠和注意力。
脑电图(EEG):测量大脑电活动,用于神经科学研究和监测大脑状态。
NeuroKit2 的信号处理功能,包括但不限于:
- 信号模拟:模拟生成 ECG、PPG、RSP、EDA 和 EMG 信号,以测试脚本和算法。
- 滤波:使用不同的方法对信号进行滤波处理。
- 去趋势:去除信号中的基线漂移或趋势。
- 失真:向信号中添加噪声和伪迹。
- 复杂性分析:计算熵值和分形维数等复杂性特征。
- 信号分解:使用经验模态分解(EMD)等方法分解信号。
- 功率谱密度(PSD)分析:使用不同的方法计算信号的功率谱密度。
NeuroKit2 使用流程图如下:
二. 安装与简单使用
1. 安装
pip install neurokit2
或者
conda install -c conda-forge neurokit2
2. 快速示例
import neurokit2 as nk
# 下载示例数据
data = nk.data("bio_eventrelated_100hz")
# 预处理数据(过滤,找峰值等)
processed_data, info = nk.bio_process(ecg=data["ECG"], rsp=data["RSP"], eda=data["EDA"], sampling_rate=100)
# 计算相关特征
results = nk.bio_analyze(processed_data, sampling_rate=100)
三. 引用
NeuroKit2 的论文可以在以下链接找到,也可以通过 Python 运行 nk.cite()
来获取引用信息:
- Makowski, D., Pham, T., Lau, Z. J., Brammer, J. C., Lespinasse, F., Pham, H., Schölzel, C., & Chen, S. A. (2021). NeuroKit2: A Python toolbox for neurophysiological signal processing. Behavior Research Methods, 53(4), 1689–1696. https://doi.org/10.3758/s13428-020-01516-y