八十人一次压力爬坡 — PEEP 呼气阻断呼吸库

80 名成人 / 0.5 cmH₂O 步进 / 100 Hz+50 Hz 双采样

来源 https://physionet.org/content/respiratory-dataset/1.0.0/发布时间: 2026-10-29最后更新: 2026-10-29 阅读 5
八十人一次压力爬坡 — PEEP 呼气阻断呼吸库

信息速览

数据集名称八十人一次压力爬坡 — PEEP 呼气阻断呼吸库
数据类型时序信号,波形,多模态,元数据
规模80 名成人/4 组人群
接入方式https://physionet.org/content/respiratory-dataset/1.0.0/
AI 就绪度

呼吸力学研究长期缺的不是病人,而是能同时看见压力、流量、胸腹运动和肺内通气分布的那二十分钟。医院里的呼吸机把波形锁在厂商格式里,ICU 的监护数据又常因隐私与授权无法整段带出;公开的 CPAP 数据集大多只有压力与流量两路,能算呼吸做功,却说不清胸廓与腹部各自贡献了多少、肺的哪个区域在响应压力。于是模型越写越精细,校准数据却始终是二维的。更麻烦的是,多数公开记录只覆盖一个稳态压力:受试者坐定、压力固定、呼吸平稳,模型看不到同一颗肺在压力变化时如何重新分配通气。缺少阶跃,就缺少辨识弹性与阻力的独立信息;缺少阻断,就只能把主动吸气与被动呼气混在一起算。这个库试图补上的,正是这两个缺口。

这个库把四路信号放进了同一段时间轴:面罩口的压力与流量、胸带与腹带的动态周长、以及 32×32 的电阻抗断层(Electrical Impedance Tomography,EIT)通气图像。80 名成人坐位,PEEP 从低到高逐档抬升,每档 30 秒,中途用快门快速阻断呼气以暴露被动肺力学。它不漂亮,文件大、时钟不齐、标签要自己造;但它提供的是一种少见的"同体多模态压力响应",而不是又一批孤立波形。一屏速览如下。

维度 内容
官方全名 Respiratory dataset from PEEP study with expiratory occlusion
发布平台 PhysioNet(RRID:SCR_007345)
贡献机构 新西兰坎特伯雷大学机械工程系;德国富特旺根大学技术医学研究所
通讯作者 Ella Frances Sophia Guy(坎特伯雷大学)
首次发布 2023 年 11 月 10 日,版本 1.0.0
最近改动 公开版本仍为 1.0.0;部分文件的服务器时间戳为 2024 年 9 月 18 日
受试者 80 名成人,男女各半;哮喘、吸烟、电子烟、健康四组各 20 名(每组男女各 10)
记录单位 每名受试者一段连续记录,按受试者编号存为一组文件
采集场景 坎特伯雷大学机械工程系低风险临床单元,坐位、自主呼吸、全脸面罩
压力协议 PEEP 以 0.5 cmH₂O 为步进逐档升高,每档 30 秒;首尾各 1 分钟 ZEEP
同步通道 面罩压力、吸气差压、呼气差压、胸周长、腹周长、胸廓初始深度与宽度
采样率 压力与周长 100 Hz;EIT 50 Hz,单帧 32×32 像素
文件格式 CSV(压力/流量/周长)、BIN(EIT)、XLSX(扩展名误写为 .csv 的人口学表)、MATLAB .m 代码
数据规模 未压缩 18.3 GB;ZIP 包 14.2 GB
许可 Creative Commons Attribution 4.0 International(CC BY 4.0)
典型用途 呼吸力学参数辨识、EIT 与潮气量交叉验证、胸腹呼吸模式分析、呼气阻断响应建模

§1 它要解决的具体麻烦

1.1 呼吸力学的数据为什么总是缺一角

呼吸系统可以被压成一个极简的集总模型:驱动压把气体送进肺,弹性回缩与气道阻力把气体推出来。要辨识弹性(elastance)与阻力(resistance),理论上只需要口腔压力与气流两路信号。真正做起来却处处漏风:面罩漏气让流量积分漂移,口腔压力受管路阻力污染,主动吸气与被动呼气混在一起时,单靠压力流量无法把肌肉用力与肺本身的力学分开。

实验室的常规解法是打断呼吸。经典阻断技术用阀门把呼气通路关住约 100 毫秒,让肺泡压与口腔压在一瞬间平衡,再从压力平台反推弹性。问题是 100 毫秒足够让受试者察觉,人会不自觉地补一口气,下一次呼吸的波形就带上了代偿。这个库用的是更短促的快门式快速呼气阻断(rapid expiratory occlusion,REO),目的不是把人憋住,而是在受试者尚未作出反应前留下一个可外推的初始段。

单有阻断还不够。同样的口腔压力,可能来自膈肌下沉,也可能来自肋间肌提胸;两者的胸腹容积分配不同,肺内通气的区域分布也不同。要知道"压力打进去以后,气去了哪里",就得同时看胸腹周长与 EIT。这个库的四路同步,正是为了把"用力方式"与"区域通气"一起留在记录里。

1.2 三条常见的错误期待

把它当成 ICU 呼吸机波形库。 受试者是坐着的清醒成人,用 CPAP 加面罩,不是插管病人。没有呼吸机设置的压力支持、没有镇静、没有血流动力学,也没有临床结局。它的压力是面罩口的持续正压,不是 ICU 里那套双水平或容量控制波形。

把它当成肺功能检查的替代。 没有用力肺活量,没有一秒率,没有弥散量,也没有支气管舒张试验。它记录的是安静呼吸与压力爬坡下的力学响应,能支持模型辨识,不能直接给出慢阻肺或哮喘的临床分级。

把它当成带标签的监督学习集。 目录里没有独立的标注文件,没有逐段 PEEP 标签,也没有阻断事件的注释表。受试者分组只在人口学表里,PEEP 档位只能靠协议时间轴或压力波形反推。想直接拿来做分类,标签得先自己造(§4.4)。

1.3 它能给到的与给不到的

你的需求 它给的 够不够
辨识被动弹性与阻力 快速呼气阻断段、面罩压力、流量、胸腹周长 够做方法验证,阻断时刻需自己定位
验证 EIT 全局通气与流量积分潮气量 同一时间轴的 EIT 像素矩阵与流量积分 够,但两路采样率不同,需先对齐
研究 PEEP 对胸腹分配的影响 逐档 30 秒的胸带、腹带周长 够做档内比较,档间过渡段要剔除
训练呼吸信号分割模型 80 段连续记录,多数含四模态 可做自监督或分割,缺少金标准事件
评估面罩漏气对流量积分的影响 原始 ADC 与换算后单位两套文件 够做误差分析,泄漏量未单独标注
直接做哮喘/慢阻肺诊断 四组人群标签、肺功能缺失 不够,标签是自报病史而非临床诊断
代表 ICU 或睡眠呼吸暂停人群 清醒、坐位、自主呼吸成人 不够,场景与人群都不对口
复现论文中的力学参数 原始波形与处理代码 可复现流程,参数值需自行辨识

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

你的处境 它能帮你什么 下一步该做什么
你在做呼吸力学模型,缺真实的多档 PEEP 响应 同一人从低到高多档压力,每档 30 秒,适合看参数随压力的漂移 先按压力平台切档,再用阻断段拟合,不要把过渡段混进稳态
你在做 EIT 图像重建或区域通气分析 79 例原始 32×32 像素帧,配同步流量与周长 先用 read_binData.m 确认帧头与字节序,再与 50 Hz 时间轴对齐
你在研究胸腹呼吸协调 胸带与腹带同步,100 Hz,同一姿势 先做零漂校正,再算胸腹贡献比,注意面罩漏气会同时污染两路
你在做可穿戴呼吸监测 有创口压力与体表周长可作为上游参考 把胸带信号降采样到可穿戴频率,做跨模态蒸馏
你在教呼吸生理或临床工程 一套完整实验协议、原始数据与处理代码 用受试者 01 的处理文件做课堂演示,先讲清两套时钟
你在找 CPAP 数据但只有压力流量 增加了 EIT 与胸腹周长,可做多模态对照 与同实验室早期 30 人库配对使用(§6)

1.5 一句话判断

它不是"更大的呼吸数据集",而是一台把压力、气流、胸腹运动与区域通气同时对准的实验台:规模只够做方法学,同步性却足以拆开呼吸力学里最容易被合并的那几个变量。

1.6 不适合谁:四条边界

不适合拿来做临床诊断模型。 四组标签来自自报问卷,哮喘组只要求有病史且未满足排除条件,吸烟与电子烟组按频率划分,健康组是"没有上述情况"的人。没有医生诊断、没有肺功能、没有用药依从性,标签的临床含义很弱。

不适合拿来做长时间趋势。 每人只有一段约十几到二十分钟的实验室记录,没有昼夜变化,没有睡眠,没有治疗前后对照。它回答不了"这个人的肺力学在一周内怎么变"。

不适合拿来做面罩泄漏的定量金标准。 论文明确说面罩泄漏是主要误差源,部分受试者出现流量漂移,潮气量计算因此偏低。泄漏没有被单独测量,也没有逐段标注,只能从流量与压力关系里间接判断。

不适合直接喂进端到端深度模型。 80 段、每段十万级采样点、四路不同采样率、缺少事件标签。未经切窗与对齐就送进网络,模型学到的多半是受试者编号与设备漂移,而不是呼吸力学。

§2 数据构成与规格

2.1 一个根目录,四类内容

数据集按"原始—处理后—代码—人口学"四层组织。根目录下有四个子目录和六个散文件,子目录内部再按受试者编号展开。理解这套布局,比记住文件名更重要,因为原始与处理后并不是一一对应的同名文件。

路径 内容 文件数 说明
PQ_rawData/ 压力、流量、胸腹周长 160 个 CSV 每人两份:SubjectN.csv 为换算单位,SubjectN_raw.csv 为 ADC 计数
EIT_rawData/ EIT 原始像素帧 79 个 BIN 命名为 S01_01_001_01.bin 一类;受试者 69 缺文件
Processed_Dataset/ 四路对齐后的处理结果 80 个 CSV ProcessedData_Subject01.csv 至 Subject80
Code/ MATLAB 采集、转换、处理、绘图 5 个 .m 采集、转换、处理、读 EIT、绘图各一
subject-info.csv 自报人口学与胸廓尺寸 1 个文件 扩展名是 CSV,实际是 XLSX 工作簿
README.txt 目录与列名说明 1 个文件 最接近字段字典的官方文本
LICENSE.txt CC BY 4.0 全文 1 个文件 数据许可,不是论文许可
SHA256SUMS.txt 文件校验和 1 个文件 批量下载后应先核对
figure-1.png 采集系统示意 1 个文件 面罩、EIT 带、周长带的位置
figure-2.png 受试者 01 的处理结果示例 1 个文件 四路信号的整体样貌

PQ_rawData 的 160 个文件不是 160 名受试者,而是 80 人各两份。这个差别在批量脚本里很容易写错:按文件名前缀去重会得到 80,按文件数统计会得到 160。EIT_rawData 的 79 个文件又比 80 少一个,原因是受试者 69 的 EIT 设备超时,论文明确说明该受试者只保留了压力、流量与周长。

2.2 原始压力流量文件的字段

SubjectN.csv 是已经换算成物理单位的版本,8 列,名义采样率 100 Hz。列名里的拼写错误(differenrtial、crossectional)是原文件自带的,不是转录错误;写解析脚本时要么按列序取,要么把拼写原样抄进映射表。

列名 单位 物理含义 使用注意
Time [s] 秒 采集时间轴 示例文件并非严格等距,不能默认 arange(n)/100
Gauge Pressure [cmH2O] cmH₂O 面罩口表压 这是实际感受到的压力,不是 CPAP 设定值
Inspiratory differenrtial pressure [cmH2O] cmH₂O 吸气支路文丘里差压 与流量近似成正比,需按标定系数换算
Expiratory differenrtial pressure [cmH2O] cmH₂O 呼气支路文丘里差压 吸呼分开测量,方向与符号要分别确认
Chest circumference [mm] 毫米 胸带动态周长 绝对周长含初始佩戴长度,分析时通常取变化量
Abdominal circumference [mm] 毫米 腹带动态周长 与胸带同时刻采样,可直接算胸腹相位差
Chest crossectional depth [mm] 毫米 胸廓初始前后径 示例文件只在首行给出有效值,后续为 0
Chest crossectional width [mm] 毫米 胸廓初始横径 同上,属于静态人体测量而非连续信号

SubjectN_raw.csv 的列结构相同,但压力与周长换成了 ADC 计数。保留原始计数的好处是可以重新标定:如果怀疑厂商的换算系数,或者想把数据迁移到另一套采集硬件,原始计数是唯一可回溯的底稿。代价是文件更大、列名更含糊,且没有给出每一位对应的电压参考。

2.3 处理后文件的字段

ProcessedData_SubjectNN.csv 是四路信号合并后的结果,10 列,但内部其实有两条时间轴:压力、流量、容积与周长按 100 Hz 排列,EIT 派生量按 50 Hz 排列。两条轴被放进同一张表,靠 Time 与 Time (Aeration Data)_[s] 分别索引。

列名 单位 含义 备注
Time [s] 秒 压力流量与周长的时间轴 示例文件从 0 附近开始,末行到 1198.35
Pressure [cmH2O] cmH₂O 面罩口压力 与原始 Gauge Pressure 同源,经过处理
Flow [L/s] 升/秒 气流 由吸呼两路差压合成,符号约定需对照代码
V_tidal [L] 升 列名写作潮气量 示例文件中随时间累积,更像积分容积而非逐 breath 潮气量
Chest [mm] 毫米 胸带周长 与原始胸周长同源
Abd [mm] 毫米 腹带周长 与原始腹周长同源
Inspiratory Indicies 无 吸气索引 整数序列,具体定义在 DataProcessing_29AUG23.m
Time (Aeration Data)_[s] 秒 EIT 时间轴 50 Hz,独立于第一列
Global Aeration 未注明 全局通气量 EIT 全帧求和或加权结果,单位未在 README 说明
Inspiratory Indicies (Aeration Data) 无 EIT 域吸气索引 与 EIT 帧率对应,不能直接套 100 Hz 索引

这张表最容易误读的是 V_tidal。列名让人以为每一行是当前呼吸的潮气量,但示例文件里它从 0.299 一路增加到 5.59,且在记录末段仍在上升,行为更像对流量做累计积分后的容积。若直接把它当成逐 breath 潮气量做回归,目标变量会带上时间趋势。稳妥做法是从 Flow 重新做呼吸周期分割与积分,或至少先做去趋势。

Global Aeration 同样没有单位。它适合做相对变化与跨模态相关,不适合直接换算成毫升。论文里把它作为流量积分潮气量的验证指标,这个用法依赖的是两者的同步变化,而不是绝对量纲一致。

2.4 EIT 文件的结构

EIT 原始文件是二进制,每个文件对应一名受试者的一段连续记录。官方描述为 32×32 的像素矩阵按时间堆叠,采样率 50 Hz。也就是说,一帧有 1024 个像素值,每个值代表该像素在胸廓横断面上的相对阻抗变化,而不是绝对通气量。

属性 数值 说明
单帧空间尺寸 32×32 1024 个像素
采样率 50 Hz 每秒 50 帧
单文件时长 设计上与压力流量记录同步 受试者 57 因设备超时被截断
存储格式 二进制 .bin 帧头、数据类型与排列顺序需读 read_binData.m
缺失情况 受试者 69 无文件 设备超时,官方在论文中说明
配套读取函数 read_binData.m 不要凭文件名猜字节布局

EIT 的价值在区域,而不在全肺总和。32×32 的网格把胸廓横断面切成上千个小格,压力升高时哪些格先通气、哪些格滞后,能直接看出区域通气延迟。论文的后续工作正是用这套数据评估递增 PEEP 下的区域通气延迟,并把性别、吸烟、电子烟、哮喘与体质指数纳入比较。

2.5 一条记录的完整解剖

以受试者 01 为例。处理文件的第一行列名有 10 项,第一列 Time 从接近 0 开始,最后一行停在 1198.35 秒;第二列压力在 -3.4 cmH₂O 附近起步,说明记录开头是 ZEEP 的安静呼吸,面罩内略低于大气压。第七列 Inspiratory Indicies 以 407、929、1355 这样的整数递增,像是呼吸事件在某个采样轴上的位置,但官方没有给出定义,使用前必须回到处理代码。

原始文件的头两行更能说明采集的粗糙感:Chest crossectional depth 第一行是 20,第二行变成 0;Chest crossectional width 第一行是 28,随后也是 0。它们不是连续信号,而是实验开始前量一次的人体尺寸,只写在首行;若把这两列当波形做差分,会得到一串无意义的负值。

时间轴也不是完美等距。示例文件前几行的时间戳是 0、0.006、0.020、0.024、0.033,而不是 0、0.010、0.020、0.030。这说明 Time 来自采集时钟,而不是重采样后的理想网格。对大多数低频呼吸分析,这点抖动可以忽略;但对阻断瞬间的毫秒级响应,必须按真实时间戳插值,不能按行号乘 0.01。

两套时钟的差别还体现在行数上。处理文件的前七列按 100 Hz 排列,一行对应约 0.01 秒;后三列按 50 Hz 排列,一行对应 0.02 秒。把它们并排放进同一张表,等于让两列时间共用一组行号:对 EIT 列来说,相邻两行的时间间隔是 0.02 秒,而对压力列来说是 0.01 秒。直接按行号对齐全表,EIT 会被拉伸一倍,误差随记录变长而累积;正确做法是各用各的时间列,重采样到同一网格后再比较。这个细节在论文里只用一句"两套设备数据被对齐"带过,实际处理时却是最容易出现累积错位的地方。

受试者 01 的文件事实 值 来源
处理文件列数 10 文件首行
处理文件末行时间 1198.35 s 文件末行
原始压力文件大小 11,927,835 字节 文件头
原始 ADC 文件大小 4,677,716 字节 文件头
处理文件大小 13,175,069 字节 文件头
胸廓深度首行 20 mm 原始文件首行
胸廓宽度首行 28 mm 原始文件首行
EIT 帧尺寸 32×32 官方说明

2.6 人口学表:名字叫 CSV,实际是 XLSX

subject-info.csv 是这套数据里最容易被脚本绊倒的文件。用文本编辑器打开会看到 PK 开头的二进制;用 file 命令查看会显示 Microsoft Excel 2007+;用 pandas.read_csv 会直接报编码错误。它不是 CSV,而是一个改了扩展名的 .xlsx 工作簿。

工作簿只有一张表,表头 24 列,前 21 列有明确含义,后 3 列为空列。有效受试者 80 行,编号 1 到 80。列族可以分成六组:

列族 列数 内容 用途
基本信息 5 编号、性别、身高、体重、年龄 人群描述与协变量
哮喘史 3 是否有哮喘、药名、用药频率 分组依据之一
吸烟史 5 是否吸过、当前是否吸、戒烟时长、频率、烟龄 分组依据之一
电子烟史 5 是否用过、当前是否用、戒断时长、频率、使用时长 分组依据之一
分组 1 Trial Classification 官方人群标签
胸廓测量 2 胸廓前后径、横径 与 EIT 断面尺寸对应

官方的分组规则写在论文的表 1,不是写在人口学表里。哮喘组要求有哮喘史,但排除"已完全不用吸入器"“每天吸烟超过一次”"每天电子烟超过八次"的人;吸烟组要求每月至少一次吸烟史,并按当前是否吸烟、是否同时使用电子烟、使用时长做优先级判断;电子烟组要求每周至少一次;健康组则是三类情况都不满足的人。八支电子烟折算一支烟的规则被写进了排除逻辑,这是分组时最不直观的一条。

2.7 命名与编号的对应关系

对象 命名样式 编号范围 备注
压力流量换算文件 Subject1.csv 1–80 编号不补零
压力流量 ADC 文件 Subject1_raw.csv 1–80 与上一行同编号
处理后文件 ProcessedData_Subject01.csv 01–80 编号补零到两位
EIT 文件 S01_01_001_01.bin S01–S80 中段编号含义未在 README 说明
代码 DataProcessing_29AUG23.m 5 个 文件名带日期,版本靠日期区分
人口学表 subject-info.csv 1–80 实为 XLSX

编号补零不统一,是批量读取时第二个常见坑。Subject1.csv 与 ProcessedData_Subject01.csv 指同一个人,但字符串排序会把 Subject10 排在 Subject2 前面。正确做法是先解析出整数编号,再以编号为键合并,而不是按文件名排序后按位置对齐。

§3 它是谁的数据

3.1 七位作者与两个机构

作者 机构 在论文中的角色
Ella Frances Sophia Guy 坎特伯雷大学机械工程系 概念化、方法、软件、验证、调查、数据管理、初稿、可视化
Jaimey Anne Clifton 坎特伯雷大学机械工程系 概念化、验证、调查
Trudy Caljé-van der Klei 坎特伯雷大学机械工程系 概念化、调查
Rongqing Chen 富特旺根大学技术医学研究所 概念化、方法、软件、数据管理
Jennifer L. Knopp 坎特伯雷大学机械工程系 概念化、方法、审阅、监督
Knut Möller 富特旺根大学技术医学研究所 概念化、方法、资源、监督、经费
J. Geoffrey Chase 坎特伯雷大学机械工程系 概念化、方法、资源、审阅、监督、经费

这是一支典型的生物医学工程团队,不是临床呼吸科团队。坎特伯雷一侧负责硬件、采集与建模,富特旺根一侧负责 EIT 与技术医学方法。数据里没有主治医师的临床判读,也没有放射科或肺功能室的报告,所有临床标签都停留在"自报病史"这一层。理解这一点,就能理解为什么数据集的强项是力学与信号,而不是诊断。

3.2 时间线

时间 事件 来源
2023 年 3 月 24 日 坎特伯雷大学人体研究伦理委员会批准修订 官方页 Ethics
2023 年 5 月 30 日 人口学工作簿文件时间戳 根目录文件
2023 年 8 月 29 日 处理与绘图代码日期 代码文件名
2023 年 11 月 2 日 README 文件时间戳 根目录文件
2023 年 11 月 10 日 PhysioNet 发布 1.0.0 版 官方页
2023 年 11 月 23 日 配套论文被接收 论文版权页
2024 年 2 月 配套论文正式刊出 Data in Brief 第 52 卷
2024 年 9 月 18 日 部分数据文件服务器时间戳更新 文件头

版本号只有 1.0.0 一个。官方页同时给出两个 DOI:版本 DOI 10.13026/d767-e709 与"最新版" DOI 10.13026/psrj-rw40。引用具体版本时用前者,引用"这个库"时用后者;两者在当前没有差别,但未来若发布 1.1.0,含义会分开。

3.3 采集场景:一间低风险临床单元里的坐姿实验

实验在坎特伯雷大学机械工程系的低风险临床单元进行。受试者先摘掉上衣与内衣肩带,贴上 EIT 电极带,用脊柱标记对齐;随后坐上椅子,戴上全脸面罩,面罩与细菌病毒过滤器、文丘里流量计、CPAP 管路串联。EIT 带在胸带下方,胸带与腹带分别记录胸廓与腹部的动态周长。整个过程中受试者保持坐位,被要求正常呼吸。

设备清单不复杂,但每一件都影响数据:

设备 型号/规格 作用 对数据的影响
CPAP 主机 Fisher & Paykel SleepStyle SPSCAA 提供 PEEP 设定值与面罩口实际压力不完全相等
全脸面罩 Fisher & Paykel FreeMotion RT041 人机接口 面罩泄漏是主要误差源
过滤器 Hudson 细菌病毒过滤器 卫生防护 阻力约 0.5 cmH₂O·s/L,需从压力中扣除
流量计 自制文丘里管,吸呼分路 测压力与流量 需标定,吸呼两路分别换算
周长带 旋转编码器式数字卷尺 测胸腹周长 佩戴松紧影响绝对周长
EIT Dräger PulmoVista 500 测区域通气 50 Hz,电极接触不良会影响信号
采集软件 MATLAB 2021b 脚本 同步与存盘 两套设备各有自己的时钟

实验协议的核心是"逐档升压、每档半分钟"。官方摘要写的是 PEEP 从 4 到 12 cmH₂O,以 0.5 cmH₂O 递增;方法节却写成 4 到 20 cmH₂O。同一页面出现两个上限,这是这套数据最需要先解决的元数据问题(§4.5)。配套论文的表 2 按 4 到 12 排到最后一行 16 分 10 秒,而受试者 01 的处理文件却记录到 1198.35 秒,比表 2 最后一行的时间晚约四分钟。三种口径同时存在,说明不能拿任何单一文档当绝对时间表。

3.4 数据来源的层次

这套数据不是从医院信息系统导出的二次数据,而是一次专门设计的实验室试验。它的来源链条可以直接追到硬件与伦理批件:

层次 内容 可追溯位置
伦理 坎特伯雷大学 HREC 2023/04/LR-PS 官方页 Ethics、论文声明
受试者 80 名成人,自报问卷 subject-info.csv
硬件 自制文丘里流量计、周长带、REO 快门 HardwareX 论文与 Code/
采集 MATLAB 脚本 + PulmoVista 500 DataCollection_30MAR23.m
处理 MATLAB 对齐、换算、合并 DataProcessing_29AUG23.m
发布 PhysioNet 1.0.0 官方页与 DOI
论文 Data in Brief 2024 DOI 10.1016/j.dib.2023.109874

硬件论文与数据处理代码的存在,让这套数据比一般的"发表即封存"数据集更可复现。只要愿意,可以照着 HardwareX 的设计图重做一套采集装置,再用同一套 MATLAB 代码处理新数据。代价是复现门槛不在数据本身,而在机械与电子制作。

§4 它最独特的东西

4.1 稀缺性:四路同步,而不是四份数据

呼吸数据集的常见形态是单模态:多导睡眠图给气流与血氧,ICU 库给呼吸机波形,EIT 研究给像素帧,体表传感研究给胸腹周长。它们各自都能发论文,但很难回答跨模态问题。这个库把四路放进同一段记录,且每路都有自己的时间戳与采样率,能做的分析从"单信号特征"升级为"同一生理事件的多视角"。

这种同步不是把四个文件放进同一个压缩包就算完成。真正的难点在时钟:压力流量由 MATLAB 脚本采集,EIT 由 Dräger 主机采集,两套设备各有启动时刻;周长带与压力流量共用一套采集卡,但仍要处理串口延迟。处理代码把这些轴对齐到同一段记录,才让"压力升高的同时,胸廓哪个区域先通气"成为可计算的问题。也正因为核心是压力爬坡加呼气阻断,它常被简称为 PEEP 呼气阻断呼吸库。

4.2 差异化证据

对照对象 规模 模态 与本库的差别
pressure-flow-circum-cpap(rid 1732) 30 名健康成人 压力、流量、胸腹周长 只有三档压力与三种呼吸模式,无 EIT、无呼气阻断
cpap-data-canterbury(rid 1443) 30 名健康成人 压力、流量 两档压力、五档呼吸频率,无周长与 EIT
pics(rid 879) 10 名早产儿 心电、呼吸带 新生儿长时程监护,不是成人 CPAP 力学
temporal-respiratory-support(rid 1608) 50,920 名 ICU 成人 逐小时通气与生命体征 群体时序标签,不是高频波形
openox-repo(rid 1658) 144 名受试者 脉搏血氧与动脉血气 低氧挑战,不是肺力学
本库 80 名成人 压力、流量、胸腹周长、EIT 多档 PEEP + 快速呼气阻断 + 四路同步

与同实验室的 30 人库相比,本库不是简单的"人数翻倍"。30 人库的压力档位少、呼吸模式固定、没有 EIT,也没有阻断;它适合做 CPAP 对呼吸做功的基线研究。本库增加了疾病分组、压力爬坡、EIT 与 REO,问题从"CPAP 怎么影响呼吸"推进到"不同人群的肺在压力下怎么分配通气"。

4.3 协议的具体形状

论文表 2 把整段实验排成一张时间表。下面摘出关键节点,保留原始的时间与设置,省略中间的重复档位。原表第三列有若干排版错误,把不同档位都印成了 4 cmH₂O;下表的档位按协议文字与上下文还原,时间与时长保留原值。

时间点 持续 设置 说明
1:00 1 分钟 ZEEP 不接 CPAP 的安静呼吸
1:30 30 秒 接 CPAP,4 cmH₂O 管路连接与压力建立
2:00 30 秒 4 cmH₂O 第一档稳态
2:20 20 秒 升至 4.5 cmH₂O 过渡段,数据仍在采
2:50 30 秒 4.5 cmH₂O 第二档稳态
8:30 30 秒 8 cmH₂O 中段档位
14:30 20 秒 升至 12 cmH₂O 末档升压
14:50 30 秒 12 cmH₂O 最高档稳态
15:10 20 秒 关闭并断开 CPAP 回到 ZEEP 的过渡
16:10 1 分钟 ZEEP 表 2 最后一行,1 分钟 ZEEP

原表在 15:10 与 16:10 之间没有单列 40 秒,属于表格排版的空白;这不影响按压力平台切档,但提醒不要把表 2 当成逐秒事件表。真正可靠的切档依据仍是压力列本身,时间表只用来交叉检查。

如果按这张表切段,每档的稳态窗口只有 30 秒,前后各有一段 20 秒的过渡。30 秒对呼吸力学不算长:成年人安静呼吸频率下,这段时间通常只覆盖几个呼吸周期;要做稳定的参数辨识,通常需要把多个呼吸周期放在一起。过渡段虽然不进入稳态统计,却是观察压力阶跃响应的好材料,不应直接丢掉。

4.4 标注粒度:没有人工标签,只有可推导的事件

这套数据没有传统意义上的标注文件。没有 event.txt,没有 annotation.csv,也没有逐帧的 PEEP 标签。能直接用的"标签"只有三类:受试者编号、人口学分组、以及由协议时间表隐含的档位。其余全部要从前三种加波形里推导。

目标标签 是否直接给出 推导方式 风险
受试者编号 是 文件名 无
人群分组 是 subject-info.csv 的 Trial Classification 自报,非临床诊断
PEEP 档位 否 按表 2 时间切,或按压力平台反推 协议与文件时长不一致
阻断时刻 否 从流量骤停、压力平台识别 无金标准,阈值敏感
呼吸周期 否 流量过零或胸腹周长峰谷 漏气与漂移会造成误切
吸气/呼气相位 部分 Inspiratory Indicies 列 定义未文档化
区域通气延迟 否 EIT 像素时序分析 需自建算法与阈值

这意味着它更适合"方法学研究"而不是"基准竞赛"。若要用它做监督学习,必须先做一轮事件标注,而标注质量取决于算法而非专家。也正因为没有金标准,它不适合用来比较不同团队的分类精度;它适合用来比较不同团队对同一段波形的物理解释。

4.5 边界条件:五个必须先接受的事实

第一,压力上限有冲突。 官方摘要与配套论文写 4 到 12 cmH₂O,官方方法节写 4 到 20 cmH₂O。受试者 01 的文件长度又超过表 2 最后一行的时间。使用前必须自己从压力列读出每一档的平台值,不能假设所有人都到同一上限。

第二,有效 PEEP 低于设定 PEEP。 呼气支路直接对大气开放,管路阻力与面罩泄漏让面罩口的实际压力低于 CPAP 设定值,且压力越高偏差越大。论文明确建议用面罩口记录压力,而不是机器设定值,做力学计算。

第三,过滤器阻力不可忽略。 细菌病毒过滤器的阻力约 0.5 cmH₂O·s/L,流量大时压降明显。这个压降会计入面罩压力,若不扣除,阻力辨识会系统性偏高。

第四,EIT 有缺失与截断。 受试者 69 没有 EIT 文件,受试者 57 的 EIT 记录被截断。做四模态联合分析时,这两例只能降级为三模态,不能按缺失值随意填补。

第五,人群不是"正常人"。 四组各 20 人,其中三组有哮喘、吸烟或电子烟使用史;健康组也只是"没有这三类情况"的自报健康。把它当作健康成人基线,会把病理与行为因素混进"正常"。

§5 怎么拿到

5.1 目录结构

下载后的目录与官方文件服务器一致。下面这棵树把关键文件与用途标在一起,方便先看结构再决定下哪一部分。

respiratory-dataset/1.0.0/
├── Code/                              #-- 5 个 MATLAB 脚本
│   ├── DataCollection_30MAR23.m       #-- 采集:串口、时钟、存盘
│   ├── DataConversion_07AUG23.m       #-- 原始 .mat 转 CSV
│   ├── DataProcessing_29AUG23.m       #-- 对齐、换算、合并 EIT
│   ├── read_binData.m                 #-- 读 EIT 二进制帧
│   └── FigureGenerationCode_29AUG23.m #-- 复现 figure-2
├── EIT_rawData/                       #-- 79 个 .bin,S01–S80 缺 S69
├── PQ_rawData/                        #-- 160 个 CSV,80 人各两份
│   ├── Subject1.csv                   #-- 换算成物理单位
│   └── Subject1_raw.csv               #-- ADC 计数
├── Processed_Dataset/                 #-- 80 个 CSV,四路合并
├── LICENSE.txt                        #-- CC BY 4.0 全文
├── README.txt                         #-- 列名与目录说明
├── SHA256SUMS.txt                     #-- 校验和
├── figure-1.png                       #-- 采集系统示意
├── figure-2.png                       #-- 受试者 01 示例图
└── subject-info.csv                   #-- 实为 XLSX 的人口学表

5.2 三种下载方式

数据总量 18.3 GB,压缩包 14.2 GB。若只需要压力流量与人口学,不必下 EIT,体积会小一个数量级;若要复现四模态分析,EIT 是绕不开的。官方给出三种入口,按场景选:

方式 命令 适合场景 注意
ZIP 浏览器下载 14.2 GB 压缩包 一次性归档 解压后 18.3 GB,预留空间
wget 递归 wget -r -N -c -np https://physionet.org/files/respiratory-dataset/1.0.0/ 断点续传、只取部分目录 先用 -np 防止爬出根目录
AWS CLI aws s3 sync --no-sign-request s3://physionet-open/respiratory-dataset/1.0.0/ 目标目录 云端或大批量 需要 AWS CLI,匿名访问
Python 包 physionet download respiratory-dataset --version 1.0.0 脚本化流水线 需安装 physionet 包
#-- 只取压力流量与人口学,跳过 EIT 大文件
wget -r -N -c -np --reject "*.bin" \
  https://physionet.org/files/respiratory-dataset/1.0.0/

#-- 下载后核对完整性
cd respiratory-dataset/1.0.0
sha256sum -c SHA256SUMS.txt

--reject "*.bin" 会把 EIT 全部排除,剩下的 CSV 与代码大约几百兆。若之后改变主意要补 EIT,再跑一次不带 --reject 的 wget,-N 与 -c 会跳过已完整的文件,只补缺失部分。

5.3 流式读取与合并

80 个处理文件加起来十几 GB,一次性读进内存不现实。按受试者循环、每人只保留需要的列,是最省内存的做法。下面的写法假设已下载到本地,并用编号而不是文件名排序,避免 Subject10 排在 Subject2 前面。

import re
from pathlib import Path
import pandas as pd

root = Path("respiratory-dataset/1.0.0/Processed_Dataset")
files = list(root.glob("ProcessedData_Subject*.csv"))

#-- 按编号排序,而不是按字符串排序
files.sort(key=lambda p: int(re.search(r"Subject(\d+)", p.name).group(1)))

for path in files:
    sid = int(re.search(r"Subject(\d+)", path.name).group(1))
    df = pd.read_csv(
        path,
        usecols=["Time [s]", "Pressure [cmH2O]", "Flow [L/s]",
                 "Chest [mm]", "Abd [mm]"],
    )
    #-- 示例文件的 Time 并非严格等距,插值前先确认单调递增
    assert df["Time [s]"].is_monotonic_increasing
    duration = df["Time [s]"].iloc[-1] - df["Time [s]"].iloc[0]
    print(sid, len(df), round(duration, 2))

这段代码只做两件事:确认时间轴单调,打印每人记录长度。真正的切档要在压力列上找平台,而不是按固定秒数硬切。平台识别的稳妥做法是先对压力做低通滤波,再找连续若干秒内标准差低于阈值、且均值接近目标档位的区间。阈值没有官方答案,需要根据噪声水平调。

5.4 EIT 的读取顺序

EIT 二进制没有在 README 里写帧头格式,唯一的权威说明是 read_binData.m。正确的顺序是:先读这个函数,确认数据类型(单精度还是双精度)、帧头长度、像素排列(行优先还是列优先)、以及是否有帧计数;再用它读一个文件,检查帧数是否约等于记录时长乘 50;最后才做重建或区域分析。

一个常见的错误是直接把 .bin 当 uint16 数组读,然后 reshape 成 (-1, 32, 32)。这样得到的"图像"在数值上可能看似合理,但帧序、字节序或归一化一旦错了,区域通气延迟会整体反转。EIT 的像素值是相对阻抗变化,不是绝对通气量,任何跨受试者比较都要先做各自基线归一化。

5.5 转成通用长表

如果要把四路信号送进通用时序库,宽表并不合适。更稳的结构是"一人一行事件、一列信号"的长表,或者按模态拆成三张表,用 subject_id 与 time_s 关联。下面是一种可用的最小模式:

字段 类型 含义 来源
subject_id 整数 受试者编号 1–80 文件名
group 字符串 哮喘/吸烟/电子烟/健康 人口学表
modality 字符串 pq/eit/derived 目录
time_s 浮点 相对记录起点秒数 各自时间轴
channel 字符串 pressure/flow/chest/abd/aeration 列名
value 浮点 物理量或相对值 列值
unit 字符串 cmH2O、L/s、mm、任意单位 README
peep_set 浮点 协议设定档位 表 2 推断
peep_actual 浮点 面罩口平台压力 压力列推断

peep_set 与 peep_actual 必须分开。前者是实验者想设的值,后者是受试者真正受到的压。把所有分析都建在 peep_set 上,会把管路阻力与泄漏的差异误当成生理差异。

5.6 五个坑

坑 现象 后果 处理
把 subject-info.csv 当文本 编码错误或乱码 读不进人口学 改扩展名为 .xlsx 后用 openpyxl
按文件名排序合并 Subject10 排在 Subject2 前 受试者与标签错位 解析整数编号再排序
默认时间轴等距 阻断瞬间错位 毫秒级响应失真 用真实 Time 插值
把 V_tidal 当逐 breath 潮气量 目标变量带时间趋势 回归虚假相关 从 Flow 重新积分
用设定 PEEP 代替面罩压力 高估实际压力 弹性与阻力偏差 用 Pressure 平台值
忽略 EIT 缺失 69 号无文件、57 号截断 合并报错或错配 建立受试者可用模态表

§6 与库内数据集的关系

6.1 关系图谱

站内与呼吸相关的数据集可以分成四圈:同一实验室的 CPAP 系列、新生儿监护、ICU 群体时序、以及呼吸音与血氧。这个库落在第一圈的核心,和第二圈、第三圈只有主题相邻,不是同一实体。

数据集 rid 关系 关键区别
pressure-flow-circum-cpap 1732 同实验室前作 30 名健康人、三档压力、三种呼吸模式、无 EIT
cpap-data-canterbury 1443 同实验室更早的 CPAP 库 30 人、两档压力、五档呼吸频率、只有压力流量
pics 879 主题相邻 10 名早产儿、长时程心电呼吸、非成人 CPAP
temporal-respiratory-support 1608 主题相邻 5 万余名 ICU 成人、逐小时标签、无高频波形
openox-repo 1658 主题相邻 血氧设备性能、受控低氧、非肺力学
icbhi-2017 407 主题相邻 呼吸音异常检测、听诊录音
hf-lung-v1 1120 主题相邻 肺音与呼吸相位、麦克风信号
bidmc-ppg 74 主题相邻 光电容积脉搏波估呼吸率
ucddb 1566 主题相邻 25 人睡眠呼吸暂停、整夜多导睡眠图
apnea-ecg 658 主题相邻 心电判呼吸暂停、无气流与胸腹带

6.2 检索路径

你想找什么 先看哪个 再看哪个 判断依据
成人 CPAP 的压力流量基线 1443 1732 前者两档压力,后者三档加周长
胸腹周长与呼吸模式 1732 本库 前者健康人三模式,后者四组人群加 EIT
呼气阻断与被动力学 本库 无同库替代 站内没有第二个带 REO 的数据集
新生儿心肺呼吸 879 无 人群与场景完全不同
ICU 通气与结局 1608 无 群体时序,不是波形
血氧与低氧挑战 1658 无 设备性能,不是力学
呼吸音与肺音 407、1120 无 声学模态
睡眠呼吸暂停 1566、658 无 整夜睡眠,不是清醒实验室

6.3 分工判据

判据 选本库 选 1732 选 1443
需要 EIT 区域通气 是 否 否
需要呼气阻断 是 否 否
需要疾病分组 是 否 否
需要多档 PEEP 是 部分 否
需要健康人基线 否 是 是
需要更小下载体积 否 是 是
需要三种呼吸模式 否 是 部分
需要五档呼吸频率 否 否 是

6.4 相关数据集导航

如果目标是"呼吸力学 + CPAP",阅读顺序建议从 1443 到 1732 再到本库:先理解最简单的压力流量两路,再看胸腹周长如何加入,最后看 EIT 与阻断如何把问题推向区域与瞬态。若目标是"呼吸监测算法",则从 74、407、1120 入手更顺,它们分别覆盖 PPG、听诊与肺音,和本库的高频压力流量不在一个层面。

站内还有 respiratory-heartrate-dataset 与 respiratory-oximetry-apnoea 两个待建位点,主题分别偏向心率与血氧,与本库的肺力学不重叠。它们若最终落库,适合放在"呼吸监测"而不是"呼吸力学"的分支下。

6.5 导航说明

以上链接均按站内真实 rid 与 url_name 核对;本库自身尚未分配 rid,正文不写固定编号,发布时由站点注入。

§7 质量评估与局限性

7.0 先校正"质量"的含义

评价生理信号数据,容易把"文件整齐"当成"质量高"。这套数据的文件并不整齐:扩展名错、列名拼错、时间轴抖动、两套采样率、缺失一个 EIT 文件。但它的生理学价值不依赖这些表面整齐度,而依赖四路信号是否真的在同一段时间里、压力协议是否真的被执行、阻断是否真的发生在该发生的时刻。下面按这四件事来评,而不是按 CSV 是否规范来评。

还有一层常被忽略:这套数据的"错误"大多是可见的。扩展名不对,打开就知道;列名拼错,读表头就知道;时间轴抖动,画图就知道。真正危险的是不可见的错误,比如把设定 PEEP 当成实际 PEEP、把累积容积当成潮气量、把 50 Hz 的 EIT 当成 100 Hz 对齐。可见的错误只增加工作量,不可见的错误会改变结论。所以下面的评分把"文档是否足以让人发现这些不可见错误"看得很重,而不只是看文件能不能读。

7.1 五维评分

维度 判断 理由 对使用的含义
规模 偏小 80 人、每人一段 够做方法验证,不够训练大模型
同步性 强 四路同段,100/50 Hz 双轴 跨模态分析的核心价值
可追溯性 强 原始 ADC、处理代码、硬件论文齐全 可重算、可复现
文档一致性 弱 摘要与方法压力上限冲突,表 2 有排版错误 必须回读原始文件
标签完备性 弱 无事件标注、无逐段 PEEP 标签 需自建标签
人群代表性 有限 单中心、清醒坐位、四组自报人群 不能外推 ICU 或睡眠

7.2 标注的两层

这套数据的"标注"可以分成两层。第一层是协议层:实验者知道每一分钟在做什么,表 2 就是这份隐含标注的文本化。第二层是信号层:呼吸周期、阻断时刻、压力平台,都要从波形里算出来。协议层是人工设计,信号层是算法推导,两者之间没有官方对齐表。

层级 谁产生 精度 可否直接当标签
协议层 实验设计者 分钟级 可做粗标签,需核对文件时长
信号层 使用者的算法 采样点级 不是金标准,只可做弱标签
人群层 自报问卷 组级 可做分组,不可做临床诊断
设备层 采集软件 帧级 可做质控,不是生理标签

7.3 可枚举的偏差

偏差 来源 表现 缓解
面罩泄漏 全脸面罩与皮肤贴合 流量漂移、潮气量偏低 用压力平台核对,剔除漂移段
有效 PEEP 偏低 呼气支路对大气开放 实际压力低于设定,越高压差越大 用面罩压力而非设定值
过滤器阻力 细菌病毒过滤器 压降约 0.5 cmH₂O·s/L 从压力中扣除或纳入模型
EIT 缺失 设备超时 69 号无数据,57 号截断 建立可用模态表
单中心 坎特伯雷一间实验室 设备、姿势、环境固定 不做跨中心泛化结论
人群自报 问卷分组 哮喘与吸烟重叠被规则强行拆分 把分组当弱标签
压力上限冲突 摘要 4–12,方法 4–20 无法统一切档 逐人读压力平台
时间轴抖动 采集时钟 毫秒级不等距 用真实时间戳插值

7.4 外部验证

官方页列出 6 篇引用,其中 5 篇可见。它们覆盖三个方向:EIT 区域通气、疾病预测、以及把数据当作开放科学案例。引用数量不大,但方向集中,说明这套数据目前主要被呼吸力学与 EIT 社区使用,而不是被大规模机器学习社区当作基准。

年份 工作 用到的部分 说明
2025 递增 PEEP 下 EIT 区域通气延迟 EIT + 压力协议 直接验证区域响应
2025 用 PEEP 阻断数据预测哮喘与慢阻肺 压力流量 + 分组 探索性分类,样本小
2024 吸烟、电子烟、哮喘人群的通气随 PEEP 变化 EIT + 分组 人群差异分析
2024 开放故事模型 作为开放数据案例 不是生理学验证
2024 高斯过程时序预测 作为方法示例 与呼吸主题关系弱

这张表也提醒一件事:引用数不等于数据质量。第 5 篇把数据当作时间序列方法示例,和呼吸力学没有直接关系;如果只看"被引用"来判断适用性,会高估它在机器学习社区的成熟度。

7.5 为什么它值得持续维护

它的不可替代性在于"同体、同步、可复现"三点同时成立。医院数据很难同时拿到 EIT、胸腹带与面罩压力;实验室数据很难有 80 人且带疾病分组;公开数据很难附带采集代码与硬件论文。三者叠在一起的库,目前不多。

它的维护需求也很明确:补一份逐段的 PEEP 与阻断事件表,统一摘要与方法的压力上限,修正 subject-info.csv 的扩展名,给出 Global Aeration 的单位与 V_tidal 的定义。这四件事都不需要重新采集,只需要文档与派生表,却能显著降低使用门槛。

§8 生态位与历史

8.1 沿革:从 100 毫秒阻断到快门式 REO

经典阻断技术用 100 毫秒的呼气闭塞估算被动弹性,理论上优雅,实践上有一个死结:受试者能感觉到闭塞,并在一两次呼吸内做出代偿。代偿一旦发生,测到的压力就不再是纯被动响应。Guy 等人的思路是把闭塞做得更短、更快,让初始压力段落在代偿之前,再用模型外推更长时间的响应。这就是快速呼气阻断(REO)的由来。

这套思路不是凭空出现。同一团队先做了呼吸双向压力流量采集装置与胸腹周长监测(HardwareX 2022),又做了带快速阻断附件的版本(HardwareX 2023),再用 30 名健康人验证 CPAP 下的可行性。80 人库是这条线的第三站:把装置、协议、人群与 EIT 一起放大,形成可公开复用的数据集。

REO 的代价是信息变短。阻断越短,可用的压力平台越短,信噪比越差;阻断越长,受试者越可能察觉并代偿。这个库没有在文档里给出"每次阻断多少毫秒"的统一参数,只说明装置基于快门,目标是抢在代偿之前。对使用者来说,这意味着阻断段不能按固定时长切,必须逐段看流量是否真的降到接近零、压力是否真的形成平台。也意味着不同受试者、不同档位的阻断质量并不一致,跨人比较前要先做质量筛选。

阶段 时间 产出 与本库的关系
装置雏形 2022 双向压力流量 + 胸腹周长 本库采集硬件的前身
阻断附件 2023 快速呼气阻断装置 本库 REO 的直接来源
30 人验证 2023 pressure-flow-circum-cpap 本库的设计验证
80 人发布 2023 本库 1.0.0 加 EIT、加疾病分组、加压爬坡
配套论文 2024 Data in Brief 协议、限制与伦理的完整说明

8.2 与挑战赛的关系

这套数据没有办过挑战赛,也没有官方排行榜、官方切分或统一评价脚本。它更像一份"实验档案",而不是"竞赛题库"。这不一定是缺点:挑战赛追求可比性,往往要把数据裁成统一长度、统一标签;实验档案保留原始长度与原始缺失,更适合做方法探索。

维度 挑战赛数据集 本库
切分 官方训练/测试 无,需自建
标签 统一、可评分 无事件标签
评价 官方脚本 无
长度 常被裁齐 原始长度,含缺失
适合 比较模型 比较物理解释

8.3 生态位

场景 典型数据 时间尺度 本库的位置
肺功能室 用力肺活量、弥散 秒到分钟 不做诊断,做力学
ICU 呼吸机 高频波形、设置、血气 小时到天 不做重症,做实验室
睡眠监测 整夜气流、血氧、脑电 小时 不做睡眠,做清醒
可穿戴呼吸 胸阻抗、PPG、加速度 天 提供上游多模态参考
呼吸力学实验 压力、流量、EIT、周长 十分钟级 本库的核心位置

8.4 谁在用

从引用方向看,使用者主要是三类人:做 EIT 区域通气的研究组、做呼吸力学参数辨识的工程组、以及做开放科学或数据方法演示的团队。临床呼吸科的直接使用很少,原因不是数据不重要,而是它缺少临床结局与诊断金标准,难以直接回答临床问题。

使用者 关心什么 会怎么用
EIT 研究者 区域通气随 PEEP 的变化 重建像素序列,算区域延迟
力学建模者 弹性与阻力随压力的漂移 用阻断段拟合,比较多档
信号处理工程师 多采样率对齐、泄漏补偿 做预处理与质控算法
教学者 一套完整的实验链 从硬件到代码做课程案例
开放科学研究者 数据与代码的可复现性 作为 FAIR 实践样本

§9 使用指引

9.1 三种角色的路径

角色 目标 第一步 第二步 第三步
力学建模者 辨识弹性与阻力 读 Pressure 与 Flow 找阻断段与压力平台 拟合集总模型,比较多档
EIT 研究者 区域通气响应 读 read_binData.m 重建 32×32 帧序列 与压力、流量对齐,算区域延迟
信号工程师 多模态质控 读原始 ADC 与换算文件 比对两套数值,查泄漏段 建立可用模态与质量标记

9.2 最短流程

  1. 先只下 Processed_Dataset 与 subject-info.csv,用处理文件确认受试者编号、记录长度与列结构。
  2. 把 subject-info.csv 改名为 .xlsx,读出 80 行分组,建立 subject_id → group 映射。
  3. 在 Pressure 上找平台,按平台值而不是设定值分档;记录每档的起止时间与平台均值。
  4. 在 Flow 上找阻断段:流量骤降至接近零、压力出现短暂平台,两者同时满足才记为候选。
  5. 只对候选段做力学拟合,先做线性模型,再加入泄漏与管路阻力项;不要一开始就上复杂模型。
  6. 若要 EIT,先读一个文件确认帧数与 50 Hz 时间轴,再批量处理;缺失受试者单独标记。

这套流程刻意把"切档"放在"建模"之前。很多人一上来就选一个受试者、画一条压力曲线、套一个二阶模型,结果发现残差很大,再回头怀疑模型。多数时候问题不在模型,而在切段:把升压的 20 秒过渡混进了稳态,或者把面罩漏气造成的流量漂移当成了呼吸。先花时间把档位与阻断段切干净,比换三个模型更有效。

9.3 引用方式

官方给出的引用格式如下。版本 DOI 指向 1.0.0,适合在论文的方法节精确引用;如果只想指"这个库",可用最新版 DOI。

Guy, E. F. S., Clifton, J. A., Caljé-van der Klei, T., Chen, R.,
Knopp, J., Moeller, K., & Chase, J. G. (2023).
Respiratory dataset from PEEP study with expiratory occlusion
(version 1.0.0). PhysioNet. https://doi.org/10.13026/d767-e709
@article{PhysioNet-respiratory-dataset-1.0.0,
  author = {Guy, Ella Frances Sophia and Clifton, Jaimey Anne and
            Caljé-van der Klei, Trudy and Chen, Rongqing and
            Knopp, Jennifer and Moeller, Knut and Chase, James Geoffrey},
  title = {{Respiratory dataset from PEEP study with expiratory occlusion}},
  journal = {{PhysioNet}},
  year = {2023},
  month = nov,
  note = {Version 1.0.0},
  doi = {10.13026/d767-e709}
}

配套论文是理解协议与限制的必读材料,引用时不要只引数据而不引论文:

Guy, E. F. S., Clifton, J. A., Calje-Van Der Klei, T., Chen, R.,
Knopp, J. L., Möller, K., & Chase, J. G. (2024).
Respiratory monitoring dataset, with rapid expiratory occlusions,
over increasing positive airway pressure ventilation.
Data in Brief, 52, 109874. https://doi.org/10.1016/j.dib.2023.109874

§10 AI 使用声明

项目 说明
文本生成 正文由 AI 辅助撰写,结构与数字按本站现行规范组织与核对,判断以官方页、README 与配套论文为准
数字来源 规模、结构、许可、日期取自 PhysioNet 官方页、README、LICENSE、目录文件与配套论文;示例文件数值取自受试者 01 的公开文件
文件核验 官方页与目录经 HTTP 访问核对;CSV 列名、文件大小、首末行时间戳来自范围请求读取;人口学工作簿用 openpyxl 解析
不一致说明 官方摘要与论文写 PEEP 4–12 cmH₂O,官方方法节写 4–20 cmH₂O;论文表 2 最后一行时间 16:10,受试者 01 文件末行 1198.35 s。正文如实并列,不强行统一
论文信息 配套论文 DOI 10.1016/j.dib.2023.109874,Data in Brief 第 52 卷,2024 年 2 月;论文按 CC BY-NC-ND 发布,数据按 CC BY 4.0 开放,两者许可不同
未核验内容 阻断事件的具体次数与时刻、Inspiratory Indicies 的精确定义、Global Aeration 的单位、EIT 二进制帧头布局、每档实际平台压力的全体取值,均未在官方文档中给出,正文未作定量断言
图像 封面提示词指向风格化生成图,不是数据可视化,不用于诊断或测量
免责 内容用于数据理解与技术选型,不构成临床建议;用于临床决策前需由具备资质的专业人员复核

常见误读(避坑清单)

说法 实际 证据
这是 ICU 呼吸机波形库 清醒成人坐位 CPAP,面罩接口,不是插管通气 官方摘要与论文方法节
80 名受试者就是 80 个文件 压力流量有 160 个 CSV,每人两份 PQ_rawData 目录
EIT 覆盖全部 80 人 只有 79 个 BIN,69 号缺失,57 号截断 目录与论文 Limitations
数据是 CC BY-NC-ND 数据是 CC BY 4.0,论文才是 CC BY-NC-ND LICENSE.txt 与论文版权页
PEEP 一定到 12 cmH₂O 摘要写 12,方法节写 20,需逐人读压力平台 官方页 Abstract 与 Methods
V_tidal 是逐 breath 潮气量 示例文件中随时间累积,更像积分容积 受试者 01 文件末段
subject-info.csv 是文本 CSV 实际是 XLSX 工作簿,需改扩展名 file 命令结果
有阻断事件的标注文件 没有独立标注,阻断时刻需从波形识别 目录无 annotation 文件
面罩压力等于 CPAP 设定压力 管路阻力与泄漏让实际压力偏低 论文 Limitations
可以直接拿来做哮喘诊断 分组是自报病史,无肺功能与临床诊断 论文表 1 与人口学表

FAQ

Q1:这套数据和同实验室的 30 人 CPAP 库到底差在哪?

差在三件事:人群、模态、协议。30 人库是健康成人,只有压力、流量与胸腹周长,压力档位少,呼吸模式固定;本库扩到 80 人,加入哮喘、吸烟、电子烟与健康四组,增加 EIT 区域通气,并把 PEEP 做成逐档爬坡,配合快速呼气阻断。前者适合建立 CPAP 下的基线,后者适合研究不同人群在压力变化下的力学与区域通气差异。两者不是版本关系,而是同一实验路线的两个阶段。

Q2:为什么文件这么大,能不能只下需要的部分?

大是因为 EIT。80 人的 32×32、50 Hz 像素帧占了绝大部分体积,整包未压缩 18.3 GB,压缩后 14.2 GB。只做压力流量分析时,用 wget 的 --reject "*.bin" 跳过 EIT,剩下的 CSV 与代码只有几百兆。只做 EIT 时,则反过来只取 EIT_rawData 与 Processed_Dataset,但要注意 69 号没有 EIT 文件,批处理要允许缺失。

Q3:没有标注,怎么做监督学习?

只能做弱监督或自监督。可行的标签有三类:受试者分组(来自人口学表)、PEEP 档位(从压力平台反推)、呼吸相位(从流量或周长算)。阻断时刻可以做成事件检测任务,但没有金标准,只能做一致性评估而不是精度评估。更稳妥的路线是把这套数据当作预训练或物理约束的来源,用少量有标注的外部数据做下游微调。

Q4:EIT 和流量积分能互相验证吗?

可以,但只在相对变化层面。EIT 的 Global Aeration 是相对阻抗变化的总和,没有毫升单位;流量积分给出的是升。两者能做同步性与趋势的一致性检验,不能做绝对值的等价换算。论文正是用这种相对一致性来判断 EIT 是否能作为潮气量的辅助验证。若要做绝对定量,需要额外的标定实验或模型假设。

Q5:这套数据能用来做临床决策吗?

不能直接用于临床。受试者是清醒、坐位、自报健康的成人,实验是低风险实验室协议,没有诊断金标准、没有治疗、没有结局。它能支持的是方法学研究:力学参数辨识、EIT 区域分析、泄漏补偿、传感器融合。任何临床结论都需要在患者队列中重新验证,并经过伦理与监管审查。

术语表

术语 解释
PEEP 呼气末正压,保持呼气末气道压力高于大气压
CPAP 持续气道正压,整个呼吸周期维持同一正压的无创通气方式
ZEEP 呼气末压力为零,即不施加正压
REO 快速呼气阻断,用快门在极短时间内关闭呼气通路
EIT 电阻抗断层成像,通过体表电极测胸廓横断面阻抗变化
弹性(elastance) 压力变化与容积变化之比,反映肺与胸壁的僵硬程度
阻力(resistance) 压力差与流量之比,反映气道通畅程度
时间常数 弹性与阻力的乘积,决定被动呼气的快慢
胸腹周长 胸带与腹带测得的躯干周长,反映呼吸时胸腹容积分配
文丘里流量计 利用收缩段压差推算流量的装置
吸气索引 处理文件中标记吸气事件的整数序列,定义需查代码
全局通气 EIT 全帧像素变化的汇总,单位未注明
有效 PEEP 面罩口实际达到的压力,通常低于机器设定值
泄漏 面罩与皮肤之间的漏气,会造成流量漂移与容积低估

附录 A:核心数字核对表

数字 出处
80 名成人受试者 PhysioNet 官方页 Abstract
4 组人群,每组 20 人,男女各 10 配套论文第 4 节
160 个压力流量 CSV PQ_rawData 目录,80 人 × 2
80 个处理后 CSV Processed_Dataset 目录
79 个 EIT BIN EIT_rawData 目录;论文说明 69 号缺失
18.3 GB 未压缩 官方页 Files
14.2 GB ZIP 官方页 Files
100 Hz 压力流量采样 官方页 Data Description
50 Hz EIT 采样 官方页 Data Description
32×32 EIT 单帧 官方页 Data Description
0.5 cmH₂O 压力步进 官方页 Abstract 与 Methods
每档 30 秒 官方页 Abstract 与 Methods
首尾各 1 分钟 ZEEP 官方页 Abstract
表 2 最后一行时间 16:10 配套论文表 2
受试者 01 文件末行 1198.35 s ProcessedData_Subject01.csv 末行
过滤器阻力约 0.5 cmH₂O·s/L 官方页 Methods
版本 1.0.0 发布于 2023-11-10 官方页
DOI 10.13026/d767-e709 官方页 Citation
许可 CC BY 4.0 LICENSE.txt 与官方页 License
人口学表 24 列、80 行 subject-info.csv 工作簿解析
返回 AI-Ready 数据集