pecg.ecg package

pecg.ecg.FiducialPoints

class pecg.ecg.FiducialPoints.FiducialPoints(signal: array, fs: int)[source]

Bases: object

The purpose of the FiducialPoints class is to calculate the fiducial points.

Parameters:
  • signal – the ECG signal as a ndarray, with shape (L, N) when L is the number of channels or leads and N is the number of samples.

  • fs – The sampling frequency of the signal.[Hz]

from pecg.ecg import FiducialPoints as Fp
fp = Fp.FiducialPoints(f_ecg_rec, fs)
wavedet(matlab_pat: str, peaks: array = array([], dtype=float64))[source]

The wavedat function uses the matlab algorithm wavedet, compiled for python. The algorithm is described in the following paper: [1]. The function is calculating the fiducial points of the ECG recording using wavelet transform.

Parameters:
  • matlab_pat – path to matlab runtime 2021a directory

  • peaks – Optional input- Annotation of the reference peak detector (Indices of the peaks), as an ndarray of shape (L,N), when L is the number of channels or leads and N is the number of peaks. If peaks are not given, the peaks are calculated with the jqrs detector.

Returns:

fiducials: Nested dictionary of leads - For every lead there is a dictionary that includes indexes for for each one of nine fiducials points.

matlab_pat = '/usr/local/MATLAB/R2021a'
peaks = fp.jqrs()
fiducials = fp.wavedet(matlab_pat, peaks)
epltd()[source]

This function calculates the indexes of the R-peaks with epltd peak detector algorithm. This algorithm were introduced by [2].

Returns:

indexes of the R-peaks in the ECG signal, as an ndarray of shape (L,N), when L is the number of channels or leads and N is the number of peaks.

peaks = fp.epltd()
xqrs()[source]

This function wraps the XQRS function of the WFDB package.

Returns:

indexes of the R-peaks in the ECG signal, as an ndarray of shape (L,N), when L is the number of channels or leads and N is the number of peaks.

peaks = fp.xqrs()
jqrs(thr: float = 0.8, rp: float = 0.25)[source]

The function is an Implementation of an energy based qrs detector [3]. The algorithm is an adaptation of the popular Pan & Tompkins algorithm [2]. The function assumes the input ecg is already pre-filtered i.e. bandpass filtered and that the power-line interference was removed. Of note, NaN should be represented by the value -32768 in the ecg (WFDB standard).

Parameters:
  • thr – threshold, default value is 0.8.

  • rp – refractory period (sec), default value is 0.25.

Returns:

indexes of the R-peaks in the ECG signal, as an ndarray of shape (L,N), when L is the number of channels or leads and N is the number of peaks.

peaks = fp.jqrs()

pecg.ecg.Biomarkers

class pecg.ecg.Biomarkers.Biomarkers(signal: array, fs: int, fiducials: dict)[source]

Bases: object

The purpose of the Biomarkers class is to calculate the biomarkers, we divided the morphological biomarkers into two main groups: intervals and waves. :param signal: The ECG signal as a ndarray. :param fs: The sampling frequency of the signal [Hz]. :param fiducials: Nested dictionary of leads - For every lead there is a dictionary that includes indexes for for each one of nine fiducials points. this nested dictionary can be calculated using the FiducialPoints module.

from pecg.ecg import Biomarkers as Obm
obm = Obm.Biomarkers(f_ecg_rec, fs, fiducials)
ints, stat_i = obm.intervals()
waves, stat_w = obm.waves()
intervals()[source]
Returns:

  • intervals_b: Dictionary that includes all the row data, for the Interval duration and segments biomarkers.

  • intervals_statistics: Dictionary that includes the mean, median, min, max, iqr and std, for every Interval duration and segments biomarker.

Interval duration and segments:

Biomarker

Description

P-waveint

Time interval between P-on and P-off.

PRint

Time interval between the P-on to the QRS-on.

PRseg

Time interval between the P-off to the QRS-on.

PRint2

Time interval between P-peak and R-peak as defined by Mao et al.

QRSint

Time interval between the QRS-on to the QRS-off.

QTint

Time interval between the QRS-on to the T-off.

QTcBint

Corrected QT interval (QTc) using Bazett’s formula.

QTcFriint

QTc using the Fridericia formula.

QTcFraint

QTc using the Framingham formula.

QTcHint

QTc using the Hodges formula.

T-waveint

Time interval between T-on and T-off.

TPseg

Time interval between T-off and P-on.

RRint

Time interval between sequential R-peaks.

Rdep

Time interval betweem Q-on and R-peak.

waves()[source]
Returns:

  • waves_b: Dictionary that includes all the row data, for every Waves characteristic biomarker.

  • waves_statistics: Dictionary that includes the mean, median, min, max, iqr and std, for every Waves characteristic biomarker.

Waves characteristics:

Biomarker

Description

P-wave

Amplitude difference between P-peak and P-off.

T-wave

Amplitude difference between T-peak on and T-off.

R-wave:

R-peak amplitude.

P-waveArea

P-wave interval area defined as integral from the P-on to the P-off.

T-waveArea

T-wave interval area defined as integral from the T-on to the T-off.

QRSArea

QRS interval area defined as integral from the QRS-on to the QRS-off.

STseg

Amplitude difference between QRS-off and T-on.

J-point

Amplitude in 40ms after QRS-off as defined by Hollander et al.

Module contents