|
Download data/README.md from gundo0102/SleepMaMi: direct link, hf CLI and curl.
- Browser
- Download file 3.14 kB
-
https://huggingface.co/gundo0102/SleepMaMi/resolve/main/data/README.md
- Command line
-
hf download hf://gundo0102/SleepMaMi/data/README.md
-
curl -L -o README.md https://huggingface.co/gundo0102/SleepMaMi/resolve/main/data/README.md
3.14 kB
Data Preprocessing
This directory contains the preprocessing pipeline for several sleep study datasets, including Physionet 2018, SHHS1/2, KISS/KVSS, MrOS1/2, and MESA.
1. Raw Data Extraction
{dataset_name}_process_rawdata.py
This script extracts signals and labels from raw data (e.g., .edf files) and saves them in .npy format.
- Channel Selection: Extracts specific required channels:
EEG,EOG,EMG,ECG,ABD,CHEST,AIRFLOW, andSaO2. - Label Alignment: * Synchronizes sleep staging labels with signal timeframes.
- Adjusts staging formats (e.g., converting R&K to AASM standards).
- Excludes error cases or undefined stages (e.g., "Unknown").
- Respiratory Events: Extracts Apnea-Hypopnea labels where applicable (Apnea: 2, Hypopnea: 1).
- Wake Trimming: If excessive "Wake" periods exist at the beginning or end of a recording, they are trimmed to a maximum of 30 minutes.
- Sampling Rate: The original sampling rate is preserved during this step.
- Note: For KISS/KVSS, the extraction logic is stored in a dedicated sub-folder.
Output Paths:
datasets/{dataset_name}/signals_MAE/{CHN_GRP}/{CHN}: Raw biosignals.datasets/{dataset_name}/annotations: Sleep staging labels.datasets/{dataset_name}/ah_labels: Apnea-Hypopnea labels.
2. Signal Refinement & Memory Mapping
{dataset_name}_preprocess.py
This script processes the .npy files (filtering, resampling) and saves them as memory-mapped (.mmap) files for efficient data loading.
Filtering Specifications
| Signal Type | Filtering Parameters |
|---|---|
| EEG, EOG | Notch: 60 Hz | Bandpass: 0.3–40 Hz |
| ECG | Notch: 60 Hz | Bandpass: 0.3–60 Hz | Peak-based inversion correction |
| EMG | Notch: 60 Hz | Highpass: 10 Hz |
| AIRFLOW, ABD, CHEST | Lowpass: 15 Hz |
- Resampling: All signals are unified to a sampling rate of 100 Hz.
- Metadata Generation: A
.picklefile is created for each biosignal to manage the global.mmapfile. It includes:- Indices: Start and end positions for each case within the combined
.mmap. - Statistics: Sum and square sum per case (used later for Standardization).
- Shape: The total dimensions of the
.mmapfile.
- Indices: Start and end positions for each case within the combined
- Data Splitting: Automatically performs the Train/Val/Test split (Only for finetuning datasets - SHHS1 and KISS).
Output Paths:
datasets/{dataset_name}/mmap_signals_MAE_processed/{split}/{CHN_GRP}/{CHN}:.mmapand.picklefiles.datasets/{dataset_name}/annotations_split/{split}: Split sleep staging labels.datasets/{dataset_name}/ah_labels_split/{split}: Split Apnea-Hypopnea labels.
3. Patient Demographics
get_demographics.py
This script extracts and aggregates patient-level information into a structured format.
- Data Points: Collects Sex, Age, BMI, and AHI (Apnea-Hypopnea Index).
- Handling Missing Values: If a specific metric was not collected for a patient, it is ignored/skipped.
- Output Path:
datasets/demographics/{dataset_name}_demographics.pkl