v0.0.6

A Python library for parsing, processing, and visualizing multi-format ECG files.

12 ECG Formats Signal Processing ECG Plotting
$ pip install ecgdatakit

Multi-Format Parsing

Parse HL7 aECG, Philips Sierra, GE MUSE, SCP-ECG, DICOM, EDF, WFDB, MFER, and more into one unified data structure.

Signal Processing

Butterworth filters, R-peak detection (Pan-Tompkins & Shannon energy), HRV analysis, FFT, signal quality, lead derivation, ECG cleaning, and DeepFADE neural-net denoising.

Visualization

Standard 12-lead grids, R-peak annotations, HRV dashboards, spectrograms, and full ECG reports. Static or interactive.

Quick Example

from ecgdatakit import FileParser
from ecgdatakit.processing import diagnostic_filter, detect_r_peaks, heart_rate
from ecgdatakit.plotting import plot_12lead, plot_peaks

# Parse any ECG file (auto-detect format)
record = FileParser().parse("ecg_file.xml")

# Filter and detect R-peaks
lead = record.leads[1]  # Lead II
filtered = diagnostic_filter(lead)
peaks = detect_r_peaks(filtered)
print(f"Heart rate: {heart_rate(filtered, peaks):.0f} bpm")

# Visualize
fig = plot_12lead(record)
fig.savefig("ecg_report.png", dpi=150)

Supported Formats

HL7 aECGHealth Level 7 annotated ECG
Philips Sierra XMLPhilips Sierra ECG format
GE MUSE XMLGE MUSE ECG management
ISHNE HolterHolter & Noninvasive ECG
Mortara EL250Mortara ELI 250 device
EDF/EDF+European Data Format
SCP-ECGStandard Comms Protocol
DICOM WaveformMedical imaging standard
WFDBPhysioNet WaveForm DB
MFERMedical waveform encoding
Mindray R12BeneHeart R12 device
GE MAC 2000Resting ECG system

Installation

# Core (parsing only)
pip install .

# With signal processing (scipy)
pip install ".[processing]"

# With plotting (matplotlib + plotly)
pip install ".[plotting,plotting-interactive]"

# ECG cleaning backends (BioSPPy + NeuroKit2)
pip install ".[cleaning]"

# DeepFADE neural-net denoising (requires torch)
pip install ".[denoising]"

# Everything (except torch — install separately)
pip install ".[all]"