Marton A. Goda, Peter H. Charlton, Joachim A. Behar
{"title":"pyPPG: A Python toolbox for comprehensive photoplethysmography signal analysis","authors":"Marton A. Goda, Peter H. Charlton, Joachim A. Behar","doi":"arxiv-2309.13767","DOIUrl":null,"url":null,"abstract":"Photoplethysmography is a non-invasive optical technique that measures\nchanges in blood volume within tissues. It is commonly and increasingly used\nfor in a variety of research and clinical application to assess vascular\ndynamics and physiological parameters. Yet, contrary to heart rate variability\nmeasures, a field which has seen the development of stable standards and\nadvanced toolboxes and software, no such standards and open tools exist for\ncontinuous photoplethysmogram (PPG) analysis. Consequently, the primary\nobjective of this research was to identify, standardize, implement and validate\nkey digital PPG biomarkers. This work describes the creation of a standard\nPython toolbox, denoted pyPPG, for long-term continuous PPG time series\nanalysis recorded using a standard finger-based transmission pulse oximeter.\nThe improved PPG peak detector had an F1-score of 88.19% for the\nstate-of-the-art benchmark when evaluated on 2,054 adult polysomnography\nrecordings totaling over 91 million reference beats. This algorithm\noutperformed the open-source original Matlab implementation by ~5% when\nbenchmarked on a subset of 100 randomly selected MESA recordings. More than\n3,000 fiducial points were manually annotated by two annotators in order to\nvalidate the fiducial points detector. The detector consistently demonstrated\nhigh performance, with a mean absolute error of less than 10 ms for all\nfiducial points. Based on these fiducial points, pyPPG engineers a set of 74\nPPG biomarkers. Studying the PPG time series variability using pyPPG can\nenhance our understanding of the manifestations and etiology of diseases. This\ntoolbox can also be used for biomarker engineering in training data-driven\nmodels. pyPPG is available on physiozoo.org","PeriodicalId":501256,"journal":{"name":"arXiv - CS - Mathematical Software","volume":"10 6","pages":""},"PeriodicalIF":0.0000,"publicationDate":"2023-09-24","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"arXiv - CS - Mathematical Software","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/arxiv-2309.13767","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0
Abstract
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