心率变异性分析
hr钒解是一个基于SciPy、AstroPy、Nolds和NumPy构建的用于RR间隔心率变异性分析的Python模块,在GPLv3许可下发布。
该图书馆于2018年7月开始开发,作为Aura Healthcare公司项目,在OCTO技术研发团队,由Robin Champseix维护。
完整文档:https://aura-healthcare.github.io/hrvan分析/
网站:https://www.ura.healthcare网站
github:https://github.com/Aura-healthcare网站
版本: 1.0.4
安装/前提条件
用户安装
安装hrv分析最简单的方法是使用pip(点阵)
:
$pip安装hrv分析
您还可以克隆存储库:
$git克隆https://github.com/aura-healthcare/rvanalysis.git$python setup.py安装
依赖关系
hr钒解需要以下内容:
- Python(>=3.5)
- 天体测量>=3.0.4
- 未来>=0.16.0
- nolds>=0.4.1
- 数值>=1.15.1
- scipy>=1.1.0
注意:该包可以用于从3.5到最新版本(当前为Python 3.9)的所有Pythons版本。
入门
异常和异位节拍过滤方法
该软件包提供了从信号中删除异常值和异位搏动的方法,以供进一步分析。这些方法对于从RR-intervals中获取Normal to Normal Interval(NN-Interval)非常有用。请谨慎使用此方法,因为它们可能会对特征计算产生巨大影响。
从 hr钒解 进口 删除外部(_O), 删除ectopic_beats, 插值nan值
#rr_intervals_list包含rr-interval的整数值
rr_间隔_列表 = [1000, 1050, 1020, 1080, ..., 1100, 1110, 1060]
#这将从信号中删除异常值
rr_间隔_无输出 = 删除外部(_O)(rr_间隔=rr_间隔_列表,
低_ rri=300, 高rri=2000)
#这将使用线性插值替换异常值nan值
插值的rr_intervals = 插值nan值(rr_间隔=rr_间隔_无输出,
插值方法=“线性”)
#这样可以消除信号中的异位搏动
nn_间隔_列表 = 删除ectopic_beats(rr_间隔=插值的rr_intervals, 方法=“马利克”)
#用线性插值替换异位搏动nan值
插值_nn间隔 = 插值nan值(rr_间隔=nn_间隔_列表)
您可以在中找到如何使用以下方法、参考和更多详细信息文档:
特征计算
从NN间隔中可以获得4种类型的功能:
时域特征:Mean_NNI、SDNN、SDSD、NN50、pNN50、NN20、pNN20、RMSSD、Median_NN、Range_NN、CVSD、CV_NNI,Mean_HR、Max_HR,Min_HR和STD_HR
几何域特征:三角_指数,TINN
频域特征:LF、HF、VLF、LH/HF比值、LFnu、HFnu、总功率
非线性域特征:CSI、CVI、Modified_CSI、SD1、SD2、SD1/SD2比率、SampEn
例如,您可以通过计算获得时域分析:
从 hr钒解 进口 获取时间域功能
#nn_intervals_list包含nn-interval的整数值
nn_间隔_列表 = [1000, 1050, 1020, 1080, ..., 1100, 1110, 1060]
时间域功能 = 获取时间域功能(nn_间隔_列表)
>>> 时间域功能
{“mean_nni”: 718.248,
“sdnn”: 43.113,
“sdsd”: 19.519,
'nni_50': 24,
“pnni_50”: 2.4,
'nni_20': 225,
“pnni_20”: 22.5,
“rmssd”: 19.519,
'媒体_nni': 722.5,
'范围_nni': 249,
“cvsd”: 0.0272,
'cvnni': 0.060,
'平均小时': 83.847,
'最大小时': 101.694,
'最小小时': 71.513,
'标准小时': 5.196}
您可以找到如何使用以下方法、参考和有关中每个功能的详细信息文档:
- 获取时间域功能
- 获取几何特征
- 获取频率域功能
- 获取csi_cvi_功能
- 获取poincare_plot_features
- 获取(_S)
绘图功能
有几个绘图功能可供您查看,例如,频域特征的功率谱密度(PSD)或非线性域特征的庞加莱图:
从 hr钒解 进口 绘图.psd
#nn_intervals_list包含nn-interval的整数值
nn_间隔_列表 = [1000, 1050, 1020, 1080, ..., 1100, 1110, 1060]
绘图.psd(nn_间隔_列表, 方法=“韦尔奇”)
绘图.psd(nn_间隔_列表, 方法=“洛姆布”)
从 hr钒解 进口 plot_poincare(点绘)
#nn_intervals_list包含nn-interval的整数值
nn_间隔_列表 = [1000, 1050, 1020, 1080, ..., 1100, 1110, 1060]
plot_poincare(点绘)(nn_间隔_列表)
plot_poincare(点绘)(nn_间隔_列表, plot_sd_功能=真的)
您可以在中找到如何使用方法和详细信息文档:
- 绘图_分布
- plot_timeseries(打印时间序列)
- 绘图.psd
- plot_poincare(点绘)
以下是该软件包不同构建块的高级视图:
工具书类
以下是用于计算特征集和信号处理方法的主要参考:
心率变异性——测量、生理解释和临床使用标准,欧洲心脏病学会和北美起搏与电生理学会工作组,1996年
心率变异性的信号处理方法-Gari D.Clifford,2002
使用近似熵和样本熵进行生理时间序列分析,Joshua S.Richman,J.Randall Moorman-2000
使用Lorenz图和心率变异性心脏交感指数检测癫痫患者的癫痫发作,Jesper Jeppesen等人,2014年
作者
罗宾·尚普西-(https://github.com/robinchampseix网站)
许可证
该项目根据GNU通用公共许可证-请参阅许可.md文件以获取详细信息
如何贡献
请参阅如何贡献
致谢
我在此感谢劳伦特·里比埃(Laurent Ribière)和克莱门特·勒·库迪奇(Clément Le Couedic),他们给了我时间来开源这个库。我还要感谢法比安·阿塞利尔(Fabien Arcellier)就如何在皮皮(PyPi)建立图书馆提出的建议。