信息速览
这份库记录的是磁铁怎样改写心电。它由马格德堡奥托·冯·格里克大学的 Johannes W. Krug Passand 在 2011 至 2017 年间采集,2021 年 5 月 18 日以 1.0.0 版托管到 PhysioNet,收录 23 名健康受试者在 1T、3T、7T 三档场强的磁共振扫描仪孔径内的 12 导与 3 导心电,官方口径为 43 条记录、合计 203 分钟。
名字里的 MHD 指磁流体动力学(magnetohydrodynamic),不是成像序列,也不是设备型号。血液里的电解质随心跳在血管中流动,在强静磁场中受洛伦兹力偏转,正负离子在管壁两侧堆积形成霍尔电压;这个电压叠加在心电上,把 P 波、ST 段、T 波的细节抹平。库里的每一条波形都带着这层叠加。
它的关键取舍在于:采集时扫描仪不成像,只有静磁场,没有梯度切换,也没有射频发射。于是 MHD 成了唯一的干扰项,可以被单独观察、单独建模。想找「心电与 MRI 图像同步」的多模态数据,这里没有图像;想要一条能被物理量解释的对照波形,这是公开资源里少有的选择。一屏速览见下表。
| 维度 | 内容 |
|---|---|
| 官方全名 | Influence of the MHD effect on 12-lead and 3-lead ECGs recorded in 1T to 7T MRI scanners |
| 中文名 | MHD 效应对 1T 至 7T 磁共振扫描仪中所录 12 导与 3 导心电的影响 |
| 缩写拆解 | MHD = magnetohydrodynamic,磁流体动力学;不是成像序列或设备代号 |
| 托管平台 | PhysioNet,Open Access 栏目 |
| 作者 | Johannes W. Krug Passand(单一作者,通讯与数据整理同一人) |
| 机构 | Otto-von-Guericke University Magdeburg,德国马格德堡 |
| 版本 | 1.0.0,2021 年 5 月 18 日发布,至今无新版 |
| DOI | 10.13026/05td-jn37(最新版别名 10.13026/7fxy-3653) |
| 许可 | Open Data Commons Attribution License v1.0 |
| 受试者 | 23 名,学生与大学雇员,平均 27.1 岁 |
| 记录数 | 正文口径 43 条,RECORDS 清单口径 53 行 |
| 场强 | 1T、3T、7T 三档,分别对应三台不同扫描仪 |
| 导联 | 12 导(诊断级)与 3 导(简化爱因托芬三角)两种 |
| 采样率 | 全库统一 1024 Hz |
| 精度 | 12 导记录 12 位、3 导记录 24 位 |
| 总时长 | 203 分钟 |
| 整包体积 | 未压缩 279.8 MB,ZIP 265.3 MB |
| 注释 | 仅 QRS 波位置,手工标注,不区分正常与异位 |
| 引用论文 | Krug、Schmidt、Rose、Friebe,Computing in Cardiology 2017 |
§1 它要解决的具体麻烦
1.1 一台不扫描的磁共振,反而是更干净的实验台
在真实的磁共振检查中,心电上叠着三种性质完全不同的干扰。第一种是静磁场与血流作用产生的 MHD 电压,它跟心跳同步、频率落在心电自身的频带里,用滤波分不开。第二种是梯度线圈切换带来的感应电压,幅度大、形态像方波台阶,与序列时序严格对齐。第三种是射频发射引起的共模干扰与整流效应,表现为高频毛刺与基线跳变。
三者叠在一起时,想把其中任何一项分离出来都近乎无解,因为它们的时序互相纠缠,谁也无法单独作为自变量。这份库的做法是把后两种彻底拿掉:受试者躺在孔径里,机器不上序列,梯度不切换,射频不发射。剩下的只有一块始终开着的磁铁。
这个取舍牺牲了临床真实性,换来了物理可辨识性。真实检查中病人身上的心电是三种干扰的混合物,而这里只有一种纯的。研究者在这样的数据上做出的分离算法,最终仍要回到真实检查中去验证,但至少第一步的因果归因是干净的:波形变形只可能来自静磁场。
代价也很明确。因为不成像,这份数据无法回答「梯度切换时心电长什么样」,也无法回答「序列参数如何影响伪迹幅度」。它把问题切开,只保留其中一块。使用前必须清楚自己关心的是哪一块。
1.2 三条常见的错误期待
第一条,期待它是一份影像与心电配对的多模态数据。 这个名字里同时出现 MRI 与 ECG,最自然的联想是「扫描的同时记录心电」,也就是心脏磁共振门控那一类场景。实际情况相反:采集时没有任何成像发生。库里没有 DICOM,没有 NIfTI,没有一张切片。它记录的是「人在磁体里、机器待机」这一状态下的心电。把它当多模态数据去找图像,会一无所获。
第二条,期待它能训练心律失常分类器。 受试者是自报健康的学生与雇员,头文件里逐条写着无已知心脏病。注释只有 QRS 波的位置,官方明确说明不区分正常节律下的 QRS 与节律受扰(例如异位搏动)时的 QRS。全库没有节律标签、没有形态标签、没有诊断标签。它支撑的是检测与分离,不是分类。
第三条,期待舱外参考心电是「同一时刻的干净版本」。 官方为多数受试者补录了舱外心电,用来当参考。这条参考记录与舱内记录不是同时采集的,中间隔着受试者进出孔径、摆位、设备切换的几分钟。官方在方法里写明,这建立在「健康受试者心电平稳」的假设上。假设成立时它很好用,假设不成立时它就是误差来源。把它当成理想的干净信号,是这份数据最容易被误用的一处。
1.3 它能给到的与给不到的
| 你的需求 | 它给的 | 够不够 |
|---|---|---|
| 研究静磁场对心电形态的影响 | 三种场强、同一套记录流程、逐条可比的波形 | 够,这是设计目标 |
| 开发 MHD 与心电的分离算法 | 舱内受污染记录加舱外参考记录 | 够,但参考不同刻,需自建对齐 |
| 评测 QRS 检测器在强干扰下的鲁棒性 | 全部记录带手工 QRS 标注,含明显变形段 | 够,这是它的第二主业 |
| 训练心律失常分类模型 | 健康受试者,无节律标签,无诊断标签 | 不够,结构上做不到 |
| 做影像与心电的配对学习 | 无任何图像 | 不够,一条都没有 |
| 研究梯度场或射频场对心电的影响 | 采集时这两项被刻意关闭 | 不够,需要另找数据 |
| 评估老年或患病人群的 MHD 表现 | 平均 27 岁的健康青年 | 不够,人群被封死 |
| 做跨设备、跨场强的迁移研究 | 三台扫描仪、两种记录仪 | 部分够,1T 只有一人 |
| 教学演示磁场如何扭曲波形 | 同一人不同体位、不同场强的并排记录 | 够,差异肉眼可辨 |
1.4 你的处境与它能帮到的事
| 你的处境 | 它能帮你什么 | 下一步该做什么 |
|---|---|---|
| 你在做磁共振监护,发现心电波形在孔径内变形,怀疑是设备故障 | 提供同型号记录仪在 1T 至 7T 下的正常变形样本,可判断变形是否属于物理必然 | 先比对同场强的记录,确认变形幅度是否落在物理预期内 |
| 你在写心电去噪算法,苦于没有「干扰已知来源」的验证集 | 干扰项只有 MHD 一种,因果归因清楚 | 用舱外记录当参考,跑你的算法,再看不同场强上的残差变化 |
| 你在做心脏磁共振的门控,QRS 检测在 3T 上频繁误触发 | 提供被 MHD 抬高的真实波形与手工 QRS 位置 | 用它的标注当金标准,测你的检测器在各场强上的召回 |
| 你想把 MHD 反过来当血流信号用 | 场强与体位是显式变量,可观察叠加项随场强的变化 | 固定受试者与体位,比较 1T、3T、7T 三档的叠加幅度 |
| 你在评审一篇声称「滤波可完全去除 MHD」的论文 | 提供原始波形,可直接查看 ST 段在滤波后的残留 | 取一段强变形记录,复现对方的滤波链,目视检查 ST 段 |
| 你在教学,需要一份能讲清洛伦兹力的医学数据 | 三种场强、两种体位、同一套流程,物理直觉强 | 取同一人在 1T 俯卧与仰卧的两条记录并排画图 |
| 你的团队要接入 WFDB 生态,需要一个小数据集练手 | 53 个文件、格式标准、许可宽松 | 用它把读数据、读注释、画图三段流程跑通 |
1.5 一句话判断
它是一份物理实验记录,不是一份临床队列:用一块始终开着的磁铁,把「磁场如何改写心电」从教科书的示意图变成两百多分钟可以反复读取的波形。
1.6 不适合谁:四条边界
不适合做临床人群研究。 二十三名受试者全部自报健康,平均二十七岁,头文件逐条写明无已知心脏病。MHD 幅度与血流速度、血管几何、心输出量相关,而这些量在老年人、心衰患者、心律失常患者身上与健康青年差别很大。官方自己在使用说明里写明,这份数据不适合研究心律失常或其他心血管疾病期间的 MHD 效应。
不适合当作影像数据的替代或补充。 全库没有一张图像。任何需要影像与生理信号配对的任务,都必须另找数据源。名字里的 MRI 指的是采集环境,不是采集内容。
不适合研究梯度场与射频场的干扰。 官方在方法里明确,采集在无梯度切换、无射频发射的条件下完成,目的正是让心电只受 MHD 影响。想要序列相关的伪迹,得找真实扫描中同步记录的数据。
不适合作为深度学习的主训练集。 四十三条记录、二十三个人,样本量低于任何现代网络的参数规模。它可以做验证集、做消融、做失败案例分析,但不能承担训练。用它训练出来的模型,学到的是这二十三个人的胸廓形状与电极位置习惯。
§2 数据构成与规格
2.1 一个扁平目录,文件名承担全部索引
解开整包后是一个没有子目录的文件夹。所有记录平铺在同一层,加上四个说明文件。文件名是唯一的索引:ECGMRI 前缀加场强加两位受试者序号加体位码,个别记录再带一个分段数字。ECGMRI3T04Ff 读作 3T 档、第四号受试者、脚先入位;ECGMRI3T04Out 是同一个人同一台机器在舱外录的参考心电。
这种做法在 PhysioNet 的小型库里很常见。优点是无需任何数据字典就能猜到结构,缺点是所有筛选都要写字符串解析,且一旦命名规则有例外,解析器就会出错。这份库确实有一处例外:ECGMRI3T09Ff 被拆成了 Ff1、Ff2、Ff3 三个文件,是同一次采集的三段连续记录,官方未说明拆分原因与段间是否连续。
| 层级 | 命名或文件 | 取值与说明 |
|---|---|---|
| 根目录 | 无子目录 | 全部平铺,记录与说明文件混放 |
| 记录头文件 | <记录名>.hea |
每条一个,文本,含通道描述与注释块 |
| 记录数据体 | <记录名>.dat |
每条一个,二进制,16 位整型交错存放 |
| 注释文件 | <记录名>.qrs |
每条一个,二进制,QRS 采样点序号 |
| 记录清单 | RECORDS |
1 个,每行一条记录名,无扩展名 |
| 注释类型声明 | ANNOTATORS |
1 个,内容为 qrs 加一行说明 |
| 许可全文 | LICENSE.txt |
1 个,ODC-BY 1.0 正文 |
| 说明文档 | README |
1 个,与官网正文基本同源 |
| 校验清单 | SHA256SUMS.txt |
1 个,逐文件校验和 |
1T 档只用 Pro 与 Sup 两种体位,这与那台扫描仪的特殊构造有关。官方说明,1T 使用的是一台已停产的开放式扫描仪,B0 方向垂直、从背侧指向腹侧;而其余扫描仪的 B0 方向水平、从头指向脚。磁场方向不同,MHD 叠加项的极性也不同,所以 1T 上刻意用俯卧与仰卧两种体位去反转这个极性。
2.2 字段与记录的完整字典
这个库没有结构化字段表,信息分三处存放:文件名里的编码、头文件里每条通道的参数行、头文件末尾的注释块。下表把三处合并列出。
| 信息项 | 存放位置 | 取值或范围 | 是否每条都有 |
|---|---|---|---|
| 记录名 | 文件名 | ECGMRI 加场强加序号加体位码 |
是 |
| 场强 | 文件名与注释块 | 1T、3T、7T | 是 |
| 受试者序号 | 文件名 | 各档位序列内独立编号 | 是 |
| 体位码 | 文件名 | Hf、Ff、Pro、Sup、Out | 是 |
| 分段序号 | 文件名 | 仅 3T09Ff 有 1、2、3 | 否 |
| 通道数 | 头文件首行第二列 | 12 或 3 | 是 |
| 采样率 | 头文件首行第三列 | 恒为 1024 | 是 |
| 采样点数 | 头文件首行第四列 | 逐条不同,数千至三十万 | 是 |
| 存储格式 | 通道行第二列 | 16,即 16 位整型 | 是 |
| 增益 | 通道行第三列 | 逐通道不同,单位每毫伏 | 是 |
| ADC 零点 | 通道行第四列 | 0 | 是 |
| 初始值 | 通道行第五列 | 逐通道不同 | 是 |
| 校验和 | 通道行第六列 | 逐通道不同 | 是 |
| 块大小 | 通道行第七列 | 0 | 是 |
| 信号名 | 通道行末列 | I 至 V6,或 I、II、III | 是 |
| 扫描仪型号 | 注释块 | Philips Panorama HFO、Siemens Magnetom Skyra、Siemens Magnetom 7T | 是 |
| B0 方向 | 注释块 | Vertical 或 Horizontal | 是 |
| 记录仪型号 | 注释块 | Getemed CM 3000 或 MIPM Tesla M3 | 是 |
| ADC 位宽 | 注释块 | 12 或 24 | 是 |
| 输入量程 | 注释块 | 正负 6 mV 或正负 2.4 mV | 是 |
| 模拟带宽 | 官网方法段 | 0.05 至 100 Hz | 仅 12 导记录 |
| 导联配置 | 注释块 | 诊断级 12 导,或简化爱因托芬三角 | 是 |
| 性别 | 注释块 | Male 或 Female | 是 |
| 年龄 | 注释块 | 整数年 | 是 |
| 体重 | 注释块 | 千克 | 是 |
| 身高 | 注释块 | 厘米 | 是 |
| 孔径内体位 | 注释块 | Outside、Prone、Supine、Head first、Feet first | 是 |
| 呼吸方式 | 注释块 | 自主呼吸,或屏气(部分记录) | 是 |
| QRS 注释 | .qrs 文件 |
采样点序号,无类型细分 | 是 |
| 采集日期 | 无 | 仅知 2011 至 2017 年 | 否 |
| 跨档位受试者对应 | 无 | 无对照表 | 否 |
| 诊断与用药 | 无 | 只有「无已知心脏病」一句 | 否 |
注意通道行里的初始值与校验和逐通道不同,它们是 WFDB 的解码起点与数据校验字段,与受试者或设备无关。把这两个数字误当成受试者编号,是解析时最常见的错。另一个易错点是增益:12 导记录的增益在一万上下,3 导记录在两千到两万六千之间浮动,逐通道并不相同,比较幅度前必须先按增益换算。
2.3 一条记录的完整解剖
取 ECGMRI1T01Pro 作解剖对象。它是全库唯一的 1T 档、唯一的俯卧记录,也是全库偏短的记录之一。名字可以逐段拆开:ECGMRI 是数据集前缀,1T 是场强,01 是受试者序号,Pro 是俯卧头先入。
#-- 只取头文件,不解码二进制
curl -s https://physionet.org/files/mhd-effect-ecg-mri/1.0.0/ECGMRI1T01Pro.hea
输出第一行是 ECGMRI1T01Pro 12 1024 40000,四个字段依次是记录名、通道数十二、采样率一千零二十四、采样点四万。四万点除以一千零二十四,约三十九秒,是这份库里较短的记录。
接下来十二行是通道描述,每行格式一致:数据文件名、存储格式、增益、ADC 分辨率、ADC 零点、初始值、校验和、块大小、信号名。信号名依次是 I、II、III、aVR、aVL、aVF、V1 到 V6,即标准诊断级十二导顺序。
末尾是注释块,用 #* 起一个小标题,用 #-- 起一个字段。这台机器是 Philips Panorama HFO,B0 垂直,受试者男性二十七岁、七十五公斤、一百九十厘米,俯卧,自主呼吸,用 Getemed CM 3000 记录,十二位精度。
import wfdb
base = "https://physionet.org/files/mhd-effect-ecg-mri/1.0.0"
rec = wfdb.rdrecord(f"{base}/ECGMRI1T01Pro")
print(rec.record_name, rec.fs, rec.sig_len, rec.n_sig)
print(rec.sig_name)
print(rec.p_signal.shape)
print(rec.comments[:14])
读进来以后,p_signal 的形状是一行四万列十二,单位已经按增益换算成毫伏。comments 是注释块按行拆开后的字符串列表,前面带 #* 与 #-- 原始标记,需要自己切分。这是这份库在解析上最费手的一步:元信息不是结构化字段,而是半结构化的文本行。
import wfdb
base = "https://physionet.org/files/mhd-effect-ecg-mri/1.0.0"
ann = wfdb.rdann(f"{base}/ECGMRI1T01Pro", "qrs")
print(ann.sample[:8])
print(len(ann.sample), ann.symbol[:5])
rdann 读出的 sample 是 QRS 波在采样点上的位置,symbol 全部是同一个类型码,因为 ANNOTATORS 文件里只声明了一种注释。用采样点除以一千零二十四就得到秒数,这是把注释与波形对齐的唯一途径,官方不提供逐拍的心率或 RR 间期。
| 解剖项 | ECGMRI1T01Pro 的值 |
含义 |
|---|---|---|
| 场强 | 1T | 全库唯一的低场档 |
| 受试者序号 | 01 | 1T 序列内的第一号 |
| 体位 | 俯卧,头先入 | 与另两条 Out、Sup 同人同批 |
| 通道数 | 12 | 诊断级十二导 |
| 采样率 | 1024 Hz | 与全库一致 |
| 采样点数 | 40000 | 约三十九秒 |
| 记录仪 | Getemed CM 3000 | 12 导 Holter |
| ADC 位宽 | 12 位 | 量程正负 6 mV |
| 模拟带宽 | 0.05 至 100 Hz | 硬件层面已限带 |
| 扫描仪 | Philips Panorama HFO | 开放式,已停产 |
| B0 方向 | 垂直,背侧指向腹侧 | 与其余水平场的机器相反 |
| 受试者 | 男,27 岁,75 公斤,190 厘米 | 无已知心脏病 |
| QRS 注释 | 有,手工 | 不区分正常与异位 |
| 参考记录 | 有,ECGMRI1T01Out |
舱外,不同刻 |
2.4 三档场强的分布
场强是这份库的核心自变量,但三档的样本量极不均衡。1T 档只有一名受试者的三条记录,3T 档占了绝大多数,7T 档五名受试者各三条。按官方口径的四十三条与清单口径的五十三行分别统计,两个总数不同,但各档的构成一致。
| 场强 | 扫描仪 | 记录数(清单) | 体位组合 |
|---|---|---|---|
| 1T | Philips Panorama HFO | 3 | Out、Pro、Sup |
| 3T | Siemens Magnetom Skyra | 35 | Out、Ff、Hf,后段仅 Ff |
| 7T | Siemens Magnetom 7T | 15 | Out、Ff、Hf 各一组 |
| 合计 | 三台机器,两种 B0 方向 | 53 | 五种体位码 |
这里有一处需要留意的结构特征:三个档位的受试者序号各自独立编号,1T 有 01 号,3T 也有 01 号,7T 还有 01 号。官方给出的受试者总数是二十三名,而编号位加起来有二十九个。两者不等,说明跨档位存在同一人重复出现,但官方没有提供跨档位的对应表。
因此在做跨场强比较时,不能假设 1T01、3T01、7T01 是同一个人。头文件里的性别、年龄、体重、身高可以作线索,但官方从未声明这套对应关系,任何基于编号字符串的配对都是研究者自己的推断。
| 档位 \ 体位 | Out | Ff | Hf | Pro | Sup | 小计 |
|---|---|---|---|---|---|---|
| 1T | 1 | 0 | 0 | 1 | 1 | 3 |
| 3T | 4 | 24 | 7 | 0 | 0 | 35 |
| 7T | 5 | 5 | 5 | 0 | 0 | 15 |
| 合计 | 10 | 29 | 12 | 1 | 1 | 53 |
这张表暴露了两个结构事实。第一,舱外参考记录只有十条,而官方文字写「多数受试者有舱外参考心电」,二十三名受试者与十条参考记录之间存在缺口,缺口构成官方未说明。第二,十二导记录集中在 1T、3T 前段与 7T 全部,3T 后段(十号以后)改用三导无线监护仪,因此想做「同一导联体系跨场强」的比较,只有在带 12 导的那部分记录上才成立。
2.5 与同类资源的字段差异
PhysioNet 上的心电库大多以「病人—心搏—诊断」为组织轴,这份库的组织轴是「场强—体位」。两者的字段设计因此完全不同:前者需要诊断编码、心搏分类、用药记录,后者需要扫描仪型号、B0 方向、孔径位置。
| 维度 | 本库 | 与常规临床心电库的差异 |
|---|---|---|
| 组织轴 | 场强与体位 | 常规库按病人与心搏组织,本库的对照单位是物理条件 |
| 受试者规模 | 23 人 | 常规库数百至数万人,本库不做人群推断 |
| 每条记录时长 | 数十秒至数分钟 | 常规库十秒居多,本库可看慢变化,不做长时节律 |
| 通道数 | 12 或 3 | 与常规库的 12 导或 2 导无本质差异 |
| 采样率 | 1024 Hz | 常规库 100 至 500 Hz 居多,本库偏高,适合看高频细节 |
| 精度 | 12 位或 24 位 | 常规库 16 位居多,本库三导更细、量程更窄 |
| 诊断标签 | 无 | 常规库有,本库做不了分类 |
| 心搏标签 | 有,仅位置 | 常规库含类型,本库只能检测,不能分型 |
| 环境元信息 | 扫描仪、场强、B0 方向、体位 | 常规库通常没有,这是本库的核心价值 |
| 参考信号 | 舱外同人记录 | 常规库通常没有,本库提供了对照的可能 |
| 影像 | 无 | 与常规库一致,都无影像 |
这份对照说明一件事:这份库的价值不在波形本身有多特别,而在波形旁边的那些字段。同样一段十二导心电,如果不知道它是在 7T 孔径里、头先入、仰卧、不开序列的条件下录的,它就只是一段被噪声污染的心电;知道这些之后,它才成为一个可以被物理解释的观测。字段即数据,在这份库上体现得最彻底。
§3 它是谁的数据:一篇会议论文的配套
3.1 作者、机构与出处
这份库是单作者作品。Johannes W. Krug Passand 在奥托·冯·格里克大学(Otto-von-Guericke University Magdeburg,简称 OVGU)完成全部采集与整理,PhysioNet 页面上他既是作者也是通讯联系人。机构位于德国萨克森-安哈尔特州马格德堡,采集使用的三台扫描仪分别属于该校与大学附属医院。
官方的引用要求有两层:引用数据集本身,同时引用 2017 年 Computing in Cardiology 会议上的原始论文,作者为 Krug、Schmidt、Rose、Friebe 四人,标题是「A database of electrocardiogram signals acquired in different magnetic resonance imaging scanners」,页码 1 至 4。会议论文与数据集相隔四年,说明数据先以论文形式公开方法,之后才整理成标准格式托管。
资助编号在官方致谢里写全了:联邦教研部的 03IP710、03IPT7100X、03FO16101A,与联邦经济部的 KF3172301JL3。这类编号对使用者没有直接用途,但它说明采集横跨多年、多项目,也解释了为什么同一个库里的设备与场强会如此分散——数据不是一次性设计好的实验,而是多个项目累积的产物。
3.2 时间线
从参考文献可以还原出一条清晰的技术路线:先发现现象,再做滤波,再做门控,最后回到数据本身。这条路线解释了库里为什么会有舱外参考记录,也解释了为什么注释只标 QRS。
| 年份 | 事件 | 与本库的关系 |
|---|---|---|
| 2011 | 首次在 Computing in Cardiology 报告不同扫描仪构型下的 MHD 失真 | 采集起点,1T 数据来自这一时期 |
| 2012 | 用独立成分分析从十二导心电中滤除 MHD | 首次把参考记录引入方法 |
| 2013 | 讨论超高场心脏磁共振中向量心电门控的局限 | 场强上探到 7T 的动因 |
| 2014 | 提出基于高阶统计量的实时 QRS 检测器 | 注释只标 QRS 的动因 |
| 2015 | 作者完成博士论文,主题是高场磁共振中的心脏门控与监护 | 数据整理的理论框架 |
| 2016 | 提出基于积分方差的实时 QRS 检测 | 同上 |
| 2017 | 发表本库的数据论文 | 数据首次以数据库形式描述 |
| 2021 | 以 1.0.0 版托管到 PhysioNet | 公开可检索的起点 |
这条时间线上有一个值得注意的空白:2017 年论文发表到 2021 年正式托管,中间隔了四年。对于一份体量不到三百兆的数据,四年的整理期偏长,官方没有解释原因。可以确认的是,托管版本的文件修改时间集中在 2021 年 2 月,校验清单更新于 2021 年 5 月,与发布日吻合。
3.3 两台记录仪,两套物理规格
库里的记录来自两种完全不同的硬件,这是很多使用者第一次接触时容易忽略的差异。十二导记录用的是一台 Holter,三导记录用的是一台磁共振条件兼容的无线监护仪。两者的位宽、量程、带宽都不同,直接混在一起比较幅度会出错。
| 项目 | 12 导记录仪 | 3 导记录仪 |
|---|---|---|
| 型号 | Getemed CardioMem 3000(头文件写作 CM 3000) | MIPM Tesla M3 |
| 类型 | 有线 Holter | 无线,磁共振条件兼容 |
| 导联 | 诊断级 12 导 | 简化爱因托芬三角,3 导 |
| 采样率 | 1024 Hz | 1024 Hz |
| ADC 位宽 | 12 位 | 24 位 |
| 输入量程 | 正负 6 mV | 正负 2.4 mV |
| 模拟带宽 | 0.05 至 100 Hz | 官方未标注 |
| 通道顺序 | I、II、III、aVR、aVL、aVF、V1 至 V6 | I、II、III |
| 典型增益 | 四千至一万四每毫伏 | 七千至两万六每毫伏 |
两套硬件的取向不同。Holter 追求诊断级保真,带宽下限压到 0.05 Hz,为的是不丢 ST 段的低频成分;位宽只有 12 位,但量程宽到正负 6 mV,足以容纳 MHD 造成的大幅抬升。无线监护仪走的是另一条路:24 位位宽给出极细的量化台阶,但量程只有正负 2.4 mV,是前者的四成。
这个差异带来一个实际后果:在场强较高、MHD 叠加幅度较大的记录上,三导设备更接近量程边界。官方没有报告削顶情况,也没有给出逐条的幅度统计,因此使用者若要比较不同记录仪的幅度,应当先检查原始整数是否贴近满量程,再决定是否可用。这是结构性提醒,不是对数据的指控。
3.4 受试者是谁
二十三名受试者全部是志愿者,来源是马格德堡大学的学生与雇员。官方给出了三项均值与标准差:年龄 27.1 加减 3.2 岁、体重 73.8 加减 13.1 公斤、身高 181.7 加减 10.5 厘米,但明确说明不提供逐人的招募条件。这批人的共同点是年轻、健康、体型偏高大。
平均身高一百八十一厘米这一点值得单独说。MHD 幅度与胸廓几何、主动脉长度、血流速度都相关,一副较高的身躯意味着较长的血管路径与较大的血容量。这份库的人群在体型上偏向高瘦青年,往一般人群外推时,叠加项的绝对幅度可能系统性偏高。官方没有讨论这一点。
性别构成是一个缺口。官方正文没有给出男女比例,只在头文件中逐条记录。这意味着想按性别分层分析的研究者,必须自己解析注释块并汇总,而这一步得到的数字是研究者派生的,不是官方口径。
3.5 与库内其它心电资源的定位差异
同样是 PhysioNet 上的心电数据,不同库回答的问题完全不同。把它们放在一起看,能更清楚地看出这份库的位置。
| 库 | 组织轴 | 主要用途与本库的关系 |
|---|---|---|
| 本库 | 场强与体位 | MHD 分离与强干扰下的 QRS 检测;唯一以静磁场为自变量 |
| 心律失常库 | 心搏与节律 | 分类、检测、节律分析;本库缺的标签它有 |
| 可穿戴伪迹库 | 活动与电极位置 | 运动伪迹去除;干扰类型不同,方法可借鉴 |
| 长时动态心电库 | 时间与日常活动 | 长时节律统计;本库不做长时 |
| 新生儿心电库 | 年龄与出生状态 | 儿科心电分析;本库无儿科 |
| 重症监护心电库 | 病房与病程 | 监护报警与事件检测;本库无病程 |
| 挑战赛心电库 | 任务与评分 | 基准评测;本库无官方划分 |
这张表里最要紧的是第一行与第二行的对比。心律失常库能给你标签,给不了物理条件;本库能给你物理条件,给不了标签。两者不是替代关系,而是上下游关系:在本库上开发出的抗干扰检测器,最终要在有标签的临床库上验证检出率。
§4 它最独特的东西:把磁场当自变量
4.1 为什么「同一人 × 多场强 × 多体位」比「多导联」更稀缺
心电数据库绝大多数以「人」为自变量:不同病人、不同疾病、不同年龄。以「物理环境」为自变量的库极少,因为构造它需要一台可以调场强的磁共振、一套能在孔径内工作的记录设备、以及愿意躺在里面的健康志愿者。三者缺一,数据就采不成。
这份库恰好三样都有。同一套流程在 1T、3T、7T 三台机器上重复,同一名受试者可以在俯卧与仰卧之间切换,同一台记录仪跟着人进出孔径。于是场强、体位、设备三个变量被分开控制,任意固定两个都能观察第三个的效应。
| 变量 | 取值 | 控制方式与可观察的效应 |
|---|---|---|
| 场强 | 1T、3T、7T | 换扫描仪,看叠加幅度随场强的增长 |
| B0 方向 | 垂直、水平 | 换扫描仪,看叠加项的极性反转 |
| 体位 | 俯卧、仰卧、头先入、脚先入 | 换摆位,改变血流与磁场的夹角 |
| 呼吸 | 自主、屏气 | 下指令,看呼吸调制是否叠加 |
| 设备 | 12 导 Holter、3 导监护仪 | 换记录仪,看带宽与量程的影响 |
| 位置 | 舱内、舱外 | 移出孔径,得到有无 MHD 的对照 |
六个变量里,场强与 B0 方向是这份库独有的一对。其他心电库可以控制体位(躺与坐),可以控制设备,但几乎不可能控制场强。这也是为什么这份库在讨论 MHD 的论文里被反复引用:它是少数能把「场强翻倍,叠加项怎样变」这件事直接摊开看的公开数据。
4.2 案例:ECGMRI7T02 的三条记录
取 7T 档第二号受试者的一组三条记录作为贯穿案例。同一个人、同一台 Siemens Magnetom 7T、同一次进舱流程,分别在舱外、头先入、脚先入三个条件下各录一段十二导心电。头文件显示受试者为男性、二十五岁、七十公斤、一百七十六厘米,三段都是自主呼吸。
| 记录 | 体位 | 采样点数 | 折合时长 | 作用 |
|---|---|---|---|---|
ECGMRI7T02Out |
舱外 | 300,000 | 约四分五十三秒 | 唯一不含 MHD 的参考 |
ECGMRI7T02Hf |
头先入,仰卧 | 200,001 | 约三分十五秒 | 血流方向与 B0 同向为主 |
ECGMRI7T02Ff |
脚先入,仰卧 | 280,001 | 约四分三十三秒 | 血流方向与 B0 反向为主 |
这三条记录的价值在于它们构成一个完整的三点对照:一条没有磁场,两条有磁场且磁场相对于人体的方向相反。头先入与脚先入的区别不只是躺的方向,而是心脏到磁体中心的相对位置、以及升主动脉血流与 B0 的夹角同时被翻转。官方在方法里正是用这一点来解释 1T 档为什么要俯卧与仰卧各录一次。
把三条并排画出来,通常能看到两类差异。第一类是整体的基线抬升或压低,幅度与场强和体位相关,形态随心动周期起伏,是典型的 MHD 叠加。第二类是 QRS 波本身的形态改变,尤其在 V1 至 V3 上,R 波与 S 波的相对高度会变。前者影响 ST 段的判读,后者影响 QRS 检测器的阈值设定。
需要提醒的是,这三条记录并非严格同步。舱外那条是在进入孔径之前或之后录的,中间隔着摆位与设备切换。若要做逐拍相减,必须先把三条记录按心率对齐,并对齐过程本身的误差有估计。§4.2 的案例在后面的评测协议与偏差讨论里还会用到。
4.3 体位如何改写 MHD 极性
MHD 叠加项的符号取决于三个矢量的相对关系:血流方向、磁场方向、以及电极导联轴的方向。三者中任意一个反转,叠加项就可能整体反号。这份库用体位来制造这种反转。
1T 那台开放式扫描仪的 B0 是垂直的,从背侧指向腹侧。受试者俯卧时,心脏的背侧朝上靠近磁体,血流方向与磁场的夹角是一个值;翻成仰卧后,胸侧朝上,夹角变成补角,叠加项的极性随之翻转。官方在方法里明确写到,1T 之所以只用俯卧与仰卧两种体位,正是为了反转 MHD 效应。
3T 与 7T 是水平场的圆筒机,B0 从头指向脚或反向。此时改变体位的方式不是翻身,而是换进入方向:头先入时心脏位于孔径较深处,脚先入时心脏靠近孔径出口。血流的主要分量与 B0 的夹角在这两种摆位下发生改变,叠加项的形态也随之改变。
| 档位 | B0 方向与制造反转的方式 | 记录数 |
|---|---|---|
| 1T | 垂直,背到腹;俯卧与仰卧互换 | 3 |
| 3T | 水平;头先入与脚先入互换 | 35 |
| 7T | 水平;头先入与脚先入互换 | 15 |
这种设计有一个隐含前提:受试者在两种体位下的血流状态可比。实际上从仰卧翻到俯卧,胸腔受压、回心血量、心率都可能变化,官方没有对这一点做校正,也没有报告体位切换前后的心率。因此「极性反转」这个解释在物理上成立,在生理上仍混有体位本身的效应。这是使用这份库做定量反演时最需要小心的地方。
4.4 它支撑的四类实验
从官方使用说明与参考文献看,这份库被设计来支撑四类工作。这四类工作的门槛与所需记录不同,可以按需取子集。
| 实验类型 | 需要的记录 | 评价指标 | 官方是否给了基线 |
|---|---|---|---|
| MHD 与心电分离 | 舱内记录加舱外参考 | 分离后 ST 段形态恢复程度 | 无,需自建 |
| 强干扰下的 QRS 检测 | 全部记录 | 检测召回与误检率 | 有手工标注 |
| 心脏门控触发 | 高场记录 | 触发时刻与真实 R 波偏差 | 有手工标注 |
| MHD 作为血流代理 | 多场强同人记录 | 叠加幅度与场强的相关性 | 无,需自建 |
第一类与第四类是这份库真正的独门用途,也是它被引用的主因。第二类与第三类有替代品——任何带 QRS 标注的心电库都能做检测评测,只是本库的干扰更极端。选择本库做检测,图的是「难」,不是「全」。
第四类的思路值得展开。既然叠加项与血流速度成正比、与场强成正比,那么在同一受试者身上给定场强,叠加项就携带了血流的信息;反过来,若能测得叠加项,就能估计每搏输出量一类的量。这是把干扰变成信号的路子,官方在摘要里点了这一句,但没有提供任何验证。走这条路的人需要自己找金标准,本库只提供输入。
4.5 边界条件:什么时候它不再适用
有四类情形会让这份库直接失效。
第一类是心率剧烈变化。全库的参考记录都建立在「健康受试者心电平稳」的假设上,受试者静卧、自主呼吸、无心律失常。一旦心率在舱内外两段之间漂移超过几个百分点,逐拍对齐就会失真,MHD 幅度估计随之偏掉。
第二类是低场强。1T 只有一名受试者的三条记录,其中舱内两条分属俯卧与仰卧。想在 1T 上做体位对照,样本只有一个人一对记录,任何统计结论都不成立。
第三类是女性与老年人群。官方没有给出性别构成,平均年龄二十七岁。MHD 与胸廓几何、血容量相关,这两条在女性与老年人身上与健康青年不同,本库无法覆盖。
第四类是成像状态下的心电。这份库刻意关闭了梯度与射频,因此它不能回答「真实扫描时心电是什么样」。真实检查中的干扰是复合的,把本库上训练出的分离模型直接搬到扫描现场,会遇到训练分布里根本不存在的干扰类型。
§5 怎么拿到:从递归抓取到可训练的数组
5.1 目录与体积
整包未压缩 279.8 MB,压缩后 265.3 MB。这个比例说明数据本身已经是紧凑的二进制,压缩收益很小。按二百零三分钟、十二导、一千零二十四赫兹、每点两字节估算,全十二导的理论占用约二百九十九兆,与官方数字同量级;实际偏小,是因为后段有三导记录,占用只有十二导的四分之一。
体积小是这份库的一个实用优点。两百多兆的数据可以整体放进笔记本,反复切窗、反复重采样都不需要外接盘。相比动辄几十上百吉字节的监护库,它更适合做方法原型的第一轮验证。
5.2 两条取数路径
官方给了三种取法:网页上的 ZIP 下载、递归抓取、以及公开对象存储同步。三者内容一致,都不需要登录。
#-- 方式一:递归抓取整个版本目录,保留相对路径
mkdir -p /data/mhd && cd /data/mhd
wget -r -N -c -np https://physionet.org/files/mhd-effect-ecg-mri/1.0.0/
#-- 方式二:从公开桶同步,适合脚本化重跑
aws s3 sync --no-sign-request \
s3://physionet-open/mhd-effect-ecg-mri/1.0.0/ /data/mhd/
两条路径的结果相同。递归抓取会多出一层以域名命名的目录,写脚本时要留意路径前缀;对象存储同步则直接落到目标目录。若只需要元信息,可以单独取清单与说明文件,几秒钟就能完成。
#-- 只要清单和说明,先看清结构再决定是否全量下载
base=https://physionet.org/files/mhd-effect-ecg-mri/1.0.0
curl -s "$base/RECORDS" -o RECORDS
curl -s "$base/README" -o README
wc -l RECORDS
5.3 建索引:把文件名拆成一张表
文件名是唯一的索引,所以第一步永远是字符串解析。规则很规整:前缀、场强、两位序号、体位码,个别记录多一位分段数字。写成正则一次拆完,比逐条手工判断可靠。
import re
from pathlib import Path
pat = re.compile(r"^ECGMRI(\d)T(\d{2})(Hf|Ff|Pro|Sup|Out)(\d?)$")
rows = []
for line in Path("/data/mhd/RECORDS").read_text().split():
m = pat.match(line)
if not m:
continue
field, subj, pos, seg = m.groups()
rows.append({"name": line, "tesla": int(field),
"subject": int(subj), "position": pos, "seg": seg})
print(len(rows))
print(rows[0])
print(sorted({r["position"] for r in rows}))
解析结果可以直接转成 DataFrame 做分组。要注意两点:场强那一档是单个数字,1T、3T、7T 都能匹配;分段数字可能为空,取值时要按空字符串处理,不要当成零。
5.4 解析注释块:元信息藏在文本行里
通道参数在头文件正文,受试者与设备信息在注释块。WFDB 把注释块原样收进 comments,需要自己按 #-- 切开。这一步做完,才能按性别、年龄、场强做分组。
import wfdb
base = "https://physionet.org/files/mhd-effect-ecg-mri/1.0.0"
rec = wfdb.rdrecord(f"{base}/ECGMRI7T02Hf", physical=False)
meta = {}
for line in rec.comments:
s = line.strip().lstrip("#").strip()
if s.startswith("-"):
s = s.lstrip("-").strip()
if ":" in s:
k, v = s.split(":", 1)
meta[k.strip()] = v.strip()
for k in ("Magnetic field strength", "MR scanner",
"Orientation of the static magnetic field (B0)",
"ECG recorder", "ADC resolution", "Positon in the scanner"):
print(k, "=", meta.get(k))
这段代码有两处需要适应实际文本。字段名偶尔带拼写问题,例如体位那一行写的是 Positon,少一个字母,按键名取值会拿不到。注释行开头有时是 #--,有时是 #*,切割时要先剥掉所有井号与前导连字符,再按第一个冒号拆分。
5.5 按场强分组的评测协议
拿到数据后最常见的问题是「怎么分组才公平」。这份库的天然分组是场强与体位,评测协议应当围绕这两个维度设计,而不是随机切分记录。
import numpy as np
import wfdb
base = "https://physionet.org/files/mhd-effect-ecg-mri/1.0.0"
def load(name):
rec = wfdb.rdrecord(f"{base}/{name}")
ann = wfdb.rdann(f"{base}/{name}", "qrs")
return rec.p_signal, ann.sample
def bandpower(x, fs=1024, lo=0.5, hi=40.0):
f = np.fft.rfftfreq(len(x), 1 / fs)
p = np.abs(np.fft.rfft(x - x.mean())) ** 2
return float(p[(f >= lo) & (f <= hi)].sum())
groups = {
"7T_out": "ECGMRI7T02Out",
"7T_hf": "ECGMRI7T02Hf",
"7T_ff": "ECGMRI7T02Ff",
}
for tag, name in groups.items():
x, qrs = load(name)
lead = x[:, 1]
print(tag, len(lead), len(qrs), round(bandpower(lead), 1))
协议的关键不是算法,而是分组口径。以 §4.2 的案例为例,三条记录同人同机,唯一变化的是体位与有无磁场,因此它们构成一个受控对照;若把不同受试者的记录混在一组做平均,场强效应就会被个体差异淹没。建议按「同一人同一档位」成组,组内比体位,组间比场强。
| 分组方式 | 控制住的变量 | 未控制的变量 | 适用问题 |
|---|---|---|---|
| 同人同档位,比体位 | 人、场强、设备 | 体位带来的生理变化 | 极性反转是否成立 |
| 同人同体位,比场强 | 人、体位 | 扫描仪型号 | 幅度随场强的增长 |
| 同档位,比人 | 场强、设备 | 个体差异 | 个体间离散度 |
| 同人,比舱内舱外 | 人、设备 | 时间差 | 有无 MHD 的差异 |
| 全部混在一起 | 无 | 全部 | 只适合做总体描述 |
5.6 六个最容易出错的地方
| 易错点 | 具体表现 | 正确做法 |
|---|---|---|
| 把编号当身份 | 以为 3T02 与 7T02 是同一人 | 官方无对应表,只能按头文件推断 |
| 混用两种导联体系 | 把三导记录的 I、II、III 当十二导的前三导 | 两者增益、量程、导联配置都不同 |
| 忘记按增益换算 | 直接比较原始整数的幅度 | 先除增益得毫伏,再比较 |
| 把注释当秒数 | 用采样点序号当时刻 | 除以 1024 才是秒 |
| 忽略分段记录 | 把 3T09Ff1 到 Ff3 当三条独立记录 | 它们是同一次采集的三段 |
| 全量当训练集 | 用四十几条记录训练网络 | 只能做验证、消融与失败分析 |
这六条里有三条与元信息解析有关,两条与物理量换算有关,一条与实验设计有关。它们的共同点是:只要事先读一遍 README 与一条头文件的完整内容,就都能避免。
§6 与库内资源的关系
6.1 关系图谱
这份库在心电类资源里处于「环境变量」这一格。它与按疾病组织、按活动组织、按设备组织的库都不同,彼此之间是互补而非竞争。
| 关联类型 | 库内资源 | 关联点 | 使用方式 |
|---|---|---|---|
| 同类干扰研究 | 可穿戴运动伪迹库 | 都是「信号加已知来源干扰」 | 方法互借,干扰物理不同 |
| 下游标签来源 | 心律失常分类库 | 本库无标签,那边有 | 本库调算法,那边验效果 |
| 同平台同规范 | 各 PhysioNet 心电库 | 都是 WFDB 格式 | 读数据的代码可直接复用 |
| 上游场景 | 心脏磁共振相关资源 | 门控是共同的应用背景 | 本库解释门控为何失效 |
| 设备侧关联 | 可穿戴与监护设备资源 | 都关心孔径内的设备兼容 | 本库提供兼容设备的真实波形 |
| 方法侧关联 | 心电去噪与分离资源 | 都做成分分离 | 本库的参考记录可做监督信号 |
最容易建立的连接是第二行。本库的注释只有 QRS 位置,无法评估分类性能;但一个在本库上抗住了 MHD 的检测器,可以拿到有心律失常标签的库上去测检出率。这条链路把「物理真实性」与「标签完备性」分开获取,是使用本库最经济的做法。
6.2 检索路径
在站内找相关资源时,四个入口最有效:按信号类型(心电信号)、按应用场景(磁共振、门控、监护)、按数据形态(波形、时序信号、手工标注)、按干扰类型(伪迹、基线漂移)。前三个入口能把它带出来,第四个入口能带出与它方法同源的去噪条目。
按「场强」检索在多数平台上不会命中,因为场强不是通用分类词。这是这份库的一个检索劣势:它的核心变量没有对应的标签,只能靠「MRI」这个宽标签带出来。换句话说,它最独特的属性恰恰是最难被检索到的属性。
§7 质量评估与局限性
7.0 阅读本节前的一个前置校正
在给这份库打分之前,必须先校正一个常见的错位:把它当成「样本太少的临床数据集」来评价。这个判断本身是误判。它的目标不是估计人群分布,而是提供一个物理变量被单独隔离的观测集。按后者衡量,二十三个人不是缺陷,因为个体差异在这个设计里是噪声;两三百兆的体积不是寒酸,因为物理对照只需要少量高质量记录。
校正之后的评价标准应该换成三条:物理变量是否真的被隔离、对照是否真的成对、规格是否真的统一。这份库在三条上都站得住:梯度与射频确实被关闭,舱内与舱外确实成对,采样率与格式全库一致。它站不住的是另一组问题:能否外推到病人、能否支撑监督学习、能否代表真实扫描场景。把这两组问题分开,评价才不至于错位。
还有一层校正关于数字本身。官方正文写四十三条记录,清单列出五十三行,两个数字相差十条;官方文字说多数受试者有舱外参考,清单里却只有十条舱外记录。这两处不一致都不影响数据的物理有效性,但会影响任何「按记录数」做统计的结论,引用时必须标明口径。
7.1 五维评分
按千方医数集的框架,对数据集的评价分成规模、结构、注释、边界、可用性五个维度。这一框架与 DAIMS(Data and AI Management Standards)的分层思路一致:先看数据本身,再看治理条件与使用限制,而不是只看体量。
| 维度 | 分值(五分制) | 依据与说明 |
|---|---|---|
| 规模 | 2 | 23 人、43 条、203 分钟;物理对照够用,统计推断不足 |
| 结构 | 5 | 三档场强、五种体位、两种导联、全库 1024 Hz;设计干净 |
| 注释 | 2 | 仅 QRS 位置,手工,无类型细分;检测可用,分类不可用 |
| 边界 | 3 | 许可宽松,适用面窄;官方自己写清了不适用场景 |
| 可用性 | 5 | 280 MB、WFDB 标准、三条取数路径;半小时能跑通 |
五项的权重完全取决于用途。做 MHD 分离方法研究时,结构与可用性的权重最高,总分可观;做人群层面的心电分析时,规模与注释的权重最高,总分立刻跌到很低。任何单一综合分都不应脱离用途被引用。
7.2 注释的真实覆盖范围
全库的注释只有一个来源:.qrs 文件里的 QRS 采样点。ANNOTATORS 文件仅一行,声明注释类型为 qrs,含义是 QRS 波群。没有第二种注释,没有区间标注,没有质量评级。
| 注释项 | 是否存在 | 覆盖范围 | 能否支撑监督学习 |
|---|---|---|---|
| QRS 位置 | 是,手工 | 全部记录 | 可做检测评测 |
| 心搏类型 | 否 | 零 | 不能做分型 |
| 节律标签 | 否 | 零 | 不能做节律分类 |
| 伪迹区间 | 否 | 零 | 不能做伪迹检测训练 |
| 信号质量评分 | 否 | 零 | 不能做质量回归 |
| 呼吸相位 | 否 | 零 | 不能做呼吸校正 |
| 体位与场强 | 是,来自文件名与头文件 | 全部记录 | 可做条件分组 |
| 受试者人口学 | 是,来自注释块 | 全部记录 | 可做协变量分析 |
能支撑监督学习的目标只有两个:QRS 检测,以及以场强或体位为条件的回归。前者有手工金标准,后者有可靠标签但样本极少。除此之外的一切监督任务,都需要研究者自己造标签,而造出来的标签不属于官方口径。
值得注意的是「不区分正常与异位」这一句。官方的意思是:标注者只标了 QRS 出现的位置,没有判断这个搏动是窦性还是异位。对检测任务而言这没有影响,因为检测器只关心「有没有」;对任何涉及节律形态的分析而言,这一句就是明确的禁区。
7.3 已知的、可枚举的偏差
偏差在这份库里不是统计意义上的抽样偏差,而是设计上的结构性偏置。下表按可校正性排列。
| 偏差项 | 具体表现与影响 | 可否从数据内校正 |
|---|---|---|
| 人群偏差 | 健康青年,平均 27 岁,无法外推到老年与病人 | 不可校正 |
| 体型偏差 | 平均身高 181 厘米,叠加幅度可能系统性偏高 | 不可校正 |
| 场强偏差 | 1T 仅 1 人 3 条,低场对照几乎无法成立 | 不可校正 |
| 设备偏差 | 3T 后段改用 3 导,跨场强比较的导联体系不一致 | 可部分校正,取子集 |
| 时间偏差 | 参考记录与舱内记录不同刻,逐拍相减含时间差误差 | 可部分校正,需对齐 |
| 状态偏差 | 静卧、自主呼吸、无负荷,无运动与药物负荷 | 不可校正 |
| 场景偏差 | 不开梯度与射频,不代表真实扫描 | 不可校正 |
| 编号偏差 | 各档独立编号、无对应表,跨场强同人配对不可靠 | 需自行推断 |
八项偏差里只有两项可以从数据内部部分校正。这个比例说明它的适用范围不是「有多大偏差」,而是「偏差封死了哪类问题」。人群、体型、场强、场景这四项,无论用什么统计技巧都无法从本库得到答案。
§4.2 的案例在这里提供一个具体化的提醒。那三条记录看起来构成完美的受控对照:同人、同机、同一天。但舱外那条与舱内两条之间隔着摆位时间,心率若有漂移,逐拍相减就会把漂移当成 MHD。这个误差不是数据错误,而是设计上的必然,任何使用它的人都必须自己处理。
7.4 外部验证矩阵
外部验证指的是用本库之外的资源检验在本库上得到的结论。对一份物理实验性质的数据,这一步尤其重要,因为物理规律应当可迁移,而算法往往不可迁移。
| 验证方向 | 可用外部资源与验证方式 | 预期结果 |
|---|---|---|
| MHD 幅度与场强的关系 | 其他高场磁共振心电记录;比同体位不同场强的叠加斜率 | 若一致则物理模型成立 |
| 分离算法的有效性 | 有 QRS 标签的临床心电库;本库调参,外部测检出率 | 通常下降,反映过拟合 |
| 参考记录的可替代性 | 同人不同时刻的静息心电;两段互做参考 | 差异即时间差误差的量级 |
| 三导与十二导的一致性 | 同步双设备记录;比较共用导联的形态 | 官方未提供,属空白 |
| 病人群体的 MHD 表现 | 监护病房的磁共振兼容记录;比较幅度分布 | 本库可能低估 |
| 滤波对 ST 段的影响 | 有 ST 改变标注的库;比较滤波前后判读一致性 | 本库可作干扰源 |
第一行与第五行是这份库最需要外部验证的两处。场强与幅度的关系是它的核心卖点,但只有一个作者、一套设备、二十三个人支撑;病人群体的表现是它最大的空白,而恰恰是临床应用最关心的。§4.2 的案例可以作为这条验证链的起点:先用三条同人记录确认体位效应,再去外部数据上看这个效应是否还在。
7.5 它为何能持续:一份物理对照不需要更新
一份 2021 年发布、至今仍是 1.0.0 版、浏览量三百余次的小库,为什么不会被清理,也不会被替代?答案在它的不可复制性。要复制它,需要一台 7T、一台 3T、一台已停产的 1T 开放式扫描仪,一套磁共振条件兼容的记录设备,二十三名愿意躺在孔径里的志愿者,以及跨越六年的采集窗口。这不是一个实验室一个季度能完成的事。
第二层原因是它的物理有效性不随时间衰减。临床数据库会过时,因为诊疗指南变了、设备换代了、人群结构变了;物理对照不会过时,因为洛伦兹力今天和 2011 年是同一个公式。一份 2011 年录的 7T 心电,在 2026 年仍然是 7T 心电。
第三层原因是它填的是一个窄口。做 MHD 分离的人不多,但每一个做的人都绕不开它。窄口的好处是竞争者少,坏处是使用者少;对一份托管在公共平台、体量不到三百兆的数据而言,维护成本几乎为零,窄口足以让它长期在架。
§8 生态位与历史
8.1 历史沿革
MHD 效应不是新发现。1996 年就有理论工作分析磁场与主动脉血流的相互作用,算出管壁电位差随场强与流速增长的量级。真正把这件事变成工程问题的,是磁共振从 1.5T 走向 3T、再到 7T 的过程:场强翻倍,叠加项随之翻倍,原本可以忽略的变形变成了门控失败的直接原因。
这份库的采集窗口正好覆盖了这段升级期。2011 年首次报告不同扫描仪构型下的 MHD 失真时,3T 刚开始普及,7T 还在少数研究中心;到 2017 年数据论文发表时,7T 已有商用机型。库里同时保留 1T 开放式、3T 圆筒式与 7T 超高场三种构型,等于把这段设备演进压缩进了一份数据。
官方背景段提到的介入磁共振场景值得单独说明。提升磁共振期间心电诊断价值的目标,对重症患者与磁共振引导介入尤其重要。这类场景下病人不能离开磁体,心电必须在线判读,MHD 就成了必须被扣除的项。本库虽然不是为介入采集的,但它提供的对照仍是这类工作最接近的公开材料。
8.2 与后续研究的关系
从官方参考文献看,这份数据在发表前后被用于六个方向的工作:MHD 失真建模、独立成分分析分离、向量心电门控、实时 QRS 检测、循环平稳分析、介入磁共振监护。作者本人在其中占了五篇,这说明它是一个「自用型」数据集:先在自己的方法研究里反复使用,成熟后才公开。
其中循环平稳分析是一个容易被忽略的方向。它把信号看成统计特性随时间周期性变化的过程,心电与 MHD 虽然频带重叠,但循环频率不同,因此可以在循环谱上分开。这类方法需要的正是「两种成分叠加、且知道各自来源」的数据,本库的舱内舱外配对恰好满足。
8.3 生态位:标尺而不是样本
用一句话概括它的位置:它是标尺,不是样本。样本用来估计总体,标尺用来校准仪器。没有人在标尺上做统计推断,但每个实验室都需要一把。
这个定位解释了它的全部特征。二十三个人是特性,因为标尺不需要代表性;三档场强是必需,因为标尺要有刻度;不开成像是特性,因为标尺要排除无关变量;体量小是特性,因为标尺要能随手取用。
标尺这个比喻还能解释另一个现象:它的引用多集中在方法类论文的「数据」一节,而不是结果一节。作者引用它,通常是为了说明「我们用的是公开的、场强已知的真实波形」,而不是为了报告一个统计量。这与样本型资源的引用方式完全不同。
8.4 谁在用它,用来做什么
官方页面显示的累计浏览量为三百五十余次,在 PhysioNet 上属于偏低。低浏览不等于低价值,只说明它面向的是一个窄口。
| 使用者类型 | 典型用途 | 从中获得的东西与主要障碍 |
|---|---|---|
| 信号处理研究者 | 分离与滤波方法验证 | 干扰来源已知的真实波形;无官方基线算法 |
| 磁共振工程师 | 评估孔径内监护可行性 | 不同场强的变形样本;设备型号偏老 |
| 门控算法开发者 | 测试触发鲁棒性 | 手工 QRS 标注;无失败案例标注 |
| 临床工程师 | 解释监护异常 | 判断变形是否属于物理必然;无病人数据 |
| 教师 | 讲解洛伦兹力的医学后果 | 三档场强的直观对照;需自备讲解材料 |
| 学生 | 练习 WFDB 与信号处理 | 结构规整的小数据集;文档偏简 |
第四行值得展开。临床上遇到磁共振期间心电报警频繁,第一反应常是设备故障。知道 MHD 的物理机制之后,判断标准就变了:在场强内出现与心动周期同步的基线起伏,属于物理必然,不是故障。这份库提供的就是这种判断的参照系。
§9 使用指引
9.1 三种角色的路径
不同角色从这份库得到的东西不同,最短路径也不同。
| 角色 | 目标 | 三步路径 |
|---|---|---|
| 算法研究者 | 验证分离或检测方法 | 取 7T 一组三条跑通读数据,按场强与体位分组做对照,再到有标签的库上复核 |
| 设备工程师 | 评估孔径内监护方案 | 读两台记录仪的规格差异,比较同场强下两种导联体系,对照自家设备的量程与带宽 |
| 教学与学习 | 建立物理直觉 | 取同一人俯卧与仰卧两条并排画图,比较基线起伏方向,讲清洛伦兹力与霍尔电压 |
三条路径的共同起点都是「取一组同人记录」。单条记录只能看到变形,看不出变形的来源;只有成组对照,才能把场强与体位的作用分开。
9.2 一条最短的可用流程
从零到出一张对照图,最短的流程是四步:取清单、按组读入、画三条并排、标注 QRS 位置。
import numpy as np
import wfdb
import matplotlib.pyplot as plt
base = "https://physionet.org/files/mhd-effect-ecg-mri/1.0.0"
names = ["ECGMRI7T02Out", "ECGMRI7T02Hf", "ECGMRI7T02Ff"]
fig, axes = plt.subplots(3, 1, figsize=(10, 6), sharex=False)
for ax, name in zip(axes, names):
rec = wfdb.rdrecord(f"{base}/{name}")
ann = wfdb.rdann(f"{base}/{name}", "qrs")
lead = rec.p_signal[:, 1]
t = np.arange(len(lead)) / rec.fs
ax.plot(t, lead, lw=0.6)
keep = ann.sample[ann.sample < len(lead)]
ax.plot(keep / rec.fs, lead[keep], "r.", ms=4)
ax.set_title(name)
ax.set_ylabel("mV")
axes[-1].set_xlabel("seconds")
fig.tight_layout()
fig.savefig("/tmp/mhd_7t02.png", dpi=150)
print("saved", fig.get_size_inches())
这段代码用的是第二条导联。选它是因为它在十二导体系里对应 II 导,R 波最明显,肉眼容易判断 QRS 位置是否与标注对齐。三条记录的横轴各自从零开始,长度不同,因此不要用共享横轴,否则短的那条会被拉长。
9.3 引用方式
官方要求两层引用:数据集本身,以及 2017 年的会议论文。BibTeX 可以直接照抄页面提供的题录,把版本号写进去,避免后续版本变化导致指向不明。
@article{PhysioNet-mhd-effect-ecg-mri-1.0.0,
author = {{Krug Passand}, Johannes W},
title = {{Influence of the MHD effect on 12-lead and 3-lead ECGs
recorded in 1T to 7T MRI scanners}},
journal = {{PhysioNet}},
year = {2021},
month = may,
note = {Version 1.0.0},
doi = {10.13026/05td-jn37}
}
@inproceedings{krug2017database,
author = {Krug, J. W. and Schmidt, M. and Rose, G. and Friebe, M.},
title = {A database of electrocardiogram signals acquired in
different magnetic resonance imaging scanners},
booktitle = {Computing in Cardiology},
year = {2017},
pages = {1--4}
}
若期刊要求标注许可,写明 Open Data Commons Attribution License v1.0,并说明对数据做了何种变换。许可要求署名,不要求同许可传播,这一点比不少医学数据集的限制更宽。
9.4 复现一份最小报告的四步检查
| 步骤 | 检查项 | 通过标准 | 常见失败 |
|---|---|---|---|
| 取数 | 清单行数与文件数一致 | 每条记录三个文件齐全 | 漏下 .qrs,只剩波形 |
| 解析 | 场强、体位、通道数正确 | 与头文件逐条对得上 | 正则漏掉分段数字 |
| 换算 | 幅度单位为毫伏 | 与原始整数除增益一致 | 直接比较原始整数 |
| 成组 | 同人同档位成组 | 组内仅体位不同 | 把不同人混成一组 |
四步里第三步最容易被跳过,因为它不影响画图,只影响结论。原始整数的量级在几千到几万之间,不同记录的增益又不同,直接比较会得出「某条记录幅度是另一条的三倍」这类错误结论。
§10 AI 使用声明
| 项目 | 声明 |
|---|---|
| 文本生成 | 本文由 AI 辅助撰写,结构与事实由编辑把关 |
| 数字来源 | 规模、结构、边界三类数字取自官方项目页、README、RECORDS 与头文件原文 |
| 文件核验 | 取回了 RECORDS、README、ANNOTATORS 与五条记录的头文件全文 |
| 头文件核验 | 逐行读取了 1T、3T、7T 各一条十二导记录与一条三导记录的头文件 |
| 未核验内容 | 未下载信号数据体做逐条统计,采样点数与时长以头文件声明为准 |
| 论文信息 | 只引用官方页面列出的会议论文题录,未取全文 |
| 差异披露 | 官方正文四十三条与清单五十三行、以及「多数受试者有参考记录」与十条舱外记录,均按两口径并列 |
| 图像 | 无配图;封面为生成式提示词,不含真实波形 |
| 免责 | 本文不构成临床建议;使用数据须遵守 ODC-BY 1.0 的署名要求 |
常见误读(避坑清单)
| 常见说法 | 实际 | 证据 |
|---|---|---|
| 这是心电与 MRI 同步记录的多模态数据 | 采集时不成像,全库无图像 | 官方方法段写明无梯度切换与射频发射 |
| MHD 是某种成像序列的缩写 | MHD 指磁流体动力学效应 | 官方摘要首句 |
| 库里有 43 条记录 | 正文写 43 条,清单列 53 行 | 项目页与 RECORDS 文件 |
| 每个受试者都有舱外参考心电 | 清单中舱外记录只有 10 条 | RECORDS 逐行统计 |
| 三导记录就是十二导的前三个导联 | 三导是简化爱因托芬三角,另一台设备 | 头文件 ECG lead configuration 字段 |
| 注释包含心搏类型 | 只标 QRS 位置,不区分正常与异位 | 官方数据描述段与 ANNOTATORS |
| 库里有 1.5T 数据 | 清单只有 1T、3T、7T;README 顺带提到 1.5T,但无对应记录 |
摘要、方法段与 RECORDS |
| 同一编号在不同场强是同一个人 | 各档独立编号,官方无对应表 | 头文件人口学字段互不一致 |
| 可以直接拿来做深度学习训练 | 23 人 43 条,规模远低于训练需求 | 官方规模描述 |
| 参考心电与舱内记录是同一时刻 | 不同时刻,依赖平稳性假设 | 官方背景段 |
FAQ
Q1:这个数据集里的 MHD 到底是什么?
磁流体动力学(magnetohydrodynamic)效应的缩写。血液中的电解质在强静磁场里流动,受洛伦兹力偏转,在血管壁两侧形成电位差,叠加到心电信号上。它不是成像序列,也不是设备型号,而是一种物理现象。
Q2:它有 MRI 图像吗?能拿来做影像与心电的配对吗?
没有。采集时扫描仪只提供静磁场,不开启梯度与射频,因此一张图像都没有。任何需要影像与生理信号配对的任务都不能用它。
Q3:为什么采集时要不扫描?这不是失真了吗?
恰恰相反,不扫描是为了去掉另外两种干扰。真实扫描中心电上叠着梯度感应电压与射频干扰,三者混在一起无法归因;关掉成像后只剩 MHD 一种,因果关系才干净。代价是它不能代表真实扫描场景。
Q4:到底有多少条记录,43 还是 53?
官方正文与摘要写 43 条,RECORDS 清单逐行列名为 53 行。两个数字都出自官方,差额构成官方未说明。做统计时建议注明所用口径,做方法研究时影响不大。
Q5:舱外参考心电能不能直接当干净信号做逐拍相减?
官方设计允许这种用法,前提是信号平稳。参考记录与舱内记录不同时刻,中间隔着摆位与设备切换,心率与呼吸相位都可能漂移。直接相减会把心动周期的差异误当成 MHD 幅度,建议先做心率对齐并估计残差。
Q6:采样率和精度是多少?两种记录仪有什么区别?
全库 1024 Hz。十二导记录用十二位 ADC、正负六毫伏量程、0.05 至 100 赫兹模拟带宽;三导记录用二十四位 ADC、正负二点四毫伏量程,模拟带宽官方未标注。后者的量化更细但量程更窄。
Q7:能训练心律失常分类模型吗?
不能。受试者全部是无已知心脏病的健康青年,注释只有 QRS 位置,不区分正常搏动与异位搏动,也没有节律与诊断标签。它支撑检测与分离,不支撑分类。
Q8:1T 的数据为什么只有一个人?
官方没有解释。从方法描述看,1T 那台是已停产的开放式扫描仪,B0 垂直,与其余水平场机器不同,采集机会本就有限。使用时应把 1T 当作个案,而不是一个可统计的档位。
Q9:文件名的规则是什么?
ECGMRI 前缀加场强加两位受试者序号加体位码。体位码有五种:Hf 头先入、Ff 脚先入、Pro 俯卧、Sup 仰卧、Out 舱外。个别记录末尾多一位分段数字。
Q10:可以直接把它当训练集喂给网络吗?
不建议。二十三个人、四十几条记录,参数量稍大的模型会在一两轮内记住全部样本。它可以做验证集、消融实验与失败案例分析,训练应当另找大规模数据。
Q11:数据里有没有病人?
没有。全部是自愿参与的健康志愿者,来自马格德堡大学的学生与雇员,头文件逐条写明无已知心脏病。这一点在官方使用说明里被明确列为局限。
术语表
| 术语 | 英文或缩写 | 含义 |
|---|---|---|
| 磁流体动力学效应 | MHD effect | 导电流体在磁场中运动产生电位差的现象 |
| 洛伦兹力 | Lorentz force | 运动电荷在磁场中受到的力 |
| 霍尔电压 | Hall voltage | 离子在管壁两侧堆积形成的电位差 |
| B0 | B0 field | 扫描仪的主静磁场 |
| 场强 | field strength | 静磁场的磁通密度,单位特斯拉 |
| 梯度场 | gradient field | 成像时用于空间编码的快速切换磁场 |
| 射频场 | RF field | 成像时用于激发的交变磁场 |
| 孔径 | bore | 扫描仪圆筒内部受试者所处的空间 |
| 头先入 | head first (Hf) | 受试者头部先进入孔径 |
| 脚先入 | feet first (Ff) | 受试者足部先进入孔径 |
| 俯卧 | prone (Pro) | 面朝下躺 |
| 仰卧 | supine (Sup) | 面朝上躺 |
| 舱外 | outside (Out) | 不在孔径内,作为参考记录 |
| 参考心电 | reference ECG | 无磁场条件下记录的对照心电 |
| 十二导 | 12-lead | 标准诊断级导联体系,含肢体导联与胸导联 |
| 简化爱因托芬三角 | reduced Einthoven triangle | 只保留 I、II、III 三导的简化体系 |
| QRS 波群 | QRS complex | 心室除极对应的波形,检测器的主要目标 |
| 注释 | annotation | 标记在采样点上的事件,本库只有 QRS |
| WFDB | Waveform Database | PhysioNet 的信号与注释存储格式 |
| 增益 | gain | 每个数字单位对应的物理量,本库单位为每毫伏 |
| 量程 | input range | ADC 可接受的最大输入电压范围 |
| 位宽 | resolution | ADC 的位数,决定量化台阶 |
| 逐拍相减 | beat-to-beat subtraction | 用参考记录减舱内记录的分离思路 |
| 门控 | gating | 用 QRS 触发成像采集时序的技术 |
| 循环平稳 | cyclostationary | 统计特性随时间周期性变化的过程 |
附录 A:核心数字核对表
| 项目 | 值 | 来源与来源层级 |
|---|---|---|
| 记录数(正文口径) | 43 | 项目页摘要与方法段,官方页面 |
| 记录数(清单口径) | 53 | RECORDS 逐行,官方文件 |
| 受试者数 | 23 | 项目页方法段,官方页面 |
| 总时长 | 203 分钟 | 项目页方法段,官方页面 |
| 场强档位 | 1T、3T、7T | 摘要与方法段,官方页面 |
| 采样率 | 1024 Hz | 数据描述段与头文件,官方页面 |
| 十二导位宽 | 12 位 | 头文件注释块,官方文件 |
| 三导位宽 | 24 位 | 头文件注释块,官方文件 |
| 十二导量程 | 正负 6 mV | 头文件注释块,官方文件 |
| 三导量程 | 正负 2.4 mV | 头文件注释块,官方文件 |
| 模拟带宽 | 0.05 至 100 Hz | 项目页方法段,官方页面 |
| 平均年龄 | 27.1 加减 3.2 岁 | 项目页方法段,官方页面 |
| 平均身高 | 181.7 加减 10.5 厘米 | 项目页方法段,官方页面 |
| 采集年份 | 2011 至 2017 | 项目页方法段与致谢,官方页面 |
| 未压缩体积 | 279.8 MB | 项目页文件区,官方页面 |
| 压缩包体积 | 265.3 MB | 项目页文件区,官方页面 |
| 许可 | ODC-BY 1.0 | 项目页许可区,官方页面 |
| 版本 | 1.0.0 | 项目页标题区,官方页面 |
附录 B:数字的来源分层
| 层级 | 定义与本篇用到的项 | 可信度 |
|---|---|---|
| 第一层 | 官方页面正文直接写明:人数、条数、时长、场强、采样率、许可 | 高,可直接引用 |
| 第二层 | 官方文件逐行统计可得:清单 53 行、舱外记录 10 条、各档位构成 | 中高,须注明清单口径 |
| 第三层 | 头文件原文读出:设备型号、量程、位宽、受试者人口学 | 高,仅覆盖已读记录 |
| 第四层 | 由头文件推算:单条时长、三导与十二导的比例 | 中,推算过程需披露 |
| 第五层 | 官方未说明:跨档位对应、性别构成、分段原因 | 低,只能标未核实 |
附录 C:完整参考文献
- Krug, J. W., & Rose, G.(2011). Magnetohydrodynamic distortions of the ECG in different MR scanner configurations. Computing in Cardiology, 769–772.
- Krug, J. W., Rose, G. H., Stucht, D., Clifford, G. D., & Oster, J.(2012). Filtering the magnetohydrodynamic effect from 12-lead ECG signals using independent component analysis. Computing in Cardiology, 589–592.
- Krug, J. W., Rose, G., Stucht, D., Clifford, G., & Oster, J.(2013). Limitations of VCG based gating methods in ultra high field cardiac MRI. Journal of Cardiovascular Magnetic Resonance, 15(1), 1–2.
- Krug, J. W., Rose, G., Clifford, G. D., & Oster, J.(2013). ECG-based gating in ultra high field cardiovascular magnetic resonance using an independent component analysis approach. Journal of Cardiovascular Magnetic Resonance, 15(1), 1–13.
- Schmidt, M., Krug, J. W., Gierstorfer, A., & Rose, G.(2014). A real-time QRS detector based on higher-order statistics for ECG gated cardiac MRI. Computing in Cardiology, 733–736.
- Krug, J. W.(2015). Improved cardiac gating and patient monitoring in high field magnetic resonance imaging by means of electrocardiogram signal processing(博士论文). Otto-von-Guericke University Magdeburg.
- Schmidt, M., Krug, J. W., & Rose, G.(2016). Real-time QRS detection using integrated variance for ECG gated cardiac MRI. Current Directions in Biomedical Engineering, 2(1), 255–258.
- Haritopoulos, M., Krug, J., Illanes, A., Friebe, M., & Nandi, A. K.(2017). Cyclostationary analysis of ECG signals acquired inside an ultra-high field MRI scanner. EUSIPCO, 1300–1304.
- Krug, J. W., Schmidt, M., Rose, G., & Friebe, M.(2017). A database of electrocardiogram signals acquired in different magnetic resonance imaging scanners. Computing in Cardiology, 1–4.
- Passand, J. K., & Rose, G.(2019). Progress of MRI-guided EP interventions is hampered by a lack of ECG-based patient monitoring. BIOSIGNALS, 201–208.
- Kinouchi, Y., Yamaguchi, H., & Tenforde, T. S.(1996). Theoretical analysis of magnetic field interactions with aortic blood flow. Bioelectromagnetics, 17(1), 21–32.
- Krug Passand, J. W.(2021). Influence of the MHD effect on 12-lead and 3-lead ECGs recorded in 1T to 7T MRI scanners(1.0.0 版). PhysioNet. DOI: 10.13026/05td-jn37.
附录 D:任务代码
下面这段代码把「按场强统计记录数」与「按体位统计」两件事一次做完,用于核对正文里的分布表。
import re
from collections import Counter
from pathlib import Path
base = "https://physionet.org/files/mhd-effect-ecg-mri/1.0.0"
raw = Path("/data/mhd/RECORDS").read_text().split()
pat = re.compile(r"^ECGMRI(\d)T(\d{2})(Hf|Ff|Pro|Sup|Out)(\d?)$")
by_field, by_pos, out_names = Counter(), Counter(), []
for name in raw:
m = pat.match(name)
if not m:
continue
field, subj, pos, seg = m.groups()
by_field[field] += 1
by_pos[pos] += 1
if pos == "Out":
out_names.append(name)
print("total", sum(by_field.values()))
print("by field", dict(sorted(by_field.items())))
print("by position", dict(by_pos.most_common()))
print("outside refs", len(out_names), out_names[:3])
subjects = {(f, s) for f, s, _, _ in
(pat.match(n).groups() for n in raw if pat.match(n))}
print("subject-field slots", len(subjects))
输出的四个数字可以直接与 §2.4 的两张表对照。若 total 与官方正文的四十三对不上,不要急着认定代码有错,先确认清单本身就是五十三行——这正是两口径的来源。
附录 E:如果只记五件事
- MHD 指磁流体动力学效应,是血流在静磁场里产生的霍尔电压叠加到心电上,不是成像序列。
- 采集时扫描仪不成像,只有静磁场,全库没有任何 MRI 图像;这个取舍换来了干净的物理归因。
- 二十三名健康青年、三档场强、五种体位、两种导联体系,全库 1024 Hz,QRS 手工标注。
- 官方正文写四十三条、清单列五十三行,舱外参考记录十条,两处不一致都要注明口径。
- 它是标尺不是样本:适合验证分离与检测方法,不适合训练分类模型,也不代表真实扫描场景。
编辑说明
核对于 2026 年 10 月 28 日完成。核对方式是直接访问 PhysioNet 项目页与版本目录,取回 README、RECORDS、ANNOTATORS 与五条记录的头文件全文,逐行读取后交叉比对。未下载数据体做逐条统计,单条时长由头文件声明的采样点数除以采样率推算,比例结构由清单逐行归类得出。论文部分只引用官方页面列出的题录,未取会议论文全文,因此论文与数据之间的对应关系仅依据官方致谢与参考文献列表。未覆盖的内容包括:跨档位受试者的同一人对应、性别构成汇总、3T09Ff 拆成三段的原因、官方所称后续版本的计划。这些均标为未说明。两处官方内部不一致——四十三条对五十三行、多数受试者有参考记录对十条舱外记录——按并列口径呈现,不作孰对孰错的判断。
相关数据集导航
以下为站内 AI-Ready 数据集百科中与本词条共享多个主题标签的相关数据集,按相关度降序排列:
- wctecgdb — 共享标签:生理信号 / 心电信号 / 心血管疾病
- ahadb — 共享标签:生理信号 / 心电信号 / 心血管疾病
- chfdb — 共享标签:生理信号 / 心电信号 / 心血管疾病
- crisdb — 共享标签:生理信号 / 心电信号 / 心血管疾病
- cudb — 共享标签:生理信号 / 心电信号 / 心血管疾病
- ltdb — 共享标签:生理信号 / 心电信号 / 心血管疾病
- ltstdb — 共享标签:生理信号 / 心电信号 / 心血管疾病
- iafdb — 共享标签:生理信号 / 心电信号 / 心血管疾病
- mvtdb — 共享标签:生理信号 / 心电信号 / 心血管疾病
- nsrdb — 共享标签:生理信号 / 心电信号 / 心血管疾病
导航说明:本章节由全站统一标签体系自动计算生成(标签重合度算法),双向可达;点击链接可跳转至对应数据集词条。

