pyPPG
pyPPG: a python toolbox for PPG morphological analysis.
Decision gist · record as of 2026-08-14
Yes, with conditions. Install if you work with finger PPG signals and need validated, standardized biomarker extraction—the toolbox is well-documented, has no known vulnerabilities, and is actively maintained at the repository level. However, be aware that the last PyPI release was over a year ago (aging status), the AGPL v3 license requires open-source compliance or internal-only use, and the 66 runtime dependencies create a large installation footprint. Verify that the aging release cycle does not conflict with your stability or support expectations.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python >= 3.10.
- The package has a large dependency tree (66 runtime packages) which may take time to resolve and install.
- Low friction installation via pip.
License · maintenance · safety
(agpl) — Licensed under AGPL v3, which requires that any modifications or derivative works distributed must also be released under AGPL v3 and make source code available. This is a strong copyleft license; use it only if you can comply with open-source redistribution obligations or if your use is internal only.
last release 2024-07-21 (754 days) · last repo commit 2025-04-28 · 75 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 95,143 downloads/mo, #13,290 on PyPI
Alternatives
Verify before relying
pip install pyPPG
import pyppg
# Load and analyze a PPG signal from a file
ppg_signal = pyppg.load_signal('signal.mat')
biomarkers = ppg_signal.get_biomarkers()- Whether the aging maintenance status (last release 754 days ago) affects real-world usability or if the package is stable enough for production use.
- Performance characteristics and scalability for processing long-term or high-frequency PPG recordings.
- Whether all 66 runtime dependencies are strictly necessary or if some are optional/unused in typical workflows.
What it is and what it does
pyPPG is a Python toolbox for analyzing finger photoplethysmogram (PPG) signals—the optical signals captured from fingertip blood flow. It automates the full pipeline of PPG analysis: loading raw signals from multiple file formats (MAT, TXT, CSV, EDF), preprocessing to remove noise and compute signal derivatives, detecting individual pulse waves by identifying systolic peaks and pulse onsets/offsets, and extracting a comprehensive set of 74 biomarkers (pulse wave features) that characterize cardiac and vascular properties. The toolbox is built on validated algorithms tested against public PPG databases and provides a signal quality index.
The package is intended for researchers and clinicians who need to extract standardized cardiac biomarkers from continuous PPG recordings. It handles real-time analysis of long-term recordings and abstracts away the complexity of beat detection and fiducial point identification, allowing users to focus on downstream analysis or clinical interpretation. The toolbox depends heavily on scipy, numpy, and pandas for numerical computation, plus wfdb and mne for signal I/O, and includes a web-based GUI via Eel for interactive use.
Use it for
- Extract heart rate and pulse wave morphology features from finger PPG recordings for cardiovascular research or clinical studies.
- Preprocess and segment PPG signals from wearable devices or clinical monitors to identify individual heartbeats and their fiducial points.
- Batch analyze multiple PPG files in different formats (MAT, CSV, EDF) to compute standardized biomarkers for population-level health assessment.
- Develop custom cardiac analysis pipelines by using pyPPG's API to load, filter, and extract biomarkers within your own Python code.
- Assess PPG signal quality and detect artifacts in continuous recordings before downstream analysis or machine learning model input.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, with conditions.
Install if you work with finger PPG signals and need validated, standardized biomarker extraction—the toolbox is well-documented, has no known vulnerabilities, and is actively maintained at the repository level. However, be aware that the last PyPI release was over a year ago (aging status), the AGPL v3 license requires open-source compliance or internal-only use, and the 66 runtime dependencies create a large installation footprint. Verify that the aging release cycle does not conflict with your stability or support expectations.
Install
pyppg on PyPI
Before you install
Low friction installation via pip. Maintenance status is aging—last release was over a year ago (2024-07-21), though the repository remains active with a recent commit (2025-04-28). The package carries 66 runtime dependencies including scipy, numpy, pandas, and visualization libraries; this large dependency tree increases the surface area for transitive issues.
Requires Python >= 3.10. The package has a large dependency tree (66 runtime packages) which may take time to resolve and install.
License in practice
Licensed under AGPL v3, which requires that any modifications or derivative works distributed must also be released under AGPL v3 and make source code available. This is a strong copyleft license; use it only if you can comply with open-source redistribution obligations or if your use is internal only.
Quickstart
pip install pyPPG
import pyppg
# Load and analyze a PPG signal from a file
ppg_signal = pyppg.load_signal('signal.mat')
biomarkers = ppg_signal.get_biomarkers()
Verify before relying
- Whether the aging maintenance status (last release 754 days ago) affects real-world usability or if the package is stable enough for production use.
- Performance characteristics and scalability for processing long-term or high-frequency PPG recordings.
- Whether all 66 runtime dependencies are strictly necessary or if some are optional/unused in typical workflows.
Package facts
| License | Not declared agpl |
| Python support | Supports the current Python release >=3.10 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 66 packagesscipynumpydotmappandaswfdbmneEelJinja2MarkupSafePillowaltgraphappdirsattrsauto-py-to-exeboltonsbottlebottle-websocketcertificffichardetcharset-normalizercoloramacontourpycyclerdecoratordotteddictfacefonttoolsfuturegevent |
| Maintenance | Aging 754 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 95,143 / month, #13,290 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | License :: OSI Approved :: GNU Affero General Public License v3Operating System :: OS IndependentProgramming Language :: Python :: 3 |
Evidence: pyPPG-1.0.73-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “PPG signal analysis”
- pyPPGAnalyzes finger photoplethysmogram (PPG) signals to detect pulse…
- neurokit2NeuroKit2 processes physiological signals (ECG, RSP, EDA, EMG, PPG,…
- wfdbRead, write, process, and plot physiologic signal and annotation data…
Give your agent the search over MCP, or paste the wish link into any chat.
More Information Analysis packages
A drop-in replacement for Python's standard `re` module that adds advanced regex features like nested sets, fuzzy matching, lookaround in conditionals, and full Unicode case-folding while maintaining backward compatibility.
pyarrow provides Python bindings to Apache Arrow's C++ libraries for efficient columnar data processing, serialization, and interoperability with pandas, NumPy, and other Python ecosystem tools.
NetworkX provides data structures and algorithms for creating, analyzing, and manipulating graphs and networks, supporting everything from simple undirected graphs to complex directed and weighted networks.
Connects Python applications to Snowflake data warehouses using the DB API 2.0 specification, enabling SQL queries, data transfers, and warehouse operations.
ContourPy calculates contours of 2D quadrilateral grids using C++11 algorithms wrapped in Python, offering serial and multithreaded implementations without requiring Matplotlib as a dependency.
Snowpark Python provides APIs to query and process data directly in Snowflake without moving data to your local system, with support for both native Snowpark and pandas-compatible interfaces.
Install it if you use Snowflake and want to process data without moving it to your application layer.
See also neurokit2 · PeakUtils · pupil-apriltags · wfdb · lalsuite · edfio · ruptures · noisereduce · broadbean · doppler-dsp