Skip to content

Ptbxl ecg diagnosis#939

Open
manish6189 wants to merge 3 commits intosunlabuiuc:masterfrom
manish6189:ptbxl-ecg-diagnosis
Open

Ptbxl ecg diagnosis#939
manish6189 wants to merge 3 commits intosunlabuiuc:masterfrom
manish6189:ptbxl-ecg-diagnosis

Conversation

@manish6189
Copy link
Copy Markdown

Contributor: Ankita Jain (ankitaj3@illinois.edu), Manish Singh (manishs4@illinois.edu)
University of Illinois Urbana-Champaign

Contribution Type: Dataset + Task (Option 1)

Original Paper: Nonaka, K., & Seita, D. (2021). In-depth Benchmarking of Deep Neural Network Architectures for ECG Diagnosis. Proceedings of Machine Learning Research, 149, 414–424.
https://proceedings.mlr.press/v149/nonaka21a.html

Description: Adds PTB-XL ECG dataset and two diagnosis tasks reproducing the benchmark from Nonaka & Seita (2021).

  • PTBXLDataset: inherits BaseDataset, parses ptbxl_database.csv into ptbxl-metadata-pyhealth.csv, supports 100/500 Hz sampling rates
  • PTBXLDiagnosis: multilabel task (ROC-AUC), maps SCP codes to 5 superclasses (NORM, MI, STTC, CD, HYP)
  • PTBXLMulticlassDiagnosis: multiclass task (F1), selects dominant superclass
  • configs/ptbxl.yaml: BaseDataset config for the ptbxl table
  • 27 unit tests using synthetic data only (~4s total)
  • Ablation script: examples/ptbxl_ecg_diagnosis_resnet.py
  • RST docs + toctree entries for datasets.rst and tasks.rst

Files to Review:

  • pyhealth/datasets/ptbxl.py - Main dataset implementation
  • pyhealth/datasets/configs/ptbxl.yaml - Dataset config
  • pyhealth/tasks/ptbxl_diagnosis.py - PTBXLDiagnosis (multilabel) + PTBXLMulticlassDiagnosis (multiclass)
  • tests/core/test_ptbxl.py - 27 tests, synthetic data only
  • examples/ptbxl_ecg_diagnosis_resnet.py - Ablation study
  • docs/api/datasets/pyhealth.datasets.PTBXLDataset.rst - Dataset docs
  • docs/api/tasks/pyhealth.tasks.PTBXLDiagnosis.rst - Task docs

Manish Singh added 3 commits April 4, 2026 00:56
…mark)

- PTBXLDataset: inherits BaseDataset, parses ptbxl_database.csv into
  ptbxl-metadata-pyhealth.csv, supports 100/500 Hz sampling rates
- PTBXLDiagnosis: multilabel task (ROC-AUC), maps SCP codes to 5 superclasses
- PTBXLMulticlassDiagnosis: multiclass task (F1), selects dominant superclass
- configs/ptbxl.yaml: BaseDataset config for the ptbxl table
- 23 unit tests using synthetic data only (3s total)
- Ablation script: examples/ptbxl_ecg_diagnosis_resnet.py
- RST docs + toctree entries for datasets.rst and tasks.rst

Reproduces: Nonaka, K. & Seita, D. (2021). In-depth Benchmarking of Deep
Neural Network Architectures for ECG Diagnosis. PMLR 149, 414-424.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant