Card

Leipzig Heart Center ECG-Database: Arrhythmias in Children and Patients with Congenital Heart Disease

This dataset contains annotated ECG recordings from 29 unique children and 10 unique adults. Each patient’s data is organized into three separate files.

  1. Header File (.hea): This file provides metadata about the ECG recordings, including the number of channels, sampling frequency, and signal gain, essential for understanding and processing the ECG data correctly.

  2. Data File (.dat): This file contains the actual ECG signal data, allowing detailed analysis and application of processing algorithms.

  3. Annotation File (.atr): This file includes annotations of the ECG signals, detailing various cardiac events and rhythms identified by expert analysis, which are crucial for training and validating diagnostic algorithms.

The files are systematically named to reflect the patient group: filenames x001 through x029 represent children's ECGs, while x100 through x109 denote adult patients' ECGs.

Channels

Every recording of the children (x001 - x0029) includes the standard 12-lead electrocardiogram (ECG) channels (I, II, III, aVR, aVL, aVF, V1, V2, V3, V4, V5, V6) as well as intracardiac electrograms (IEGMs) from the following: a hexapolar coronary sinus catheter (5 leads), a catheter positioned in the right ventricular apex (1 lead), and an ablation catheter (1 lead).

The recordings of the adults (x100 - x109) include the 12-lead ECG and IEGMs from the catheter in the right ventricular apex (1 lead), the ablation catheter (1 lead), and, in some studies, the coronary sinus catheter (5 leads).

Overview of the Intracardiac electrograms leads:

IEGM Description
ABL12 Ablation and mapping catheter (distal electrodes)
CS12 Coronary sinus electrodes 1/2 (distal)
CS34 Coronary sinus electrodes 3/4
CS56 Coronary sinus electrodes 5/6
CS78 Coronary sinus electrodes 7/8
CS90 Coronary sinus electrodes 9/10 (proximal)
RVA12 Catheter in the right ventricular apex (distal electrodes)

Annotations

The database consists in total of 113924 annotated beats. The types of beats and portion are presented in this table.

Explanation of Beats Symbol Aux String
Sinus rhythm
Normal beats N
Preexcitation* N N-Prex
Complete right bundle branch block R
Complete left bundle branch block L
AV-Block 1°# b BI
Junctional escape beats j
Tachycardias
Ventricular Tachycardia# X VT
Accelerated Idioventricular Rhythm# X IVR
Supraventricular Tachycardia
Atrioventricular reentrant tachycardia# X AVRT
Atrioventricular nodal reentrant tachycardia# X AVNRT
Aberrated AVRT# X avrt
Aberrated AVNRT# X avnrt
AVNRT with AV-Block 2°# X AVNRT+BII
Atrial Tachycardia
Atrial Fibrillation# X AFIB
Ectopic atrial tachycardia# X EAT
Atrial Flutter# X AFL
Premature Beats
Premature atrial beats A
Aberrated premature atrial beats a
Preexcitated premature atrial beats* A A-Prex
Premature ventricular beats V
Fusion beats F
Premature junctional beats J
Paced beats
Atrial Paced beats* / /A
Ventricular Paced beats* / /V
Fusion of Ventricular paced beat and Normal Beat f

*custom Aux Strings for standard WFDB annotations to further specify these annotations.

# custom annotations used in addition to the standard WFDB annotations

The dataset also includes rhytm annotations:

Explanation of Rhythm Symbol Aux String
Sinus rhythm + (N
Tachycardias
Ventricular Tachycardia + (VT
Accelerated Idioventricular Rhythm + (IVR
Supraventricular Tachycardia
Atrioventricular reentrant tachycardia + (AVRT
Atrioventricular nodal reentrant tachcardia + (AVNRT
Atrial Tachycardia
Atrial Fibrillation + (AFIB
Ectopic atrial tachycardia + (EAT
Atrial Flutter + (AFL
Ectopic rhythm
Ectopic atrial rhythm + (A
Ventricular bigeminy rhythm + (B
Junctional rhythm + (J
Paced beats
Atrial Paced rhythm + (/A
Ventricular Paced rhythm + (/V

Geting started

The database can be accessed using Python and the WFDB software package.

Prerequisite

  1. Configured python environment
  2. Install the wfdb python package

sh pip install wfdb

View the data

To view the data using python you can use this script:

Note: To work in this configuration the database files and the python file has to be in the root folder of the project.

import wfdb

filename = "x008"
title="Record " + filename

# 0 -> I, 1 -> II etc.
# channels = [0,1,2,3,4,5,6,7,8,9,10,11]
channels = [0]
frequenz = 977

hour = 3600
min = 60

# ECG from 1:30 to 1:50
samplesTo = (1*min + 50) *frequenz
samplesFrom = (1*min +30) *frequenz

record = wfdb.rdrecord(filename, channels=channels, sampfrom=samplesFrom, sampto=samplesTo)
annotation = wfdb.rdann(filename, 'atr', sampfrom=samplesFrom, sampto=samplesTo, shift_samps=True)

wfdb.plot_wfdb(record=record, annotation=annotation, figsize=(24,18) , title=title, time_units='seconds')