用于心率变异性的 Python 工具箱。
项目描述
pyHRV 是一个开源 Python 工具箱,可根据心电图 (ECG)、SpO2、血容量脉搏 (BVP) 或其他带有心率指标的信号计算最先进的心率变异性 (HRV) 参数。
借助 pyHRV,我们旨在为 HRV 专门的教育、研究和应用程序开发提供一个用户友好且多功能的 Python 工具箱。
它提供了可理解的源代码以帮助初学者了解 HRV 参数计算的基础知识,同时为开发人员提供最重要的 HRV 分析功能,并为研究人员提供出版质量的结果图。
入门
安装和 Python 兼容性
可以使用该pip
工具安装此工具箱。
pip install pyhrv
依赖关系:biosppy | 麻木| scipy | matplotlib | 诺兹| 光谱
pyHRV 主要在 Python 3.X 中维护,但已在 Python 2.7 至 0.4.0 版本下进行了测试。
文档和教程
ReadTheDocs 上提供了详细的 pyHRV 文档:
其他教程可以在这里找到:
科学背景
HRV 算法是根据心率变异性 - 测量标准、生理解释和临床使用指南开发和实施的。其他参考在代码和pyHRV 参考中注明。
引用pyHRV
请使用以下会议论文在您的工作中引用 pyHRV(会议论文 [PDF],会议论文集 [PDF]):
P. Gomes、P. Margaritoff 和 HP da Silva,“pyHRV:开发和评估用于心率变异性 (HRV) 的开源 Python 工具箱”,Proc。国际会议 关于电气、电子和计算工程 (IcETRAN),第 822-828 页,2019
@inproceedings{Gomes2019,
author = {Gomes, Pedro and Margaritoff, Petra and Silva, Hugo},
booktitle = {Proc. Int'l Conf. on Electrical, Electronic and Computing Engineering (IcETRAN)},
pages = {822-828},
title = {{pyHRV: Development and evaluation of an open-source python toolbox for heart rate variability (HRV)}},
year = {2019}
}
pyHRV 核心功能 & HRV 参数列表
使用 pyHRV,您可以计算多达 78 个 HRV 参数,同时使用其他有用的非参数特定工具来支持您的 HRV 研究。
时域参数
- NNI 系列的基本统计参数 -
pyhrv.time_domain.nni_parameters()
- ΔNNI 系列的基本统计参数 -
pyhrv.time_domain.nni_differences_parameters()
- 心率(HR)系列的基本统计参数 -
pyhrv.time_domain.hr_parameters()
- NNI 系列的标准差 (SDNN) -
pyhrv.time_domain.sdnn()
- 从长期 NNI 系列中提取的 5 个连续 5 分钟片段的 SDNN 平均值(SDNN指数)-
pyhrv.time_domain.sdnn_index()
- 从长期 NNI 系列 (SDANN) 中提取的 5 分钟片段平均值的标准差 -
pyhrv.time_domain.sdann()
- 连续差的均方根 (RMSSD) -
pyhrv.time_domain.rmssd()
- 连续差的标准差 (SDSD) -
pyhrv.time_domain.sdsd()
- NNx & pNNx 参数 -
pyhrv.time_domain.nnXX()
- NN20 & pNN20 参数 -
pyhrv.time_domain.nn20()
- NN50 & pNN50 参数 -
pyhrv.time_domain.nn50()
- 三角指数(直方图的最大值/直方图的宽度) -
pyhrv.time_domain.triangular_index()
- 三角插值函数 (TINN) 1 -
pyhrv.time_domain.tinn()
1当前版本的 pyHRV 存在一些错误,会导致 TINN 函数的误导和错误结果。为此目的已经打开了一个问题......
频域参数
根据使用以下 PSD 方法计算的 NNI 系列的功率谱密度 (PSD) 计算以下频域参数:
- 韦尔奇的方法 -
pyhrv.frequency_domain.welch_psd()
- 自回归 -
pyhrv.frequency_domain.ar_psd()
- Lomb-Scargle -
pyhrv.frequency_domain.lomb_psd()
频率参数:
- 峰值频率
- 绝对权力
- 对数幂
- 相对权力
- 归一化功率(仅限 LF 和 HF)
- 低频/高频比
为甚低频 (VLF)、低频 (LF) 和高频 (HF) 频段计算参数。频段可以定制,包括超低频 (ULF) 频段。
使用 pyHRV 生成的 PSD 图和频域参数的示例图如下所示:
PSD 比较功能 - 2D 比较图
使用 Welch、自回归或 Lomb-Scargle 方法在 3D 瀑布图中绘制从 NNI 系列中提取的多个 NNI 片段(例如 60 分钟记录中的 5 分钟片段)的 PSD,并计算每个片段的频域参数 - pyhrv.frequency_domain.psd_comparison()
[来源] .
PSD 比较功能 - 3D 瀑布图
使用 Welch、自回归或 Lomb-Scargle 方法在单个图中绘制从 NNI 系列中提取的多个 NNI 片段(例如 60 分钟记录中的 5 分钟片段)的 PSD,并计算每个片段的频域参数 -pyhrv.frequency_domain.psd_waterfall()
非线性参数
计算以下非线性参数和相应的图:
- Poincaré Plot (SD1, SD2, fittes ellipse area, SD2/SD1 ratio) -
pyhrv.nonlinear.poincare()
- 样本熵 -
pyhrv.nonlinear.sample_entropy()
- 去趋势波动分析(短期和长期)-
pyhrv.nonlinear.dfa()
HRV 支持工具和其他功能
- NNI系列的计算——
pyhrv.tools.nn_intervals()
- ΔNNI 系列的计算 -
pyhrv.tools.nn_diff()
- HR系列的计算 -
pyhrv.tools.heart_rate()
- 在医疗级心电图纸布局上绘制心电图 -
pyhrv.tools.plot_ecg()
- NNI 速度图绘图 -
pyhrv.tools.tachogram()
- 心率热图,根据年龄和性别的正常 HR 范围对 HR 表现进行可视化和分类-
pyhrv.tools.heart_rate_heatplot()
- HRV 参数随时间的变化图 -
pyhrv.tools.time_varying()
- HRV 参数动态雷达图 -
pyhrv.tools.radar_chart()
- 将 HRV 结果导出到 JSON 文件示例文件-
pyhrv.tools.hrv_export()
心率变异性报告
生成 .TXT、.CSV 和 .PDF 格式的 HRV 报告(v.0.4 中的新功能!)。阅读 pyHRV 报告子模块的README文件以获取有关如何生成 pyHRV 报告的更多信息,如下所示:
实用程序
在此工具箱中使用的几个非 HRV 特定实用程序和通用功能:
- 加载 NNI 样本系列以进行测试 -
pyhrv.utils.load_sample_nni()
- 加载 pyHRV 的hrv_keys.json文件 -
pyhrv.utils.load_hrv_keys_json()
- 格式化 NNI 系列(确保 numpy 数组并将以秒为单位提供的数据转换为 ms -
pyhrv.utils.nn_format()
- 时间序列的分割(例如 NNI 系列) -
pyhrv.utils.segmentation()
- 和别的...
免责声明
分发此程序的目的是希望它有用并“按原样”提供给您,但没有任何保证,甚至没有对适销性或特定用途适用性的默示保证。该程序不适用于医疗诊断。我们明确表示不对任何直接、间接、后果性、附带或特殊损害承担任何责任,包括但不限于收入损失、利润损失、业务中断或数据丢失造成的损失,无论采取何种形式的诉讼或法律理论即使被告知可能发生此类损害,也可以主张该责任。
这个软件包最初(最高版本 0.3)是在我的硕士论文“开发用于心率变异性(HRV)的开源 Python 工具箱”的范围内开发的,在德国汉堡应用科学大学(生命科学学院,生物医学工程系)和PLUX 无线生物信号,SA,里斯本,葡萄牙。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。