gdyshi | 孤独隐士 MindMap, Machine Learning, Medical Equipment

WFDB库解析

2018-03-22
     

摘要

本文对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
    • peaks
    • QRS计算qrs

wfdb.io

_header

此文件提供了 记录文件 到 Record对象描述 的双向转换接口

  • FieldSpecification

    用于定义特殊属性的规则。如:数据类型、定界符、依赖、是否必须赋值、读默认值、写默认值。

    在记录、信号、段三个地方使用

  • BaseHeaderMixin

    文件头操作的基混入类

  • HeaderMixin

    单段文件头操作混入类,继承于BaseHeaderMixin

  • MultiHeaderMixin

    多段文件头操作混入类,继承于BaseHeaderMixin

_signal

此文件提供了 记录文件 到 Record对象信号 的双向转换接口

信号有两种单位:物理量(mV)和ADC,此文件同时提供了两种单位的相互转换方法

  • SignalMixin

    信号操作混入类。

annotation

此文件提供了 标注文件 到 Annotation对象 的双向转换接口

  • AnnotationLabel

    用于定义标注label的格式。

  • AnnotationClass

    用于定义标注class的格式。

主要方法
序号 方法名 方法描述
1 rdann 读取标注文件
2 wrann 写入标注文件
3 show_ann_labels 显示标注label
4 show_ann_classes 显示标注class

download

download.py没有类,只提供了几个接口,用于下载数据库,或下载单个数据文件

主要方法
序号 方法名 方法描述
1 get_dbs 获取数据库列表
2 get_record_list 获取数据库中的记录列表
3 dl_files 下载数据文件

record

  • SignalClass

    用于定义信号类别的格式。

  • BaseRecord

    记录基类。

  • Record

    记录类。继承于BaseRecord, _header.HeaderMixin, _signal.SignalMixin

  • MultiRecord

    多段记录类。继承于BaseRecord, _header.MultiHeaderMixin

主要方法
序号 方法名 方法描述
1 rdsamp 从文件读取wfdb数据
2 wrsamp 写入wfdb数据到文件
3 rdrecord 从文件读取wfdb记录
4 dl_database 下载数据文件

属性字段列表

wfdb.plot

主要方法

序号 方法名 方法描述
1 plot_wfdb 绘制record
2 plot_all_records 绘制文件夹下所有记录文件
3 plot_items 绘制某一导联的信号

wfdb.processing

basic

basic.py没有类,只提供了几个接口,用于数据基础处理

主要方法
序号 方法名 方法描述
1 resample_ann 标注重采样
2 resample_sig 信号重采样
3 resample_singlechan 单导联重采样
3 resample_multichan 多导联重采样
3 normalize_bound 归一化
3 get_filter_gain 从滤波系数计算特定频率衰减

evaluate

  • Comparitor 记录对比类。用于对比记录
主要方法
序号 方法名 方法描述
1 compare_annotations 对比标注

hr

hr.py没有类,只提供了接口,用于计算心率

主要方法
序号 方法名 方法描述
1 compute_hr 计算心率
2 calc_rr 计算rr间期
3 calc_mean_hr 计算平均心率

peaks

peaks.py没有类,只提供了接口,用于计算心率

主要方法

//todo:

序号 方法名 方法描述
1 find_peaks 计算波峰位置
2 find_local_peaks 计算信号中的最大值位置
3 correct_peaks 峰值一致性调整

qrs

  • XQRS

    xqrs算法的qrs检测类。

  • Conf

    算法参数配置类。

  • Peak

    峰值记录类。

  • Annotation

    标注记录类。

  • GQRS

    gqrs算法的qrs检测类。

主要方法
序号 方法名 方法描述
1 xqrs_detect  
1 gqrs_detect  

附录

WFDB数据结构导图

参考



Content