cycling-kinematic

Python tool for the analysis of lower limb 3D kinematics during cycling across multiple power levels. Designed for motion capture recordings from Contemplas™ or similar systems.

https://github.com/ophiravina/cycling-kinematic

Science Score: 67.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 4 DOI reference(s) in README
  • Academic publication links
    Links to: zenodo.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (14.6%) to scientific vocabulary
Last synced: 6 months ago · JSON representation ·

Repository

Python tool for the analysis of lower limb 3D kinematics during cycling across multiple power levels. Designed for motion capture recordings from Contemplas™ or similar systems.

Basic Info
  • Host: GitHub
  • Owner: ophiravina
  • License: other
  • Language: Python
  • Default Branch: main
  • Size: 17.6 KB
Statistics
  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • Open Issues: 0
  • Releases: 1
Created 9 months ago · Last pushed 9 months ago
Metadata Files
Readme License Citation

README.md

🚴 Cycling Kinematic Analysis Tool

DOI License Python Status

Python tool for the analysis of lower limb 3D kinematics during cycling across multiple power levels.
Designed for motion capture recordings from Contemplas™ or similar systems.


📦 Features

  • Supports multiple .txt motion capture files per subject
  • Range of Motion (ROM), Symmetry Index (NSI), and Cross-Correlation analysis
  • Per-joint, per-DOF asymmetry quantification
  • Repeated Measures ANOVA or Friedman test (auto-selected based on normality)
  • Bonferroni-corrected pairwise t-tests
  • CSV summary + diagnostic plots (optional PDF or Excel integration)

🖥️ Installation

🔹 Requirements

  • Python 3.9 or higher (tested with Python 3.10)

🔹 Setup Instructions

  1. Clone this repository or download the .py file:

bash git clone https://github.com/yourusername/cycling-kinematics.git cd cycling-kinematics

  1. Install required packages:

bash pip install pandas numpy matplotlib scipy statsmodels


▶️ Usage

  1. Run the script:

bash python multi_cycling_kinematic_analysis_FINAL.py

  1. Follow the GUI prompts:
    • Select a .txt motion file (one per power level)
    • Input the associated power level (e.g. 290)
    • Repeat until all desired files are selected
    • Click "Finish and Start Analysis"

📁 Outputs

For each subject/session:

  1. Combined_Kinematic_Results.csv
    → Contains one row per joint/DOF/power level, including:

    • ROM, NSI metrics, rmax, τlag
    • Min/max angles
    • Repeated Measures statistics: mean, SD, ANOVA/Friedman, pairwise tests
  2. /Comparison_Plots/
    → Contains PNG plots showing each metric vs power level (e.g. NSIabs vs Power for LHIP Flex/Ext)


📖 Methods

read "method.txt" for a more detalied explanation.

Implemented Calculations:

  1. Range of Motion (ROM) per joint and axis
  2. Cross-correlation between left/right time series
  3. Symmetry Index (NSI):
    • min-max normalized
    • mean + absolute mean NSI curves
  4. Shapiro-Wilk test for normality
  5. ANOVA or Friedman test (auto-selected)
  6. Bonferroni-corrected pairwise t-tests

📜 License

This project is licensed under the Creative Commons Attribution-NonCommercial 4.0 International (CC BY-NC 4.0) license.
Use for academic and research purposes is permitted with proper attribution.
Commercial use is prohibited without explicit permission.

📧 Contact for licensing: ophiravina@gmail.com


🧠 Author

Ophir Ravina
📧 ophiravina@gmail.com


🙏 Citation

If you use this tool in your research, please cite:

Ravina, O. (2025). Cycling Kinematic Analysis Tool (Version 1.0.0) [Computer software].
Zenodo. https://doi.org/10.5281/zenodo.15510682

Owner

  • Login: ophiravina
  • Kind: user

Citation (citation.bib)

@misc{ravina2025cyclingkinematic,
  author       = {Ophir Ravina},
  title        = {{Cycling Kinematic Analysis Tool}},
  year         = {2025},
  publisher    = {GitHub},
  journal      = {GitHub repository},
  howpublished = {\url{https://github.com/ophiravina/Cycling-Kinematic}},
  note         = {Version 1.0.0, accessed May 2025}
}

GitHub Events

Total
  • Release event: 1
  • Push event: 9
  • Create event: 1
Last Year
  • Release event: 1
  • Push event: 9
  • Create event: 1