systole.detection.rr_artefacts#

systole.detection.rr_artefacts(rr: Union[List, ndarray], c1: float = 0.13, c2: float = 0.17, alpha: float = 5.2, input_type: str = 'rr_ms') Dict[str, ndarray][source]#

Artefacts detection from RR time series using the subspaces approach proposed by Lipponen & Tarvainen (2019).

Parameters
rr

1d numpy array of RR intervals (in seconds or miliseconds) or peaks vector (boolean array).

c1

Fixed variable controling the slope of the threshold lines. Default is 0.13.

c2

Fixed variable controling the intersect of the threshold lines. Default is 0.17.

alpha

Scaling factor used to normalize the RR intervals first deviation.

input_type

The type of input vector. Defaults to “rr_ms” for vectors of RR intervals, or interbeat intervals (IBI), expressed in milliseconds. Can also be a boolean vector where 1 represents the occurrence of R waves or systolic peakspeaks vector “rr_s” or IBI expressed in seconds.

Returns
artefacts

Dictionary storing the parameters of RR artefacts rejection. All the vectors outputed have the same length as the provided RR time serie:

  • subspace1np.ndarray

    The first dimension. First derivative of R-R interval time serie.

  • subspace2np.ndarray

    The second dimension (1st plot).

  • subspace3np.ndarray

    The third dimension (2nd plot).

  • mRRnp.ndarray

    The mRR time serie.

  • ectopicnp.ndarray

    Boolean array indexing probable ectopic beats.

  • longnp.ndarray

    Boolean array indexing long RR intervals.

  • shortnp.ndarray

    Boolean array indexing short RR intervals.

  • missednp.ndarray

    Boolean array indexing missed RR intervals.

  • extranp.ndarray

    Boolean array indexing extra RR intervals.

  • threshold1np.ndarray

    Threshold 1.

  • threshold2np.ndarray

    Threshold 2.

Notes

This function will use the method proposed by [1] to detect ectopic beats, long, shorts, missed and extra RR intervals.

References

1

Lipponen, J. A., & Tarvainen, M. P. (2019). A robust algorithm for heart rate variability time series artefact correction using novel beat classification. Journal of Medical Engineering & Technology, 43(3), 173-181. https://doi.org/10.1080/03091902.2019.1640306

Examples

>>> from systole import simulate_rr
>>> from systole.detection import rr_artefacts
>>> rr = simulate_rr()  # Simulate RR time series
>>> artefacts = rr_artefacts(rr)
>>> print(artefacts.keys())
dict_keys(['subspace1', 'subspace2', 'subspace3', 'mRR', 'ectopic', 'long',
'short', 'missed', 'extra', 'threshold1', 'threshold2'])