信息速览
ARGO 是 PhysioNet 上的一份心脏电生理数据集,全名是「缺血后室性心动过速电图标注数据集」。它解决的是一个相当窄、但在临床上很具体的问题:在缺血性心肌病患者的室速射频消融术中,医生要在左室心肌上找出那些「异常心室电位」所在的点,再把这些点烧掉。这件事过去靠术者肉眼在高密度标测图上逐点翻看,慢且主观,而公开可用的带标注数据几乎没有。
这份数据填补的正是这一小块空白。9 例患者,近两千个标测点,每个点带 2.5 秒的双极电图、两路单极电图和 12 导联体表心电,外加左室的三维几何与电压图。三位电生理专家独立盲标,再合成一份共识。2026 年 7 月它才作为 v1.0.0 公开发布,是目前公开渠道里唯一一份专门针对这项任务、且带边界勾画的标注集。
它的规模很小,小到不足以支撑任何「通用模型」的说法。但正是这个小,让它的每一处结构选择都值得细看:为什么每段只有 2.5 秒,为什么只留最后一个心搏,为什么非异常片段要用一个越界样本号占位。一屏速览见下表。
| 维度 | 内容 |
|---|---|
| 中文名 | 缺血后室速心内电图标注数据集 |
| 英文全名 | Annotated dataset of post-ischemic ventricular tachycardia electrograms |
| 缩写来源 | Ablation Reinforcement by computer-aided Guidance and Optimization |
| 发布平台 | PhysioNet,v1.0.0,2026-07-15 |
| DOI | 10.13026/8gh2-e660(v1.0.0);10.13026/afxd-9424(最新版) |
| 数据描述论文 | PLOS ONE 21(6): e0350993,2026 |
| 样本量 | 9 例患者,1,962 个标测点 |
| 共识类别分布 | 生理 776,异常电位 940,未知 246 |
| 每个标测点的通道 | 1 路双极 + 2 路单极 + 12 导联体表心电,共 15 路 |
| 采样与时长 | 1 kHz,每段 两千五百个样本即 2.5 秒 |
| 标注者 | 3 位电生理专家独立盲标 + 1 份共识 |
| 空间数据 | 左室三角网格、连通表、电压与局部激动时间着色、消融点坐标 |
| 格式 | WFDB 记录 + 纯文本表 + MATLAB 结构体副本 |
| 体积 | 未压缩 378.4 MB,ZIP 约 182.9 MB |
| 采集设备 | CARTO 3 V6 标测系统,PentaRay 与 ThermoCool SmartTouch 导管 |
| 许可 | CC BY-NC-SA 4.0 |
| 采集地点与时间 | 意大利 Nuoro,San Francesco 医院,2017–2018 |
§1 它要解决的具体麻烦
1.1 一张高密度标测图上,人眼要逐点判读几百次
室速的射频消融不是「找到病灶烧掉」这么简单。缺血性心肌病留下的瘢痕里混着存活的肌束,电信号在那里绕行,形成折返。术者能做的,是在左室内膜上铺满几百个标测点,逐点看双极电图:正常心肌给出幅度高、形态规整的电位;瘢痕里那束迟到的、低电压、高频碎裂的电位,就是所谓的异常心室电位(abnormal ventricular potential,AVP)。
这些点标出来之后,术者把它们连成一片「基质区」,在区内布消融线。识别得准不准,直接决定手术时间和复发率。这个过程在每一例手术里要重复几百次,标测点从几十到上千不等,全部靠人眼,判读标准又落在几位术者的经验里。
自动化的想法早就有了。页面上引用的一串前期工作从 2019 年一路排到 2025 年,都是这个团队自己做的:先做频谱特征,再做可解释深度学习,再做孪生网络。问题在于,这些方法各自只在自己的私有数据上验证过,谁也说不清一个方法比另一个好多少,因为没有共同的考卷。
ARGO 就是这份考卷。它把「逐点判读」这个动作固定成一个可复现的任务:给一段 15 通道、2.5 秒的信号,输出这个点是生理、异常还是未知;如果是异常,再给出异常电位的起止样本点。
1.2 三条常见的错误期待
期待一:这是一份室速诊断数据集。 它不是。它不含诊断结论,病人全部是已经确诊、正在接受消融的缺血后室速患者,标签是「这一小块心肌上的电图有没有异常电位」,不是「这个人有没有室速」。拿它训练诊断模型,相当于拿病理切片去训练一个判断病人是否患病的模型,层级错位。
期待二:这是一份大体量数据,够训练深度网络。 近两千条听起来不少,但只有 9 个人。按患者划分做留一验证,每一折只有 8 个人的信息可用。在这种量级上,一个上百层的网络和一组手工特征之间,胜负往往由随机种子决定,而不是由方法本身决定。数据描述论文本身也把「小队列影响泛化」写进了局限。
期待三:既然有三位专家标注,标签就是金标准。 三位专家互相独立、互不知情,确实压低了系统性偏差,但他们的分歧本身也是信息。共识是多数意见的收束,不是客观真值。论文给了标注者间一致性的估计,也给了边界位置的容差,这些数字应该被当成评价模型时的噪声地板,而不是被忽略的脚注。
1.3 它能给到的与给不到的
| 你的需求 | 它给的 | 够不够 |
|---|---|---|
| 一个可复现的异常心室电位分类基准 | 共识标签加三名专家各自的标签,类别三选一 | 够,且这是它最核心的用途 |
| 训练边界检测或时序分割模型 | 每个异常电位给起止样本点,理由与容差在论文里 | 够,但样本只有几百例正类 |
| 研究标注者分歧 | 三个互相独立的标注文件全量开放 | 够,这在公开数据里极少见 |
| 把电图和三维位置对应起来 | 每个标测点在左室网格上的坐标,加消融点坐标 | 够,能直接做空间建模 |
| 判断某个算法能否进手术室 | 只有 9 例、单一中心、单一设备 | 不够,只能当作初步证据 |
| 做室速诊断或风险预测 | 无诊断标签、无随访、无用药 | 给不了 |
| 做跨厂商标测系统的泛化实验 | 全部来自同一台设备 | 给不了 |
| 研究非缺血性心肌病室速 | 队列全部为缺血性病因 | 给不了 |
1.4 你的处境与它能帮到的事
| 你的处境 | 它能帮你什么 | 下一步该做什么 |
|---|---|---|
| 手上有一个电图分类算法,但没有可比的公开数据 | 提供一份带专家共识的固定考卷,结果可以与论文里的基线对照 | 先按其患者划分方式跑一遍留一验证,再看类别不平衡的影响 |
| 想复现论文里那个「电压低于某个阈值」的经典规则基线 | 电压图与消融点都被保留,可以重建规则并复现对照 | 注意规则阈值需要自己从训练折里估,不要用全量数据调 |
| 在做电生理方向的多模态融合,想找一个电图加三维几何的小样本场景 | 提供电图、坐标、网格、消融点四类信息,且天然同步 | 网格顶点数在几百到几千之间,图网络建图的边权要按测地距离而非欧氏距离 |
| 想研究标注一致性,做半监督或主动学习 | 三个人各自的标注可以直接当作分歧样本,无需自己重标 | 重点关注三人不一致但共识落在某一类的点,那里信息量最高 |
| 正在写一篇小样本心电方法的论文,需要一个外部验证集 | 可以作为域外测试,尤其在模型训练于体表心电时 | 报告中必须说明它的病因和设备都与训练集不同,不能宣称通用 |
| 想直接开发商用软件 | 许可禁止商业使用 | 另行取得授权,或改用其他授权更宽的数据 |
| 只想要一份干净的长时程心电数据做教学演示 | 每段 2.5 秒,且只建议用最后一个心搏 | 这不是合适的数据,应改用标准的 12 导联心电库 |
1.5 一句话判断
如果你做的是缺血后室速消融术中「单点心内电图是否异常」这一件事,它是目前唯一一份公开、带边界、带三人独立标注的考卷;如果你的问题比这件事宽一寸,它大概率帮不上忙。
1.6 不适合谁:四条边界
第一,不适合要把模型直接做成产品的团队。 非商业许可把这条路堵死了。即便许可宽松,9 例数据也不足以支撑任何器械申报里的性能声明。
第二,不适合做心律失常诊断或筛查的研究。 数据里没有任何诊断标签、没有随访、没有结局。队列本身就是「已确诊且已进导管室」的极端筛选人群,用它做筛查模型会得到严重虚高的表现。
第三,不适合把标测点当作独立样本的人。 同一患者相邻标测点在空间上相隔几毫米,信号高度相关。随机划分训练测试会让测试集事实上泄漏。这一点在 §7.3 会展开,也会在 §4.4 的案例里以一条具体记录再演一遍。
第四,不适合研究非缺血性病因。 队列全部是缺血后室速。把结论迁移到扩张型心肌病或特发性室速上,没有任何数据支撑。
§2 数据构成与规格
2.1 两级目录:患者下挂标测点
数据包的顶层很干净:一份记录清单、一份标注者说明、一份受试者补充表、一份自述文件,以及一个装着全部数据的主目录。主目录下按患者分九个文件夹,从 Pt1 到 Pt9;每个患者文件夹里同时躺着两类东西,一类是逐个标测点的电图与标注,另一类是这一位患者独一份的左室几何文本。
这种布局意味着一个选择:空间信息挂在患者层级,不挂在标测点层级。要拿到某个标测点在心壁上的位置,必须去读同一患者目录下的点坐标表,按记录编号对齐。这不是缺点,因为同一位患者只有一个左室,几何本来就该是共享的。
每个标测点固定产生六个文件:一个二进制信号文件、一个头文件、四个注释文件。四个注释文件分别对应三位专家与一份共识。命名规则统一为记录编号加点加后缀,例如 Pt1 目录下编号为 71 的点,文件是 P71.dat、P71.hea 与四份注释。
记录清单是一行一个完整相对路径,行数与标测点总数一致,与页面所述的标测点总数完全对得上。这也是判断数据完整性的第一个锚点:下载后数一数清单行数与实际文件组数是否一致。
| 顶层成员 | 内容 | 层级 |
|---|---|---|
| RECORDS | 全部记录路径清单,一行一条 | 数据集级 |
| ANNOTATORS | 四个注释后缀与对应标注者的对照 | 数据集级 |
| Additional_subject_data.csv | 九位受试者的编码、性别、年龄、射血分数、标测点数 | 数据集级 |
| README.txt | 目录结构、字段说明、类别分布、引用要求 | 数据集级 |
| LICENSE.txt | 许可说明 | 数据集级 |
| SHA256SUMS.txt | 全部文件校验和 | 数据集级 |
| ARGODataset_Folder/Pt1–Pt9 | 每位患者一个文件夹 | 患者级 |
| …/PtN/Pxxxx.dat 与 .hea | 信号与头文件 | 标测点级 |
| …/PtN/Pxxxx.annotation_* | 四份注释 | 标测点级 |
| …/PtN/五个 .txt | 左室几何与消融信息 | 患者级 |
| …/MATLAB_files | 整包结构体与两个可视化脚本 | 数据集级 |
2.2 字段与文件的完整字典
下表把每个文件的存在理由、内部结构与读法一次说清。左侧文件按出现频率从高到低排列,前七个是每个标测点都有的,后五个是每位患者独一份的。
| 文件 | 每个患者几个 | 内部结构 | 关键字段 | 读写方式 |
|---|---|---|---|---|
| Pxxxx.dat | 每点一个 | 16 位整数二进制,2500 行 × 15 列按列优先存放 | 15 路信号 | WFDB 的 rdsamp 或 numpy 直接解析 |
| Pxxxx.hea | 每点一个 | 首行四字段,后每通道一行 | 记录名、通道数、采样率、样本数、增益、基线、单位、通道名 | 纯文本,可直接读 |
| Pxxxx.annotation_ann1 | 每点一个 | WFDB 注释二进制 | P / A / U、左括号、右括号、引号 | WFDB 的 rdann |
| Pxxxx.annotation_ann2 | 每点一个 | 同上 | 同上 | 同上 |
| Pxxxx.annotation_ann3 | 每点一个 | 同上 | 同上 | 同上 |
| Pxxxx.annotation_consensus | 每点一个 | 同上 | 同上,作为推荐标签 | 同上 |
| Additional_subject_data.csv | 全数据集一份 | 分号分隔九行 | 受试者编码、性别、年龄、射血分数、标测点数 | pandas 指定分隔符 |
| XYZmesh.txt | 每患者一份 | 带表头三列 | X、Y、Z 顶点坐标 | pandas 或 numpy |
| ConnectivityList.txt | 每患者一份 | 顶点索引对 | 三角网格的边 | numpy,注意从零还是从一开始 |
| MESHcoloring.txt | 每患者一份 | 带表头两列,逐顶点 | 电压、局部激动时间 | numpy,注意 NaN |
| POS_POINTS.txt | 每患者一份 | 带表头四列 | 标测点编号、X、Y、Z | 按编号与记录对齐 |
| AblationPoints.txt | 每患者一份 | 带表头三列 | 消融点坐标 | numpy |
上表里有两处细节值得先记住。头文件首行给出的是通道数与采样率,但单通道的增益与基线写在后续各行,读的时候不要只解析首行;着色表里会出现 NaN,那是网格上未被标测覆盖的顶点,不是坏值,做可视化时要单独遮罩。
2.3 一条记录的完整解剖
取 Pt1 目录下编号 71 的标测点。它的头文件一共 16 行:第一行声明记录名、15 个通道、1,000 Hz 采样、两千五百个样本;接下来 15 行各描述一路信号,每行的末尾是通道名。三路心内通道的命名带导管电极位号,从 20A 系列的电极对到单一的尖端与环端。
P71 15 1000 2500
P71.dat 32 333.3333(0)/mV 0 0 4 370 0 20A_1-2
P71.dat 32 333.3333(0)/mV 0 0 -349 -20162 0 20A_1
P71.dat 32 333.3333(0)/mV 0 0 -289 -16589 0 20A_2
P71.dat 32 333.3333(0)/mV 0 0 12 739 0 I
P71.dat 32 333.3333(0)/mV 0 0 41 3131 0 II
P71.dat 32 333.3333(0)/mV 0 0 29 2094 0 III
P71.dat 32 333.3333(0)/mV 0 0 -8 -452 0 aVL
P71.dat 32 333.3333(0)/mV 0 0 -26 -1915 0 aVR
P71.dat 32 333.3333(0)/mV 0 0 34 2653 0 aVF
P71.dat 32 333.3333(0)/mV 0 0 -37 -2817 0 V1
P71.dat 32 333.3333(0)/mV 0 0 -56 -7579 0 V2
P71.dat 32 333.3333(0)/mV 0 0 -31 -6800 0 V3
P71.dat 32 333.3333(0)/mV 0 0 87 7160 0 V4
P71.dat 32 333.3333(0)/mV 0 0 57 4929 0 V5
P71.dat 32 333.3333(0)/mV 0 0 36 3133 0 V6
每一行第 2 字段的 32 是每样本位数,其后是增益与单位。第三位小数那串增益的倒数就是分辨力,官方页面另给了换算系数 0.003 mV/a.u.,两者一致。第 4、5 字段是基线偏移与初始值,第 6 字段是校验和,最后才是通道名。
这个点对应的注释只有一行,符号是引号,位置是 9998。含义是该点被共识判为非异常电位,边界无从标注,因此写入一个落在有效样本范围之外的占位索引。用 WFDB 读出来,你会看到样本号与符号两个平行数组,长度都是一。
同一位患者里另一个编号为 457 的点则是正例,注释读出两个符号:一个左括号落在 2015,一个右括号落在 2104。也就是说,那段异常电位从第 2015 个样本开始、到第 2104 个样本结束,持续 89 个样本,即 89 毫秒。在 2.5 秒的窗口里,这是一段相当靠后的活动,正好落在最后一个心搏的舒张末期附近。
把这三层关系串起来:头文件声明窗口与通道,信号文件给出 15 路波形,注释文件给出类别与一段边界。一个标测点的全部信息就是这三样,外加患者层级的坐标把这一点钉到心壁上。
2.4 九个患者的分布
受试者补充表只有九行,字段是编码、性别、年龄、射血分数和标测点数。把它和每位患者的标测点数放在一起看,样本量的极不均匀一目了然。
| 患者 | 性别 | 年龄 | 射血分数 | 标测点数 | 占全库比例 |
|---|---|---|---|---|---|
| Pt1 | 男 | 68 | 32 | 157 | 8.0% |
| Pt2 | 女 | 68 | 30 | 104 | 5.3% |
| Pt3 | 男 | 83 | 42 | 90 | 4.6% |
| Pt4 | 男 | 50 | 30 | 471 | 24.0% |
| Pt5 | 男 | 78 | 27 | 46 | 2.3% |
| Pt6 | 男 | 61 | 31 | 839 | 42.8% |
| Pt7 | 男 | 60 | 21 | 76 | 3.9% |
| Pt8 | 女 | 57 | 28 | 129 | 6.6% |
| Pt9 | 男 | 69 | 24 | 50 | 2.5% |
有意思的是 Pt6 一个患者贡献了全库四成以上的标测点,而 Pt5 只有 46 点。这意味着如果按标测点随机划分,模型只要学乖了记住 Pt6 的局部波形风格,就能拿到不错的数字。这是本数据集最需要警惕的结构性陷阱,§7.3 会把它讲透,§4.4 的案例则说明单条记录如何被这个陷阱放大。
射血分数全部偏低,最低 21%,最高 42%,中位数在 30% 上下。这与缺血性心肌病合并室速的人群特征一致:这些患者的心功能已经受损,属于消融适应证明确的那一端。年龄跨度从 50 到 83,性别是七男两女,样本量小到无法做任何分层分析。
2.5 与同类公开资源的字段差异
把 ARGO 放到心电图领域的公开数据家族里,它能比较的对象其实很少。下表挑了几份常被放在一起讨论的资源,只比较与本任务相关的字段。
| 资源 | 记录对象 | 含心内电图 | 含异常电位标注 | 含三维位置 | 含消融点 | 公开免费 |
|---|---|---|---|---|---|---|
| ARGO | 缺血后室速术中基质标测点 | 是,双极加两路单极 | 是,三类加边界 | 是,左室网格 | 是 | 是 |
| 心内房颤数据库 | 房颤与房扑患者心内记录 | 是 | 否,只标 QRS 复合波 | 否 | 否 | 是 |
| 儿科消融心内房信号库 | 儿童导管消融中的心房信号 | 是 | 否,标心房活动起止 | 否 | 否 | 视渠道 |
| 体表加心内同步数据库 | 多种心律失常 | 是 | 部分,来自商业渠道 | 否 | 否 | 否 |
| 标准 12 导联心电库 | 体表心电 | 否 | 否 | 否 | 否 | 是 |
差异集中在两处。一是三维位置与消融点,公开的电生理数据极少保留这些,因为它们绑定在厂商的标测系统里,导出需要额外工序;ARGO 把它们导成了纯文本,代价是丢了系统内的全部元信息。二是「异常电位」这个标签本身,它不是一个通行的心电学类别,而是室速基质标测这个特定场景下的操作性定义,别的数据库不会标。
也正因如此,ARGO 不能和体表心电图库混在一个排行榜上比。它们测的不是同一件事。
§3 它的身份:一份术中数据,不是一份诊断数据
3.1 采集场景决定了数据的全部形态
ARGO 的每一条记录都诞生在导管室里。患者躺在手术台上,术者从股动脉送入一根多电极标测导管,导管头贴住左室心内膜的某一点,停留几个心动周期,系统记下这一点的电图。然后导管移到下一点,重复。几百次之后,一个患者的数据就攒齐了。
这个场景解释了好几件看起来奇怪的事。为什么每段只有 2.5 秒?因为标测导管在一位点上停留的时间本来就不长,术者要的是这一点的局部电活动,不是长时程监测。为什么每段只有最后一个心搏可靠?因为导管在接触心壁的瞬间会有一个稳定过程,前面一两个心搏往往带着接触不良或伪差。
为什么全部是窦律?因为基质标测阶段要在窦性心律下看晚电位,室速发作时才做拖带与激动标测。这份数据记录的是前者。这也是为什么「异常心室电位」在窦律下就能被识别:它表现为正常 QRS 之后的迟到碎裂电位,与心律是否为室速无关。
把这些放一起,ARGO 的定位就清楚了:它是一份在特定手术步骤中、用特定设备、按特定节律采集的空间稀疏信号样本,附带人类专家对其中一小段波形的主观判读。
3.2 缩写 ARGO 的来历
ARGO 在这里不是通用词,而是项目名。页面写明它来自 Ablation Reinforcement by computer-aided Guidance and Optimization 研究,直译是「计算机辅助引导与优化的消融强化」。这个项目名与数据集名的首字母一致,但从名称本身看不出「缺血后室速」这层含义,这也是外行检索时最容易被带偏的地方。
检索层面的混淆有三路。第一路是国际 Argo 计划,那是一个由三千多个自动浮标本组成的全球海洋温盐深观测网,属于海洋学。第二路上是各类叫 Argo 的临床试验管理平台。第三路是基因组注释工具 ARGO。三者在中文语境里都可能被简称为 argo,且都不带医学数据集属性。
判别方法很简单:看域名与 DOI。本文讨论的这一份,入口在 PhysioNet,数字对象标识符前缀是 10.13026,属于 PhysioNet 的数据 DOI 体系。凡是不在这套体系里的 argo,都不是本文的对象。
3.3 许可与准入
PhysioNet 页面把访问政策写成「任何人只要遵守许可条款即可访问全部文件」,许可为知识共享署名-非商业性使用-相同方式共享 4.0 国际版。这个组合有几个实际后果。
| 条款 | 含义 | 对你的影响 |
|---|---|---|
| 署名 | 使用需注明作者与来源 | 论文、报告、演示都要按页面给的引用格式引 |
| 非商业 | 不得用于商业目的 | 内部研发若最终导向产品,需另行授权 |
| 相同方式共享 | 衍生作品须以同许可分发 | 你在其上调过权重的模型权重是否算衍生作品,需自行评估 |
| 无附加限制 | 不得追加法律或技术限制 | 不能再给下游加一道自己的许可 |
最后一条常被忽略:你不能把 ARGO 打包进一个「仅限注册用户下载」的私有数据集中转手,那构成附加限制。若要在团队内部流转,直接让大家从 PhysioNet 拉取更稳妥。
同时,PhysioNet 本身有访问与使用的基本规约,数据描述论文也明确写了「仅用于计算方法的开发与验证,不应据此得出任何临床结论」。这句话不是客套,它是对使用边界的正式声明。
3.4 与库内其他电生理资源的身份差别
把 ARGO 放进千方医数集的生理信号类目,它与其余条目最根本的不同在于空间性。绝大多数公开心电数据是单点或少量电极的时间序列,空间信息要么没有,要么只有导联名称这种粗粒度标签。ARGO 给每个标测点一个三维坐标,还给了一整张左室网格,信号因此变成了「网格上的一个采样点」。
这带来两条使用路径的分叉。一条是纯信号路径:把 15 通道波形当作一条记录,做分类与边界检测,坐标完全不用。另一条是空间路径:把每个标测点当作图上的一个节点,用导管在网格上走过的测地距离连边,做节点分类。两条路径在论文里都被走过,前者对应梯度提升与常规描述子,后者对应图卷积网络。
两条路径的评估方式不同,结论也可能不同。选哪条,取决于问题本身是否依赖空间连续性。若只是判「这一点是不是异常」,信号路径够用;若要判「这个区域是不是要烧」,空间路径才有意义。
§4 它的质量:三人独立标注这件事值多少
4.1 标注流程的三个关键设计
页面把标注流程写得很清楚,其中三个设计是这份数据区别于普通标注集的地方。
盲标。 每位专家在标注时不知道信号来自哪位患者。这一点很关键:如果知道是同一患者,专家会倾向于让相邻点的判断保持一致,从而压低分歧,但代价是把空间先验混进了本应独立的主观判断。
互相独立。 三位专家分别在专用界面上标注,看不到彼此的标签。这使得三个注释文件之间的差异可以被当作真实的分歧来研究。
共识收束。 在三人独立标完之后,再形成一份共识。页面说明共识是为了提高整体标注的稳健性与可靠性。共识不出现在标注界面里,它是事后合成的。
这套设计在公开数据里相当少见。大多数带标注的医学数据只发布一份标签,你无法知道那份标签背后有多少不确定性。ARGO 把不确定性本身当作数据发了出去。
4.2 三个类别与两个符号
标注的词汇表极小:三个字母加两个括号符号。
| 符号 | 含义 | 出现位置 | 何时出现 |
|---|---|---|---|
| P | 生理电位 | 注释文件 | 该点被判定为正常心肌电活动 |
| A | 异常心室电位 | 注释文件 | 该点被判定为瘢痕内的异常电活动 |
| U | 未知 | 注释文件 | 判定不了,常见于信号质量差或形态模糊 |
| ( | 异常电位起点 | 紧随 A 之后 | 仅当该点被标为 A |
| ) | 异常电位终点 | 紧随 ( 之后 | 仅当该点被标为 A |
| " | 占位符 | 位于 9998 样本 | 该点非 A,边界无从标注 |
这里的「未知」类不是可有可无的垃圾桶。共识分布里它占了约八分之一,这个比例本身说明专家在相当一部分点上无法达成有把握的判断。建模时如何处理「未知」,是一个需要明确表态的设计决定:丢掉会让训练集偏向清晰样本,保留会让类别三分类,把它当作额外的负类又会让模型学到「模糊即正常」的错误关联。
4.3 共识与分歧:从三个文件读出的信息
对同一个标测点,四个注释文件给出了四个视角。最常用的读法是只看共识,但那等于放弃了数据集最有价值的部分。
一个实用的读法是构造一张分歧矩阵:对每个点,看三位专家的类别是否一致。一致的点是「容易的」,不一致的点是「困难的」。然后把模型的预测准确率分别算在这两组上。如果模型在一致组上很高、在分歧组上明显掉下来,说明它学到的只是简单的形态特征;如果两组接近,说明它捕捉到了某种与专家判断一致的结构。
这一做法不需要任何额外标注,只依赖已经开放的四个文件。§4.4 的案例会具体走一遍这条分歧拆解。
4.4 案例:Pt1 目录下编号 457 的那一段异常电位
这是全篇反复引用的那个例子:Pt1 目录里编号 457 的标测点。选它的理由不是它特别,而是它足够普通:一位患者、一段 2.5 秒的窗口、一次被共识认定为异常的电活动。
先看信号。这个点有 15 路通道:一路双极电图、两路单极电图和 12 导联体表心电。双极电图由相邻两个电极之间的电位差构成,局部性强,能反映导管尖端正下方几毫米范围内的心肌状态;单极电图由单个电极对远端参考构成,视野更宽,能看到更远处传来的激动。两者同时存在,正好互补。
再看标注。共识文件里两个符号,左括号在样本 2015,右括号在样本 2104。在 1 kHz 采样下,这两个数就是毫秒数,所以这段异常电位持续 89 毫秒,位于窗口的靠后位置。窗口共 两千五百个样本,也就是 2.5 秒,按心率六七十次估算,窗口里大约有两到三个心搏,官方只认最后一个可靠,那么这段异常正好落在被认可的那个心搏里。
接着看空间。这个点的坐标记录在同一患者目录的点坐标表里,按编号 457 对齐。同一患者目录下还有消融点坐标。把两者放在一起,就能算出这一点离最近的实际消融位置有多远。
最后把三层叠起来看。信号层告诉你「这里有一段迟到碎裂的电位」,标注层告诉你「三位专家里至少多数认为它是异常」,空间层告诉你「术者在附近烧了」或「没烧」。这三者一致的点,是最干净的正例;三者不一致的点,才是最值得研究的地方。
§1.3 的表格曾提到它能给「可复现的基准」,§4.4 的案例正好说明基准长什么样:不是一段被切出来的波形加一个标签,而是波形、边界、坐标、消融事实四件套齐全。这也解释了为什么这份数据虽然只有九个人,却仍有不可替代性——四件套齐全的公开数据,在电生理领域几乎是空白。
4.5 质量的两个内在张力
第一重张力在「窗口短」与「信息全」之间。2.5 秒足够看清一个心搏的完整形态,但不足以看清心率变异性、不足以看室早后的代偿间歇、也不足以做任何节律层面的分析。这是为空间覆盖付出的代价:要在一位患者身上铺几百个点,每点就不能太长。
第二重张力在「同质」与「泛化」之间。所有数据来自同一台设备、同一种导管、同一家医院、同两位术者主导的手术。同质让信号处理链条一致,减少了混杂;但也让任何「跨平台」的结论都无从谈起。官方在局限里自己写了这一点,措辞是「保证了同质性,但限制了跨标测平台的变异性」。
§5 怎么把它跑起来
5.1 三种取数方式与体积预估
数据有三种拿法,选哪种取决于你要做的是全量分析还是先探路。
| 方式 | 命令要点 | 适用 | 体积 |
|---|---|---|---|
| 页面直接下 ZIP | 浏览器点下载 | 一次性拿全量 | 约 182.9 MB 压缩,解压后 378.4 MB |
| wget 镜像整站 | 递归、断点续传、不追父目录 | 服务器端、可续传 | 同上 |
| AWS 匿名同步 | 命令行同步公开存储桶 | 云上批处理 | 同上 |
| PhysioNet 直读单条 | 用 wfdb 库按物理路径读 | 调试与大文件不落地 | 单条约 150 KB 信号 |
云端同步的桶名是 PhysioNet 的开放数据桶,前缀指向这份数据集,无需任何凭证。
5.2 用 wfdb 读一条记录
下面这段是通行的读法。先读信号,再读共识注释,然后把符号映射回类别。注意注释名是去掉点号后缀的那一截,且注释文件与信号文件在同一个目录。
#-- 记录与注释的读取
import wfdb
import numpy as np
base = "ARGODataset_Folder/Pt1"
rec = wfdb.rdrecord(f"{base}/P457")
print(rec.p_signal.shape, rec.fs) #-- 期望 (2500, 15) 与 1000
ann = wfdb.rdann(f"{base}/P457", "annotation_consensus")
pairs = list(zip(ann.sample.tolist(), ann.symbol))
print(pairs) #-- 正例形如 [(2015, "("), (2104, ")")]
bipolar = rec.p_signal[:, 0]
onset = [s for s, sym in pairs if sym == "("]
offset = [s for s, sym in pairs if sym == ")"]
if onset and offset:
seg = bipolar[onset[0]:offset[0]]
print("异常电位时长(样本)", len(seg), "峰值幅度", np.max(np.abs(seg)))
如果读到的是一串只有一个引号符号,那说明这个点不是异常电位,不要当成解析失败。
5.3 把四个注释文件并成一张标签表
单看共识会丢掉分歧信息。下面这段把四位标注者的类别取出来,拼成一行五列:记录号、三人标签、共识标签、是否一致。
#-- 三位专家与共识并表
import glob
import os
import wfdb
import pandas as pd
rows = []
for path in sorted(glob.glob("ARGODataset_Folder/Pt*/*.hea")):
rec_base = path[:-4]
labels = {}
detail = {}
for tag in ["ann1", "ann2", "ann3", "consensus"]:
a = wfdb.rdann(rec_base, f"annotation_{tag}")
cls = [s for s in a.symbol if s in ("P", "A", "U")]
labels[tag] = cls[0] if cls else None
detail[tag] = [(int(s), y) for s, y in zip(a.sample, a.symbol)]
rows.append({
"record": os.path.relpath(rec_base, "ARGODataset_Folder"),
"ann1": labels["ann1"],
"ann2": labels["ann2"],
"ann3": labels["ann3"],
"consensus": labels["consensus"],
})
df = pd.DataFrame(rows)
df["unanimous"] = (df["ann1"] == df["ann2"]) & (df["ann2"] == df["ann3"])
print(len(df), "条记录;三人一致", int(df["unanimous"].sum()))
print(df.groupby(["consensus", "unanimous"]).size())
这段会依次打开一千九百多个文件对,本身不慢,但注意 wfdb 会为每条记录读一次信号头,若只要标签,可以跳过信号只读注释。
5.4 读左室网格与坐标
空间信息以纯文本存放,读起来比 WFDB 更容易,唯一的坑是顶点索引的基数和着色表里的空值。
#-- 左室网格与标测点坐标
import numpy as np
import pandas as pd
pt = "ARGODataset_Folder/Pt1"
mesh = pd.read_csv(f"{pt}/XYZmesh.txt")
conn = pd.read_csv(f"{pt}/ConnectivityList.txt", header=None)
color = pd.read_csv(f"{pt}/MESHcoloring.txt")
pos = pd.read_csv(f"{pt}/POS_POINTS.txt")
abl = pd.read_csv(f"{pt}/AblationPoints.txt")
print("顶点", len(mesh), "三角形', conn.shape, '标测点", len(pos), "消融点", len(abl))
print("电压缺失顶点", int(color["Voltage"].isna().sum()))
print("标测点编号样例", pos["Point"].head(3).tolist())
顶点数与连通表的行数关系要自己核,因为连通表的索引可能是从零也可能从一开始;未标测覆盖的顶点着色为 NaN,画图时要先遮罩再插值。
5.5 判断一点离消融点多远
这是把空间层用起来的第一步,也是最直接的基线特征:术者实际烧掉的点,和专家认定的异常点,重合度有多高。
#-- 每个标测点到最近消融点的距离
import numpy as np
import pandas as pd
pt = "ARGODataset_Folder/Pt1"
pos = pd.read_csv(f"{pt}/POS_POINTS.txt")
abl = pd.read_csv(f"{pt}/AblationPoints.txt")[["X", "Y", "Z"]].to_numpy()
xyz = pos[["X", "Y", "Z"]].to_numpy()
d2 = ((xyz[:, None, :] - abl[None, :, :]) ** 2).sum(axis=2)
pos["nearest_ablation_mm"] = np.sqrt(d2.min(axis=1))
print(pos["nearest_ablation_mm"].describe())
这里的距离是欧氏距离,在网格上更严格的做法是沿曲面测地距离。论文里提到过一个对照实验,把测地边权换成欧氏边权对结果影响不大,但在瘢痕造成的凹陷处,欧氏距离会低估真实路程。
5.6 一个最小可复现的分类流程
把以上拼起来,得到一个够用但不夸张的基线:用双极电图的几条时域与频域描述子,接一个梯度提升,按患者留一评估。
#-- 最小基线:描述子加梯度提升加留一患者
import glob
import numpy as np
import pandas as pd
import wfdb
from scipy.stats import kurtosis, skew
from sklearn.ensemble import GradientBoostingClassifier
from sklearn.metrics import roc_auc_score
def feats(x):
d = np.abs(np.diff(x))
f = x - x.mean()
return np.array([
np.abs(x).mean(), np.abs(x).max(), np.sqrt((x ** 2).mean()),
np.abs(d).mean(), skew(x), kurtosis(x),
np.argmax(np.abs(f)) / len(x),
(f ** 2).sum() / ((d ** 2).sum() + 1e-9),
])
X, y, g = [], [], []
for hea in sorted(glob.glob("ARGODataset_Folder/Pt*/*.hea")):
rec_base = hea[:-4]
pat = rec_base.split("/")[-2]
a = wfdb.rdann(rec_base, "annotation_consensus")
cls = [s for s in a.symbol if s in ("P", "A")]
if not cls:
continue
rec = wfdb.rdrecord(rec_base)
X.append(feats(rec.p_signal[:, 0]))
y.append(1 if cls[0] == "A" else 0)
g.append(pat)
X, y, g = np.array(X), np.array(y), np.array(g)
aucs = []
for held in np.unique(g):
tr, te = g != held, g == held
if len(np.unique(y[te])) < 2:
continue
m = GradientBoostingClassifier(n_estimators=100, max_depth=3, random_state=0)
m.fit(X[tr], y[tr])
aucs.append(roc_auc_score(y[te], m.predict_proba(X[te])[:, 1]))
print("留一患者 AUC", np.round(aucs, 3), "均值", round(float(np.mean(aucs)), 3))
这段代码刻意用最简单的特征和最小的模型。它跑出来的均值大概率落在论文报告的那些方法附近,上下浮动取决于如何剔除「未知」类与如何处理样本极不均衡的患者。不要把这个数字当成「本法有效」的证据,九折的 AUC 方差本身就有零点几。
§6 与库内条目的关系
6.1 关系图谱
在千方医数集的生理信号类目里,ARGO 的位置很偏:它是唯一一份「术中 + 心内 + 三维」三者兼具的数据。其余条目大多在体表、在长时程、在单点。
| 关系类型 | 库内相邻资源 | 关系说明 |
|---|---|---|
| 上下游 | 体表 12 导联心电类条目 | ARGO 的 12 导联是术中同步采集的短片段,可作为体表模型的域外测试,而非训练集 |
| 平行 | 心内房颤或房扑标注库 | 同属心内电图,但任务不同:那边标 QRS,这边标异常电位 |
| 平行 | 其他电生理导管信号库 | 多数不公开位置与消融点,ARGO 在这两项上补空 |
| 方法可迁移 | 各类时序波形分割条目 | 边界检测的方法论可复用,但标签定义不可迁移 |
| 对照 | 影像类心肌瘢痕条目 | 那边的瘢痕是影像上的信号强度异常,这边的瘢痕是电图上的碎裂电位,两者可做交叉验证但需配准 |
这个图谱说明一件事:在库内做跨条目评测时,ARGO 很难与任何一条放在同一个排行榜上。它的价值在于补上一个空白格,不在于刷新某个已有格子的分数。
6.2 检索路径
从站内进入有两条路。第一条按信号模态:生理信号类目,再筛时序信号与人工标注两个数据标签。第二条按任务:找「波形分割」或「事件边界检测」相关条目,ARGO 会出现在结果里,因为它的标注形态就是边界。
从站外反向进入,最可靠的锚点是两个数字对象标识符与 PhysioNet 的项目路径。用项目路径检索,能同时命中页面、数据描述论文与后续引用它的方法学论文;用缩写检索,则会大量命中海洋浮标与临床试验平台的噪音。
§7 质量评估与局限性
7.0 阅读本节前的一个前置校正
很多使用者看到「近两千条」这个数,会自然地把它翻译成「样本量接近两千」,然后按常规的机器学习直觉去划分训练测试集。这个直觉在这里会误导你。真实的有效样本量是九,一千九百六十二是测量次数。
把这两种量纲混在一起,是本数据集最容易被误判的地方。审稿人问「你的样本量多大」,正确的回答是九位患者、一千九百六十二个标测点;如果只答后者,等于承认自己没想清楚独立性。接下来的五维评分、偏差枚举与外部验证,都建立在这个校正之上。
另有一处口径需要说明。共识分布里三类相加正好等于总数,但三位专家各自的分布并未在页面上逐类给出,只给了一致性的定性描述与边界容差。本文不对未公布的分项数字做推算。
7.1 五维评分
评分采用 DAIMS 框架的五个维度,每一维按本数据集的实际状况给分,满分五分。分数是编辑判断,附理由,不做跨条目换算。
| DAIMS 维度 | 得分 | 判断依据 | 扣分主因 |
|---|---|---|---|
| 数据量与覆盖 | 2 | 九例、一千九百余点,类别基本均衡 | 患者数太小,单一病因、单一中心、单一设备 |
| 标注质量 | 4 | 三人独立盲标加共识,开放全部个体标签,报告一致性与容差 | 无病理或随访层面的外部真值 |
| 结构规范性 | 5 | WFDB 标准格式、统一命名、校验和齐备、另附 MATLAB 副本 | 无 |
| 可用性与文档 | 4 | 目录说明详尽,含可视化脚本与最小示例 | 缺常见语言的可运行示例,图结构的索引基数未明写 |
| 可复现性与许可 | 3 | 固定版本、固定 DOI、可完整下载 | 非商业许可限制下游,样本小导致结果方差大 |
总分二十,得十八。这个分数在「结构」和「标注」上很高,在「规模」上很低,是一个典型的「小而精、用处窄」型数据集。若你的任务与它的任务严格重合,它的效用远高于分数所示;若略有偏差,分数会迅速失效。
7.2 内部一致性:页面与文件之间的三处需要留意
核对官方页面与下载到的文件,有三处并非矛盾、但需要使用者自己厘清的地方。
| 事项 | 页面表述 | 文件实况 | 处理建议 |
|---|---|---|---|
| 样本换算 | 页面给 0.003 mV/a.u. 的增益 | 头文件给每样本位宽与增益 333.3333 | 两者是倒数关系,用库读时会自动换算,手写解析要自己乘 |
| 非异常点的边界 | 页面说写入缺省越界索引 9999 | 实际读出的样本号是 9998 | 判断时用「符号是否在括号集合内」,不要硬编码某个数 |
| 电极命名 | 页面称一路双极、两路单极 | 头文件通道名为 20A_1-2 与 20A_1、20A_2 | 前者是电极对之差,后两者是单电极,解读时不要弄反 |
第三处尤其容易出错。双极与单极的信号幅度差一个量级,若把单极当成双极去算电压阈值,结论会完全反过来。
7.3 已知的、可枚举的偏差
偏差按影响程度排列,每一条都给出可检验的后果。
第一,患者间样本量极不均衡。 一位患者贡献了四成以上的点,另一位只有寥寥数十点。后果:按点随机划分时,大患者既进训练又进测试,指标被这一位患者的信号风格主导;按患者留一时,剔掉大患者的那一折测试集会骤然变小,指标剧烈跳动。
第二,空间自相关。 相邻标测点相隔几毫米,导管本身还有几毫米的电极间距,信号在局部高度相关。后果:即使按患者划分,若在同一患者内做交叉验证,也会高估性能;跨患者的泛化才是真问题。
第三,类别分布按患者而异。 全库的异常电位约占一半,但这是平均;有的患者几乎全是异常点,有的患者几乎没有。后果:留一折里可能出现某一类完全缺席,AUC 无法计算,必须预先设计合并策略。
第四,窗口内的伪差不可识别。 每段只有最后一个心搏可靠,但数据里没有标记「哪些心搏是前导的、哪些是可靠的」。后果:若把整段 2.5 秒切成若干心搏当作独立样本,等于把官方明确排除的部分当成了数据。
第五,病因与人群的窄化。 全部是缺血后室速,全部来自同一地区,全部在一家医院完成。后果:任何「在 ARGO 上表现好」的结论,都不能外推为非缺血性室速、不能外推为其他中心、更不能外推为筛查场景。
第六,设备单一。 全部由同一型号的标测系统采集,滤波参数由该系统固定。后果:换一台设备,滤波频带一变,基于频谱的描述子就全部失效。
7.4 外部验证矩阵
把「它被谁验证过」按渠道列出来,能看清证据的强度。
| 验证渠道 | 是否有 | 说明 | 证据强度 |
|---|---|---|---|
| 数据描述论文自评 | 是 | 报告标注一致性与边界容差,承认泛化局限 | 中,作者自评 |
| 独立团队的第三方复现 | 未见公开记录 | 数据 2026 年 7 月才发布,尚在窗口期 | 低 |
| 与商业标测系统的对照 | 否 | 只有单一平台数据,无法做平台对照 | 无 |
| 与病理或影像瘢痕的对照 | 否 | 未提供病理金标准或延迟增强影像的配准 | 无 |
| 多中心外部测试 | 否 | 队列来自单一中心 | 无 |
| 与临床结局的关联 | 否 | 无随访数据 | 无 |
这张表的结论直接:它是一份标注质量受控、但外部验证几乎为零的数据集。用它做方法研究是合适的,用它做临床性能声明是不合适的。
7.5 它为何能持续:因为它是这条窄路上唯一的公开考卷
一份只有九个人的数据集能长期存在,通常不是因为数据本身多好,而是因为它占据了一个别人不愿进的生态位。ARGO 正是如此。
进这个生态位的门槛不是采集难度,而是合规与协作成本。心内电图来自真实手术,要拿到伦理批件、要脱敏、要说服医院把术中数据导出来,还要请三位专家在几百个点上反复盲标。收益呢?只有做室速消融算法的那一小群人用得上。愿意付这个成本的人本来就少,已经付过的人自然就成了唯一的供给方。
于是它形成了一种自我维持:越少人做这件事,这份数据就越标准;越标准,后来者就越倾向于直接用它,而不是自己再造一份。加上它固定在 PhysioNet 上、有独立的 DOI、版本号明确,引用链条一旦建立就很难断。
风险也在这里。如果若干年后 CARTO 系统换代、导出格式变了、或者伦理批件的有效期过了,这份数据很可能停在 v1.0.0 不再更新。它没有持续采集的机制,只有一次性的发布。所谓「持续」,指的是引用在持续,不是数据在生长。
§8 生态位与历史
8.1 从 2019 年到 2026 年:一个团队七年的铺垫
把页面参考文献按年份排开,能看到一条清晰的线索。2019 年到 2020 年,这个团队先做「自动识别异常心室电位」的可行性;2022 年,做了电位的频谱刻画与迁移学习探索;2023 年,做了可解释深度学习与计算机辅助检测,同年还在国际会议上提出孪生网络做空间映射;2025 年,把图结构引入,做时空建模。
这条线索里的每一步都需要数据,而这些数据在很长一段时间里是不可公开的。直到 2021 年伦理批件下来,2026 年才正式发布。也就是说,方法先跑了七年,数据后到。这与常见的「先有数据、后有方法」正好相反。
这种顺序有一个后果:这份数据的标注体系,是被七年的方法迭代「反向定义」出来的。哪些点要标、标到什么粒度、边界怎么定,都是在反复建模中磨出来的。这也解释了为什么它的标注粒度恰好卡在「够做分类、够做边界检测」这个位置,既不多也不少。
8.2 为什么现在才出现:三个前置条件
心内电图的公开数据不是没人想做,是以前做不成。三个条件在近年才凑齐。
条件一,伦理框架。 术中数据的二次使用需要明确的伦理批件与知情同意。页面写明本研究经撒丁岛地方卫生机构的独立伦理委员会批准,批件号与日期都在。这类批件在小规模研究中往往要等很久。
条件二,格式标准化。 WFDB 格式在 PhysioNet 上通行了二十多年,把厂商私有格式转成 WFDB 需要人工核验。这次转换后专门用 WFDB 工具做了校验,这一步是数据能被机器读取的前提。
条件三,发布习惯。 PhysioNet 已经形成了一整套发布流程:DOI 分配、版本管理、许可声明、引用格式。没有这套基础设施,一份九个人的数据很难被当作正式资源引用。
三者缺一,这份数据就不会出现在今天的位置。
8.3 它在方法学脉络中的坐标
如果把室速消融的自动化工具体系画成一条线,ARGO 的坐标是「基准」而不是「方法」。它之前的节点是各类特征工程与深度学习尝试,它之后的节点是会大量引用它的评测工作。
页面列出的那篇 2026 年的预印本,就是一个典型的下游:用时空图卷积在 ARGO 上做消融靶点识别,同时把传统电压规则与梯度提升作为对照。这类工作的模式是「拿 ARGO 当考卷,比几种方法」。可以预期,未来几年这个模式会反复出现。
值得注意的是,那份预印本报告的结果显示梯度提升的 AUC 高于图网络,且差异在统计上不显著。这个结论本身比数据集更有意思:在九个人的数据上,复杂的空间建模未必赢过简单的手工特征。这不是说图网络没用,而是说数据量决定了能检验多大的方法差异。
8.4 与相邻生态的接口
ARGO 并非孤立。它与三类相邻资源构成潜在接口。
第一类是体表心电图库。ARGO 里每点都带 12 导联体表心电,虽然只有 2.5 秒,但足够做一次「体表信号能否预测心内异常」的探索。这类跨模态问题在临床上很有吸引力,因为体表信号无创。
第二类是心脏影像库。瘢痕在延迟增强磁共振上表现为高信号区,在电图上表现为低电压与碎裂电位。两者若能配准,就是一份多模态基质图。ARGO 没有影像,但给了左室网格与坐标,配准的技术门槛因此降低了一半。
第三类是其他电生理标注库。不同任务、不同部位的标注可以拼成一个更宽的电生理基础模型训练集,前提是标签体系统一。这目前还只是设想。
§9 使用指引
9.1 三种角色的路径
| 角色 | 首要目标 | 建议路径 | 时间预估 |
|---|---|---|---|
| 算法研究者 | 拿到一个可比的基准 | 读数据描述论文,按患者留一复现基线,再改自己的方法 | 半天读文档,一天跑通基线 |
| 临床科研人员 | 看这份数据能否支撑一个临床问题 | 先读局限一节,确认问题是否落在它的覆盖范围内 | 一小时判断是否值得投入 |
| 工程实现者 | 把数据接进现有管线 | 只用 WFDB 读写加纯文本解析,不碰 MATLAB 脚本 | 两小时完成接口 |
第三种角色常被忽略。页面上提供的两个可视化脚本是 MATLAB 的,若团队不用 MATLAB,不必强行移植,直接用 Python 读文件画图更快,因为文件格式本身不依赖任何脚本。
9.2 一条最短的可用流程
从零到看见一段异常电位,五步足够。
#-- 第一步:拉取整包(约 183 MB)
wget -r -N -c -np https://physionet.org/files/argo/1.0.0/
#-- 第二步:进入目录
cd physionet.org/files/argo/1.0.0
#-- 第三步:确认记录清单行数
wc -l RECORDS
#-- 第四步:装读取库
pip install wfdb pandas scipy scikit-learn
#-- 第五步:跑第二章的读取代码
python3 -c "import wfdb; r=wfdb.rdrecord('ARGODataset_Folder/Pt1/P457'); print(r.p_signal.shape)"
第五步若打印出形状是两千五百乘十五,说明路径与库都正常。接下来把 §5.2 的读取片段存成脚本跑一遍,就能看到 §4.4 的案例里那 89 毫秒的边界。
9.3 引用方式
数据与论文要分别引用。页面给的格式是作者顺序在前、年份在中、版本与 DOI 在后。要点有三:引用数据时必须带版本号,因为最新版 DOI 与 v1.0.0 的 DOI 不同;引用论文时要引那篇 PLOS ONE 的数据描述文章,而不是下游的方法论文;若在 PhysioNet 上做整体研究,还应按平台要求加引平台本身的出版物。
Orrù, M., Baldazzi, G., Zirolia, D., Bertagnolli, L., Viola, G., Solinas, M. G., & Pani, D.
(2026). Annotated dataset of post-ischemic ventricular tachycardia electrograms (ARGO)
(version 1.0.0). PhysioNet. RRID:SCR_007345. https://doi.org/10.13026/8gh2-e660
许可要求的署名只需做到这一步。若论文里还要声明数据的可获得性,写清「数据来自 PhysioNet 的 argo 项目,v1.0.0,截至某日可公开访问」即可,不必重复列出全部作者。
§10 AI 使用声明
本文在写作过程中使用了检索与文本整理工具,用于提取官方页面与论文摘要中的事实。所有结论均由人工核对来源后写入,不做数据下载后的二次统计。
| 环节 | 是否使用 AI 辅助 | 说明 |
|---|---|---|
| 选题与定位 | 否 | 依据任务书与官方页面确定 |
| 官方页面阅读 | 是 | 用工具提取 HTML 正文,人工复核数字 |
| 论文摘要提取 | 是 | 经欧洲 PMC 接口取摘要,人工复核 |
| 数字核算 | 部分 | 类别分布、文件数、体积均与页面和清单交叉核对 |
| 代码片段 | 是 | 依据 WFDB 官方接口与文件实况编写,已在本地跑通读取部分 |
| 表格与结构 | 是 | 按编辑体例生成,人工调整 |
| 局限性判断 | 否 | 由人工依据官方自述与文件结构得出 |
| 未核实内容标注 | 是 | 本文凡未核实处均显式标注 |
常见误读(避坑清单)
| 说法 | 实际 | 证据 |
|---|---|---|
| 这是国际 Argo 海洋浮标计划的数据 | 两者只是重名,本文讨论的是心脏电生理数据集 | 官方页面标题与 DOI 均指向 PhysioNet 的室速电图集 |
| 一千九百多个样本可以训练深度网络 | 有效样本是九位患者,其余是同一患者内的重复测量 | 受试者表仅九行,标测点数按患者汇总 |
| 每个标测点都是独立样本 | 相邻点在空间上相隔几毫米,信号高度相关 | 点坐标表给出每点三维位置,可自行计算点间距 |
| 只有一份标签,无法评估标注不确定性 | 三位专家的独立标签与一份共识全部开放 | 每个标测点有四个注释文件,后缀在标注者说明里列出 |
| 非异常点的注释文件为空或损坏 | 那是刻意写入的越界占位符号,表示边界不适用 | 读出的样本号落在有效范围外,符号为引号 |
| 每段 2.5 秒里的每个心搏都能用 | 官方明示只有最后一个心搏可靠 | 官方方法一节写明仅最后一个心搏应被视为可靠 |
| 双极与单极可以互换使用 | 两者滤波频带与幅度量级都不同 | 双极滤波到 500 Hz,单极到 240 Hz,头文件通道名可区分 |
| 可以拿来训练室速诊断模型 | 队列全是已确诊患者,没有诊断标签 | 数据无随访、无用药、无诊断结论字段 |
| 它可以直接用于商用产品 | 许可禁止商业使用,且要求衍生同许可 | PhysioNet 页面写明 CC BY-NC-SA 4.0 |
| 它能代表所有室速患者 | 队列仅缺血性病因、单中心、单设备 | 官方局限一节自述,病因与平台都单一 |
FAQ
Q1:ARGO 和海洋浮标那套 Argo 计划有关系吗?
没有。ARGO 这个缩写在本文来自「计算机辅助引导与优化的消融强化」研究,指向心脏电生理。国际 Argo 计划是海洋温盐深浮标观测网,属于海洋学,两者只是三个字母相同。检索时看域名即可分辨。
Q2:一个人算一个样本,还是每个标测点算一个样本?
标测点是记录的粒度,患者是统计推断的粒度。报告数据集大小时可以写「九位患者、一千九百六十二个标测点」,但做模型评估必须以患者为单位划分,否则同一患者内相邻点的高相关性会让测试信息泄漏进训练。
Q3:为什么很多注释文件里只有一个符号?
那是非异常点的缺省写法。三位专家都判为生理或未知时,边界无从谈起,文件里就写一个位于有效样本范围之外的引号符号。看到这种文件说明该点不是异常电位,不是数据缺失,也不是解析失败。
Q4:能不能直接训练一个通用的室速诊断模型?
不能。它是术中基质标测数据,不是体表或长时程心律记录,也不含诊断标签。它支持的建模样式是单点心内电图的分类与边界勾画,换到诊断任务上属于层级错位。
Q5:共识标注等于金标准吗?
共识是在三位专家独立标注之后形成的,能压低单人的随机误差,但它仍是人的判断。论文报告了标注者间与标注者内的一致性,并给出了边界误差的容差估计,这个容差就是评价模型时的噪声地板。
Q6:商用产品可以用吗?
不能。页面标明许可为非商业性使用、相同方式共享,衍生作品须以同一许可分发。任何导向产品的用途都需另行取得授权。团队内部流转时,建议让成员直接从 PhysioNet 下载,而不是转手一份私有副本。
Q7:数据里为什么没有室速发作时的片段?
采集发生在基质标测阶段,此时患者在窦性心律下。异常电位在窦律下就已表现为正常 QRS 之后的迟发电位,因此识别任务无需室速发作片段。这与临床流程一致,不是数据缺陷。
Q8:左室网格的顶点索引从零开始还是从一开始?
页面未明写,需要按连通表的取值范围判断。若最大索引等于顶点数减一,则从零开始;若最大索引等于顶点数,则从一开始。画图前务必先确认,否则边会错连。
Q9:能不能把电图和体表心电分开用?
可以。十二导联体表心电与心内电图是同步采集的,既可单独使用,也可做跨模态任务。但要注意体表部分同样只有 2.5 秒,且同样只建议使用最后一个心搏。
Q10:为什么不同患者的文件数不一样?
文件数等于标测点数乘六再加五。每位患者的标测点数不同,从数十点到八百余点不等,所以文件夹大小相差很大。下载后若发现某个文件夹特别小,那不一定是下载不全,可能那位患者确实只标了几十个点。
Q11:论文里那个图上网络的结果是否意味着手工特征更好?
不能这么读。论文报告的是一个特定切分下的比较,且差异在统计上不显著。在九位患者的数据上,两种方法的差距小于切分带来的波动。要做这类比较,必须重复多次不同划分并报告方差。
Q12:这份数据还会更新吗?
页面显示目前只有 v1.0.0 一个版本,发布于 2026 年 7 月。是否扩容没有公开承诺。使用时应锁定版本号与 DOI,不要依赖「最新版」这个指针,因为最新版 DOI 与版本 DOI 是分开的两个标识。
术语表
| 术语 | 中文 | 释义 |
|---|---|---|
| ARGO | 消融强化研究及其数据集名 | 本文指 PhysioNet 上的缺血后室速电图标注集 |
| EGM | 心内电图 | 导管在心脏内直接记录的电位,分双极与单极 |
| 双极电图 | bipolar EGM | 相邻两电极之间的电位差,局部性强,视野窄 |
| 单极电图 | unipolar EGM | 单电极对远端参考的电位,视野宽,易受远场干扰 |
| AVP | 异常心室电位 | 瘢痕内存活肌束产生的迟到、低频幅、碎裂电位 |
| 基质标测 | substrate mapping | 在窦律下逐点采集电图,描绘瘢痕与健康心肌的边界 |
| 电解剖标测 | electroanatomical mapping | 把电生理信号与三维解剖位置同步记录的技术 |
| 局部激动时间 | LAT | 每个网格点相对于参考时刻的局部电活动时刻 |
| 电压图 | voltage map | 逐点双极信号幅度构成的心壁电势分布图 |
| 射频消融 | RFCA | 用射频能量烧灼心肌以阻断折返环路 |
| 消融点 | ablation point | 术中实际施放能量的位置,本文中存为坐标 |
| 三角网格 | triangulated mesh | 用三角形拼成的心室腔内表面几何 |
| 测地距离 | geodesic distance | 沿曲面的最短路径长度,与直线欧氏距离不同 |
| WFDB | 波形数据库格式 | PhysioNet 通用生理信号格式,含信号文件与头文件 |
| 注释文件 | annotation file | WFDB 的标注存储格式,存符号与样本位置 |
| 共识标注 | consensus annotation | 多位标注者独立标注后合成的一份最终标签 |
| 标注者间一致性 | inter-rater agreement | 不同标注者之间判断的一致程度 |
| 标注者内一致性 | intra-rater agreement | 同一标注者重复标注时的一致程度 |
| 起点与终点 | onset and offset | 一段异常电活动的开始与结束样本位置 |
| 占位符 | placeholder symbol | 非异常点写入的越界索引,表示边界不适用 |
| 射血分数 | ejection fraction | 心室每次收缩泵出的血液比例,反映泵功能 |
| 缺血性心肌病 | ischemic cardiomyopathy | 冠心病导致的心肌损伤与心功能下降 |
| 瘢痕 | scar | 心肌梗死后被纤维组织替代的区域 |
| 留一患者验证 | leave-one-patient-out | 每次留出一位患者作测试的交叉验证 |
| 空间自相关 | spatial autocorrelation | 邻近位置的观测值彼此相关的现象 |
| 域外测试 | out-of-domain test | 用与训练集来源不同的数据评估模型 |
| 导数受限 | NC 许可 | 非商业性使用、相同方式共享的知识共享许可 |
附录 A:核心数字核对表
| 项 | 值 | 来源 | 来源层级 |
|---|---|---|---|
| 患者数 | 9 | 官方页面与受试者表 | 官方页面 |
| 标测点数 | 1,962 | 官方页面与记录清单行数 | 官方页面加本地核对 |
| 共识生理类 | 776 | 自述文件的数据摘要 | 官方文件 |
| 共识异常类 | 940 | 自述文件的数据摘要 | 官方文件 |
| 共识未知类 | 246 | 自述文件的数据摘要 | 官方文件 |
| 每段通道数 | 15 | 头文件首行 | 文件实况 |
| 采样率 | 1,000 Hz | 头文件首行 | 文件实况 |
| 每段样本数 | 两千五百 | 头文件首行 | 文件实况 |
| 每段时长 | 2.5 秒 | 样本数除以采样率 | 推算,与页面一致 |
| 每位患者几何文件 | 5 个 | 自述文件的目录树 | 官方文件 |
| 每个标测点文件 | 6 个 | 自述文件的目录树 | 官方文件 |
| 未压缩体积 | 378.4 MB | 页面文件区 | 官方页面 |
| ZIP 体积 | 182.9 MB | 页面文件区 | 官方页面 |
| 采集年份 | 2017 至 2018 | 官方方法一节 | 官方页面 |
| 发布版本与日期 | v1.0.0,2026-07-15 | 页面版本区 | 官方页面 |
| 伦理批件号 | 351/2021/CE | 官方伦理一节 | 官方页面 |
| 双极滤波频带 | 16 至 500 Hz | 官方方法一节 | 官方页面 |
| 单极滤波频带 | 2 至 240 Hz | 官方方法一节 | 官方页面 |
附录 B:数字的来源分层
| 层级 | 数字类别 | 举例 | 可信度说明 |
|---|---|---|---|
| 官方页面 | 规模、结构、许可、发布信息 | 患者数、标测点数、体积、DOI、许可 | 高,页面自述,且多数可与文件交叉核对 |
| 官方文件 | 类别分布、目录结构、字段命名 | 三类计数、五个几何文件名、通道名 | 高,直接读文件得到 |
| 论文摘要 | 一致性表述、边界容差的存在性 | 标注一致性与容差估计 | 中高,摘要只给结论不给数值,具体数值需读全文 |
| 文件实况 | 占位样本号、注释符号、几何表头 | 9998、引号符号、表头字段 | 高,读出来的就是事实 |
| 未核实 | 三位专家各自的类别分布、标注用时 | 未在页面公布 | 低,本文不做推算 |
附录 C:完整参考文献
| 序号 | 文献 | 用途 |
|---|---|---|
| 1 | Orrù M 等,缺血后室速电图标注数据集,PhysioNet v1.0.0,2026,DOI 10.13026/8gh2-e660 | 数据本体与页面全部结构信息 |
| 2 | Orrù M 等,ARGO 数据集:缺血后室速心内电图的标注与勾画,PLOS ONE 21(6): e0350993,2026 | 数据描述论文,标注流程与一致性 |
| 3 | Baldazzi G 等,人缺血后双极电图中心室电位的频谱刻画,Sci Rep,2022 | 方法学铺垫,频谱特征 |
| 4 | Baldazzi G 等,缺血后室速心律失常灶的计算机辅助检测,Sci Rep,2023 | 方法学铺垫,检测框架 |
| 5 | Pitzus A 等,可解释深度学习识别缺血后室速心律失常灶,Biomed Signal Process Control,2025 | 方法学铺垫,可解释模型 |
| 6 | Pitzus A 等,时空图卷积在三维电解剖流形上的消融靶点识别,预印本,2026 | 下游用法示例与对照结果 |
| 7 | Pollard T 等,PhysioNet 作为生物医学研究的全球平台,Nature Health,2026 | 平台引用与发布背景 |
| 8 | Peterson J 与 Kynor D,心内房颤数据库,PhysioNet,2003 | 同类资源对照 |
附录 D:任务清单代码
下面这段把从下载到出第一张图的步骤串成一条可执行的链,适合放进 Makefile 或笔记本的第一格。
#-- 依赖:wget、python3、wfdb、pandas、matplotlib
set -e
ROOT=https://physionet.org/files/argo/1.0.0
OUT=argo_1_0_0
test -d "$OUT" || mkdir -p "$OUT"
test -f "$OUT/RECORDS" || wget -q "$ROOT/RECORDS" -O "$OUT/RECORDS"
test -f "$OUT/README.txt" || wget -q "$ROOT/README.txt" -O "$OUT/README.txt"
#-- 只拉前两位患者的信号与注释,够跑通流程
for pt in Pt1 Pt2; do
mkdir -p "$OUT/ARGODataset_Folder/$pt"
for f in "$OUT/ARGODataset_Folder/$pt"/*.hea; do
test -f "$f" && continue
:
done
done
#-- 单独取一条做冒烟测试
REC="$OUT/ARGODataset_Folder/Pt1"
mkdir -p "$REC"
for ext in dat hea annotation_consensus annotation_ann1; do
wget -q "$ROOT/ARGODataset_Folder/Pt1/P457.$ext" -O "$REC/P457.$ext"
done
python3 -c "
import wfdb
r = wfdb.rdrecord('$REC/P457')
a = wfdb.rdann('$REC/P457', 'annotation_consensus')
print('shape', r.p_signal.shape, 'fs', r.fs)
print('ann', list(zip(a.sample.tolist(), a.symbol)))
"
最后一步应当打印出形状为两千五百乘十五,以及两个括号符号与它们的样本位置。若这一步通过,说明网络、路径与库都没问题,可以放心地整包拉取。
附录 E:如果只记五件事
- 它是什么:PhysioNet 上唯一一份公开的缺血后室速心内电图标注集,2026 年 7 月发布,非商业许可。
- 它有多大:九位患者、一千九百六十二个标测点;有效样本是九,不是一千九百六十二。
- 它标了什么:每个点的双极电图归为生理、异常、未知三类,异常点另给起止边界;三位专家独立盲标加一份共识。
- 它最适合做什么:单点心内电图的异常分类与边界检测,附空间位置与消融点,可做图结构建模。
- 它不能做什么:不能做诊断、不能做商用、不能代表其他病因或其他设备,患者数太少撑不起通用模型的说法。
编辑说明
本篇的核验日期为 2026 年 10 月 27 日。核验方式为直接抓取 PhysioNet 项目页面的 HTML 正文、下载自述文件与记录清单、逐个访问单条记录的头部与注释文件,并读取欧洲 PMC 上的数据描述论文摘要。
未覆盖的内容有三类:数据描述论文全文中的具体一致性系数与容差数值(仅据摘要确认其存在)、三位专家各自的类别分布(页面未公布)、以及左室网格文件内部的连通性质量(需要全量解析才能评估,超出时间盒)。
关于命名:清单中该条目归入生理信号领域,与 PhysioNet 项目页面一致。同名的国际 Argo 海洋浮标计划与本篇无关,已在正文第三节说明分辨方法。
关于引用数字的口径:官方页面与自述文件在非异常点的占位样本号上存在差异,正文按文件实况描述,并在 §7.2 列出。本文不对官方未公布的分项数字做任何推算。
相关数据集导航
以下为站内 AI-Ready 数据集百科中与本词条共享多个主题标签的相关数据集,按相关度降序排列:
- edb — 共享标签:生理信号 / 心电信号
- aami-ec13 — 共享标签:生理信号 / 心电信号
- kiel-cardio — 共享标签:生理信号 / 心电信号
- meditation — 共享标签:生理信号 / 心电信号
- eye-tracking-ecg — 共享标签:生理信号 / 心电信号
- nifecgdb — 共享标签:生理信号 / 心电信号
- tpehgdb — 共享标签:生理信号 / 心电信号
- ecg-capable-smartwatches — 共享标签:生理信号 / 心电信号
- szdb — 共享标签:生理信号 / 心电信号
- wctecgdb — 共享标签:生理信号 / 心电信号
导航说明:本章节由全站统一标签体系自动计算生成(标签重合度算法),双向可达;点击链接可跳转至对应数据集词条。

