Changelog
v1.1.1 (24/03/2026)
Breaking Changes
run_gait_pipeline() return structure changed: Now returns nested dictionaries with separate ‘filtered’ and ‘unfiltered’ results instead of flat tuples.
Previously:
(quantified_df: DataFrame, metadata: dict)Now:
({'filtered': df, 'unfiltered': df}, {'filtered': meta, 'unfiltered': meta})This change allows analysis of both filtered (clean gait only) and unfiltered (all gait) arm swing data.
Features
Unfiltered gait quantification (#264): Added support for both filtered and unfiltered gait analysis, allowing comparison of:
Filtered quantification: Arm swing during walking without other activities
Unfiltered quantification: All arm swing during any gait, regardless of quality
This enables analysis of total gait duration vs clean gait duration and arm swing characteristics across all gait data.
Bug Fixes
Fixed
save_intermediateparameter to correctly use ‘classification’ naming for all prediction outputs.Fixed orchestrator to properly pass required
segment_metaandsegment_catsto aggregation functions, including parsing ofsegment_length_binsto segment category tuples.
Improvements
Cleaned up test infrastructure by removing unused test files, notebooks, and consolidating test helpers to conftest.py.
v1.1.0 (04/02/2026)
Features
Orchestrator Pipeline: Added
orchestrator.pywithrun_paradigma()function for complete end-to-end ParaDigMa analysis pipeline from data loading to aggregated results.Data Preparation: Added
prepare_data.pywith automatic data preparation capabilities, including column mapping for flexible column names, watch orientation adjustment, and comprehensive validation.Centralized Loading: Added
load.pyto centralize data loading capabilities across all pipelines.High-Level Pipeline Functions: Added
run_gait_pipeline(),run_tremor_pipeline(), andrun_pulse_rate_pipeline()for simplified pipeline execution.Segment Distinction: Added
GAIT_SEGMENT_NRandDATA_SEGMENT_NRconstants to distinguish between temporal gaps and gait bouts.SEGMENT_NRkept as deprecated alias for backward compatibility.Unfiltered Gait Quantification: Modified gait pipeline to return both filtered (clean gait only, without other arm activities) and unfiltered (all gait) quantifications. This allows analysis of arm swing with and without filtering for other arm activities, providing more comprehensive gait assessment options.
Test Data: Added Physilog Gait-Up test data to LFS.
Improvements
Logging System: Replaced
verboseparameter with standard Python logging usinglogging_levelandcustom_loggerparameters across all pipeline functions for better control and traceability.Data Segment Preservation: Modified
quantify_arm_swing(),preprocess_imu_data(), and aggregation functions to preservedata_segment_nrcolumn throughout the pipeline when usingsplit_by_gaps=Truefor non-contiguous data processing.Bug Fixes: Fixed NaN propagation in resampling by interpolating NaN values before resampling (scipy cannot handle NaN in non-contiguous data). Fixed metadata structure mismatch in gait aggregation that caused zero duration values when using
split_by_gaps=True.
Documentation
New Tutorials: Added
pipeline_orchestrator.ipynbtutorial demonstrating end-to-end processing with logging control examples.New Guides: Added comprehensive guides for data_input, installation, sensor_requirements, supported_devices, and validation.
Readme: Shortened README.md for readability and expanded detailed guides.
PEP Standards: Updated all docstrings and function signatures to PEP standards.
Build System: Added single-notebook build support with
--notebookargument; automated style tag removal in documentation build pipeline.
Testing
Added minimal testing for new pipeline functionalities.
Added tests for segment column naming and backward compatibility.
Added tests to verify data segment tracking preservation.
Backward Compatibility
All existing code using
SEGMENT_NRcontinues to work.Previously used pipeline code remains functional.
v1.0.4 (11/11/2025)
Column names no longer have to be set to ParaDigMa standards, but can be flexibly adjusted (see data_preparation.ipynb tutorial for instructions).
Users can now change the tolerance threshold for determining when consecutive timestamps are contiguous using config.
The usage of accelerometry is now optional. Accelerometry can be used to detect motion artefacts that can be removed using Paradigma (see pulse_rate_analysis.ipynb for more details).
We also added instructions for how to scale PPG features using z-scoring.
Coefficient of variation (CoV) added as aggregation method for arm swing during gait.
Gait segment duration categories are no longer fixed.
For developers
We added pre-commit hooks to ensure consistency in formatting and automate cleanup.
We also created two Python scripts for simplifying building and hosting docs, using poetry build-docs and poetry serve-docs.
v1.0.3 (08/09/2025)
Added flexibility to let user specify gait segment duration categories.
Added the within-segment coefficient of variation to list of arm swing parameters.
Fixed bug where users were unable to change resampling frequency.
Added the mode of continuous variables using bins to the list of aggregations.
Increased tolerance for contiguous segments.
Changed contact details.
v1.0.2 (12/06/2025)
Changed ‘heart rate’ to ‘pulse rate’ consistently throughout source code and documentation, in line with scientific publications.
v1.0.1 (11/06/2025)
Increased efficiency of data processing pipelines.
Aligned high-level processes of individual pipelines.
v1.0.0 (15/04/2025)
Finalized tutorials per pipeline.
Added functionality to invert watch side if worn on contralateral side.
Limited memory requirements.
Expanded documentation for tutorials and readme.
v0.3.2 (25/09/2024)
Fixed citation file (
cff) formatting issues.Improved handling of constants in configuration files.
Refactored gait configuration files and enhanced constraints.
Bumped Python version to 3.10 for compatibility.
Tested
Enumusage for constraints, but reverted tostrdue to the lack of flexibility.Fixed typing issues
Added project badges and citation file.
Updated project naming and authors in citation file.
Enabled and fixed
pytypefor type checking.Refined types in code and docstrings.
v0.2.0 (22/08/2024)
Reorganized imports and exposed functions at the top level.
Minor documentation fixes.
Updated Sphinx auto-API config to exclude imported members.
Reverted some import reorganizations and applied final corrections.
Refined documentation and code structure.
v0.1.0 (15/08/2024)
First pre-release of
paradigma!Initial implementation of gait and PPG feature extraction.