RHRT: An R package to assess Heart Rate Turbulence

Heart Rate Turbulence (HRT) is a naturally occurring phenomenon of the heart that was first described by Schmidt et al. (1999). After a premature ventricular contraction (VPC) – an atypical heart beat that originates in the ventricles and occurs with a lower latency than a regular beat – the heart rate fluctuates. This fluctuation consists of a fast increase and later decrease in heart rate. This variability of interval lengths is an indicator for the condition of the autonomic nervous system: While no reaction to the premature ventricular beat and therefore no variation suggests an underlying pathology, a distinctive turbulence is considered healthy. Therefore, HRT can be used in medicine to determine the risk status of a person especially with certain diseases or conditions, e.g. after a myocardial infarction. (Bauer et al., 2008)


Summary
Heart Rate Turbulence (HRT) is a naturally occurring phenomenon of the heart that was first described by Schmidt et al. (1999). After a premature ventricular contraction (VPC) -an atypical heart beat that originates in the ventricles and occurs with a lower latency than a regular beat -the heart rate fluctuates. This fluctuation consists of a fast increase and later decrease in heart rate. This variability of interval lengths is an indicator for the condition of the autonomic nervous system: While no reaction to the premature ventricular beat and therefore no variation suggests an underlying pathology, a distinctive turbulence is considered healthy. Therefore, HRT can be used in medicine to determine the risk status of a person especially with certain diseases or conditions, e.g. after a myocardial infarction. (Bauer et al., 2008) To assess HRT in R we wrote the package RHRT that can be found on CRAN and GitHub. It finds occurrences of HRT in heart beat interval data, calculates the most used parameters (Turbulence Onset (TO), Turbulence Slope (TS), Turbulence Timing (TT) and normalised Turbulence Slope (nTS)) and plots the results. The package works best and fastest when given annotation data, but can also find HRT based on commonly accepted filtering rules that were first published in Grimm et al. (2003). Most filtering parameters and calculation methods can be freely adjusted to enable research on the methodology itself. In addition to parameter calculation, RHRT can classify the data into common risk categories (HRT0-2 and HRTA-C) and estimate the reliability of the results based on the number and parameter values of the HRTs.

Statement of need
Since it reflects the status of the autonomic nervous system, HRT is a feasible method to estimate the health risk of a person (Lombardi, 2011). Together with other autonomic markers as heart rate variability, HRT analysis is already used for risk stratification in the clinical practice. Several tools for HRT analysis have been published until now, but are not available anymore (an HRT program available on request on the discontinued www.h-r-t.org and a software tool published in Kudryński et al. (2011)) or are restricted to specific platforms like HRVAnalysis to Windows (Pichot et al., 2016). Furthermore, they focus on risk stratification and therefore implement the standard HRT assessment workflows and parameters.
However, analysis of the methodology of HRT assessment is still needed (Blesius et al., 2020), because optimal filtering and calculation parameters have not been systematically assessed yet. Variations in methodology can lead to less comparable or even conflicting data and reduce the validity of HRT. To tackle this, a tool like RHRT is required with batch processing and the possibility to alter the used methodology. For example, the package enabled us to study the optimal number of intervals needed for TS calculation, which is a continous issue that leads to reduced comparability of research data (Blesius et al., 2021). * corresponding author † co-author

Minimal example
To install RHRT use install.packages("RHRT") for the version on CRAN. To install the continuosly developed version on GitHub you can use the devtools package: devtools::install_github("VBlesius/RHRT/RHRT") The most straightforward use of RHRT is to scan your interval data for valid HRTs and analyse the results: library(RHRT) ## scan your interval data and save the results as an HRTList ### the input should be a numeric vector consisting of RR interval data ### testdataLong is dummy data included in the package hrtl <-vectorToHRT(testdataLong) ## get the HRT class of your data getResults(hrtl, type = "class") #> [1] "HRT0" ## have a look at the data and the parameters plot(hrtl) Figure 1: Plot of an HRTList Object: the plot resembles the standard visualisation of HRT -a tachogram -in which the indices of the intervals are plotted against their lengths. The tachogram and HRT parameters TO and TS are drawn in black, red and blue, respectively, while the tachograms of all underlying HRTs are drawn in grey in the background. The plot is zoomed in by default to show the HRT parameter values more precisely, so the intervals before and after the VPC are outside the plot range. RR interval: interval between two heartbeats measured between the R-peaks in the ECG, couplRR: coupling interval (interval between last sinus induced contraction and VPC), compRR: compensatory interval (interval between VPC and following sinus induced contraction), TO: Turbulence Onset, TS: Turbulence Slope.
More examples and a detailed description of the objects and functions can be found in the vignette of the package.