Metadata-Version: 2.4
Name: pyPSG-toolbox
Version: 1.0.4
Summary: Python toolbox for PPG, ECG, SPO2 and HRV analysis
Home-page: https://github.com/pszabolcsm/pyPSG
Author: Szabolcs M. Péter, Marton A. Goda, PhD
Author-email: peter.szabolcs.matyas@hallgato.ppke.hu
Maintainer-email: "Szabolcs M. Péter" <peter.szabolcs.matyas@hallgato.ppke.hu>
License-Expression: GPL-3.0-only
Project-URL: Homepage, https://github.com/pszabolcsm/pyPSG
Project-URL: Documentation, https://pypsg-github.readthedocs.io/en/latest/
Project-URL: Repository, https://github.com/pszabolcsm/pyPSG.git
Project-URL: Issues, http://https://github.com/pszabolcsm/pyPSG/issues
Classifier: Development Status :: 4 - Beta
Classifier: Programming Language :: Python :: 3.10
Classifier: Operating System :: OS Independent
Requires-Python: >=3.10,<3.11
Description-Content-Type: text/markdown
License-File: LICENSE.txt
Requires-Dist: alabaster==0.7.16
Requires-Dist: altgraph==0.17.3
Requires-Dist: appdirs==1.4.4
Requires-Dist: auto-py-to-exe==2.23.1
Requires-Dist: babel==2.17.0
Requires-Dist: boltons==21.0.0
Requires-Dist: bottle==0.12.23
Requires-Dist: bottle-websocket==0.2.9
Requires-Dist: chardet==5.0.0
Requires-Dist: contourpy==1.0.5
Requires-Dist: cycler==0.11.0
Requires-Dist: dotmap==1.3.30
Requires-Dist: dotteddict==2016.3.11
Requires-Dist: Eel==0.14.0
Requires-Dist: face==20.1.1
Requires-Dist: fonttools==4.37.1
Requires-Dist: future==0.18.2
Requires-Dist: gevent==21.12.0
Requires-Dist: gevent-websocket==0.10.1
Requires-Dist: glom==22.1.0
Requires-Dist: greenlet==1.1.3
Requires-Dist: heartpy==1.2.7
Requires-Dist: imagesize==1.4.1
Requires-Dist: joblib==1.2.0
Requires-Dist: kiwisolver==1.4.4
Requires-Dist: lempel-ziv-complexity==0.2.2
Requires-Dist: mne==1.5.0
Requires-Dist: mpldatacursor==0.7.1
Requires-Dist: numpy==1.23.2
Requires-Dist: pandas==1.4.4
Requires-Dist: parallel_map==0.2.1
Requires-Dist: patsy==0.5.3
Requires-Dist: pecg==2.0.5
Requires-Dist: pefile==2022.5.30
Requires-Dist: Pillow==9.2.0
Requires-Dist: pobm==1.0.1
Requires-Dist: pooch==1.6.0
Requires-Dist: pyEDFlib==0.1.40
Requires-Dist: Pygments==2.19.1
Requires-Dist: pyinstaller==5.5
Requires-Dist: pyinstaller-hooks-contrib==2022.10
Requires-Dist: pyparsing==3.0.9
Requires-Dist: pyPPG==1.0.73
Requires-Dist: pytz==2022.4
Requires-Dist: pywin32-ctypes==0.2.0
Requires-Dist: scikit-learn==1.1.3
Requires-Dist: scipy==1.9.1
Requires-Dist: snowballstemmer==2.2.0
Requires-Dist: soundfile==0.11.0
Requires-Dist: sphinx-rtd-theme==1.3.0
Requires-Dist: statsmodels==0.13.2
Requires-Dist: threadpoolctl==3.1.0
Requires-Dist: tomli==2.2.1
Requires-Dist: tqdm==4.64.1
Requires-Dist: webencodings==0.5.1
Requires-Dist: wfdb==3.4.0
Requires-Dist: whichcraft==0.6.1
Requires-Dist: zope.event==4.5.0
Requires-Dist: zope.interface==5.4.0
Dynamic: author-email
Dynamic: home-page
Dynamic: license-file
Dynamic: requires-python

# *pyPSG* toolbox documentation


## Introduction

Dedicated toolboxes have been developed for the analysis of individual physiological signals.
However, for the purpose of fast and efficient data analysis, there was a need to unify these separate modules.
To address this gap, pyPSG was developed — a Python-based toolbox capable of handling and analyzing various types of physiological signals within a single environment.
The toolbox standardizes the signal processing workflow across data from different sources and also enables the preprocessing of physiological signals for machine learning applications.
During development, modularity was a key consideration to allow future expansion with additional biological signals.



## Description
Input data, raw signals are first unified in the EDF (European Data Format) structure. 
The pipeline processes three parallel signal branches: PPG, ECG, and SpO$_2$. 
Each signal undergoes preprocessing using its corresponding module (pyPPG, pecg, or pobm). 
In the case of PPG and ECG, fiducial points are detected to derive beat-to-beat intervals, which are then forwarded to the mhrv module for HRV/BRV analysis. 
Biomarkers are extracted separately from all three signal types, and the results are aggregated and saved for further data analysis.

![](docs/figs/pipeline.png)

## Requirements

### Python requirements:


Python == 3.10

pecg == 2.0.5

pyPPG == 1.0.73

scipy == 1.9.1

numpy == 1.23.2

pandas == 1.4.4

dotmap == 1.3.30

wfdb == 3.4.0

mne == 1.5.0


### System requirements:


To run the ECG wavdet fiducial-points detector [matlab runtime (MCR) 2021a](https://www.mathworks.com/products/compiler/matlab-runtime.html) is required.

If you wish to use the epltd peak detector [additional wfdb toolbox](https://archive.physionet.org/physiotools/wfdb-linux-quick-start.shtml) is required.

If you don't want or can't install this - It's Ok! you can use another peak detector from the package.

## Installation

Available on pip, with the command: **pip install pyPSG-toolbox**

pip project: https://pypi.org/project/pyPSG-toolbox/

### Matlab runtime installation:

Follow the guidelines provided in the link: https://www.mathworks.com/products/compiler/matlab-runtime.html, and choose the version of 2021a(9.10).


## Documentation

https://pypsg-github.readthedocs.io/en/latest/
