Psychophysiology with Python
Systole is an open-source Python package providing simple tools to record and analyze, cardiac signals for psychophysiology. In particular, the package provides tools to pre-process, analyze, and synchronize cardiac data from psychophysiology research. This includes tools for data epoching, heart-rate variability, and synchronizing stimulus presentation with different cardiac phases via psychopy.
The documentation can be found under the following link.
Systole can be installed using pip:
pip install systole
The following packages are required to use Systole:
- Numpy (>=1.15)
- SciPy (>=1.3.0)
- Pandas (>=0.24)
- Matplotlib (>=3.0.2)
- Seaborn (>=0.9.0)
- py-ecg-detectors (>=1.0.2)
Interactive plotting functions and reports generation will also require the following packages to be installed:
- plotly (>=4.8.0)
- plotly_express (>=0.4.1)
For an overview of all the recording functionalities, you can refer to the following tutorials:
- Artefacts detection and artefacts correction
- Heart rate variability
Systole 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 https://www.brainproducts.com/ (Ethernet).
Systole implements the artefact rejection method recently proposed by Lipponen & Tarvainen (2019) .
from systole import simulate_rr from systole.plotting import plot_subspaces rr = simulate_rr() plot_subspaces(rr)
Systole integrates a set of functions for interactive data visualization based on Plotly.
Systole supports basic time-domain, frequency-domain and non-linear extraction indices.
All time-domain and non-linear indices have been tested against Kubios HVR 2.2 (<https://www.kubios.com>). The frequency-domain indices can slightly differ. We recommend to always check your results against another software.
from systole.plotting import plot_psd plot_psd(rr)
This module was created and is maintained by Nicolas Legrand and Micah Allen (ECG group, https://the-ecg.org/). If you want to contribute, feel free to contact one of the developers, open an issue or submit a pull request.
This program is provided with NO WARRANTY OF ANY KIND.
- Jan C. Brammer (firstname.lastname@example.org)
This software and the ECG are supported by a Lundbeckfonden Fellowship (R272-2017-4345), and the AIAS-COFUND II fellowship programme that is supported by the Marie SkÅ‚odowska-Curie actions under the European Unionâ€™s Horizon 2020 (Grant agreement no 754513), and the Aarhus University Research Foundation.
Systole was largely inspired by pre-existing toolboxes dedicated to heartrate variability and signal analysis.
Peak detection (PPG signal)
|||van Gent, P., Farah, H., van Nes, N., & van Arem, B. (2019). HeartPy: A novel heart rate algorithm for the analysis of noisy signals. Transportation Research Part F: Traffic Psychology and Behaviour, 66, 368â€“378. https://doi.org/10.1016/j.trf.2019.09.015|
Artefact detection and correction:
|||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|
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
|Filename, size||File type||Python version||Upload date||Hashes|
|Filename, size systole-0.1.2-py3-none-any.whl (8.9 MB)||File type Wheel||Python version py3||Upload date||Hashes View|