PyHealth icon indicating copy to clipboard operation
PyHealth copied to clipboard

[CS598 DLH] Add DREAMT OSA classification

Open ssrir5 opened this issue 1 month ago • 0 comments

Title

Add DREAMT dataset + OSA classification task

Summary

This PR adds support for the DREAMT sleep dataset and a simple patient-level OSA classification task based on DREAMT clinical metadata.

Changes

  • DREAMTDataset

    • Wraps PhysioNet DREAMT (1.0.0–2.1.0) as a BaseDataset.
    • Builds dreamt-metadata.csv from participant_info.csv.
    • Normalizes columns (e.g., SID → patient_id, AHI → ahi, etc.) and attaches paths to 64Hz/100Hz CSVs.
  • DREAMTOSAClassification

    • New BaseTask for patient-level OSA prediction.
    • Tasks:
      • ahi_severity_4class (normal / mild / moderate / severe).
      • ahi_binary_15 (AHI < 15 vs ≥ 15).
      • oahi_binary_5 (OAHI < 5 vs ≥ 5).
    • Uses tabular clinical features (age, gender, BMI, SaO₂, arousal index, history, disorders).
  • Tests

    • tests/core/test_dreamt_osa_task.py:
      • Checks label mapping and feature dict for ahi_severity_4class.
      • Verifies split handling and binary label for ahi_binary_15.

ssrir5 avatar Dec 08 '25 01:12 ssrir5