Holter HRV analysis
Analyze a single ECG or Holter recording — preprocess the waveform, compute HRV metrics, inspect signal quality in the waveform explorer, and generate analytical interpretation.
Research question
What are the time-domain, frequency-domain, and nonlinear HRV characteristics of this recording, and is the signal quality sufficient for reliable metrics?
Who this is for
- Cardiovascular researchers reviewing individual Holter or telemetry recordings
- Hospital research programs running single-subject signal QC before cohort aggregation
- Labs migrating from WFDB/MATLAB preprocessing scripts to a reproducible web workflow
Data requirements
| Data | Required | Purpose |
|---|---|---|
| ECG waveform | Yes | R-peak detection, RR extraction, HRV computation |
| WFDB pair, CSV, or EDF | Supported formats | Automatic format detection on upload |
For a quick local test, generate a sample CSV:
conda activate biochem
python products/cardiology/experiments/example01/generate_ecg_csv.py
Workflow
Create study → Upload ECG → Preprocess → Compute HRV → Explorer → Interpret (optional)
Step 1 — Upload recording
Create a study and upload a WFDB pair (.hea + .dat), CSV with time and amplitude columns, or EDF waveform. Open the dataset in the Dataset inspector.
Step 2 — Preprocess ECG
Click Run preprocessing on the Overview tab. The pipeline produces:
- R-peak locations and RR interval series
- Signal quality index (SQI) and artifact rate
- Downsampled waveform preview for the explorer
Monitor job status from the navbar Jobs panel.
Alternatively, run Full ECG analysis to chain preprocess and HRV in one job.
Step 3 — Compute HRV
When preprocessing completes, click Compute HRV. Review metrics in the HRV panel:
| Domain | Examples |
|---|---|
| Time-domain | SDNN, RMSSD, mean HR, pNN50 |
| Frequency-domain | LF, HF, LF/HF ratio |
| Nonlinear | SD1, SD2, sample entropy (when available) |
Step 4 — Explore waveforms
Switch to the Explorer tab. Pan and zoom the downsampled trace with R-peak markers. Low-quality segments may be highlighted when SQI is poor — use this for QC before trusting metrics.
Step 5 — Arrhythmia burden (optional)
Run Compute arrhythmia burden on the preprocess output for irregularity percentage, pause burden, and beat-level flags.
Step 6 — Interpret (optional)
Open the HRV run detail page and click Interpret for a descriptive summary citing computed metrics. Requires Ollama configuration — see repo root ai.md.
Expected outputs
- RR interval series with SQI and artifact summary
- Time, frequency, and nonlinear HRV metrics
- Interactive waveform explorer with R-peak overlay
- Arrhythmia burden statistics (when arrhythmia pipeline run)
- AI narrative with metric citations
Example insight
RMSSD is reduced and LF/HF is elevated relative to typical resting norms, with moderate artifact burden concentrated in the first hour of recording — interpret frequency-domain metrics with caution in affected segments.