若需要如SHHS、Sleep-EDF、ISRUC、NSRR等数据集的预处理脚本及其他,请私信博主。


一、前言

在开展睡眠深度学习研究时,不可避免地需要使用 PSG(Polysomnography,多导睡眠图)公开数据集。然而,不同数据集在 数据形状与文件格式 上差异较大,如果想同时使用多个数据集进行实验,就不得不针对每个数据集单独编写接口,这不仅耗时,而且维护起来十分痛苦。

目前社区里已经有一些开源项目尝试解决这一问题(此项目基于https://github.com/wjq-learning/SleepDG搭建),但在实际使用过程中仍存在不少困难:例如官方没有明确说明依赖版本,导致环境配置经常报错;文件导入不稳定,时常出现兼容性问题;此外,日志输出不够直观,遇到问题时难以及时定位和排查。

因此,本文在现有开源代码的基础上,针对上述问题进行了优化与改进,主要包括:日志输出更清晰兼容性与可复现性增强,以及若干实用性改进。希望能为后续研究者在处理多源睡眠数据时,提供更流畅的使用体验。

具体代码见:

XingXingYuoos/PSG_data_prepare

https://gitcode.com/m0_70335361/PSG_public_data.git

目录

一、前言

二、数据集处理

1. ISRUC数据集

A.数据集介绍

B.数据预处理

2. SHHS(Sleep Heart Health Study)数据集

A.数据集介绍

B.数据预处理

3. HMC(Haaglanden Medisch Centrum Sleep Staging Database)数据集

A.数据集介绍

B.数据预处理

4. SleepEDFx(Sleep-EDF Database Expanded)数据集

A.数据集介绍

B.数据预处理

5. P2018(PhysioNet/CinC Challenge 2018:You Snooze, You Win)数据集(220G)

A.数据集介绍

B.数据预处理


本文针对以下5个数据集做处理:SleepEDFx、ISRUC、SHHS、HMC、P2018

依次处理,最终将其统一为

 1. 序列 .npy 文件(20, 2, 3000) (20 个 epoch,每个 epoch 有 2 通道 × 3000 点)

(2通道指的是['EEG F4-M1', 'EOG E1-M2'])

 2. 标签 .npy 文件(20,) (对应这 20 个 epoch 的阶段标签 ID)


下面是数据集下载链接:

The SleepEDFx dataset is on https://physionet.org/content/sleep-edfx/1.0.0/

The ISRUC dataset is on https://sleeptight.isr.uc.pt/

The SHHS dataset is on https://sleepdata.org/datasets/shhs

The HMC dataset is on https://physionet.org/content/hmc-sleep-staging/1.1/

The P2018 dataset is on https://physionet.org/content/challenge-2018/1.0.0/

如需要原数据集或者处理后的数据集,请联系博主

关键库函数版本:

python==3.12

numpy==1.26.4

mne==0.23.4

scipy==1.13.0


二、数据集处理

1. ISRUC数据集

A.数据集介绍

ISRUC数据集是由葡萄牙科英布拉大学(ISRUC)整理的临床 PSG 数据集,社区里做跨域/多中心泛化常会用到。

B.数据预处理

最终加了日志后结果:

运行完最后会得到如下结果:

具体代码处理方法见

https://blog.csdn.net/m0_70335361/article/details/151711442?fromshare=blogdetail&sharetype=blogdetail&sharerId=151711442&sharerefer=PC&sharesource=m0_70335361&sharefrom=from_linkhttps://blog.csdn.net/m0_70335361/article/details/151711442?fromshare=blogdetail&sharetype=blogdetail&sharerId=151711442&sharerefer=PC&sharesource=m0_70335361&sharefrom=from_link


2. SHHS(Sleep Heart Health Study)数据集

A.数据集介绍

介绍:SHHS是美国多中心、基于社区人群的大型纵向队列,居家 PSG,随访多年,是研究睡眠与心血管风险关系的里程碑项目。

规模:包含基线(SHHS-1)与随访(SHHS-2)两次大规模采集(数千人规模;随访仍是上千例 PSG),是公开数据里体量最大的之一。

信号/文件:NSRR(sleepdata.org)提供 PSG EDF 文件目录 与丰富的临床/问卷衍生变量。

标注:临床标准 30 s 分期(历史上使用规则版本不同,需留意)。

用途/注意:适合做 大样本泛化、人群研究、与合并症相关分析;由于多中心、居家场景,通道/质量不完全一致,训练前需严格对齐通道与质控。

具体代码处理方法见:

https://blog.csdn.net/m0_70335361/article/details/151751060?fromshare=blogdetail&sharetype=blogdetail&sharerId=151751060&sharerefer=PC&sharesource=m0_70335361&sharefrom=from_linkhttps://blog.csdn.net/m0_70335361/article/details/151751060?fromshare=blogdetail&sharetype=blogdetail&sharerId=151751060&sharerefer=PC&sharesource=m0_70335361&sharefrom=from_link


3. HMC(Haaglanden Medisch Centrum Sleep Staging Database)数据集

A.数据集介绍

介绍:荷兰 HMC 睡眠中心 2018 年的临床 PSG 数据,PhysioNet 开放获取。

规模151 个整夜 PSG(版本 1.1,为清理异常后数据)。

信号与采样:4×EEG(F4/M1, C4/M1, O2/M1, C3/M2)+ 2×EOG(E1/M2, E2/M2)+ 下颏 EMG + ECG,全部 256 Hz。

标注AASM v2.4 规则,人工分期;每条记录配 SNXXX_sleepscoring.edf(EDF+)同名 .txt 的 hypnogram。

用途/注意:与 SleepEDFx(R&K)/ISRUC(五类)合训时,要统一到 AASM 五类;高采样率(256 Hz)→ 和 100 Hz 数据混训前需重采样与滤波策略一致。

B.数据预处理

替换数据集路径后直接跑:

报错:AttributeError: 'Epochs' object has no attribute 'get_annotations_per_epoch'

最终修改后的日志输出为:

处理完毕

具体代码处理方法见:

https://blog.csdn.net/m0_70335361/article/details/151751013?fromshare=blogdetail&sharetype=blogdetail&sharerId=151751013&sharerefer=PC&sharesource=m0_70335361&sharefrom=from_linkhttps://blog.csdn.net/m0_70335361/article/details/151751013?fromshare=blogdetail&sharetype=blogdetail&sharerId=151751013&sharerefer=PC&sharesource=m0_70335361&sharefrom=from_link


4. SleepEDFx(Sleep-EDF Database Expanded)数据集

A.数据集介绍

介绍:PhysioNet 上最常用的睡眠公开基准之一,来自两项研究(Sleep Cassette、Sleep Telemetry)。

规模:共 197 个整夜 PSG 记录,并配有人工标注的 hypnogram。

信号与采样:典型包含 EEG Fpz–Cz、Pz–Oz、水平 EOG、颏肌 EMG;EEG/EOG 多为 100 Hz 采样(部分记录还有气流/体温等)。

标注:依据 R&K(30 s epoch)。

文件:PSG .edf + 对应的 hypnogram(同库提供)。

用途/注意:做睡眠分期入门非常合适;由于用 R&K,训练 AASM 规则的模型时记得 3/4→N3,并处理少量的移动/未定义标签。

具体代码处理方法见:

https://blog.csdn.net/m0_70335361/article/details/151751043?fromshare=blogdetail&sharetype=blogdetail&sharerId=151751043&sharerefer=PC&sharesource=m0_70335361&sharefrom=from_linkhttps://blog.csdn.net/m0_70335361/article/details/151751043?fromshare=blogdetail&sharetype=blogdetail&sharerId=151751043&sharerefer=PC&sharesource=m0_70335361&sharefrom=from_link


5. P2018(PhysioNet/CinC Challenge 2018:You Snooze, You Win)数据集(220G)

A.数据集介绍

是什么:2018 年 PhysioNet 挑战赛官方数据,来自 麻省总医院(MGH)

规模:训练集 994 夜、测试集

989 夜(合计 1,985 名受试者的 PSG)。

信号:多导 PSG(EEG、EOG、EMG、呼吸/氧饱和度、ECG 等)+ 人工分期;用于评测自动分期算法。

用途/注意:数据量大、分布更“临床化”,适合做 大规模分期/泛化评估;注意官方训练/测试划分与评分协议。

具体代码处理方法见:

https://blog.csdn.net/m0_70335361/article/details/151751080?fromshare=blogdetail&sharetype=blogdetail&sharerId=151751080&sharerefer=PC&sharesource=m0_70335361&sharefrom=from_linkhttps://blog.csdn.net/m0_70335361/article/details/151751080?fromshare=blogdetail&sharetype=blogdetail&sharerId=151751080&sharerefer=PC&sharesource=m0_70335361&sharefrom=from_link

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐