[2.6.0] - 2026-03-05
Scientific Changes
-
Fixed a constrained subsequence DTW initialization bug where the full 3D state tensor was zeroed instead of only the
counter layer (cum_sum[:, :, 1]). This removes spurious short constrained matches (e.g. a(15, 18)false
positive in the constrained Barth example) and restores expected permissive-constraint behavior. On real-world data,
the effect is small: forstride_segmentation.sensor_position_comparison_instepon local
SensorPositionComparison2019Segmentation, precision improves by approximately 0.5% with unchanged recall.
(Issue: #76, PR: #78) -
The TC detection within FilteredRampp event detection now uses the filtered gyro signal instead of the raw gyro
signal.
We saw in a couple of patients that they had a lot of high frequency noise in the gyro signal, which affected the
TC detection.
For existing cases, this should change the position of the TC event slightly (approximately 1-2 samples).
(#60)
Added
- Both variants of the Rampp event detection now support either IC-IC strides or "segmented" strides as inputs.
This allows the use of strides that are pre-segmented by other algorithms or by a reference system as input to the
rest of the pipeline.
The algorithm still searches for a proper IC in the input data within a search window around the provided IC.
(#60) - Dataset checks can now optionally check magnetometer data (#73)
- Dataset rotations can now rotate magnetometer data (#73)
- Added an option to the madgwick algorithm to use the algorithm version that also uses the magnetometer for correction.
This option can be activated in theMadgwickAHRSorMadgwickRtsKalmanalgorithm by setting theuse_magnetometer
toTrue. (#73)
Changed
- Updated the tpcp-based examples to use the current tpcp result key naming (e.g.
agg__...,debug__...,
param__...) and refreshed the associated regression snapshots. - Increased the supported base-package upper bounds for NumPy and Pandas to the latest Python 3.9-compatible releases
(numpy<2.1,pandas<2.4). - Installing
gaitmap_maddirectly from this repository now requires the updated subdirectory path
#subdirectory=packages/gaitmap_mad.
Fixed
- Fixed Python 3.9 installs that include HMM extras by constraining NumPy to
<2for those extras to avoid the
pomegranatebinary compatibility crash with NumPy 2.x. - Fixed multiple edge-case failures across stride/event pipelines, including DTW
costs_postprocessing consistency,
template-stretch constraint validation, Rampp IC short-stride handling, empty-ROI stride merging, all-zero AbsMax
scaling, missing-initial-ZUPT alignment handling, and max sensor lift being relative to stride start.
(#77)
Development
- Migrated repository development tooling from Poetry to uv (dependency management, lockfile handling, and task
execution). - Switched
gaitmap_madpackaging to uv'suv_buildbackend and moved it to a workspacesrclayout under
packages/gaitmap_mad.