Reference¶
Concise, complete description of what’s in the standardized data.
Data Formats¶
| Format | File Pattern | Index | Purpose | 
|---|---|---|---|
| Phase‑Indexed | *_phase.parquet | 150 samples, 0–100% | Cross‑subject comparisons, averaging | 
| Time‑Indexed | *_time.parquet | Seconds | Event detection, raw analysis | 
Phase-aligned exports apply to cyclic gait data. Event-driven or non-cyclic activities should favor the time-indexed format, optionally providing per-repetition segments through the step column.
Required Columns¶
| Column | Required | Meaning | 
|---|---|---|
| subject | Yes | Global unique ID (see Subject Naming) | 
| subject_metadata | Optional | Demographics, key:value (e.g., age:25,sex:M,height_m:1.75,weight_kg:70) | 
| task | Yes | Activity category (see Task Names) | 
| task_id | Yes | Specific variant (see Task IDs) | 
| task_info | Yes | Parameter string, key:value (see Task Metadata) | 
| step | Yes | Cycle index within trial | 
| phase_ipsi | Phase only | 0–100, phase of ipsilateral limb (heel‑strike to heel‑strike) | 
| time_s | Time only | Seconds from trial start | 
Task Names, IDs, and Metadata¶
The canonical list of task families lives in
internal/config_management/task_registry.py. Update that module and this section whenever new tasks are introduced so that all tooling shares a single source of truth.
- Task names (task) capture the high-level motion family. Use neutral categories that apply across datasets, such aslevel_walking,incline_walking,decline_walking,stair_ascent,stair_descent,run,walk_backward,sit_to_stand,stand_to_sit,step_up,step_down,jump,squats, and the catch-allfunctional_taskfor non-cyclic or miscellaneous movements. Append population/pathology suffixes only when the entire recording targets that cohort. Use the conventiontask_family_<pathology>(e.g.,level_walking_stroke,run_pd,stair_descent_sci). Keep suffix tokens lowercase snake_case (stroke,pd,sci,tfa,tta, etc.).
- Task IDs (task_id) describe the specific variant within the family, e.g.,level,incline_5deg,decline_10deg,stair_ascent,stair_descent,sit_to_stand_short,jump_vertical. The exact vocabulary can differ by dataset, but it must remain stable inside a release.
- Task metadata (task_info) is a comma-separated key:value string carrying numeric parameters and variant tags. Values should prefer SI units and be machine-readable.
Managing Task Families with the CLI¶
Use python contributor_tools/manage_tasks.py to add, delete, or list canonical task families without editing Python files by hand. Reach for the CLI when you introduce new base families that do not already exist in the registry. Examples:
- python contributor_tools/manage_tasks.py list --category phase
- python contributor_tools/manage_tasks.py add lateral_walk --category phase --description "Side-step gait cycles" --example-id lateral --notes "Segment heel strikes the same way as level_walking."
- python contributor_tools/manage_tasks.py delete demo_task
Pathology or cohort variants follow the task_family_<pathology> convention but do not require separate registry entries. Instead, create dedicated validation ranges for each suffix (e.g., level_walking_stroke) so tooling can read the cohort-specific tolerances. Validators never fall back to the able-bodied family values; use the interactive tuner to seed a new ranges file with the base family as an initializer before adjusting to the cohort norms.
Common task_info keys
- speed_m_s:<float>
- treadmill:<true|false>
- incline_deg:<float>(positive uphill, negative downhill)
- step_height_m:<float>(stairs)
- step_width_m:<float>(stairs)
- surface:<string>(e.g., overground, treadmill)
- footwear:<string>(e.g., barefoot, shoe)
- assistance:<string>(e.g., none, handrail)
- transition_from:<task>/- transition_to:<task>(for mode switches)
- turn_direction:<left|right|cw|ccw>(for turning strides)
- variant:<string>(label specific instructions when no numeric parameter exists)
Task Definitions¶
Task families fall into two groups. Phase-friendly tasks can be normalized to 150-sample strides when consistent events exist (and may also be exported in time if desired). Time-indexed tasks lack repeatable kinematic cycles or are best analyzed as continuous episodes. The tables below summarize each group; detailed notes follow.
Phase-Friendly Families¶
When segmented, these tasks are normalized to 150 samples per stride with phase_ipsi running 0–100%. Phase output is preferred because it enables stride averaging and template validation; however, a time-indexed export is acceptable when segmentation is unavailable.
| Task | Typical behaviors | Example task_idvalues | Phase definition | Core metadata | Notes | 
|---|---|---|---|---|---|
| level_walking | Overground/treadmill at steady speed | level,level_fast,level_slow | 0% ipsilateral heel strike, 50% contralateral heel strike, 100% next ipsilateral heel strike | speed_m_s,treadmill,surface | Expect near-symmetric sagittal kinematics; large pelvis/trunk offsets flag coordinate issues. | 
| incline_walking | Uphill ramps/treadmills | incline_5deg,incline_10deg | Same as level walking (HS-to-HS) | incline_deg,treadmill,assistance | Record grade and surface; uphill cycles show increased hip/knee flexion and trunk lean. | 
| decline_walking | Downhill ramps/treadmills | decline_5deg,decline_10deg | Same as level walking with downhill HS events | incline_deg(negative),treadmill | Negative grades with delayed toe-off; expect larger eccentric knee moments. | 
| stair_ascent | Ascending standard stairs | stair_ascent, numbered passes | 0% ipsilateral contact on current step, 100% ipsilateral contact on next step | step_height_m,step_number,assistance | Document geometry and handrail use; monitor hip/knee angles >90°. | 
| stair_descent | Descending stairs | stair_descent, numbered passes | 0% upper-step contact, 100% lower-step contact for ipsilateral foot | step_height_m,step_number,assistance | Same metadata as ascent; eccentric control dominates mid-step. | 
| run | Jogging/running with flight phases | run_2_5_m_s,run_3_0_m_s | 0% ipsilateral foot contact, 100% next ipsilateral contact including flight | speed_m_s,treadmill,surface,footwear | Two GRF peaks with flight intervals; watch pelvis rotation extremes. | 
| transition | Gait-to-gait transitions | walk_to_run,stair_to_walk,turn | 0% key event of departing gait (e.g., heel strike), 100% first event of target gait | transition_from,transition_to,gait_transition | A single stride may cover two behaviors; store context keys and treat directions separately. | 
| sit_to_stand/stand_to_sit | Chair or box transfers | sit_to_stand,stand_to_sit | Sit→stand exported 0–50% from seated start to stable upright; phase 50% represents standing. Stand→sit exported 50–100% from upright start back to seated contact, sharing the 50% standing convention. | chair_height,armrests,variant | Segment seat-off/seat-on events for ascent/descent cycles when possible. | 
| squats | Loaded or bodyweight squats | squats,squat_down,squat_up | 0% upright start, 50% lowest depth, 100% return to upright | weight_kg,variant,cadence | Split descent/ascent for phase use; keep full set in time if reps are irregular. | 
| step_up/step_down | Stair-box repetitions, curbs | step_up,step_down | Step-up: 0% initial foot contact on box, 100% full weight on box. Step-down mirrors with lower surface contact. | height_m,lead_leg,step_number | Treat like short stair runs; ensure cadence is repeatable before phase export. | 
| jump | Hops, vertical/lateral jumps | jump_vertical,jump_lateral,hop_single | 0% preparatory contact, 50% takeoff, 100% landing contact of same foot | jump_type,variant,lead_leg | Use takeoff→landing cycles for repetitive sets; single attempts may stay time-indexed. | 
| weighted_walk,dynamic_walk,walk_backward | Walking variants with perturbations | level,variant:<string> | Same as level walking (HS-to-HS) when heel strikes are present | speed_m_s,treadmill,variant | Prefer phase when heel strikes exist; otherwise document perturbation under variant. | 
Transfers (sit_to_stand, stand_to_sit) intentionally share a 50% phase landmark that corresponds to an upright, standing posture. Sit-to-stand cycles occupy 0–50% phase and end in standing, while stand-to-sit cycles begin from that same standing posture at 50% and end seated at 100%. Use this convention when deriving new datasets so comparative analyses treat the standing posture consistently across ascent and descent.
Time-Indexed (Non-Cyclic) Families¶
Export these tasks as time-indexed episodes. They lack consistent heel-strike structure, involve perturbations that break cyclic assumptions, or represent single-shot activities. If future datasets introduce segmentation for any of these behaviors, they can graduate to the phase-friendly group.
| Task | Typical behaviors | Example activities / task_id | Required metadata | Notes | 
|---|---|---|---|---|
| agility_drill | Multi-directional or cadence-driven drills without steady gait cycles | side_shuffle,tire_run,dynamic_walk_high_knees,turn_and_step_left | variant,direction,cadence_hz,surface | Capture cueing or treadmill settings; use when strides vary too much for phase export. | 
| cutting | Athletic cuts with large heading changes | cutting_left_fast,cutting_right_slow | direction,approach_speed_m_s,turn_angle_deg,surface | Keep entire maneuver in time to preserve path-dependent kinetics. | 
| free_walk_episode | Episodic or exploratory walking sequences | meander,start_stop,obstacle_walk | surface,segment_start_s,segment_end_s,treadmill | Use for trials with frequent pauses/obstacles where heel-strike segmentation is unreliable. | 
| load_handling | Asymmetric lifts, carries, or object exchanges | lift_weight_25lbs_l_c,ball_toss_center | load_kg,hand,pickup_height,dropoff_height,direction | Document object mass and interaction side so bias/torque effects are traceable. | 
| perturbation | External pushes/pulls or cooperative force tasks | push_forward,tug_of_war,twister | direction,magnitude,support,implements | Distinguish voluntary vs. reactive responses via metadata (e.g., initiated_by:experimenter). | 
| balance_pose | Static or quasi-static holds | poses_single_leg,poses_wide_stance,squat_hold | variant,duration_s,support | Useful for calibration and balance assessments; ensure durations cover full hold. | 
| functional_task | Miscellaneous non-cyclic behaviors not covered above | variant:<string> | variant, contextual keys as needed | Use sparingly; prefer one of the specific families when possible. | 
When new datasets introduce additional behaviors, extend the table with the task family, expected metadata, and note whether improved segmentation would allow promotion to the phase-friendly bucket.
Subject Naming¶
Format: <DATASET_CODE>_<POPULATION_CODE><SUBJECT_NUMBER> → e.g., DS23_AB05, DS21_TFA03. Keep subject numbers zero-padded to two digits where possible to aid sorting.
Population codes
| Code | Population | Recommended task suffix | 
|---|---|---|
| AB | Able‑bodied | (omit) | 
| TFA | Transfemoral amputee | tfa | 
| TTA | Transtibial amputee | tta | 
| CVA | Stroke | strokeorcva | 
| PD | Parkinson’s | pd | 
| SCI | Spinal cord injury | sci | 
| CP | Cerebral palsy | cp | 
| TKA | Total knee arthroplasty | tka | 
| THA | Total hip arthroplasty | tha | 
| MS | Multiple sclerosis | ms | 
Subject Metadata¶
Optional demographics and clinical context stored in subject_metadata as comma‑separated key:value pairs.
Common keys
- age:<int>
- sex:<M|F|Other>
- height_m:<float>
- weight_kg:<float>
- leg_dominance:<left|right|unknown>
- impairment:<string>(e.g., stroke, pd, sci)
- prosthesis_type:<string>(e.g., TFA, TTA)
- prosthesis_side:<ipsi|contra|left|right>
- clinical_scores:<string>(e.g., FuglMeyer:28)
- notes:<string>(short free text)
Variables (What Columns Mean)¶
Naming pattern: <joint/segment>_<motion>_<measurement>_<side>_<unit>
Key categories
- Kinematics (angles): *_angle_*_rad
- Kinetics (moments/forces): *_moment_*_Nm_kg(mass-normalized)
- Ground reaction forces (GRF): *_grf_*_BW(body-weight-normalized)
- Segment orientations: pelvis_*_angle_rad,trunk_*_angle_rad,thigh_*_angle_*_rad,shank_*_angle_*_rad,foot_*_angle_*_rad
Sides
- ipsi: limb that defines phase (- phase_ipsiis 0% at its heel strike)
- contra: opposite limb (≈ 50% phase offset in level walking)
Units
- Angles in radians (*_rad)
- Moments are mass‑normalized (*_Nm_kg)
- GRFs are body‑weight‑normalized (*_BW)
Column Catalog¶
Complete list of standard column names used in the conversion scripts and examples. Columns are grouped by category; sides are ipsi and contra unless noted.
- Required schema: subject,subject_metadata,task,task_id,task_info,step,phase_ipsi(phase‑indexed) ortime_s(time‑indexed)
- Optional schema: phase_contra,dataset,collection_date,processing_date
Kinematics — joint angles (radians)
- hip_flexion_angle_{ipsi,contra}_rad
- hip_adduction_angle_{ipsi,contra}_rad
- knee_flexion_angle_{ipsi,contra}_rad
- ankle_dorsiflexion_angle_{ipsi,contra}_rad
Kinetics — joint moments (Nm/kg)
- hip_flexion_moment_{ipsi,contra}_Nm_kg
- knee_flexion_moment_{ipsi,contra}_Nm_kg
- ankle_dorsiflexion_moment_{ipsi,contra}_Nm_kg
Segment/link orientations (radians)
- Pelvis: pelvis_sagittal_angle_rad,pelvis_frontal_angle_rad,pelvis_transverse_angle_rad
- Trunk: trunk_sagittal_angle_rad,trunk_frontal_angle_rad,trunk_transverse_angle_rad
- Thigh: thigh_sagittal_angle_{ipsi,contra}_rad
- Shank: shank_sagittal_angle_{ipsi,contra}_rad
- Foot: foot_sagittal_angle_{ipsi,contra}_rad
Angular velocities (radians/second)
- hip_flexion_angular_velocity_{ipsi,contra}_rad_s
- knee_flexion_angular_velocity_{ipsi,contra}_rad_s
- ankle_dorsiflexion_angular_velocity_{ipsi,contra}_rad_s
Ground reaction forces (BW)
- Vertical: vertical_grf_{ipsi,contra}_BW
- Anterior–posterior: anterior_grf_{ipsi,contra}_BW
- Medio–lateral: lateral_grf_{ipsi,contra}_BW
Center of pressure (meters)
- cop_anterior_{ipsi,contra}_m
- cop_lateral_{ipsi,contra}_m
Coordinate & Sign Conventions¶
OpenSim right‑handed frames. Positive rotations follow right‑hand rule.
- Hip flexion (+): thigh forward; Knee flexion (+): heel toward buttocks
- Ankle dorsiflexion (+): toes up; Pelvis sagittal (+): anterior tilt
Row & Phase/Time Semantics¶
- Each row = one sample within a step/cycle for a subject+task.
- Phase‑indexed: phase_ipsiruns 0→100% in each gait cycle of the ipsilateral limb (150 samples).
- Contra limb is approximately 50% offset in level walking.
- Time‑indexed: time_sincreases monotonically; cycles delimited by gait events.
GRF & CoP Variables¶
- GRF components: vertical_grf_*,anterior_grf_*,lateral_grf_*with suffix_BW.
- Center of pressure: cop_anterior_*_m,cop_lateral_*_m(meters), side‑specific where applicable.
Naming Rules¶
- Lowercase snake_case; tokens separated by single underscores.
- Use exact unit suffix tokens: rad,Nm_kg,BW,m,s.
- Segment/global (no side): e.g., pelvis_*_angle_rad,trunk_*_angle_rad.
- Side tokens: ipsiorcontraonly.
Optional Columns & Flags¶
- phase_contra(percent): contra limb phase, if present.
- cycle_id: optional alias of- step.
- dataset: dataset identifier;- collection_date,- processing_date(ISO strings) if available.
- Quality flags (boolean): e.g., is_reconstructed_<side>for interpolated values.
Canonical phase column is phase_ipsi.
Related¶
- Datasets overview: ../datasets/
- Validation ranges: ../datasets/validation_ranges.md
- Maintainers: ../maintainers/