Open-Source Platforms: Democratizing ECG deep learning for non-experts (ExChanGeAI, ECG-FM)
Federated Learning: Privacy-preserving ECG analysis across institutions
Paper ECG Digitization: Automated recovery of signals from paper records (ECGtizer)
Graph-Based Representations: Novel approaches for heterogeneous ECG signals (VARS)
Real-Time Analysis: AI-powered platforms for clinical decision support (DeepECG, Qaly)
FDA-Cleared Tools: Regulatory-approved AI algorithms for clinical use (HeartKey Rhythm)
π Quick Start Guide
1. Environment Setup
pip install wfdb pandas numpy matplotlib scipy
pip install torch torchvision # For deep learning
pip install scikit-learn xgboost # For traditional ML
2. Loading PTB-XL Dataset
import wfdb
import pandas as pd
import numpy as np
# Load PTB-XL metadata
Y = pd.read_csv('ptbxl_database.csv', index_col='ecg_id')
X = np.array([wfdb.rdsamp(f'records500/{row.filename_lr}')[0]
for _, row in Y.iterrows()])
3. Loading MIT-BIH Dataset
import wfdb
# Load a single record
record = wfdb.rdrecord('mitdb/100')
annotation = wfdb.rdann('mitdb/100', 'atr')
signals = record.p_signal
labels = annotation.symbol
4. Loading CODE-II Dataset (2025)
# CODE-II dataset access instructions
# See: https://arxiv.org/abs/2511.15632
# Dataset contains 2.7M ECGs with 66 diagnostic classes
# Access through official CODE-II repository
5. Basic Preprocessing
from scipy import signal
def preprocess_ecg(ecg_signal, fs=500):
# Bandpass filter (0.5-40 Hz)
b, a = signal.butter(2, [0.5, 40], btype='band', fs=fs)
filtered = signal.filtfilt(b, a, ecg_signal)
# Normalize
normalized = (filtered - np.mean(filtered)) / np.std(filtered)
return normalized
π Dataset Usage Guidelines
Citation Requirements
When using these datasets, please cite appropriately:
PTB-XL:
Wagner, P., Strodthoff, N., Bousseljot, R. D., Kreiseler, D., Lunze, F. I., Samek, W., & Schaeffter, T. (2020).
PTB-XL, a large publicly available electrocardiography dataset. Scientific Data, 7(1), 1-15.
MIT-BIH:
Moody GB, Mark RG. The impact of the MIT-BIH Arrhythmia Database.
IEEE Eng in Med and Biol 20(3):45-50 (May-June 2001).
CODE-II:
[Citation information to be added - see arXiv:2511.15632]
Icentia11k:
[Citation information to be added - see PhysioNet]
HEEDB:
Reyna, M.A., Deepanshi, Weigle, J., et al. (2026).
The Harvard-Emory ECG Database. Scientific Data.
This repository is licensed under the MIT License. However, individual datasets may have their own licenses - please check each dataset's specific licensing terms before use.
Open-Source Platforms: Democratizing ECG deep learning for non-experts (ExChanGeAI, ECG-FM)
Federated Learning: Privacy-preserving ECG analysis across institutions
Paper ECG Digitization: Automated recovery of signals from paper records (ECGtizer)
Graph-Based Representations: Novel approaches for heterogeneous ECG signals (VARS)
Real-Time Analysis: AI-powered platforms for clinical decision support (DeepECG, Qaly)
FDA-Cleared Tools: Regulatory-approved AI algorithms for clinical use (HeartKey Rhythm)
π Quick Start Guide
1. Environment Setup
pip install wfdb pandas numpy matplotlib scipy
pip install torch torchvision # For deep learning
pip install scikit-learn xgboost # For traditional ML
2. Loading PTB-XL Dataset
import wfdb
import pandas as pd
import numpy as np
# Load PTB-XL metadata
Y = pd.read_csv('ptbxl_database.csv', index_col='ecg_id')
X = np.array([wfdb.rdsamp(f'records500/{row.filename_lr}')[0]
for _, row in Y.iterrows()])
3. Loading MIT-BIH Dataset
import wfdb
# Load a single record
record = wfdb.rdrecord('mitdb/100')
annotation = wfdb.rdann('mitdb/100', 'atr')
signals = record.p_signal
labels = annotation.symbol
4. Loading CODE-II Dataset (2025)
# CODE-II dataset access instructions
# See: https://arxiv.org/abs/2511.15632
# Dataset contains 2.7M ECGs with 66 diagnostic classes
# Access through official CODE-II repository
5. Basic Preprocessing
from scipy import signal
def preprocess_ecg(ecg_signal, fs=500):
# Bandpass filter (0.5-40 Hz)
b, a = signal.butter(2, [0.5, 40], btype='band', fs=fs)
filtered = signal.filtfilt(b, a, ecg_signal)
# Normalize
normalized = (filtered - np.mean(filtered)) / np.std(filtered)
return normalized
π Dataset Usage Guidelines
Citation Requirements
When using these datasets, please cite appropriately:
PTB-XL:
Wagner, P., Strodthoff, N., Bousseljot, R. D., Kreiseler, D., Lunze, F. I., Samek, W., & Schaeffter, T. (2020).
PTB-XL, a large publicly available electrocardiography dataset. Scientific Data, 7(1), 1-15.
MIT-BIH:
Moody GB, Mark RG. The impact of the MIT-BIH Arrhythmia Database.
IEEE Eng in Med and Biol 20(3):45-50 (May-June 2001).
CODE-II:
[Citation information to be added - see arXiv:2511.15632]
Icentia11k:
[Citation information to be added - see PhysioNet]
HEEDB:
Reyna, M.A., Deepanshi, Weigle, J., et al. (2026).
The Harvard-Emory ECG Database. Scientific Data.
This repository is licensed under the MIT License. However, individual datasets may have their own licenses - please check each dataset's specific licensing terms before use.