About the Project

Wrist-worn devices like smartwatches and research accelerometers are used everywhere to track activity, but different algorithms can give very different answers for the same person. The WAVES consortium pools validation data from research groups around the world and runs a set of open-source wrist algorithms against it, to see how well each one estimates moderate-to-vigorous physical activity (MVPA), steps, and sedentary time. The end goal is open, verified standards so researchers and clinicians can trust the activity numbers coming from these devices.

The work brings together public health, kinesiology, and data science teams, including Cal Poly, the National Cancer Institute (where activity and sitting time matter for cancer risk and survivorship research), the University of Oxford, and Monash University.

What I Do

  • Clean, merge, and validate activity data from different sites so it all fits the same format
  • Evaluate open-source wearable algorithms against measured activity using bias, precision, and equivalence analysis
  • Fix and merge algorithm code into the shared WAVES pipeline
  • Write clear, documented code so each step is easy to reproduce and reuse

My Repo: UWM Step Processing

One of the validation datasets comes from a UWM study where each person's steps were coded by direct observation. I wrote the Python code that turns those raw observation files into second-by-second data the WAVES pipeline can compare against the algorithms.

  • step_conversion.py: converts raw observation CSVs into second-by-second files. Counts OBS steps, ambulatory steps, and mini steps (their total is steps_do), leaves out exercise and shuffle steps, and keeps whether each second was codable
  • step_type_totals.py: totals each step type and overall steps for every participant and trial
  • processed_final.py: makes a codable-only version by dropping non-codable seconds
  • validate_processed_steps.py: checks the processed counts against the raw observations, second by second and by step type, and checks the saved totals

github.com/HaileyErnest/WAVES-UWM ↗

The Shared WAVES Pipeline

The main WAVES repository is an R package built with targets, renv, Quarto, and pkgdown that runs every algorithm on a site's raw accelerometer data and summarizes the results. I'm one of six contributors and have merged algorithm fixes into it. The methods it currently runs:

  • MVPA and sedentary time: Ellis 2016, Esliger 2011, Fraysse 2020, Hildebrand 2014/2017, Mielke 2023, Montoye 2018, Trost 2017, Walmsley 2022, White 2016, Yuan 2024 (actinet)
  • Sedentary time only: Bakrania 2016
  • Steps: Oak, Small 2024 (stepcount), Step Detection Threshold, Verisense (original and revised)

github.com/WAVES-Collaborative/WAVES ↗  ·  Project site ↗

Tools

  • Python for processing the UWM observation data
  • R with targets, renv, Quarto, and pkgdown for the shared pipeline
  • Git/GitHub for collaborating across sites