Thanks for your interest in contributing!
The following guidelines are intended to provide an efficient way to contribute to the project. They are just guidelines, and if you think of better or additional ways to contribute then feel free to propose changes to this document in a pull request.
Contributions to the software are most welcome. Here are some guidelines for common types of contributions.
We very much value contributions of new PPG beat detection algorithms. If you are considering contributing a new beat detection algorithm, then please:
-
Check to see whether this algorithm is already available in the toolbox by consulting the list of existing beat detectors here.
-
Prepare a submission:
Code
The algorithm should be provided in Matlab format, in a
.m
file, laid out as follows:function [peaks, onsets] = <beat detector abbreviation>_beat_detector(sig,fs) <documentation> <code> end
Note the following:
- the main function takes the PPG signal (
sig
, a numerical column vector) and its sampling frequency (fs
, a numerical variable) as inputs. - the main function is named "_beat_detector".
- the main function outputs two variables:
peaks
andonsets
, which are column vectors containing the indices of detected pulse peaks / onsets in the signal. - additional functions can be used in the same file, and should appear below this main function.
- the documentation in the file should include: (i) a reference to a publication describing the algorithm (if such a publication exists); (ii) the author's name; (iii) details of the license applied to the code, which should be an OSI-approved license (see here). The documentation will be automatically parsed to generate a webpage in the docs (e.g. this webpage), so please try to follow the documentation used in a template beat detector file ...
- This file could be used as a template.
Description
Please prepare provide a short description of the algorithm (see here for an example) to be uploaded to the list of PPG beat detectors in the project documentation (here).
- the main function takes the PPG signal (
-
Submit the new beat detector algorithm:
Code
Submit via a pull request.
Description
Open a new issue, referring to the submitted pull request, and providing the algorithm description.
You may well identify specific ways in which the code could be improved. Please submit revised code via a pull request.
Improvements to beat detection algorithms: Note that most of the beat detection algorithms in this repository are either implementations of beat detectors which have been described in the literature, or implementations that have been previously provided by algorithm authors. Improvements which are intended to correct errors in these implementations will be considered. Improvements which change the design of the algorithm should instead be submitted following the approach described above for new beat detection algorithms.
Please contribute new feature suggestions by opening a new issue.
Please report issues or problems with the software (e.g. bugs) by opening a new issue.
If you would like support in using the code then please make your request by opening a new issue, and providing details of any problems you have encountered (ideally with an example which reproduces the problem). These will be addressed time-permitting.
The documentation is written in markdown and stored in the docs folder. Please submit improvements via a pull request.
functions documentation: Please note that all documentation in the functions folder is automatically generated from the comments within the matlab files in the source folder. Therefore, any improvements to the functions documentation should be made by adjusting the matlab source files, rather than the automatically generated functions documentation.
Acknowledgment: This document is inspired in part by the guidelines for contributing to Atom.