PTB-XL
PTB-XL ECG Database
A large publicly available electrocardiography dataset of 21,799 clinical 12-lead ECG records from 18,869 patients, each annotated with diagnostic statements following the SCP-ECG standard.
PTB / PhysioNetOfficial source
Record metadata fields
Each PTB-XL record is a 12-lead clinical ECG described by the following metadata fields, grouped by category.
| Field | Group | Description |
|---|---|---|
| ecg_id | Identifiers | Unique identifier for the ECG record. |
| patient_id | Identifiers | De-identified patient identifier (recurs across a patient’s ECGs). |
| age | Demographics | Patient age in years (values of 300 denote anonymized ages > 89). |
| sex | Demographics | Patient sex (0 = male, 1 = female). |
| height | Demographics | Height in cm (often unrecorded). |
| weight | Demographics | Weight in kg (often unrecorded). |
| recording_date | Recording | Timestamp the ECG was recorded. |
| device | Recording | Recording device / cart model (e.g. CS-12, AT-6 C). |
| sampling_rate_hr / _lr | Recording | High- (500 Hz) and low- (100 Hz) resolution sampling rates. |
| filename_hr / _lr | Recording | Paths to the high- and low-resolution WFDB signal files. |
| report | Diagnosis | Free-text cardiologist report (original language). |
| scp_codes | Diagnosis | SCP-ECG statement codes mapped to likelihoods (0–100). |
| scp_descriptions | Diagnosis | Human-readable description of each SCP-ECG code. |
| heart_axis | Diagnosis | Cardiac electrical axis (e.g. LAD, RAD, MID). |
| infarction_stadium1 / 2 | Diagnosis | Staging of any myocardial infarction findings. |
| validated_by_human | Validation | Whether a human cardiologist validated the record. |
| validated_by | Validation | Identifier of the validating cardiologist (nullable). |
| second_opinion | Validation | Whether a second opinion was obtained. |
| quality | Signal quality | Noise flags: baseline drift, static/burst noise, electrode problems, extra beats, pacemaker. |
| strat_fold | Splits | Recommended stratified fold (1–10) for train/test splitting. |
| nurse / site | Provenance | Recording nurse and collection site identifiers. |
Example record
#1A worked example showing the values for one PTB-XL clinical ECG record.
ECG ID
#1
Patient ID
15709
Sampling (HR / LR)
500 / 100 Hz
Device
CS-12 E
Strat fold
3
Patient
Age56
SexFemale
HeightNot recorded
Weight63 kg
Recording date1984-11-09 09:17:34
ValidationHuman-validated
Cardiologist report
“sinusrhythmus periphere niederspannung”
SCP-ECG diagnostic statements
| Code | Description | Likelihood |
|---|---|---|
NORM | normal ECG | 100% |
LVOLT | low QRS voltages in the frontal and horizontal leads | — |
SR | sinus rhythm | — |
Signal quality
Baseline DriftClean
Static Noise, I-V1,
Burst NoiseClean
Electrodes ProblemsClean
Extra BeatsClean
PacemakerClean
Sample records
A handful of records illustrating the variety of diagnoses across the database.
| ECG ID | Patient | Age | Sex | Diagnosis (SCP) | Axis | Fold | Device |
|---|---|---|---|---|---|---|---|
| #1 | 15709 | 56 | Female | NORM · LVOLT · SR | — | 3 | CS-12 E |
| #2 | 13243 | 19 | Male | NORM · SBRAD | — | 2 | CS-12 E |
| #7 | 16193 | 54 | Male | NORM · SR | LAD | 7 | CS-12 E |
| #8 | 11275 | 48 | Male | IMI · ABQRS · SR | LAD | 9 | CS-12 E |
| #17 | 13619 | 56 | Male | AFLT · ABQRS · AFIB | ALAD | 9 | CS-12 E |
| #144 | 16914 | 81 | Male | PACE | — | 9 | AT-6 C |
Sex is encoded 0 = male, 1 = female. Diagnosis codes follow the SCP-ECG standard.