Open-access, reproducible pipelines for peripheral physiological signal analysis
BBSIG is a collaborative initiative aimed at streamlining and standardizing the analysis of peripheral physiological data – mainly cardiovascular activity (electrocardiography [ECG], photoplethysmography [PPG]) and respiration – in relation to brain and behavioral data. Our goal is to develop accessible, reproducible, and well-documented analysis pipelines that researchers can integrate into their projects.
We provide a set of open-access, Python-based pipelines, implemented with the modular structure of Jupyter notebooks. After comparing existing open-source packages, such as NeuroKit2 and Systole, we integrated the most suitable functions for peripheral physiological data processing into a recommended sequence of preprocessing and analysis steps, which can be adapted to each research project. Our pipelines are compatible with the Brain Imaging Data Structure (BIDS) specification for file organization and naming conventions.
Our mission is to facilitate and enhance the reproducibility and transparency in peripheral physiological signal analysis by offering open-access, customizable pipelines with step-by-step tutorials. Whether you are a novice or an expert in brain-body interactions, BBSIG provides tools and guidance to support your research.
Currently, BBSIG v0.0.1 includes the following pipelines:
- Electrocardiography (ECG) preprocessing (
ecg_preproc.ipynb): preprocess raw ECG data, including signal cleaning, R-peak detection and QRS complex delineation. Then, export key ECG features such as R-peak and T-wave offset locations, RR intervals time-series and interpolated heart rate (HR), useful for later analysis stages. - Photoplethysmography (PPG) preprocessing (
ppg_preproc.ipynb): process raw PPG data, including signal normalization, cleaning, clipping artifacts correction and systolic peaks detection. Then, export key PPG information such as systolic peak locations, RR intervals time-series and interpolated heart rate (HR), useful for later analysis stages. - Heart Rate Variability (HRV) analysis (
hrv_analysis.ipynb): compute time-domain and frequency-domain HRV metrics, starting from the previously preprocessed ECG or PPG data (or from your own RR intervals time-series).
For the full documentation and step-by-step tutorials, visit the Overview page.
In order to run the BBSIG pipelines, we recommend you follow these two quick setup steps:
-
Create the
bbsig_pipelineenvironment: create a dedicated virtual environment, calledbbsig_pipeline, from the providedbbsig_pipeline_environment.ymlfile. This is based on Python >=3.11 and features a pre-specified collection of packages, including:- numpy (>=1.26)
- pandas (>=2.2.0)
- matplotlib (>=3.8.2)
- bokeh (=3.3.4)
- seaborn (>=0.13.2)
- neurokit2 (>=0.2.7)
- systole (=0.3.0)
- rpy2 (= 3.5)
To know more, check our documentation at Create the virtual environment.
-
Organize your folders and physiological recordings according to the BIDS standards: for optimal compatibility with our pipelines, standardize the folder structure, file naming and file formats of your peripheral physiological data according to the Brain Imaging Data Structure (BIDS) specification. To know more, check our documentation at Organize your BIDS folders.
When using or adapting the BBSIG pipelines in your research work, please cite us in your publication as:
APA
Gerosa M., Agrawal N., Ciston A.B., Fischer A., Fourcade A., Koushik A., Neubauer M., Patyczek A., Piejka A., Reinwarth E., Roellecke L., Shum Y.H., Verschooren S., Gaebler M. (2025). Brain-Body Analysis Special Interest Group (BBSIG) (Version 0.0.1) [Computer software]. https://doi.org/10.5281/zenodo.15212797
BibTeX
```
@misc{Gerosa_Brain-Body_Analysis_Special_2025,
author = {Gerosa, Marta and Agrawal, Niket and Ciston, Anthony Buck and Fischer, Anna and Fourcade, Antonin and Koushik, Abhay and Neubauer, Mia and Patyczek, Agata and Piejka, Aleksandra and Reinwarth, Elias and Roellecke, Lucy and Shum, Yu Hei and Verschooren, Sam and Gaebler, Michael},
doi = {10.5281/zenodo.15212797},
month = {4},
title = {Brain-Body Analysis Special Interest Group (BBSIG)},
url = {https://github.com/martager/bbsig},
year = {2025}
}
```
- ECG preprocessing: enable looping over multiple participants (without manual correction)
- HRV analysis: solve NeuroKit2's bug in frequency-domain plotting (or develop our own plot)
- Make BBSIG into a Python package
