本文对wfdb库(python语言)内部数据结构和处理逻辑进行分析
WFDB库—MIT的针对波形数据库(waveform-database)发布的一个工具。用于读、写、处理WFDB信号和注解。 在WFDB python api文档中对公开的API接口进行了说明,现在工作需要 利用WFDB数据库进行二次开发,需要对wfdb库的内部数据结构和处理逻辑进行分析。本文主要记录wfdb库的内部数据结构和处理逻辑
io
_header.py
_signal.py
annotation
download
record
plot
processing
basic
evaluate
hr
qrs
此文件提供了 记录文件 到 Record对象描述 的双向转换接口
FieldSpecification
用于定义特殊属性的规则。如:数据类型、定界符、依赖、是否必须赋值、读默认值、写默认值。
在记录、信号、段三个地方使用
BaseHeaderMixin
文件头操作的基混入类
HeaderMixin
单段文件头操作混入类,继承于BaseHeaderMixin
MultiHeaderMixin
多段文件头操作混入类,继承于BaseHeaderMixin
此文件提供了 记录文件 到 Record对象信号 的双向转换接口
信号有两种单位:物理量(mV)和ADC,此文件同时提供了两种单位的相互转换方法
SignalMixin
信号操作混入类。
此文件提供了 标注文件 到 Annotation对象 的双向转换接口
AnnotationLabel
用于定义标注label的格式。
AnnotationClass
用于定义标注class的格式。
序号 | 方法名 | 方法描述 |
---|---|---|
1 | rdann | 读取标注文件 |
2 | wrann | 写入标注文件 |
3 | show_ann_labels | 显示标注label |
4 | show_ann_classes | 显示标注class |
download.py没有类,只提供了几个接口,用于下载数据库,或下载单个数据文件
序号 | 方法名 | 方法描述 |
---|---|---|
1 | get_dbs | 获取数据库列表 |
2 | get_record_list | 获取数据库中的记录列表 |
3 | dl_files | 下载数据文件 |
SignalClass
用于定义信号类别的格式。
BaseRecord
记录基类。
Record
记录类。继承于BaseRecord, _header.HeaderMixin, _signal.SignalMixin
MultiRecord
多段记录类。继承于BaseRecord, _header.MultiHeaderMixin
序号 | 方法名 | 方法描述 |
---|---|---|
1 | rdsamp | 从文件读取wfdb数据 |
2 | wrsamp | 写入wfdb数据到文件 |
3 | rdrecord | 从文件读取wfdb记录 |
4 | dl_database | 下载数据文件 |
序号 | 方法名 | 方法描述 |
---|---|---|
1 | plot_wfdb | 绘制record |
2 | plot_all_records | 绘制文件夹下所有记录文件 |
3 | plot_items | 绘制某一导联的信号 |
basic.py没有类,只提供了几个接口,用于数据基础处理
序号 | 方法名 | 方法描述 |
---|---|---|
1 | resample_ann | 标注重采样 |
2 | resample_sig | 信号重采样 |
3 | resample_singlechan | 单导联重采样 |
3 | resample_multichan | 多导联重采样 |
3 | normalize_bound | 归一化 |
3 | get_filter_gain | 从滤波系数计算特定频率衰减 |
序号 | 方法名 | 方法描述 |
---|---|---|
1 | compare_annotations | 对比标注 |
hr.py没有类,只提供了接口,用于计算心率
序号 | 方法名 | 方法描述 |
---|---|---|
1 | compute_hr | 计算心率 |
2 | calc_rr | 计算rr间期 |
3 | calc_mean_hr | 计算平均心率 |
peaks.py没有类,只提供了接口,用于计算心率
//todo:
序号 | 方法名 | 方法描述 |
---|---|---|
1 | find_peaks | 计算波峰位置 |
2 | find_local_peaks | 计算信号中的最大值位置 |
3 | correct_peaks | 峰值一致性调整 |
XQRS
xqrs算法的qrs检测类。
Conf
算法参数配置类。
Peak
峰值记录类。
Annotation
标注记录类。
GQRS
gqrs算法的qrs检测类。
序号 | 方法名 | 方法描述 |
---|---|---|
1 | xqrs_detect | |
1 | gqrs_detect |
本文讲述如何搭建机器学习服务器及搭建步骤
编辑/etc/apt/sources.list
文件为以下内容
deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
##测试版源
deb http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse
# 源码
deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
##测试版源
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse
# Canonical 合作伙伴和附加
deb http://archive.canonical.com/ubuntu/ xenial partner
deb http://extras.ubuntu.com/ubuntu/ xenial main
执行sudo apt-get update
sudo apt-get install ssh nfs-common libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler --no-install-recommends libboost-all-dev libopenblas-dev liblapack-dev libatlas-base-dev libgflags-dev libgoogle-glog-dev liblmdb-dev git cmake build-essential
sudo apt-get install python3-pip python3-dev python3-tk
编辑~/.pip/pip.conf文件为以下内容
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
[install]
trusted-host=mirrors.aliyun.com
sudo pip3 install --upgrade pip
sudo pip3 install --upgrade protobuf
sudo pip3 install --upgrade numpy
sudo pip3 install --upgrade matplotlib
sudo pip3 install --upgrade sklearn
sudo pip3 install --upgrade scipy ipython
sudo apt-get remove nvidia-*
sudo apt-get autoremove
sudo nvidia-uninstall
按组合键Ctrl+Alt+F1
进入文本界面
sudo service lightdm stop
sudo ./NVIDIA-Linux-x86_64-3xx.xx.run -no-x-check -no-nouveau-check -no-opengl-files
NVIDIA-Linux-x86_64-3xx.xx.run 为从NVIDIA官网下载的最新驱动
sudo service lightdm restart