使用此资源时,请引用:(显示更多选项)
Wagner, P., Strodthoff, N., Bousseljot, R., Samek, W., & Schaeffter, T. (2022). PTB-XL,一个大型公开的心电图数据集(版本 1.0.3)。PhysioNet。RRID:SCR_007345。 https://doi.org/10.13026/kfzx-aw45

此外,请引用原始出版物:

Wagner, P., Strodthoff, N., Bousseljot, R.-D., Kreiseler, D., Lunze, F.I., Samek, W., Schaeffter, T. (2020), PTB-XL: 一个大型公开的 ECG 数据集。Scientific Data. https://doi.org/10.1038/s41597-020-0495-6

请包含 PhysioNet 的标准引用:(显示更多选项)
Goldberger, A., Amaral, L., Glass, L., Hausdorff, J., Ivanov, P. C., Mark, R., … & Stanley, H. E. (2000). PhysioBank, PhysioToolkit, and PhysioNet: Components of a new research resource for complex physiologic signals. Circulation [Online]. 101 (23), pp. e215–e220. RRID:SCR_007345.

摘要

心电图(ECG)是评估患者心脏状况的关键诊断工具。作为诊断支持系统的自动 ECG 解读算法,为医疗人员提供了极大的帮助——仅基于常规采集的 ECG 数量。然而,此类算法的开发需要大量训练数据集和明确的基准流程。在我们看来,现有公开可用的 ECG 数据集在这两个方面均未能得到充分满足。

PTB-XL 心电图数据集是一个包含 21799 份临床 12 导联心电图的大型数据集,这些心电图来自 18869 名患者,每份心电图的长度为 10 秒。原始波形数据由最多两名心脏病学家进行标注,他们为每份记录分配了可能多个心电图诊断结果。总共 71 种不同的心电图诊断结果符合 SCP-ECG 标准,涵盖了诊断、形态和节律诊断结果。为确保基于该数据集训练的机器学习算法的可比性,我们提供了推荐的训练集和测试集划分方案。结合详尽的标注信息,这使数据集成为自动心电图解读算法训练和评估的丰富资源。该数据集还补充了关于人口统计、梗死特征、诊断心电图结果的概率以及标注信号特性的广泛元数据。


背景

PTB-XL 心电图数据集的基础波形数据是在 1989 年 10 月至 1996 年 6 月近七年间,使用 Schiller AG 的设备收集的。在从 Schiller AG 获取原始数据库后,完整的使用权已转让给 PTB。这些记录在德国物理技术研究院(PTB)的一个长期项目中经过整理并转换为结构化数据库。该数据库被用于多篇出版物,例如[1,2],但直到现在访问仍然受限。在 2019 年的公开发布过程中,现有数据库经过优化,特别考虑了机器学习社区的可使用性和可访问性。波形和元数据被转换为开放数据格式,这些格式可以由标准软件轻松处理。


方法

数据采集

1. 原始信号数据被记录并以专有压缩格式存储。对于所有信号,我们提供标准的 12 导联(I、II、III、AVL、AVR、AVF、V1、…、V6),并在右臂放置参考电极。
2. 相应的通用元数据(如 agesexweightheight)被收集在数据库中。
3. 每条记录都标注了一个_报告_字符串(由心脏病专家生成或由 ECG 设备自动解释),该字符串被转换为标准化的 SCP-ECG 语句集(scp_codes)。对于大多数记录,还提取了心脏轴(heart_axis)以及梗死阶段(如果存在,则为 infarction_stadium1infarction_stadium2)。
4. 大部分记录由第二位心脏病专家进行了验证。
5. 所有记录均由技术专家进行验证,主要关注信号特征。

数据预处理

心电图和患者通过唯一标识符(ecg_idpatient_id)进行识别。元数据中的个人信息,如验证心内科医生、护士和记录地点(医院等)的名称已被假名化。出生日期仅以心电图记录时的年龄表示,其中 89 岁以上年龄在 HIPAA 标准规定下显示为 300 年。此外,所有心电图的记录日期对每个患者都进行了随机偏移。用于标注记录的心电图说明遵循 SCP-ECG 标准[3]。


数据描述

一般来说,数据集的构成如下:

ptbxl ├── ptbxl_database.csv ├── scp_statements.csv ├── records100 │   ├── 00000 │   │   ├── 00001_lr.dat │   │   ├── 00001_lr.hea │   │   ├── ... │   │   ├── 00999_lr.dat │   │   └── 00999_lr.hea │   ├── ... │   └── 21000 │        ├── 21001_lr.dat │        ├── 21001_lr.hea │        ├── ... │        ├── 21837_lr.dat │        └── 21837_lr.hea └── records500    ├── 00000    │     ├── 00001_hr.dat    │     ├── 00001_hr.hea    │     ├── ...    │     ├── 00999_hr.dat    │     └── 00999_hr.hea    ├── ...    └── 21000           ├── 21001_hr.dat           ├── 21001_hr.hea           ├── ...           ├── 21837_hr.dat           └── 21837_hr.hea

该数据集包含21799份临床12导联心电图记录,每份记录长度为10秒,来自18869名患者,其中52%为男性,48%为女性,年龄覆盖从0岁到95岁的整个范围(中位数为62岁,四分位距为22)。该数据集的价值源于多种不同共存的病理的综合收集,但也包括大量健康对照样本。诊断分布如下,为简化起见,我们将诊断陈述归纳为超类(注意:由于每份记录可能存在多个标签,因此陈述总数超过记录数):

#Records 超类 描述
9514 NORM 正常心电图
5469 MI 心肌梗死
5235 STTC ST/T 变化
4898 CD 传导障碍
2649 HYP 肥厚

波形文件以 WaveForm DataBase (WFDB) 格式存储,精度为 16 位,分辨率为 1μV/LSB,采样频率为 500Hz(records500/)。为方便用户使用,我们还发布了采样频率为 100Hz 的波形数据降采样版本(records100/)。

所有相关元数据存储在 ptbxl_database.csv 中,每条记录由 ecg_id 标识,每行一条记录。它包含 28 列,可分为:

1. 标识符 :每条记录由唯一的 ecg_id 标识。相应的患者通过 patient_id 编码。原始记录(500 Hz)和记录的下采样版本(100 Hz)的路径分别存储在 filename_hrfilename_lr 中。
2. 通用元数据 : 人口统计和记录元数据,如 年龄性别身高体重护士地点设备记录日期
3. 心电图陈述 : 核心组件是 scp_codes(SCP-ECG 陈述作为一个字典,条目形式为 陈述: 可能性 ,其中可能性在未知时设为 0)和 报告 (报告字符串)。附加字段包括 心轴梗死分期 1梗死分期 2验证者第二意见初始自动生成报告人类验证
4. 信号元数据 : 信号质量,如噪声( 静态噪声爆发噪声 )、基线漂移( 基线漂移 )以及其他伪影,如 电极问题 。我们还提供 额外心跳 用于计数额外的心收缩,以及 起搏器 用于信号模式指示有活跃起搏器。
5. 交叉验证折 : 推荐使用 10 折训练-测试拆分(strat_fold),通过分层抽样获得,同时尊重患者分配,即特定患者的所有记录被分配到同一折。折 9 和折 10 中的记录至少经过一次人工评估,因此标签质量特别高。因此我们建议使用折 1-8 作为训练集,折 9 作为验证集,折 10 作为测试集。

所有与所使用的标注方案相关的信息都存储在一个专门的 scp_statements.csv 文件中,该文件通过映射到其他标注标准(如 AHA、aECGREFID、CDISC 和 DICOM)进行了丰富。我们提供了额外的辅助信息,例如每个陈述可以被分配到的类别(诊断、形式和/或心律)。对于诊断陈述,我们还提供了建议的层次结构组织,分为 diagnostic_classdiagnostic_subclass


使用说明

example_physionet.py 中,我们提供了一个最小使用示例,展示了如何加载波形数据(numpy 数组 X_trainX_test)和标签(y_trainy_test),并使用提议的训练-测试分割方法。为说明,我们基于 scp_statements.csv 中的分配使用诊断子类语句作为标签。数据集的基准测试程序在[4]中描述。


发布说明

1.0.3 删除了另外两个重复项(之前是三重重复)。决定对所有重复记录(包括 1.0.2 中修改的记录)报告共识标签,因为样本被标注为独立样本。所有重复记录的原始标签被追加到"record"字段以便后续参考。

1.0.2 删除了 36 条具有相同原始波形数据的记录(保留 ECG ID 较高的记录,并优先删除测试集第 9 和第 10 折的记录,以便对在数据集先前版本上训练的模型进行适当评估)。详细信息请参阅 release_notes_v102.txt。

1.0.1 修复了波形数据与元数据之间的 ID 不匹配问题。与原始发布版本内容相同。

1.0.0 数据集初始发布。


伦理

机构伦理委员会批准了在开放获取数据库中发布匿名数据(PTB-2020-1)。


致谢

我们感谢洛塔尔·施密茨博士提供了大量注释和医学专业知识,以及汉斯·科赫博士在推动和管理原始数据库的准备工作方面所做的努力。这项工作得到了联邦教育与研究部(BMBF)的支持,通过柏林大数据中心(项目编号 01IS14013A)和柏林机器学习中心(项目编号 01IS18037I)提供资助,同时还得到了 EMPIR 项目 18HLT07 MedalCare 的支持。EMPIR 计划由欧盟“地平线 2020”研究和创新计划以及 EMPIR 参与国家共同资助。


利益冲突


参考文献

  1. Bousseljot, R., Kreiseler, D. (2000). “使用 10,000 个心电图进行波形识别”. 心血管计算机 27, 331–334.
  2. SO 中央书记处(2009 年)。“健康信息学——标准通信协议——第 91064 部分:计算机辅助心电图”。ISO 11073-91064:2009 标准,国际标准化组织,日内瓦。
  3. Bousseljot, R., Kreiseler, D., Schnabel, A.(1995 年)。“通过互联网使用 PTB 心电图信号数据库 CARDIODAT”。生物医学技术/生物医学工程 317-318。
  4. Strodthoff, N., Wagner, P., Schaeffter, T., Samek, W.(2021 年)。“用于心电图分析的深度学习:来自 PTB-XL 的基准和见解”。IEEE 生物医学与健康信息学杂志 25 卷第 5 期,1519-1528。