Systole is an open-source Python package implementing simple tools for working with cardiac signals for psychophysiology research. In particular, the package provides tools to pre-process, visualize, and analyze cardiac data. This includes tools for data epoching, artefact detection, artefact correction, evoked heart rate analyses, heart rate variability analyses, circular statistical approaches to analysing cardiac cycles, and synchronising stimulus presentation with different cardiac phases via Psychopy.

If you have questions, you can ask them in the Gitter chat.

How to cite?#

If you are using Systole in a publication we ask you to cite the following paper:

  • Legrand et al., (2022). Systole: A python package for cardiac signal synchrony and analysis. Journal of Open Source Software, 7(69), 3832,

doi = {10.21105/joss.03832},
url = {},
year = {2022},
publisher = {The Open Journal},
volume = {7},
number = {69},
pages = {3832},
author = {Nicolas Legrand and Micah Allen},
title = {Systole: A python package for cardiac signal synchrony and analysis},
journal = {Journal of Open Source Software}

Systole documentation#


Getting started

New to Systole? Check out the getting started guides. They contain an introduction to Systole’ main concepts and links to additional tutorials.


Example gallery

See this section for examples of using Systole in different ways.



New to cardiac signal analysis? Want to see how you can use Systole when dealing with real-world problems? Check out the tutorial notebooks for an introduction to theoretical and practical aspects of physiological signal analysis for cognitive neuroscience.


API reference

The reference guide contains a detailed description of the Systole API. The reference describes how the methods work and which parameters can be used.


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.


This module was created and is maintained by Nicolas Legrand and Micah Allen (ECG group, 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.


AU lundbeck lab