MultiGait: Real-World Gait Pipeline for Wrist-Worn Devices
Project description
MultiGait: Real-World Gait Pipeline for Wrist-Worn Devices
MultiGait (Multimorbidity Gait) is a Python implementation of a gait analysis pipeline for real-world assessment, primarily developed for wrist-worn inertial measurement units (IMUs). This pipeline integrates signal-processing algorithms for gait detection, initial contact detection, stride-length estimation, cadence, and walking speed providing a streamlined workflow for mobility research in people with multiple long-term conditions (multimorbidity). While the pipeline is wrist-focused, fine-tuned versions for lower-back devices are also provided for use in custom workflows.
The individual algorithms included in this library have been developed and validated in multimorbidity cohorts [1]. However, the full integration of these algorithms into a complete pipeline has not yet been formally evaluated, so we do not currently recommend any specific pipeline configuration. In future releases, we plan to systematically assess combinations of algorithms and provide recommended pipelines tailored to different multimorbidity clusters.
Planned future releases include:
- Fully validated pipelines for different multimorbidity clusters.
- Novel algorithm implementations.
- Validated wear-time detection algorithms.
Note on biomechanical definitions : The biomechanical logic and gait event definitions implemented in MultiGait are based on the specifications defined within Mobilise-D.
Software developed by Dr Dimitrios Megaritis. Scientific authorship is listed in CITATION.cff.
Table of Contents
- Installation
- Usage
- Citation
- Validation reference for the underlying algorithms
- Funding and Support
- License
Installation
From PyPI (recommended)
python3 -m pip install multigait
From GitHub:
pip install git+https://github.com/DMegaritis/multigait.git
Or clone the repository and install locally:
git clone https://github.com/DMegaritis/multigait.git
cd multigait
pip install .
Usage
The package is designed to be used in two main modes:
Pipeline Use
High-level pipelines allow loading raw IMU data and obtaining gait outcomes end-to-end. Example:
from multigait.pipeline.multigait_pipeline import MultiGaitPipelineSuggested
pipeline = MultiGaitPipelineSuggested()
pipeline.safe_run(long_trial)
Note: At this stage we offer a suggested pipeline with the best-performing algorithms from [1], but the full pipeline has not been fully validated yet. Please interpret results cautiously.
Additional note: While this library has been primarily developed as a complete gait pipeline for wrist-worn devices, it also includes support for lower-back algorithms. Fine-tuned versions for lower-back devices are provided and can be used in custom pipelines.
Specific Algorithms
You can also use individual algorithms separately to build custom workflows. Example modules include:
- Gait Sequence Detection (GSD)
- Initial Contact Detection (ICD)
- Stride Length Estimation (SL)
- Cadence (CAD; requires prior GSD and ICD)
- Walking Speed (Ws; requires prior GSD, CAD, and SL)
For usage examples and input/output formats, see the examples in this repository or in DMegaritis/multimobility_wrist.
Digital Mobility Outcomes (DMOs)
The following table summarizes all Digital Mobility Outcomes (DMOs) extracted by MultiGait, including walking bout types and the statistics calculated:
| Walking Bout | DMO | Statistic/Measure |
|---|---|---|
| All WBs | Number of walking bouts | Sum |
| All WBs | Total Walking Duration (min) | Sum |
| All WBs | Initial Contacts (n_raw) | Sum |
| All WBs | WB Duration (s) | Mean |
| All WBs | Max WB Duration (s) | 90th percentile |
| All WBs | WB Duration bout to bout variability (s) | CV |
| All WBs | Cadence (steps/min) | Mean |
| All WBs | Stride Duration (s) | Mean |
| All WBs | Cadence bout to bout variability (steps/min) | CV |
| All WBs | Stride Duration bout to bout variability (s) | CV |
| All WBs | Cadence within bout variability (CV) | Mean |
| All WBs | Stride Duration within bout variability (CV) | Mean |
| All WBs | Cadence within bout variability (RMSSD) | Mean |
| All WBs | Stride Duration within bout variability (RMSSD) | Mean |
| 10–30s WBs | Number of walking bouts | Sum |
| 10–30s WBs | Walking Speed (m/s) | Mean |
| 10–30s WBs | Stride Length (m) | Mean |
| 10–30s WBs | Walking Speed within bout variability (CV) (m/s) | Mean |
| 10–30s WBs | Stride Length within bout variability (CV) (m) | Mean |
| 10–30s WBs | Walking Speed within bout variability (RMSSD) (m/s) | Mean |
| 10–30s WBs | Stride Length within bout variability (RMSSD) (m) | Mean |
| >10s WBs | Number of walking bouts | Sum |
| >10s WBs | Max Walking Speed (m/s) | 90th percentile |
| >30s WBs | Number of walking bouts | Sum |
| >30s WBs | Walking Speed (m/s) | Mean |
| >30s WBs | Stride Length (m) | Mean |
| >30s WBs | Cadence (steps/min) | Mean |
| >30s WBs | Stride Duration (s) | Mean |
| >30s WBs | Max Walking Speed (m/s) | 90th percentile |
| >30s WBs | Max Cadence (steps/min) | 90th percentile |
| >30s WBs | Walking Speed bout to bout variability (m/s) | CV |
| >30s WBs | Stride Length bout to bout variability (m) | CV |
| >30s WBs | Cadence within bout variability (CV) (steps/min) | Mean |
| >30s WBs | Stride Duration within bout variability (CV) (s) | Mean |
| >30s WBs | Walking Speed within bout variability (CV) (m/s) | Mean |
| >30s WBs | Stride Length within bout variability (CV) (m) | Mean |
| >30s WBs | Cadence within bout variability (RMSSD) (steps/min) | Mean |
| >30s WBs | Stride Duration within bout variability (RMSSD) (s) | Mean |
| >30s WBs | Walking Speed within bout variability (RMSSD) (m/s) | Mean |
| >30s WBs | Stride Length within bout variability (RMSSD) (m) | Mean |
| >60s WBs | Number of walking bouts | Sum |
| All WBs | Alpha | - |
CV: Coefficient of Variation; RMSSD: Root Mean Square of Successive Differences
Citation
If you use MultiGait in your research, please cite:
@software{megaritis2025wristmobility,
author = {Megaritis, Dimitrios and Alcock, Lisa and Scott, Kirsty and Hiden, Hugo and Cereatti, Andrea and Vogiatzis, Ioannis and Del Din, Silvia},
title = {MultiGait: Real-World Gait Pipeline for Wrist-Worn Devices for Multimorbid Populations},
year = {2025},
publisher = {Zenodo},
doi = {https://doi.org/10.5281/zenodo.17903930},
url = {https://zenodo.org/records/17903930}
}
Validation reference for the underlying algorithms
[1] Megaritis, D., Alcock, L., Scott, K., Hiden, H., Cereatti, A., Vogiatzis, I., & Del Din, S. (2025). Real-World Wrist-Derived Digital Mobility Outcomes in People with Multiple Long-Term Conditions: A Comparison of Algorithms. Bioengineering, 12(10), 1108. https://doi.org/10.3390/bioengineering12101108
Funding and Support
This work was supported by the Medical Research Council (MRC) Gap Fund award (UKRI/MR/B000091/1).
License
The MultiGait library is licensed under the Apache License 2.0. It is free to use for any purpose, including commercial use, but all distributions must include the license text.
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file multigait-0.2.1.tar.gz.
File metadata
- Download URL: multigait-0.2.1.tar.gz
- Upload date:
- Size: 113.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6c9560e6874d3a716f2140a9d0025d5fd57336e0747bf4a4a807ccd927fb88b8
|
|
| MD5 |
c064fa0c4e7175e5ac59e03495f4a3df
|
|
| BLAKE2b-256 |
7616959b167d4b84efd65892b1032a5b7db80b121d28505dfa44010731f8bfac
|
File details
Details for the file multigait-0.2.1-py3-none-any.whl.
File metadata
- Download URL: multigait-0.2.1-py3-none-any.whl
- Upload date:
- Size: 156.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d43049d6fb9f399a005ccb9f17ffb72fe16cf648549760e135464fa23388b441
|
|
| MD5 |
d37d69b0db554a228469701e8ba16ef0
|
|
| BLAKE2b-256 |
7785b8d0ddaa1734a449379935a7e34f687d8489d71518b4b1ecc5fbb4f792f4
|