  Photoplethysmography is a non-invasive optical technique that measures
changes in blood volume within tissues. It is commonly and increasingly used
for in a variety of research and clinical application to assess vascular
dynamics and physiological parameters. Yet, contrary to heart rate variability
measures, a field which has seen the development of stable standards and
advanced toolboxes and software, no such standards and open tools exist for
continuous photoplethysmogram (PPG) analysis. Consequently, the primary
objective of this research was to identify, standardize, implement and validate
key digital PPG biomarkers. This work describes the creation of a standard
Python toolbox, denoted pyPPG, for long-term continuous PPG time series
analysis recorded using a standard finger-based transmission pulse oximeter.
The improved PPG peak detector had an F1-score of 88.19% for the
state-of-the-art benchmark when evaluated on 2,054 adult polysomnography
recordings totaling over 91 million reference beats. This algorithm
outperformed the open-source original Matlab implementation by ~5% when
benchmarked on a subset of 100 randomly selected MESA recordings. More than
3,000 fiducial points were manually annotated by two annotators in order to
validate the fiducial points detector. The detector consistently demonstrated
high performance, with a mean absolute error of less than 10 ms for all
fiducial points. Based on these fiducial points, pyPPG engineers a set of 74
PPG biomarkers. Studying the PPG time series variability using pyPPG can
enhance our understanding of the manifestations and etiology of diseases. This
toolbox can also be used for biomarker engineering in training data-driven
models. pyPPG is available on physiozoo.org
