FoG-STAR: Freezing of Gait Severity, Tasks, Activities, and Ratings
Bibliographic record
Abstract
README – FoG-STAR: Freezing of Gait Severity, Tasks, Activities, and Ratings 📌 Overview This dataset contains wearable inertial sensor recordings and clinical/demographic information collected from 22 people with Parkinson’s disease.It is designed to support research on Freezing of Gait (FoG) detection, severity estimation, activity recognition, and digital biomarkers. The dataset is organized in two CSV files: sensor_data.csv → synchronized inertial sensor signals with FoG labels and task annotations clinical_data.csv → subject-level demographic and clinical assessments 📂 Files sensor_data.csv → Sensor-based recordings (31 columns, sampled at 60 Hz) clinical_data.csv → Demographic and clinical metadata (10 variables × 22 subjects) README.md → This documentation README.txt → Readme file with summarized information LICENSE → Dataset license (CC-BY 4.0) FoG-Star_Analytics.ipynb → Example Python utilities for generating statistics and figures fogstar_environment.yaml→ Conda environment specification to execute the scripts 📑 1. Sensor Data (sensor_data.csv) Recording setup Sensors: Accelerometer (g) + Gyroscope (°/s) Positions: Left ankle, Right ankle, Back, Wrist Sampling frequency: 60 Hz Recording context: Motor tasks designed to elicit or challenge gait Column definitions Column(s) Name Description 1 timestamp Float, timestamp in ms (60 Hz) 2–25 Sensor signals Format: [position]_[sensor]_[axis]. Positions = ankleL, ankleR, back, wrist; Sensor = acc (g), gyro (°/s); Axis = x,y,z 26 activity Motor activity code: 1=Walking, 2=Sit, 3=Stand, 4=Sit-to-Stand, 5=Stand-to-Sit, 6=Turn Right, 7=Turn Left 27 fog Binary FoG label: 0=No FoG, 1=FoG 28 fog_severity Severity during FoG: 1=Shuffling, 2=Trembling, 3=Akinesia 29 subjectID Subject identifier (1–22), link to clinical_data.csv 30 sessionID Recording session ID (usually 1, but >1 if multiple recordings were needed) 31 taskID Task code: 1=Timed Up-and-Go, 2=Stand 1min, 3=Walk back/forth, 4=Walk+Doorway, 5=Walk+Water, 6=Walk+Count, 7=360° turn 📑 2. Clinical Data (clinical_data.csv) Population 22 subjects with Parkinson’s disease Each row corresponds to one subject (linked via subjectID) Column definitions Column Variable Description 1 subjectID Subject ID (1–22), matches sensor_data.csv 2 age Age in years 3 gender Gender (M/F) 4 disease_duration Years since PD diagnosis 5 h_y Hoehn & Yahr stage (0–5, higher = more advanced PD) 6 updrs_iii MDS-UPDRS Part III score (0–132, higher = worse motor impairment) 7 fog_q New Freezing of Gait Questionnaire (0–28, higher = more severe FoG) 8 moca Montreal Cognitive Assessment (0–30, lower = worse cognition) 9 fes Falls Efficacy Scale (10–100, higher = more fear of falling) 10 pdq_8 Parkinson’s Disease Questionnaire–8 (0–32, higher = poorer QoL) 👩⚕️ Study Protocol Participants: 22 people with PD Tasks performed: 7 mobility tasks (see taskID) designed to elicit FoG Annotations: FoG presence and severity labeled by experts via video analysis Clinical scales: Hoehn & Yahr, MDS-UPDRS III, FoG-Q, MoCA, FES-I, PDQ-8 📊 Example Usage import pandas as pd # Load data df_sensors = pd.read_csv("fog_star.csv") df_clinical = pd.read_csv("clinical_data.csv") # Merge datasets df = df_sensors.merge(df_clinical, on="subjectID") # Example: Average FoG severity per subject print(df.groupby("subjectID")["fog_severity"].mean()) # Example: Correlation between UPDRS-III score and FoG proportion fog_ratio = df.groupby("subjectID")["fog"].mean().reset_index() merged = fog_ratio.merge(df_clinical, on="subjectID") print(merged[["subjectID","fog","updrs_iii"]]) 📈 Provided Scripts Data exploration: distributions of FoG vs non-FoG, FoG severity, time per task/activity/subject FoG event analysis: duration distributions, severity-based comparisons Signal visualization: example raw traces with shaded FoG episodes Clinical correlation: merge sensor_data with clinical_data 🔖 Citation If you use this dataset, please cite: Borzi, L. et al. FoG-STAR: Freezing of Gait Severity, Tasks, Activities, and Ratings [Data set]. Zenodo. doi: 10.5281/zenodo.17838806 Borzì, L. et al. A multi-level annotated sensor dataset of gait freezing manifestations and severity in Parkinson’s disease. Scientific Data 13, 305 (2026). doi: 10.1038/s41597-026-06645-1 Borzi, L. et al. Freezing of gait detection: The effect of sensor type, position, activities, datasets, and machine learning model. Journal of Parkinson’s Disease, 15(1), 163-181. doi: 10.1177/1877718X241302766 Demrozi, F. et al. A low-cost wireless body area network for human activity recognition in healthy life and medical applications. IEEE Transactions on Emerging Topics in Computing 11, no. 4 (2023): 839-850. doi: 10.1109/TETC.2023.3274189 ⚖️ License This dataset is licensed under CC-BY 4.0. You are free to share and adapt the data with proper attribution.
Fetched live from OpenAlex and de-inverted. Abstracts are not stored in this database: the inverted indexes are 8.6 GB of the frame’s 9.3 GB of text, and the host has 13 GB free.
How this classification was reachedexpand
Full frame machine prediction
Teacher imitationNot calibrated prevalence, not ground truth. Human validation pending. The Gemma side is a direct model label for every work in the frame, read from the title-only record. The Codex side is a classifier learned from the 10,348 direct Codex labels and calibrated to design-weighted sample rates; fields without enough sample support carry no Codex call. Candidate is the union of the two sides; consensus is their intersection. These outputs are machine_predicted_unvalidated and are not human labels.
Distilled classifier scores by category (both heads)
| Category | Codex | Gemma |
|---|---|---|
| Metaresearch | 0.001 | 0.003 |
| Meta-epidemiology (narrow) | 0.002 | 0.000 |
| Meta-epidemiology (broad) | 0.001 | 0.002 |
| Bibliometrics | 0.002 | 0.001 |
| Science and technology studies | 0.000 | 0.000 |
| Scholarly communication | 0.001 | 0.001 |
| Open science | 0.001 | 0.002 |
| Research integrity | 0.001 | 0.001 |
| Insufficient payload (model declined to judge) | 0.020 | 0.021 |
Machine scores (provisional)
The two teacher heads of the student model, read on this work. A score orders the frame for review; it never asserts a category, and the validation status ships verbatim with every row.
Baseline scores from an immature model (maturity gate not passed, 7 training rounds). Scores rank; they never assert a category.
score_only:v0-immature-baseline · verbatim from the scoring run: score_only means the number may rank works, and no category label ships from itClassification
machine, unvalidatedMachine predicted; a candidate call from one source (direct Gemma or distilled Codex), not a consensus.
How this classification was reached, model by model and score by score, is at the end of the page under "How this classification was reached".