ParaDigMa logo

Badges

Packages and Releases

Latest release PyPI Static Badge

DOI

DOI

Build Status

Build and test pages-build-deployment

License

GitHub license

Overview

The Parkinson’s disease Digital Markers (ParaDigMa) toolbox is a Python software package designed for processing real-life wrist sensor data to extract digital measures of motor and non-motor signs of Parkinson’s disease (PD).

Specifically, the toolbox is designed to process accelerometer, gyroscope and photoplethysmography (PPG) signals, collected during passive monitoring in daily life. It contains three data processing pipelines: (1) arm swing during gait, (2) tremor, and (3) pulse rate. These pipelines are scientifically validated for their use in persons with PD. Furthermore, the toolbox contains general functionalities for signal processing and feature extraction, such as filtering, peak detection, and spectral analysis.

The toolbox is accompanied by a set of example scripts and notebooks for each processing pipeline that demonstrate how to use the toolbox for extracting digital measures. In addition, the toolbox is designed to be modular, enabling researchers to easily extend the toolbox with new algorithms and functionalities.

Features

The components of ParaDigMa are shown in the diagram below.

Pipeline architeecture

The three colored, shaded columns represent the individual pipelines. Processes of the pipelines are represented by blue ellipses, and input/output data by rectangular boxes. The input/output of each step is indicated by yellow horizontal bars denoting the type of data (e.g., 3. Extracted features). Arrows indicate the sequential order of the processes of the pipeline.

ParaDigMa can best be understood by categorizing the sequential processes:

Process

Description

Preprocessing

Preparing raw sensor signals for further processing

Feature extraction

Extracting features based on windowed sensor signals

Classification

Detecting segments of interest using validated classifiers (e.g., gait segments)

Quantification

Extracting specific measures from the detected segments (e.g., arm swing measures)

Aggregation

Aggregating the measures over a specific time period (e.g., week-level aggregates)


ParaDigMa contains the following validated processing pipelines (each using the processes described above):

Pipeline

Input

Output classification

Output quantification

Output week-level aggregation

Arm swing during gait

Wrist accelerometer and gyroscope data

Gait probability, gait without other arm activities probability

Arm swing range of motion (RoM)

Typical & maximum arm swing RoM

Tremor

Wrist gyroscope data

Tremor probability

Tremor power

% tremor time, typical & maximum tremor power

Pulse rate

Wrist PPG and accelerometer data

PPG signal quality

Pulse rate

Resting & maximum pulse rate

Installation

The package is available in PyPI and requires Python 3.11 or higher. It can be installed using:

pip install paradigma

Usage

Tutorials & documentation

See our tutorials for example scripts on how to use the toolbox to extract digital measures from wrist sensor signals. The API reference contains detailed documentation of all toolbox modules and functions. The user guides provide additional information about specific topics (e.g. the required orientation of the wrist sensor).

Sensor data requirements

The ParaDigMa toolbox is designed for the analysis of passive monitoring data collected using a wrist sensor in persons with PD.

Specific requirements include:

Pipeline

Sensor Configuration

Context of Use

All

- Sensor position: wrist-band on most or least affected side (validated for both, but different sensitivity for measuring disease progression for tremor and arm swing during gait).
- Sensor orientation: orientation as described in Coordinate System.

- Population: persons with PD.
- Data collection protocol: passive monitoring in daily life.

Arm swing during gait

- Accelerometer: minimum sampling rate of 100 Hz, minimum range of ± 4 g.
- Gyroscope: minimum sampling rate of 100 Hz, minimum range of ± 1000 degrees/sec.

- Population: no walking aid, no severe dyskinesia in the watch-sided arm.
- Compliance: for weekly measures: at least three compliant days (with ≥10 hours of data between 8 am and 10 pm), and at least 2 minutes of arm swing.

Tremor

- Gyroscope: minimum sampling rate of 100 Hz, minimum range of ± 1000 degrees/sec.

- Compliance: for weekly measures: at least three compliant days (with ≥10 hours of data between 8 am and 10 pm).

Pulse rate

- PPG*: minimum sampling rate of 30 Hz, green LED.
- Accelerometer: minimum sampling rate of 100 Hz, minimum range of ± 4 g.

- Population: no rhythm disorders (e.g. atrial fibrillation, atrial flutter).
- Compliance: for weekly measures: minimum average of 12 hours of data per day.

* The processing of PPG signals is currently based on the blood volume pulse (arbitrary units) obtained from the Verily Study Watch, and we are currently testing the applicability of the pipeline to other PPG devices.

[!WARNING] While the toolbox is designed to work on any wrist sensor device which fulfills the requirements, we have currently verified its performance on data from the Gait-up Physilog 4 (arm swing during gait & tremor) and the Verily Study Watch (all pipelines). Furthermore, the specifications above are the minimally validated requirements. For example, while ParaDigMa works with accelerometer and gyroscope data sampled at 50 Hz, its effect on subsequent processes has not been empirically validated.

We have included support for TSDF as format for loading and storing sensor data. TSDF enables efficient data storage with added metadata. However, ParaDigMa does not require a particular method of data storage and retrieval. Please see our tutorial Data preparation for examples of loading TSDF and other data formats into memory, and for preparing raw sensor data as input for the processing pipelines.

Scientific validation

The pipelines were developed and validated using data from the Parkinson@Home Validation study [Evers et al. 2020] and the Personalized Parkinson Project [Bloem et al. 2019]. Details and validation of the different pipelines shall be shared in upcoming scientific publications.

Contributing

We welcome contributions! Please check out our contributing guidelines. Please note that this project is released with a Code of Conduct. By contributing to this project, you agree to abide by its terms.

License

It is licensed under the terms of the Apache License 2.0 license. See License for more details.

Acknowledgements

The core team of ParaDigMa consists of Erik Post, Kars Veldkamp, Nienke Timmermans, Diogo Coutinho Soriano, Peter Kok, Vedran Kasalica and Luc Evers. Advisors to the project are Max Little, Jordan Raykov, Twan van Laarhoven, Hayriye Cagnan, and Bas Bloem. The initial release of ParaDigMa was funded by the Michael J Fox Foundation (grant #020425) and the Dutch Research Council (grant #ASDI.2020.060 & grant #2023.010). ParaDigMa was created with cookiecutter and the py-pkgs-cookiecutter template.

Contact

Questions, issues or suggestions about ParaDigMa? Please reach out to erik.post@radboudumc.nl, or open an issue in the GitHub repository.