Skip to content

Commit

Permalink
Minor edits.
Browse files Browse the repository at this point in the history
  • Loading branch information
JanCBrammer committed Aug 23, 2020
1 parent 475e107 commit be7f0fa
Showing 1 changed file with 9 additions and 9 deletions.
18 changes: 9 additions & 9 deletions paper/paper.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,10 +24,10 @@ bibliography: paper.bib

# Statement of need

Physiological measurements increasingly gain popularity in academia and industry, sparked by the availability of
Heart- and breathing biosignals increasingly gain popularity in academia and industry, sparked by the availability of
easy-to-use, low-cost biosignal sensors along with a growing ecosystem of free,
open-source software for the analysis of biosignals [@neurokit; @biosppy]. However, an open-source, freely
available graphical user interfaces (GUI) for heart-and breathing biosignal analysis is currenly lacking. `biopeaks` addresses this need.
available graphical user interface (GUI) for biosignal analysis is currenly lacking. `biopeaks` addresses this need.
Compared to application programming interfaces [@neurokit; @biosppy], its GUI allows for
more intuitive and immediate visual interaction with the biosignal, which is especially valuable
during data preprocessing and exploration. At the time of writing, `biopeaks` is used in multiple projects at the [Gemhlab](https://gemhlab.com/).
Expand All @@ -38,8 +38,8 @@ during data preprocessing and exploration. At the time of writing, `biopeaks` is
+ processing of open biosignal formats EDF [@edf], OpenSignals [@opensignals], as well as plain text files (.txt, .csv, .tsv)
+ interactive biosignal visualization
+ biosignal segmentation
+ automatic extrema detection (R-peaks in electrocardiogram (ECG), systolic peaks in photoplethysmogram (PPG), as well as exhalation troughs and inhalation peaks in breathing signals)
with signal-specific, sensible defaults
+ automatic extrema detection (R-peaks in electrocardiogram (ECG), systolic peaks in photoplethysmogram (PPG), as well as exhalation troughs and inhalation peaks in breathing biosignals)
with biosignal-specific, sensible defaults
+ automatic state-of-the-art artifact correction for ECG and PPG extrema
+ point-and-click editing of extrema
+ extraction of instantaneous features: rate and period for heart and breathing biosignals, as well as breathing amplitude
Expand All @@ -52,9 +52,9 @@ for a number of reasons (e.g., movement artifacts, poor sensor placement). `biop
the analyst to quickly visualize a biosignal and interact with it (panning, zooming) to evaluate its quality.
If the analyst deems the biosignal's quality sufficient, they proceed to identify local extrema in the physiological time series.
Local extrema include R-peaks in ECG and systolic peaks in PPG, representing
the contraction of the ventricular heart muscle and subsequent ejection of blood to the arteries. In breathing biosignals,
the contraction of the ventricular heart muscle. In breathing biosignals,
the relevant local extrema are inhalation peaks and exhalation troughs. `biopeaks` detects these extrema automatically
using three modality-specific algorithms. Breathing extrema are detected using a variant of the "zero-crossing algorithm
using three biosignal-specific algorithms. Breathing extrema are detected using a variant of the "zero-crossing algorithm
with amplitude threshold" [@khodadad]. Systolic peaks in PPG signals are identified using an implementation of "Method IV;
Event-Related Moving Averages with Dynamic Threshold" introduced by Elgendi et al. [@elgendi]. Lastly, the ECG R-peak detector is a
custom algorithm that has been evaluated on the Glasgow University Database (GUDB) [@gudb] which contains ECG signals along with R-peak annotations. The performance of the R-peak detector has been evaluated in terms of sensitivity (aka recall; i.e., how many of the correct extrema were detected?) and precision (i.e., how many of the detected extrema are correct extrema?). Peak detection has been evaluated on Einthoven lead II of all 25 records, with a tolerance of 1 sample for true positive peak detection. The GUDB has not been used to optimize the R-peak detector prior to the performance evaluation. The performance at rest (sitting) and in dynamic conditions (handbike) is as follows:
Expand All @@ -76,14 +76,14 @@ from the biosignal. The features are based on temporal or amplitude differences

![Extraction of heart period (panel B) based on R-peaks in an ECG (panel A). Note that this is conceptually identical to the extraction of heart period based on systolic peaks in PPG.\label{Figure 1}](fig_heartperiod.png)

![Extraction of breathing period (panel B) based on inhalation peaks in a breathing signal (panel A).\label{Figure 2}](fig_breathingperiod.png)
![Extraction of breathing period (panel B) based on inhalation peaks in a breathing biosignal (panel A).\label{Figure 2}](fig_breathingperiod.png)

![Extraction of inhalation amplitude (panel B) based on breathing extrema in a breathing signal (panel A).\label{Figure 3}](fig_breathingamplitude.png)
![Extraction of inhalation amplitude (panel B) based on breathing extrema in a breathing biosignal (panel A).\label{Figure 3}](fig_breathingamplitude.png)

In summary, `biopeaks` is designed to make heart- and breathing biosignal inspection, extrema detection and editing, as well as feature
extraction fast and intuitive. It does not aim to offer a suite of low-level signal processing tools (e.g., digital filter design),
and abstracts these details away with sensible biosignal-specific defaults. `biopeaks` is implemented in Python using the cross-platform
PySide2 framework (official Python bindings for Qt) [@pyside2], and leverages matplotlib [@matplotlib], numpy [@numpy], scipy [@scipy] and pandas [@pandas] for visualization and signal processing.
PySide2 framework (official Python bindings for Qt) [@pyside2], and leverages Matplotlib [@matplotlib], NumPy [@numpy], SciPy [@scipy] and pandas [@pandas] for visualization and signal processing.
There are freely available alternatives to `biopeaks` that are implemented in MATLAB [@artiifact; @physiodatatoolbox] or C# [@signalplant].
However, the source code of these tools is not available [@artiifact; @signalplant] or they are not released under an open
source license [@artiifact; @physiodatatoolbox; @signalplant].
Expand Down

0 comments on commit be7f0fa

Please sign in to comment.