Cookies on this website

We use cookies to ensure that we give you the best experience on our website. If you click 'Accept all cookies' we'll assume that you are happy to receive all cookies and you won't see this message again. If you click 'Reject all non-essential cookies' only necessary cookies providing core functionality such as security, network management, and accessibility will be enabled. Click 'Find out more' for information on how to change your cookie settings.

Electrocardiogram (ECG) and photoplethysmogram (PPG) are commonly used to determine the vital signs of heart rate, respiratory rate, and oxygen saturation in patient monitoring. In addition to simple observation of those summarized indexes, waveform signals can be analyzed to provide deeper insights into disease pathophysiology and support clinical decisions. Such data, generated from continuous patient monitoring from both conventional bedside and low-cost wearable monitors, are increasingly accessible. However, the recorded waveforms suffer from considerable noise and artifacts and, hence, are not necessarily used prior to certain quality control (QC) measures, especially by those with limited programming experience. Various signal quality indices (SQIs) have been proposed to indicate signal quality. To facilitate and harmonize a wider usage of SQIs in practice, we present a Python package, named vital_sqi, which provides a unified interface to the state-of-the-art SQIs for ECG and PPG signals. The vital_sqi package provides with seven different peak detectors and access to more than 70 SQIs by using different settings. The vital_sqi package is designed with pipelines and graphical user interfaces to enable users of various programming fluency to use the package. Multiple SQI extraction pipelines can take the PPG and ECG waveforms and generate a bespoke SQI table. As these SQI scores represent the signal features, they can be input in any quality classifier. The package provides functions to build simple rule-based decision systems for signal segment quality classification using user-defined SQI thresholds. An experiment with a carefully annotated PPG dataset suggests thresholds for relevant PPG SQIs.

Original publication




Journal article


Front Physiol

Publication Date





Python toolbox, continuous monitoring, electrocardiogram, open-source, photoplethysmogram, signal quality index, vital signs