SYSTOLE: A PYTHON PACKAGE FOR PROCESSING, ANALYZING, AND SYNCHRONIZING CARDIAC DATA!
Today we are thrilled to announce the release of our lab’s first software package, Systole! Systole is a comprehensive python package intended to help you clean, transform, and analyze your cardiac time-series data, particularly in the context of psycho-physiological research. In addition to these basic functions, Systole offers built-in support for synchronizing your PsychoPy experiments with the heartbeat, making it easier to present stimuli at specific phases of the cardiac cycle. This is of particular interest for research in brain-body interaction and interoception. Unfortunately, most new studies in this area do no use open code, limiting reproducibility. Enter systole!
Example presentation of auditory tones at three cardiac phases.
As of today, Systole is provided as an early ‘pre-release’, and is far from feature complete – so please use with caution! For our initial release, we’ve focused on offering native support for the popular Nonin USB XPod pulse oximeter, which is frequently used in interoception experiments and offers a cheap (~300 GBP), easy to use platform for plethysmographic cardiac data collection. We hope that this will enable users to design robust interoception and cardiac synchrony tasks, and to share them with the community.
The toolbox also supports basic formats such as RR-interval time series, or instantaneous heart-rate data. Future packages and releases will include other data formats, such as ECG, electrogastrography, and respiration, and we hope the community will help to add support for other devices.
At present, Systole offers the following core features:
Online and offline beat-detection:
Detection and correction of outlier heartbeats (e.g., ectopic beats, recording artefacts):
Full-suite heart-rate variability (HRV) analysis including pre-processing and nonlinear time-frequency analyses
Tools for event-related analyses, e.g. data epoching and analysis of instantaneous heart rate:
… plus an entire suite of plotting functions to produce these graphics, and more!
Further, at the Systole website you can find complete documentation as well as interactive tutorials for a variety of workflows including:
Instantaneous heart rate extraction
Heartbeat evoked jazz music (e.g. a demo on how to synch stimuli to the heartbeat)
Outlier and ectobeat detection
We’ll be using Systole extensively in our ongoing Visceral Mind Project, and expect to continuously revise and improve it as we add new features and discover use-cases. Further, Systole is provided as a fully open software, so we invite you to contribute your own additions through Github!
In the near future, we will publish a methods paper + tutorial detailing the Systole package. In the meantime, if you use Systole in your research, please cite:
Nicolas Legrand, & Micah Allen. (2020, January 14). embodied-computation-group/systole: Pre-Alpha (Version 0.0.1). Zenodo. http://doi.org/10.5281/zenodo.3607913
Please let us know what you think! Happy heartbeat counting 😉