十个人躺上倾斜床三次 — PRCP 体位生理库

10 名健康志愿者 / 3 通道 250 Hz / 6 段三分钟应激

来源 https://physionet.org/content/prcp/1.0.0/发布时间: 2026-10-29最后更新: 2026-10-29 阅读 5
十个人躺上倾斜床三次 — PRCP 体位生理库

信息速览

数据集名称十个人躺上倾斜床三次 — PRCP 体位生理库
数据类型时序信号,波形,事件标注,多通道同步
规模10 名健康志愿者
接入方式https://physionet.org/content/prcp/1.0.0/
AI 就绪度

从平躺到站立的那几秒钟,人体要完成一次没有预案的血压调度。重力把数百毫升血液拽向腹腔与下肢,回心血量骤减,主动脉弓与颈动脉窦上的压力感受器察觉到管壁牵张下降,交感神经在几个心搏之内上调心率与外周阻力,把平均动脉压拉回原来的水平。这条反射链平时不露面,只在体位改变的那几秒里显形,所以要研究它,采集设备必须同时满足三个条件:血压是逐搏连续的(袖带一分钟只给一个点,抓不住秒级的瞬态)、心电与血压严格同步、体位的角度本身被量化记录下来。三者缺一,就只能看到结果而看不到过程。

PRCP 体位生理库是公开数据里少有的同时满足这三条的库。麻省理工学院的 Thomas Heldt 与 Roger G. Mark 把 10 名健康志愿者放上电动倾斜床,用指端连续血压与单导联心电同步记录,第三路通道专门记下倾斜床的角度;试验由若干段三分钟的应激期组成,慢速倾斜、快速倾斜与主动起身各出现若干次,动作顺序随机化。它没有大样本,却给了别人给不了的那条时间线:血压什么时候开始掉、心率什么时候开始追、两者之间差几个心搏,这些都要靠同步波形才答得出来。一屏速览见下表。

维度 内容
全名 Physiologic Response to Changes in Posture
缩写与 slug PRCP
发布平台 PhysioNet(开放访问,无需注册或签署协议)
数据贡献者 Thomas Heldt、Roger G. Mark
贡献机构 麻省理工学院;MIT 计算生理学实验室
平台维护方 MIT Laboratory for Computational Physiology
首次发布 2016 年 2 月 18 日
版本情况 1.0.0,目前唯一版本
记录数 10 条
受试者数 10 名健康志愿者,性别字段为 M 的 5 人、为 F 的 5 人
年龄范围 22–34 岁
身高与体重范围 155–192 cm;55–100 kg
单条时长 55 分 00 秒至 74 分 00 秒,全库合计约 10.3 小时
通道数 3,顺序为 ABP、ECG、Angle
采样率 250 Hz,头文件同时给出计数频率 24000
存储与格式 WFDB:.hea 头文件(文本)+ .dat 信号(16 位带符号整数交错存放)
标注规模 每记录 20–29 条人工事件标注,全库合计 224 条
标注方式 事件级人工听记;心搏与脉搏级由自动算法生成
应激动作 慢速倾斜、快速倾斜、主动起身,各两次,每段约三分钟,段间平卧休息
文件与体量 目录内 53 个文件,解压后 54.1 MB
许可 Open Data Commons Attribution License v1.0,须署名
DOI 10.13026/C2PC7R
典型用途 压力反射敏感性估计、体位性低血压与晕厥机制、连续血压算法评测、心率与血压耦合分析

§1 它要解决的具体麻烦

1.1 血压与心率之间的那几次拉扯

血压和心率在临床上常被当成两个独立的数字,但在体位改变这件事上,它们是一根因果链的两端。上位是血压:重力让血液淤积在下肢,回心血量与每搏输出量下降,平均动脉压出现一个瞬态的下陷。下位是心率与外周阻力:颈动脉窦与主动脉弓的压力感受器感知到压力下降后,通过减压神经把信号送到延髓,抑制迷走、兴奋交感,心率上升、血管收缩,把血压推回去。

这条链路的关键信息是时序。血压先掉,心率后追,两者之间隔着几个心搏的神经传导与效应器延迟;在快速倾斜和主动起身时,这个瞬态很明显,而在缓慢倾斜时几乎看不到。要量出这个差别,采集端必须同时满足三件事,缺一件都不行:

必要条件 为什么 缺了会怎样
血压逐搏连续 瞬态下陷只持续数秒到十几秒 只能看到稳态,看不到瞬态
心电与血压同步 要比较两者的相对时刻 无法做时序与因果方向的判断
体位角度被记录 需要知道应激何时开始、持续多久 只能靠人工笔记,无法复现

绝大多数公开生理库只满足其中一到两条:心电库通常没有血压,重症波形库虽有动脉导管波形但受试者是卧床患者、没有体位变化,可穿戴库有光电容积脉搏波但没有连续血压定标。PRCP 的独特之处不在于它做得多精细,而在于它恰好三条都齐了。

1.2 三条常见的错误期待

第一条,期待它是临床倾斜试验的诊断库。 它的受试者是健康志愿者,官方页面写明是健康受试者在三种动作下的生理记录。它不包含晕厥患者的结局标签,也不包含临床判读结论。想做"倾斜试验阳性/阴性"的分类研究,这个库给不了标签。

第二条,期待它有现成的"血压下降事件"标签。 .anI 里存的是采集者在现场敲下的事件标记,包括动作起止与信号质量注记,不是为建模准备的事件标签表。是否需要从事件序列里构造"应激段"与"血压下陷幅度",完全取决于使用者自己的口径。

第三条,期待它覆盖多天或多小时。 每名受试者只有一段记录,长度在 55 到 74 分钟之间。这是一次试验的完整记录,不是长期监测。做昼夜节律或日级负荷统计,它用不上。

1.3 它能给到的与给不到的

你的需求 它给的 够不够
压力反射敏感性的序列法估计 逐搏收缩压与 RR 间期双序列,同源同步 够,这是它的设计目标场景
体位应激下的瞬态动力学 三分钟应激段配平卧基线,角度可定位 够,且慢速与快速两种速率可对比
主动与被动体位的对照 起身属主动,倾斜属被动,同一受试者内对照 够,这是它与其他体位库最大的区别
连续血压算法的评测 指端连续血压波形作参考,配同步心电 够作参考,但需留意伪迹注记
心搏分类的跨库测试 有自动心搏标注 不够,样本量只有 10 人
体位性低血压的临床诊断 无患者人群与结局标签 不够
长期血压负荷统计 单段不足 75 分钟 不够
多中心泛化验证 单中心采集 不够

1.4 你的处境与它能帮到的事

你的处境 它能帮你什么 下一步该做什么
你在做压力反射估计,想换一个带真体位应激的库 慢速与快速两种倾斜速率,瞬态幅度差异明显 按 §5.4 读出六段应激的起止,分段估计再比较
你在做无袖带连续血压算法,需要一段有角度变化的数据 血压参考 250 Hz,角度通道可定位应激时刻 把应激段单独切出评测,别用平卧段充数
你想验证心率与血压之间信息分解的方向性 同源同步双序列,且应激是外源扰动 用文献同款口径,注意伪迹段要剔除
你在教自主神经 physiology,需要一个可复现的演示 六段应激在同一条记录里,图像直观 用 §2.3 的读取流程导出,注明伪迹段
你在做跨库外部测试集,想加一个体位维度 规模小、下载快,可一次下完 只当外部测试,不要当训练主粮仓
你在找晕厥前兆的预测数据 无患者与结局标签 换专门的人群库

1.5 一句话判断

它不适合当「更大的训练集」,而适合当「更完整的时间线」:同一个人的心电、连续血压与体位角度在同一根时间轴上对齐,这才让「谁先动、谁后动」这类问题第一次有了可解的原始材料。

1.6 不适合谁:四条边界

不适合做统计意义上的大样本研究。 10 名受试者、每人一段,任何按人计的统计量在这个量级上都没有稳定性。

不适合做临床预测模型。 没有患者、没有结局、没有用药与随访信息,头文件里只有年龄、性别、身高、体重四项。

不适合做长时程节律或负荷分析。 全库合计约 10.3 小时,且来自 10 个互不连续的时间段。

不适合把自动标注当金标准。 .wqrs 与 .wabp 由算法生成,.anI 才是人工产物;前两者的错标会直接进入任何依赖它们的指标。

§2 数据构成与规格

2.1 一条记录由五个文件组成

本库沿用 WFDB(Waveform Database)格式,这是 PhysioNet 自 1980 年代沿用至今的生理信号存储规范。每一条记录对应同名的五个文件:

扩展名 性质 内容
.hea 纯文本 头文件:记录行、三行信号声明、若干注释行
.dat 二进制 信号本体,三路通道按采样点交错存放 16 位整数
.anI 二进制 人工标注的主要事件(major event annotations)
.wqrs 二进制 自动生成的心搏标注(automatically generated beat annotations)
.wabp 二进制 自动生成的脉搏标注(automatically generated pulse annotations)

和同平台的许多心电库不同,本库没有 .atr 文件;三类标注各占一个扩展名,职责写在根目录的 ANNOTATORS 文件里,只有三行。这一点在写读取代码时要特别留意——照抄其他库的 rdann(rec, 'atr') 会直接报文件不存在。

根目录另有三个附属文件:RECORDS 列出 10 条记录名;ANNOTATORS 说明三类标注的角色;SHA256SUMS.txt 给出 52 个受校验文件的散列值,可用于下载后完整性核验。

2.2 头文件字段的完整字典

本库的"字段"不是表格列,而是 WFDB 头文件的记录行与信号行的各个位置。以 12726 为例,逐项列出:

信息项 所在位置 取值形态 含义 使用注意
记录名 记录行第 1 字段 12726 记录标识,也是文件名前缀 纯数字串,不含受试者编号信息
信号条数 记录行第 2 字段 3 同步通道数 全部 10 条记录均为 3
采样率与计数频率 记录行第 3 字段 250/24000 每秒 250 个采样点;计数频率 24000 斜杠后是计数频率,不是第二采样率
采样点数 记录行第 4 字段 825000 单条记录总长度 除以 250 得秒数
基准时间 记录行第 5 字段 15:08:24 记录起始时刻 只有时刻,没有日期
信号文件名 信号行第 1 字段 12726.dat 三路通道共用同一个文件 不是每通道一个文件
存储格式 信号行第 2 字段 16 16 位带符号整数 不是浮点
增益与单位 信号行第 3 字段 64.02(4)/mmHg 每物理单位对应的整数值 逐记录略有差异,括号内为精度标注
ADC 位分辨率 信号行第 4 字段 16 模数转换位数 有效分辨率受增益影响
ADC 零值 信号行第 5 字段 0 零电平对应的整数值 换算时先减去零值
初始值 信号行第 6 字段 4004 首个采样点的整数值 可用于快速校验文件是否错位
校验和 信号行第 7 字段 -26056 采样点累加和 用于检测 .dat 是否完整
块大小 信号行第 8 字段 0 每帧字节数 0 表示由读取工具自动计算
通道名 信号行第 9 字段 ABP / ECG / Angle 通道的物理含义 顺序固定:血压、心电、角度
年龄 注释行 28 受试者年龄 以 # <age>: 开头
性别 注释行 M 或 F 受试者性别 以 # <sex>: 开头
身高 注释行 170 厘米 以 # <Height>: 开头
体重 注释行 64 千克 以 # <Weight>: 开头
生成说明 注释行 Produced by xform from record 12726_orig 由原始记录经 xform 转换 原始记录本身未随库公开

这里最值得记的一条是头文件里没有患者编号,也没有诊断字段。同平台的部分心电库会在注释行里给患者编号与临床诊断,本库只给四项人口学与体格信息。因此本库的数据集划分不需要考虑"同一患者多段"的泄漏问题——一人一段,按记录划分与按受试者划分等价。这在生理信号库里反而是少见的干净结构。

2.3 一条记录的完整解剖

取 12726。头文件第一行是:

12726 3 250/24000 825000 15:08:24

从左到右:记录名 12726;3 条信号;采样率 250 Hz,计数频率 24000;共 825000 个采样点;记录开始于 15 点 08 分 24 秒。825000 ÷ 250 = 3300 秒,正好 55 分钟整。

接下来三行是信号声明:

12726.dat 16 64.02(4)/mmHg 16 0 4004 -26056 0 ABP
12726.dat 16 6554/mV 16 0 -12996 -24904 0 ECG
12726.dat 16 174.83(11204)/degrees 16 0 11196 11564 0 Angle

从右往左读:通道名;块大小 0;校验和;初始值;ADC 零值 0;位分辨率 16;增益;格式 16;文件名。三路通道共用同一个 .dat,靠交错排列区分,这一点从三行都指向 12726.dat 就能看出。

增益这一项在十份头文件里有规律:心电通道的增益全部是 6554 adu/mV,十条记录一致;血压通道在 64.00 到 64.05 adu/mmHg 之间小幅浮动;角度通道在 173.12 到 175.63 adu/degree 之间浮动。心电增益一致意味着跨记录比较心电幅度是安全的,而血压与角度通道必须在换算到物理单位之后再比较。

文件末尾两行注释给出受试者上下文与生成信息:

\# <age>: 28  <sex>: M  <Height>: 170  <Weight>: 64
\#Produced by xform from record 12726_orig, beginning at 0:0

第二行说明发布出来的这一段是由名为 12726_orig 的原始记录经 xform 转换、从零点开始截取得到的。原始记录不在库里,所以任何"完整试验全程"的推断都无法用公开数据验证。

读取信号与标注的标准写法:

import wfdb

#-- 远程直读,无需先下载;pn_dir 指向 PhysioNet 上的库名
rec = wfdb.rdrecord('12726', pn_dir='prcp')
hdr = wfdb.rdheader('12726', pn_dir='prcp')
ann = wfdb.rdann('12726', 'anI', pn_dir='prcp')

print(rec.fs, rec.sig_len, rec.sig_name)     #-- 250 825000 ['ABP', 'ECG', 'Angle']
print(rec.units)                              #-- ['mmHg', 'mV', 'degrees']
print(rec.p_signal.shape)                     #-- (825000, 3) 已换算成物理单位
print(hdr.comments)                           #-- 年龄性别身高体重与生成说明
print(ann.sample[:3], ann.aux_note[:3])

p_signal 是按增益与零值换算过的浮点物理值;需要原始整数时用 d_signal。ann.sample 是采样点序号,除以 250 即得秒数;ann.aux_note 是随事件存下的文本。

2.4 三类标注的分工

ANNOTATORS 文件只有三行,把三类标注的角色定义得很清楚:

扩展名 官方角色说明 生成方式 典型内容 使用建议
anI major event annotations 人工 动作起止与信号质量注记,带文本 做分段与对齐的锚点
wqrs automatically generated beat annotations 自动 逐心搏的位置与类型 需要 RR 序列时可先用它,但应交叉验证
wabp automatically generated pulse annotations 自动 逐脉搏的位置与类型 用于从血压波形提取收缩压与舒张压序列

事件文本是自由文本,同一语义存在多种写法,还有截断与拼写问题。下面是把 12726 里出现过的事件文本按语义归拢后的对照:

归一化事件 标注里出现过的原始文本 含义
慢速倾斜 抬起开始 Initiate slow tilt up、Initiation of slow tilt up 倾斜床开始缓慢抬起
慢速倾斜 抬起结束 Conclude slow tilt up、Conclusion of slow tilt up 到达目标角度
慢速倾斜 放下开始 Initiate slow tilt down、Initiation of slow tilt down 开始缓慢放回平卧
慢速倾斜 放下结束 Conclude slow tilt down、Conclusion of slow tilt down、End slow tilt back down 回到平卧
快速倾斜 抬起开始 Initiate rapid tilt up、Initiation of rapid tilt up、Start fast tilt up 倾斜床快速抬起
快速倾斜 抬起结束 Conclude rapid tilt up、Conclusion of rapid tilt up、End rapid tilt up 到达目标角度
快速倾斜 放下开始 Initiate rapid tilt down、Initiation of rapid tilt down、Start rapid tilt down 开始快速放回平卧
快速倾斜 放下结束 Conclude rapid tilt down、Conclusion of rapid tilt down 回到平卧
起身 Stand up、Stand-up、Stand-up from supine 受试者主动从平卧站起
回到平卧 Transition back to supine、Back to supine 这一段应激结束
信号质量注记 Movement artifacts、Loss of ECG signal、ECG signal is back、Blood pressure signal fades、Blood pressure artifacts、Switched off Finapres、Switched Finapres on 采集过程的现场注记,不是动作

注意最后一行:这些注记里出现了 Finapres 这个设备名,与"连续无创指端血压"的采集方式相互印证;也出现了拼写与截断,例如 contacL、supin、Conslusion。做归一化时必须保留原文本作为溯源字段,不要覆盖。

2.5 与同类资源的字段差异

对比项 PRCP Orthostatic Challenge 心肺脑库 MIT-BIH 心律失常库 INCART 心律失常库
通道数 3 4 2 12
采样率 250 Hz 约 3 Hz 360 Hz 257 Hz
单条时长 55–74 分钟 33 分钟 约 30 分钟 30 分钟
记录数 10 9 48 75
是否含连续血压 是 是 否 否
是否含体位角度 是 否 否 否
是否含脑血流 否 是 否 否
人工标注层级 事件级 无逐搏标注 心搏级 心搏级
自动标注 心搏与脉搏 无 无 无
人群 健康志愿者 健康年轻人 心律失常门诊与住院 冠心病检查

这张表要说明的只有一件事:PRCP 在"原始波形 + 连续血压 + 体位角度"这个三元组上是唯一的。想要更高采样率的波形,别处有;想要更多模态,Orthostatic Challenge 有;想要心电加血压还带角度的 250 Hz 波形,只有这里。

2.6 三路通道各自的物理含义

通道 单位 头文件增益 测的是什么 常见失真来源
ABP mmHg 约 64.0 adu/mmHg 指端连续动脉血压波形 指套移位、信号衰减、换手指导致的中断
ECG mV 6554 adu/mV 单导联心电 运动伪迹、电极与皮肤接触不良
Angle degrees 约 173–176 adu/degree 倾斜床与水平面的夹角 传感器零点漂移、标记信号误触发

三路通道的物理含义决定了它们能回答的问题各不相同。血压通道给的是循环系统的被驱动量,心电通道给的是心脏的效应器反应,角度通道给的是外部扰动的时刻与幅度。三者合成一条时间轴之后,"扰动—被驱动量—效应器反应"这条链才是完整的;缺了任何一路,剩下的两路都无法确定因果方向。

§3 它是谁的数据

3.1 贡献者与机构

官方页面把署名给到两个人:Thomas Heldt,机构为麻省理工学院(剑桥,美国);Roger Mark,机构为 MIT 计算生理学实验室。页面提示联系通讯作者需登录后查看,这一点与其他 PhysioNet 项目一致。

原始论文的第一作者同样是 Heldt,合著者还有 M. B. Oefinger、M. Hoshiyama 与 R. G. Mark。也就是说,2016 年上线 PhysioNet 的这份数据,是 2003 年那篇会议论文的采集产物;中间隔着十余年才整理公开。

机构背景值得留意:MIT 计算生理学实验室是 PhysioNet 本身的维护方。这意味着本库不是外部机构捐赠后再由平台整理的产物,而是平台自己的研究组把自家实验数据按规范发布。好处是格式规整、标注角色清晰;代价是缺少独立第三方采集带来的多样性。

3.2 时间线

时间 事件 意义
2003 年 9 月 论文在 Computers in Cardiology 发表(30 卷 263–266 页) 原始实验与主要结论成型
2004 年 Heldt 完成博士论文,主题为体位应激下的心血管计算模型 数据的建模用途被明确
2016 年 2 月 8 日 .dat、.anI、.wqrs、.wabp 文件时间戳 信号与标注文件生成
2016 年 2 月 17 日 .hea、RECORDS、ANNOTATORS 文件时间戳 头文件与清单补齐
2016 年 2 月 18 日 PRCP 1.0.0 在 PhysioNet 上线 首次公开,至今唯一版本
2019 年 2 月 20 日 SHA256SUMS.txt 文件时间戳 补上完整性核验清单

从时间线能读出一个判断:这份数据从采集到公开,中间主要被用在计算模型的构建与验证上,而不是作为评测基准被设计出来。它后来被算法研究者当作外部测试集使用,是使用侧发展出来的身份,不是原始设计目标。

3.3 采集场景:倾斜床上的三种动作

按原始论文摘要,研究目的是弄清主动(起身)与被动(头高位倾斜,HUT)两种体位改变各自引发的血流动力学事件序列。受试者为 10 名健康志愿者,记录了三种动作下的心率与动脉血压:

动作 英文 参数 性质
快速倾斜 rapid tilt 75 度头高位,约 2 秒内完成 被动
慢速倾斜 slow tilt 75 度头高位,约 50 秒内完成 被动
起身 stand-up 受试者主动从平卧站起 主动

后续研究引用这份数据时描述了更细的方案:完整流程由六段组成,慢速倾斜、快速倾斜与起身各两次,每段持续约三分钟,段与段之间以约五分钟的平卧休息隔开,各段顺序随机化。

这个设计里最关键的一处是速率对照。快速倾斜与慢速倾斜的终点完全一样,都是 75 度头高位,唯一的差别是到达终点的快慢。原论文的核心观察正来自这里:快速倾斜与起身时出现的平均动脉压瞬态下陷与心率瞬态上升,在慢速倾斜时并不出现;而快速倾斜与起身两者的瞬态幅度虽然不同,相对时序却保持得很好。

换句话说,慢速倾斜之所以"没有瞬态",不是因为压力反射没工作,而是因为扰动足够慢,反射有充足时间跟上。这个结论只有在两路信号同步且角度被记录的情况下才推得出来——如果只有心率,就无法区分"反射没启动"和"反射启动了但扰动太慢看不出来"。

3.4 数据来源的三个层次

理解这份数据要先分清三层:

层次 是否公开 内容 对使用者的含义
原始采集记录 未公开 名为 xxxxx_orig 的记录 无法核对发布段之外是否还有内容
发布记录 公开 10 条 .hea + .dat,经 xform 转换 这是唯一的信号来源
标注层 公开 .anI 人工事件;.wqrs、.wabp 自动标注 分段与标签都要从这里构造

第一层不可得,说明为什么"发布段是否覆盖了完整试验流程"这个问题无法用公开数据自证;第二层决定了所有分析的时间基准都是 xform 之后的采样点序号;第三层决定了监督信号的时间粒度——事件级是秒级人工标记,心搏与脉搏级是自动算法输出。

§4 它最独特的东西

4.1 连续血压加角度通道这个组合为什么稀缺

公开的生理信号库在"血压"这件事上大致分成三类:袖带式血压库给的是每次测量一个数值,时间分辨率在分钟到小时级;重症波形库给的是动脉导管的连续波形,但受试者全程卧床,体位不变;可穿戴与光电容积脉搏波库给的是连续脉搏波,但没有经过定标的绝对血压值。

PRCP 落在第二类的技术形态里,却带着第三类才有的体位变化。它用指端无创连续血压(头文件与事件注记中都出现了 Finapres 这一设备名)拿到了逐搏的绝对血压,同时用倾斜床制造了可控、可记时、可重复的体位扰动。这两件事单独都不算稀奇,合在一起却很少见,因为做倾斜试验的临床科室通常不配连续血压设备,而配了连续血压设备的研究组通常不做体位试验。

4.2 主动与被动的对照:这是设计,不是巧合

三种动作里,慢速倾斜与快速倾斜是被动的——受试者躺在倾斜床上,床动,人不动。起身是主动的——床不动,人靠自己的肌肉完成体位改变。这个对照是原论文标题里就写明的:passive and active changes in posture。

被动体位改变时,下肢与腹腔的血液淤积是纯物理过程,肌肉泵基本不参与,静脉回流完全靠压力反射来救。主动起身时,下肢肌肉收缩产生的肌肉泵会挤压静脉、推动回流,同时中枢指令会提前改变自主神经张力。两者叠加的结果,是起身的血压下陷幅度与快速倾斜不同,但两者下陷与恢复的相对时序却很接近。原论文据此推断,时序主要由稳态反射机制决定,幅度才反映扰动的具体方式。

对算法研究者来说,这个对照意味着一个具体的用法:用被动段做"纯反射"基线,用主动段做"反射加肌肉泵"对照,两者的差就是肌肉泵与中枢指令的贡献。这是对照片,不是噪声。

4.3 案例:一条记录里的六段应激

取 12726。它的 .anI 里有 22 条事件标注,按时间排下来,六段应激的顺序与速率一目了然:

序号 采样点 时刻 原始事件文本 归一化语义
1 87240 05:49 Initiate slow tilt up 慢速倾斜 抬起开始
2 100107 06:40 Conclude slow tilt up 慢速倾斜 抬起结束
3 147069 09:48 Initiate slow tilt down 慢速倾斜 放下开始
4 159603 10:38 Conclude slow tilt down 慢速倾斜 放下结束
5 250298 16:41 Initiate rapid tilt up 快速倾斜 抬起开始
6 250876 16:44 Conclude rapid tilt up 快速倾斜 抬起结束
7 263047 17:32 Movement artifacts 信号质量注记
8 300583 20:02 Initiate rapid tilt down 快速倾斜 放下开始
9 301208 20:05 Conclude rapid tilt down 快速倾斜 放下结束
10 389279 25:57 Stand up 起身
11 390083 26:00 Lost ECG signal due to poor electrode-skin contacL 信号质量注记
12 437959 29:12 Transition back to supine 回到平卧
13 503071 33:32 Stand up 起身
14 548207 36:33 Transition back to supine 回到平卧
15 611960 40:48 Initiate slow tilt up 慢速倾斜 抬起开始
16 624810 41:39 Conclude slow tilt up 慢速倾斜 抬起结束
17 668177 44:33 Initiate slow tilt down 慢速倾斜 放下开始
18 680717 45:23 Conclude slow tilt down 慢速倾斜 放下结束
19 731981 48:48 Initiate rapid tilt up 快速倾斜 抬起开始
20 732477 48:50 Conclude rapid tilt up 快速倾斜 抬起结束
21 769438 51:18 Initiate rapid tilt down 快速倾斜 放下开始
22 769963 51:20 Conclude rapid tilt down 快速倾斜 放下结束

把相邻事件相减,能直接量出两种倾斜的速率差别:第一段慢速倾斜从第 87240 点抬到第 100107 点,历时 12867 个采样点,按 250 Hz 折算约 51.5 秒;第一段快速倾斜从第 250298 点抬到第 250876 点,只用了 578 个采样点,约 2.3 秒。两个数字与论文摘要里写的"75 度头高位,慢速 50 秒、快速 2 秒"完全对上——这说明事件标注的时间戳是可信的,可以拿来当分段锚点用。

六段的顺序也印证了随机化:12726 的排列是慢速、快速、起身、起身、慢速、快速,而不是按类型分组。段与段之间的间隔在三到六分钟不等,与文献描述的五分钟平卧休息大体相符。

4.4 标注的粒度:事件级人工,心搏与脉搏级自动

层级 文件 粒度 是否人工 可直接用作标签吗
事件 .anI 秒级时刻加文本 是 归一化后可以
心搏 .wqrs 逐心搏 否,算法生成 需要交叉验证
脉搏 .wabp 逐脉搏 否,算法生成 需要交叉验证

事件级标注的价值在于它给了外部扰动的准确时刻——这是从信号本身很难反推出来的信息。倾斜床什么时候开始动,只有现场的人知道。有了这个锚点,所有后续的时序分析才有共同的零点。

自动标注则提供了逐搏序列的便利。从心电通道到 RR 间期序列、从血压通道到逐搏收缩压与舒张压序列,都可以从 .wqrs 与 .wabp 直接取位置。但要注意两者的可靠性并不相同:自动心搏标注在健康人平稳记录上通常够用,而自动脉搏标注在血压信号衰减或换指套中断的段落上更容易出错——事件文本里那些 Blood pressure signal fades、Switched off Finapres 的注记,正是这类中断的现场记录。

4.5 边界条件:什么情况下它不再适用

条件 是否适用 判断依据
你要研究压力反射的时序与幅度 适用,这是它的设计目标 原论文的核心结论即由此得出
你要做主动与被动体位的对照 适用,且是少数可选库之一 三种动作里包含主动起身
你要评测连续血压算法的瞬态响应 适用 250 Hz 连续血压配角度通道
你要评测算法的长期漂移 不适用 单段最长 74 分钟
你要做体位性低血压的临床预测 不适用 受试者全为健康志愿者
你要做人群流行病学统计 不适用 10 人,单中心
你要做多导联心电形态学研究 不适用 只有单导联
你要做儿童或老年人生理建模 不适用 年龄范围 22–34 岁

§5 怎么拿到

5.1 目录结构与下载面

PhysioNet 的文件目录是扁平的:根目录下直接放 10 组五个文件,加三个附属文件,没有按受试者或日期分的子目录。

路径 内容 大小量级
/files/prcp/1.0.0/RECORDS 10 行记录名 60 字节
/files/prcp/1.0.0/ANNOTATORS 三类标注的角色说明 121 字节
/files/prcp/1.0.0/SHA256SUMS.txt 52 个文件的散列值 3.8 KB
/files/prcp/1.0.0/xxxxx.hea 头文件 约 300 字节
/files/prcp/1.0.0/xxxxx.dat 三路通道信号 4.7–6.4 MB/条
/files/prcp/1.0.0/xxxxx.anI 人工事件标注 554–990 字节
/files/prcp/1.0.0/xxxxx.wqrs 自动心搏标注 8.3–88.2 KB
/files/prcp/1.0.0/xxxxx.wabp 自动脉搏标注 44.5–75.4 KB

全库解压后 54.1 MB,官方提供整库 ZIP 包,也可以逐文件目录下载或用命令行工具同步。这个体量意味着全量下载与全量跑通都不需要特殊资源——这是它相对大多重症波形库的一个实用优点。

5.2 批量下载

#-- 整库递归下载,只取需要的扩展名
wget -r -N -c -np --accept=hea,dat,anI,wqrs,wabp,txt \
     https://physionet.org/files/prcp/1.0.0/

#-- 或用官方推荐的 Python 包
physionet download prcp --version 1.0.0

#-- 下载后核对散列值
cd prcp/1.0.0 && sha256sum -c SHA256SUMS.txt

三步里最容易漏的是第三步。.dat 文件接近 5 MB,网络中断后 wget 的 -c 续传有可能产生静默损坏;用 SHA256SUMS.txt 核一遍只要几秒钟。

另外注意 ANNOTATORS 与 RECORDS 这两个文件名没有扩展名,按扩展名过滤的下载命令会把它们挡在外面,需要单独取。

5.3 用 wfdb 直接流式读取

import wfdb

names = wfdb.get_record_list('prcp')
print(len(names), names[0], names[-1])     #-- 10 12726 13960

#-- 逐条流式读取,不落盘
for name in names:
    hdr = wfdb.rdheader(name, pn_dir='prcp')
    ann = wfdb.rdann(name, 'anI', pn_dir='prcp')
    print(name, hdr.fs, hdr.sig_len, len(ann.sample))

get_record_list 从 RECORDS 解析,能正确处理末行无换行的情况。不落盘的好处是省磁盘,代价是每条都要重新走网络。

5.4 事件标注的读取与归一化

事件文本是自由文本,同一语义有多种写法,使用时必须做一层归一化映射:

import re
import wfdb

def normalize(text):
    #-- 统一小写并去掉首尾空白,再按关键词判语义
    t = (text or '').strip().lower()
    if 'stand' in t:
        return 'stand_up'
    if 'supine' in t or 'back to' in t:
        return 'back_to_supine'
    if 'rapid' in t or 'fast' in t:
        return ('rapid_tilt_up' if 'up' in t else 'rapid_tilt_down')
    if 'slow' in t:
        return ('slow_tilt_up' if 'up' in t else 'slow_tilt_down')
    return 'note'

rec = wfdb.rdheader('12726', pn_dir='prcp')
ann = wfdb.rdann('12726', 'anI', pn_dir='prcp')
events = [(s / rec.fs, normalize(a), a) for s, a in zip(ann.sample, ann.aux_note)]
for t, lab, raw in events[:6]:
    print(round(t, 2), lab, '|', raw)

归一化时保留 raw 原文本是必要的。库里存在拼写与截断(例如 contacL、supin、Conslusion),原文本是溯源与纠错的唯一依据。

把事件配成起止对之后,可以得到每段应激的区间,这就是后续所有时序分析的骨架:

应激类型 起点事件 终点事件 单次时长量级
慢速倾斜 慢速倾斜 抬起开始 慢速倾斜 放下结束 从约 50 秒抬起到停留再放回,共约三分钟
快速倾斜 快速倾斜 抬起开始 快速倾斜 放下结束 约 2 秒抬起到停留再放回,共约三分钟
起身 起身 回到平卧 站立维持约三分钟

5.5 转成定长窗口

下游是常规深度学习管线时,通常需要切成定长片段:

import wfdb
import numpy as np

FS = 250
WIN = 10 * FS        #-- 十秒一窗

rec = wfdb.rdrecord('12726', pn_dir='prcp')
ann = wfdb.rdann('12726', 'anI', pn_dir='prcp')
x = rec.p_signal                                  #-- (825000, 3) 物理单位

#-- 以事件时刻为锚,切出应激前后的窗口
for s in ann.sample[:4]:
    a, b = int(s) - 30 * FS, int(s) + 30 * FS
    if a < 0 or b > rec.sig_len:
        continue
    print(ann.aux_note[0], x[a:b].shape)

这段只演示切窗口径,正式实验时有三处必须改:一是窗标签口径要写进方法节,否则复现不了;二是要按应激段而不是按整条记录切,否则平卧基线会把应激信号稀释掉;三是三路通道要一起留着,丢掉角度通道就等于放弃了定位应激时刻的能力。

5.6 五个最容易出错的地方

位置 错误写法 后果 正确做法
读标注 rdann(rec, 'atr') 文件不存在,本库无 .atr 分别读 anI、wqrs、wabp
事件文本 拿原文当标签直接编码 多种写法被当成不同类别 先归一化,保留原文溯源
幅度比较 直接用 d_signal 跨记录比 血压与角度增益逐记录浮动 用 p_signal 换算到物理单位
切窗 按整条记录均匀切 平卧段稀释应激信号 以事件时刻为锚切段
采样率 当成 24000 Hz 时间轴完全错乱 250 Hz 是采样率,24000 是计数频率

§6 与库内条目的关系

6.1 关系图谱

PRCP 在生理信号类内容里的位置,可以用"是否含连续血压 × 是否有体位变化"两个轴摆出来:

条目 连续血压 体位变化 采样率 与 PRCP 的关系
cardioresp-response-orthostat 有 有(一次起立) 约 3 Hz 最近邻:同为体位应激,但它是重采样后的多模态序列
mit-bih-arrhythmia 无 无 360 Hz 互补:心电标注基准,无血压
barcelona-sicu-signals 有 无 高采样 互补:重症连续波形,但患者全程卧床
pulse-transit-time-ppg 有(推算) 无 多传感器 互补:脉搏波与传导时间,无体位扰动
bp-graphene-bioimpedance 有 无 可穿戴 互补:腕上阻抗估计血压,缺少体位维度
autonomic-aging-cardiovascular 无 无(静息) 生理信号 互补:自主神经衰老,静息二十分钟
bpssrat 有 无 动物逐搏 方法学参考:动物模型的逐搏血压
multi-gait-posture 无 有(行走) 多相机 对照:同含 posture 主题,但测的是运动学
motion-artifact 无 有 多模态 方法学参考:运动伪差的对照设计

6.2 检索路径

你要找的东西 检索词 会落到哪里
体位应激的另一个库 orthostat、orthostatic challenge §6.1 第一行
连续血压的参考信号 ABP、arterial blood pressure、Finapres §2.6 与 §6.1
压力反射与心率变异 baroreflex、autonomic、heart rate variability §1.1 与 §7.4
心电标注的标准码表 PhysioBank annotation、wqrs §2.4
运动伪差的处理 motion artifact、movement artifacts §5.4 的注记字段
动物逐搏血压 bp、beat-by-beat §6.1 第七行
自主神经与衰老 autonomic、aging §6.1 第六行

6.3 与其他库的分工判据

任务 主粮仓该用什么 PRCP 的位置 原因
压力反射敏感性估计 无可替代 主力 逐搏血压与 RR 同源同步
主动与被动体位对照 无可替代 主力 三种动作里含主动起身
连续血压算法的瞬态评测 大型重症波形库 主力之一 有外源扰动,可测瞬态
心搏分类的跨库测试 MIT-BIH 心律失常库 辅助 只有 10 人,样本量不足
系统间耦合与网络生理 Orthostatic Challenge 辅助 它只有三路,不含脑血流
长期血压负荷 长程监护库 不适用 单段不足 75 分钟
多中心泛化 多中心队列 不适用 单中心采集
可穿戴日常活动心率 PPG 日常活动库 不适用 无自由活动场景

§7 质量评估与局限性

7.0 阅读本节前的一个前置校正

先纠正一个常见误判:把 10 人小样本当成"质量差"。PRCP 的规模不是采集能力不足的结果,而是这类实验本身的现实约束——倾斜床加连续血压采集需要受试者到现场、逐人进行,不可能像回顾性提取住院记录那样把样本量堆上去。

这个校正会改变五维评分的读法。规模一项它拿不到高分,但在"任务唯一性"上它几乎没有替代品。把这两件事混在一起看,就会得出"不值得用"的错误结论。

7.1 五维评分

按 DAIMS 的常用维度打分,每项 1–5 分,分数针对"作为体位应激生理研究数据"这个用途:

维度 分数 理由
数据规模 2 10 条记录、10 名受试者,训练不足,验证够用
标注质量 4 事件级人工标注,但文本自由、存在拼写与截断
任务适配 5 心电加连续血压加角度,该组合在公开数据里唯一
文档完整 3 官方页面只有摘要与一句数据描述,细节需读头文件
可获取性 5 免注册、ODC-BY、54.1 MB,一次下完

五项合计 19 分(满分 25)。分数结构说明它是"偏科型"选手:规模与文档是短板,适配性拉满。

7.2 标注质量的两层

第一层是事件时刻准不准。人工事件标注的价值在于给出外部扰动的准确时刻,这一点它做到了——由事件时刻反算出的倾斜速率与论文描述完全吻合(§4.3)。

第二层是事件文本能不能直接用。自由文本带来三类问题:同一语义多种写法(Initiate、Initiation、Start)、拼写问题(Conslusion、contacL)、截断(supin、supin)。这些问题使文本不能直接当标签,必须先归一化。

用途 自由文本的影响 建议
分段与对齐 小,时刻本身是可靠的 直接用时刻
动作类型标签 大,需归一化 建映射表,保留原文
信号质量筛选 中,注记措辞不统一 按关键词匹配后人工复核
跨记录统计 大,措辞差异会污染统计 统计前先归一化

7.3 已知的、可枚举的偏差

偏差 表现 影响
人群单一 全部为健康志愿者,年龄 22–34 岁 不能外推到患者、儿童或老年人
单中心 一处实验室采集 设备与操作规范单一
样本量 10 名受试者 按人计的统计量不稳定
文本不规范 拼写、截断、多写法并存 标签需二次加工
自动标注误差 .wqrs、.wabp 为算法产物 时间敏感指标会带上误差
血压通道中断 事件注记中出现信号衰减与换设备 段落连续性受损
原始记录未公开 发布段经 xform 截取 无法核对完整试验流程
无日期字段 头文件只有基准时刻 无法做跨天分析

最后一条容易被忽略。头文件记录行的最后一个字段是时刻而非日期,所以任何按日期分组、按昼夜切分的分析在这份数据上都做不了。

7.4 外部验证矩阵

验证角色 做法 讲得通的地方 风险
压力反射估计方法对照 在同一批应激段上比较不同估计器 扰动可定位,序列同源 不同论文的事件口径可能不同
心率血压耦合分析 用信息分解等方法判断方向性 外源扰动使因果方向可判 伪迹段若不剔除会污染结果
连续血压算法外测 把指端连续血压当参考,评测推算值 覆盖体位变化这一难例 参考本身有衰减与中断
建模数据集 用六段应激拟合心血管模型参数 扰动幅度与速率已知 10 人不足以支撑复杂模型

公开文献里能看到这几类用法。原论文(2003 年)用它比较了快速倾斜、慢速倾斜与起身三种扰动下的瞬态差异;后续有研究组用它做心率与血压序列间的信息分解,明确以第一次快速倾斜前后的片段作为分析对象;也有国内期刊论文用它分析直立倾斜引起的心率与血压耦合变化。

这些引用说明它作为"带外源扰动的同步双序列"已有稳定身份,但它从来不是一个评测基准库。把它的数字直接和别的库横向比较,通常不成立——因为不同论文切段的起点、长度与伪迹处理方式都不一样。

7.5 它为何能持续

它没有版本更新、没有扩版,却一直被引用,原因是它占着一个别人不愿再占的坑:连续血压加量化体位角度加同步心电。新增这样的库需要一组研究人员既愿意做倾斜试验、又愿意逐人采集连续血压、还愿意把原始波形整理公开。这个前提比"再导出一批住院波形"难得多。只要这个组合仍然稀缺,它作为方法学验证材料的价值就不会被新库替代。

§8 生态位与历史

8.1 历史沿革

PRCP 的时间跨度很长。实验与论文在 2003 年完成,数据直到 2016 年才在 PhysioNet 上线。中间这段时间里,PhysioNet 完成了从 PhysioBank 时代到现代内容平台的迁移,格式规范与标注体系也经历了整理。

这种"先有论文、后有数据发布"的路径在生理信号库里并不少见,但它带来一个具体后果:数据发布的详细程度往往取决于整理时还剩多少原始文档。PRCP 的官方页面只有一段摘要与一句数据描述,没有逐条记录的说明文档,也没有逐通道的采集参数表——所有细节都得从头文件和标注文件里读出来。

8.2 与挑战赛的关系

它和挑战赛的关系要说得保守一些。PhysioNet 的挑战赛体系从 2000 年代延续至今,房颤分类、心率变异、信号处理等方向都办过赛事。就 PRCP 而言,官方页面没有把它列为任何挑战赛的官方数据源,它也没有像某些库那样被切片打包进赛事训练集。

把这一点说清楚是有意义的:有些人以为"在 PhysioNet 上就是挑战赛数据",其实不然。平台上有大量与挑战赛无关的独立捐赠数据,PRCP 属于这一类。它的用户来自文献引用和方法学研究,不是来自赛事排行榜。

8.3 生态位:方法学验证材料而不是评测基准

角色 评测基准 方法学验证材料
典型用法 训练与排名 验证估计器、比较方法、展示机制
需要的前提 大样本、统一标签、公开榜单 外源扰动已知、信号同步、物理单位可换算
代表库 MIT-BIH 心律失常库、各届挑战赛库 本库、部分小体量机制研究库
失败模式 过拟合榜单、标签噪声累积 口径不统一导致结果不可比

PRCP 坐在右边这一列。把它当评测基准用,会立刻遇到样本量瓶颈;把它当方法学验证材料用,它的设计优势才发挥出来。

8.4 谁在用它,用来做什么

从公开文献看,使用者大致分三类:做自主神经与压力反射的机制研究组(用它看瞬态时序)、做心率血压耦合与信息分解的信号处理组(用它做双序列分析)、做连续血压与无袖带估计的工程组(把它当难例)。三类都不追求规模,追求的是那份"扰动时刻已知、两路信号同源同步"的确定性。

§9 使用指引

9.1 三种角色的路径

角色 第一天 第一周 注意事项
机制研究者 读官方页与头文件,跑通 §2.3 的读取 读出六段应激的起止,分段做时序分析 先剔除伪迹段再统计(§5.4)
算法工程师 抽一路心电与一路血压跑基线 在应激段上评测瞬态响应 报告要分段,不要只报整条平均
教学人员 截取 §4.3 的六段应激画图 做扰动—反射对照的教学图 图上要标出伪迹注记的位置

9.2 一条最短的可用流程

#-- 1. 取记录清单
curl -sL https://physionet.org/files/prcp/1.0.0/RECORDS -o RECORDS

#-- 2. 下载一条记录的五个文件
for ext in hea dat anI wqrs wabp; do
  curl -sL -o "12726.$ext" "https://physionet.org/files/prcp/1.0.0/12726.$ext"
done

#-- 3. 核对完整性
sha256sum -c <(grep 12726 SHA256SUMS.txt)
import wfdb

#-- 4. 读出事件时刻,定位六段应激
hdr = wfdb.rdheader('12726')
ann = wfdb.rdann('12726', 'anI')
for s, txt in zip(ann.sample, ann.aux_note):
    print(f'{s / hdr.fs:8.2f} s  {txt}')

#-- 5. 读出三路通道的物理值
rec = wfdb.rdrecord('12726', physical=True)
print(rec.sig_name, rec.units, rec.p_signal.shape)

9.3 引用方式

引用对象 内容
数据集 Physiologic Response to Changes in Posture, version 1.0.0. PhysioNet. 2016.
DOI 10.13026/C2PC7R
原始论文 Heldt T, Oefinger MB, Hoshiyama M, Mark RG. Circulatory response to passive and active changes in posture. Comput Cardiol, 30:263–266, Sept. 2003.
相关学位论文 Heldt T. Computational models of cardiovascular response to orthostatic stress. Thesis (Ph.D.)—Harvard-MIT Division of Health Sciences and Technology, 2004.
平台 PhysioNet 平台综述论文(2026 年发表于 Nature Health),按官方页面的 Cite 按钮生成

写论文时建议同时注明:使用的版本号(1.0.0)、应激段的切分口径、以及是否剔除了事件注记中标记为伪迹的段落。这三项决定了结果能否被复现。

§10 AI 使用声明

项目 声明
文本生成 本文由 AI 辅助撰写,编辑把关结构与事实
数字来源 规模、结构、边界三类数字来自 PhysioNet 官方页面与官方文件目录中的头文件、记录清单与标注清单
文件核验 10 份 .hea、10 份 .anI、RECORDS、ANNOTATORS、SHA256SUMS.txt 经直接访问确认;.wqrs 与 .wabp 经抽样读取确认符号类型
不一致说明 官方摘要称三种动作为 slow tilt、fast tilt、standing-up,而标注文件内的事件文本使用 rapid tilt,两种叫法并存;头文件不含患者编号与诊断字段,与同平台部分心电库不同
论文信息 2003 年会议论文与 2004 年学位论文的题录经检索确认,正文结论引自摘要,未读全文;引用次数为检索时快照
未核验内容 各记录 .wqrs 与 .wabp 的标注条数;每条记录内六段应激与受试者的逐一对应关系;12821 的 .wqrs 体积明显偏小的成因;角度通道的零点校准方式
图像 无配图;封面为生成式提示词,不含真实生理波形
免责 本文不构成临床建议;数据使用须遵守 ODC-BY 1.0 的署名要求

常见误读(避坑清单)

说法 实际 证据
「它有 .atr 注释文件」 没有;三类标注分别为 .anI、.wqrs、.wabp ANNOTATORS 只有三行
「它有一百多条记录」 只有 10 条,一人一段 RECORDS 十行
「它是患者数据」 受试者全部为健康志愿者 官方页面摘要
「它有晕厥或阳性结局标签」 没有结局标签,只有事件时刻与文本 官方页面与标注内容
「事件文本可以直接当标签」 自由文本,多写法、有拼写与截断 .anI 的 aux_note 内容
「三路通道增益都一样」 心电一致为 6554,血压与角度逐记录浮动 十份头文件的增益字段
「采样率是 24000 Hz」 250 Hz;24000 是计数频率 头文件记录行第 3 字段
「角度通道是卧位/立位二值」 是以度为单位的连续量 头文件单位字段 degrees
「它可以做长时程负荷统计」 单段最长 74 分钟,全库约 10.3 小时 头文件采样点数字段
「它和 Orthostatic Challenge 是同一份数据」 不同:一个 250 Hz 三路波形,一个约 3 Hz 四模态序列 两份官方页面的数据描述

FAQ

Q1:PRCP 有多少条记录?一条记录对应一次动作还是一个人?
10 条记录,一条记录对应一名受试者的整段体位试验。每人一段,段内包含多次应激动作,由 .anI 事件标注给出每次动作的起止时刻。因此按记录划分与按受试者划分是等价的,不存在同一人跨段的泄漏问题。

Q2:为什么这个库必须同时给心电和连续血压?
因为它要回答的问题是"血压先掉还是心率先升"。这是一条有时间顺序的因果链:重力造成血压下陷,压力感受器察觉后经自主神经上调心率。要量出这个顺序,两路信号必须在同一时间轴上严格同步,而且血压必须逐搏连续——袖带一分钟一个点,抓不住只有几秒的瞬态。

Q3:事件标注里的文本为什么不能直接当标签用?
它是采集者在现场敲下的自由文本,不是为建模准备的编码表。同一个"慢速倾斜抬起开始",库里就有 Initiate slow tilt up、Initiation of slow tilt up、Start slow tilt up 等写法;还存在拼写与截断问题。正确做法是先建立归一化映射,再把原文保留为溯源字段。

Q4:慢速倾斜和快速倾斜的终点一样,为什么反应不一样?
终点确实一样,都是 75 度头高位,差别只在到达的快慢。原论文的观察是:快速倾斜与起身时出现的平均动脉压瞬态下陷与心率瞬态上升,在慢速倾斜时不出现。解释是慢速倾斜的扰动足够慢,压力反射有充足时间跟上,瞬态被"摊平"了;而两者反应幅度虽有差别,相对时序却保持得很好,说明时序由稳态反射机制决定。

Q5:十个人够用吗?
看用途。做方法学验证、机制展示、难例评测,10 人足够——因为关注点在于扰动与响应的对应关系,不在于人群分布。做统计推断、模型训练、人群外推,10 人远远不够。把这两类用途混在一起,是它最常被误用的地方。

Q6:许可允许商用吗?需要注意什么?
ODC-BY 1.0 允许商业使用,条件是署名。引用时建议同时给出数据集全名、版本号与 DOI,并保留 PhysioNet 的平台引用;若论文里使用了特定应激段,还应写明切段口径与伪迹处理方式,否则结果无法复现。

术语表

术语 解释
PRCP Physiologic Response to Changes in Posture,体位改变生理反应数据库
倾斜床试验 受试者平卧于可倾斜床,通过抬起床面模拟体位改变的检查方法
头高位倾斜 head-up tilt,HUT,把床面头端抬高的体位应激方式
被动体位改变 由外力(倾斜床)造成的体位变化,受试者肌肉不主动参与
主动体位改变 受试者靠自身肌肉完成的体位变化,如起身
压力反射 baroreflex,压力感受器感知血压变化后经自主神经调节心率与血管张力的反射
压力反射敏感性 baroreflex sensitivity,单位血压变化引起的心率或间期变化量
平均动脉压 mean arterial pressure,MAP,一个心动周期内动脉压的平均值
动脉血压 arterial blood pressure,ABP,本库中指指端连续血压波形
Finapres 一种指端无创连续血压测量设备,事件注记中出现其开关记录
RR 间期 相邻两个心搏 R 峰之间的时间间隔
WFDB PhysioNet 使用的波形数据库格式,含头文件、信号与注释
.hea 纯文本头文件,声明采样率、增益、单位与受试者信息
.dat 二进制信号文件,多路通道交错存放
.anI 人工标注的主要事件文件,含时刻与文本
.wqrs 由 wqrs 算法自动生成的心搏标注
.wabp 由 wabp 算法自动生成的脉搏标注
增益 每物理单位对应的 ADC 整数值,换算物理量时使用
ADC 零值 零电平对应的整数值,换算时先减去
校验和 采样点累加和,用于检测文件是否完整
计数频率 WFDB 头文件里与采样率并列的时间基准参数
xform WFDB 工具集中的记录转换与截取工具
ODC-BY 开放数据共享署名许可

附录 A:核心数字核对表

项 值 出处
记录数 10 官方页面;RECORDS 十行
受试者数 10 名健康志愿者 官方页面摘要
性别构成 性别字段 M 的 5 人、F 的 5 人 十份 .hea 注释行的 <sex> 字段
年龄范围 22–34 岁 十份 .hea 注释行的 <age> 字段
身高范围 155–192 cm 十份 .hea 注释行的 <Height> 字段
体重范围 55–100 kg 十份 .hea 注释行的 <Weight> 字段
通道数 3 官方文件目录;十份 .hea 记录行第 2 字段
采样率 250 Hz 十份 .hea 记录行第 3 字段
计数频率 24000 十份 .hea 记录行第 3 字段斜杠后
单条采样点数 825000–1110000 十份 .hea 记录行第 4 字段
单条时长 55 分 00 秒至 74 分 00 秒 采样点数 ÷ 250 Hz
全库时长 约 10.3 小时 十条记录时长求和
心电增益 6554 adu/mV 十份 .hea 信号行增益字段
血压增益 64.00–64.05 adu/mmHg 十份 .hea 信号行增益字段
角度增益 173.12–175.63 adu/degree 十份 .hea 信号行增益字段
每记录事件标注数 20–29 条 十份 .anI 文件逐条计数
全库事件标注数 224 条 十份 .anI 文件逐条计数求和
标注种类 3 类 ANNOTATORS 三行
目录内文件数 53 官方文件目录列表
受校验文件数 52 SHA256SUMS.txt 行数
解压后体量 54.1 MB 官方页面 Files 段
版本号 1.0.0 官方页面 Versions 段
发布日期 2016 年 2 月 18 日 官方页面 Published 段
DOI 10.13026/C2PC7R 官方页面 Discovery 段
许可 Open Data Commons Attribution License v1.0 官方页面 License 段
倾斜目标角度 75 度头高位 2003 年会议论文摘要
慢速倾斜耗时 约 50 秒 2003 年会议论文摘要
快速倾斜耗时 约 2 秒 2003 年会议论文摘要
单次应激时长 约 3 分钟,各两次,顺序随机 后续研究对该方案的复述

附录 B:数字的来源分层

第一层:官方页面与官方文件。 记录数、受试者数、通道数、采样率、采样点数、增益、许可、版本、发布日期、DOI、体量。这些数字来自项目主页的摘要与文件目录,以及 10 份头文件、RECORDS、ANNOTATORS、SHA256SUMS.txt 的逐字内容。

第二层:文献摘要。 倾斜目标角度 75 度、慢速约 50 秒、快速约 2 秒、瞬态差异的有无、以及六段三分钟加五分钟平卧休息的方案描述。这些来自 2003 年会议论文摘要与后续研究的方法节,只能支撑"文献这样描述"与"文献这样使用",不能支撑"这样用效果如何"。

第三层:写手核验。 单条时长由采样点数除以采样率得到;全库时长由十条记录时长求和得到;事件标注条数由十份 .anI 逐条计数得到。这些是换算与清点,不是推断,已在附录 A 注明。

第四层:未核实。 各记录 .wqrs 与 .wabp 的标注条数、六段应激与受试者的逐一对应关系、12821 的 .wqrs 体积明显偏小的成因、角度通道的零点校准方式。正文中凡是涉及这些的地方都只做定性表述。

附录 C:完整参考文献

编号 文献 链接 用途
1 Physiologic Response to Changes in Posture v1.0.0 https://physionet.org/content/prcp/1.0.0/ 全部规模、结构、边界数据的来源
2 该库的 PhysioNet 文件目录 https://physionet.org/files/prcp/1.0.0/ 头文件、记录清单、标注清单、散列清单
3 Heldt T, Oefinger MB, Hoshiyama M, Mark RG. Circulatory response to passive and active changes in posture. Comput Cardiol, 30:263–266, Sept. 2003 http://www.cinc.org/Proceedings/2003/pdf/263.pdf 采集方案与核心结论
4 Heldt T. Computational models of cardiovascular response to orthostatic stress. Thesis (Ph.D.)—Harvard-MIT Division of Health Sciences and Technology, 2004 官方页面 References 段 数据的建模用途
5 PhysioNet 平台综述(2026,Nature Health) https://doi.org/10.1038/s44360-026-00096-z 托管模式与引用规范
6 Rivolta MW, Sassi R. CinC 2020 论文(引用本库做压力反射估计方法对照) https://www.cinc.org/archives/2020/pdf/CinC2020-444.pdf 六段三分钟方案与外测角色
7 直立倾斜引起的心率和血压的耦合性变化分析,中国生物医学工程学报 http://cjbme.csbme.org/CN/Y2017/V36/I3/284 中文文献对本库的用法

附录 D:任务代码

任务一:读出六段应激的起止时刻

import wfdb

def events(name):
    #-- 事件时刻存在 .anI 里,文本存 aux_note
    hdr = wfdb.rdheader(name, pn_dir='prcp')
    ann = wfdb.rdann(name, 'anI', pn_dir='prcp')
    return [(s / hdr.fs, txt) for s, txt in zip(ann.sample, ann.aux_note)]

for name in wfdb.get_record_list('prcp'):
    ev = events(name)
    print(name, 'events =', len(ev), '| first =', ev[0][1])

任务二:按应激段切出同步的双序列

import wfdb
import numpy as np

FS = 250

def segments(name, pad_before=30, pad_after=180):
    #-- 以每次"抬起开始"为锚,向前取基线、向后取应激期
    rec = wfdb.rdrecord(name, pn_dir='prcp', physical=True)
    hdr = wfdb.rdheader(name, pn_dir='prcp')
    ann = wfdb.rdann(name, 'anI', pn_dir='prcp')
    out = []
    for s, txt in zip(ann.sample, ann.aux_note):
        low = t = None
        t = (txt or '').strip().lower()
        if 'tilt' in t and 'up' in t and ('initiate' in t or 'start' in t):
            a = max(0, int(s) - pad_before * FS)
            b = min(hdr.sig_len, int(s) + pad_after * FS)
            out.append((t, rec.p_signal[a:b, :]))
    return out

for tag, seg in segments('12726'):
    print(tag, seg.shape)      #-- (帧数, 3) 三路通道同步

第二段给的是"以事件为锚切段"的最小骨架。上正式实验时有两处必须改:一是伪迹段要先剔除,事件注记里标了 Movement artifacts、Loss of ECG signal、Blood pressure signal fades 的位置都不该进统计;二是基线长度与应激期长度要写进方法节,否则复现不了。

附录 E:如果只记五件事

序号 记住什么 为什么
1 10 条记录、10 名健康志愿者、3 路通道、250 Hz、全库约 10.3 小时 这五个数字定义了一切用法与限制
2 它是"带外源扰动的同步双序列"而不是评测基准 追求规模和榜单的人用错地方了
3 慢速与快速倾斜终点相同,差别只在速率 这是原论文核心结论的来源
4 .anI 事件文本是自由文本,必须先归一化 多写法、拼写与截断都会污染标签
5 没有 .atr,三类标注各占一个扩展名 照抄其他库的读取代码会直接失败

编辑说明

本文的核验时间为 2026 年 10 月 29 日。核对方式为直接访问 PhysioNet 项目页与文件目录,逐一确认 10 份 .hea 头文件、10 份 .anI 事件标注、RECORDS、ANNOTATORS、SHA256SUMS.txt 的可访问性与内容,并抽样读取 .wqrs 与 .wabp 以确认标注符号类型。方案细节(75 度、慢速约 50 秒、快速约 2 秒、六段三分钟加五分钟平卧休息)来自 2003 年会议论文摘要与后续研究的方法节,未读全文。

需要说明的三处差异:其一,官方摘要把三种动作写作 slow tilt、fast tilt、standing-up,而标注文件里的事件文本用 rapid tilt,本文在归一化时统一为"快速倾斜"并保留原文;其二,头文件不含患者编号与诊断字段,只有年龄、性别、身高、体重四项,因此不存在"同一人跨段"的划分陷阱;其三,12821 的 .wqrs 文件体积明显小于其余记录,成因未在官方页面说明,本文已列入未核验内容。


相关数据集导航

以下为站内 AI-Ready 数据集百科中与本词条共享多个主题标签的相关数据集,按相关度降序排列:

导航说明:本章节由全站统一标签体系自动计算生成(标签重合度算法),双向可达;点击链接可跳转至对应数据集词条。

返回 AI-Ready 数据集