Installation#
The last stable version of Systole can be installed using pip:
pip install systole
If you want to download the dev branch instead and try the last features that are currently under development (and probably a bit unstable), use:
pip install “git+https://github.com/embodied-computation-group/systole.git@dev”
The following packages are required to use Systole:
- Numpy (>=1.15) 
- SciPy (>=1.3.0) 
- Pandas (>=0.24) 
- Numba (>=0.51.2) 
- Seaborn (>=0.9.0) 
- Matplotlib (>=3.0.2) 
- Bokeh (>=2.3.3) 
- pyserial (>=3.4) 
- setuptools (>=38.4) 
- requests (>=2.26.0) 
- tabulate (>=0.8.9) 
The Python version should be 3.7 or higher.
Getting started#
from systole import import_dataset1
# Import ECg recording
signal = import_dataset1(modalities=['ECG']).ecg.to_numpy()
Signal extraction and interactive plotting#
The package integrates a set of functions for interactive or non interactive data visualization based on Matplotlib and Bokeh.
from systole.plots plot_raw
plot_raw(signal[60000 : 120000], modality="ecg", backend="bokeh",
            show_heart_rate=True, show_artefacts=True, figsize=300)
Artefacts detection and rejection#
Artefacts can be detected and corrected in the RR interval time series or the peaks vector using the method proposed by Lipponen & Tarvainen (2019).
from systole.detection import ecg_peaks
from systole.plots plot_subspaces
# R peaks detection
signal, peaks = ecg_peaks(signal, method='pan-tompkins', sfreq=1000)
plot_subspaces(peaks, input_type="peaks", backend="bokeh")
Heart rate variability analysis#
Systole implements time-domain, frequency-domain and non-linear HRV indices, as well as tools for evoked heart rate analysis.
from bokeh.layouts import row
from systole.plots plot_frequency, plot_poincare
row(
    plot_frequency(peaks, input_type="peaks", backend="bokeh", figsize=(300, 200)),
    plot_poincare(peaks, input_type="peaks", backend="bokeh", figsize=(200, 200)),
    )
Online systolic peak detection, cardiac-stimulus synchrony, and cardiac circular analysis#
The package natively supports recording of physiological signals from the following setups: - Nonin 3012LP Xpod USB pulse oximeter together with the Nonin 8000SM ‘soft-clip’ fingertip sensors (USB). - Remote Data Access (RDA) via BrainVision Recorder together with Brain product ExG amplifier (Ethernet).