Wearablehrv: A Python package for the validation of heart rate and heart rate variability in wearables.
Project description
wearablehrv
is an open-source Python package tailored for data preparation, pre-processing, feature extraction, comparison, visualization, and both individual and group statistical analyses of heart rate and heart rate variability metrics from wearable devices that transmit raw inter-beat intervals and timestamps. The inclusion of graphical user interfaces in most functions grants researchers the flexibility to easily switch between experimental conditions and devices. This offers versatility in validating an unlimited number of wearables within a single experimental setting and under various conditions. The only required inputs for the pipeline are the inter-beat intervals and timestamps for each device; the rest is fully handled by the wearablehrv
package. The main functionalities of this Python package are:
Individual Pipeline:
- Define experimental events by importing raw data from an unlimited number of devices and experimental conditions.
- Visualize the inter-beat-interval against the criterion device using an intuitive graphical user interface.
- Correct for lag between devices with millisecond precision and crop the signals when necessary.
- Pre-process and calculate both time-domain and frequency-domain measures in one go for all devices and conditions.
- Provide various plotting options to compare the criterion devices with a specific device and establish its validity.
Group Pipeline:
- Import all individual cases, perform an extensive signal quality check and analysis, and exclude outliers if necessary based on modifiable cutoffs.
- Offer many descriptive plots to visualize the entirety of data for all cases, conditions, and devices.
- Conduct the most important statistical analyses in one go and with one click for all devices and conditions against the criterion device, including regression analysis, intraclass correlation coefficient, and Bland-Altman analysis.
Documentation
For an in-depth explanation of the package and sample data, please refer to:
Questions
For any questions regarding the package, please contact:
Dependencies
Standard Libraries
Data Analysis & Manipulation
Visualization
- plotly
- graph_objects
- express
- matplotlib
- pyplot
- dates
- transforms
- seaborn
User Interface
- tkinter
- ipywidgets
- IntText, Dropdown, Output, HBox
- IPython
- display, clear_output, Markdown
Statistical Analysis
- pingouin
- scipy
- stats
- linregress
- statsmodels
- api
- copy
- deepcopy
Heart Rate Variability Analysis
- hrvanalysis
- remove_outliers, remove_ectopic_beats, interpolate_nan_values
- get_time_domain_features
- get_frequency_domain_features
Data Serialization
- avro
- datafile.DataFileReader
- io.DatumReader
User Installation
The package can be easily installed using pip
:
pip install wearablehrv
The repository can be cloned:
git clone https://github.com/Aminsinichi/wearable-hrv.git
GitHub
https://github.com/Aminsinichi/wearable-hrv
Development
wearablehrv
was developed by Amin Sinichi https://github.com/AminSinichi, during his PhD at Vrije Universiteit Amsterdam in Psychophysiology and Neuropsychology.
Contributors
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for wearablehrv-0.1.6-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f44575f86eb77a56bd18b0d4fbb7b2bf4e8b817c3caf902a66fa6d149ebf8e3b |
|
MD5 | cb253726ee06323cbd82738996dd5253 |
|
BLAKE2b-256 | 0bedb883bdbfb536d4cbd3d1b97c073eff359f2bba63af2536b31f31d2b79f1c |