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.
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
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
Metadata Files
README.md
🚴 Cycling Kinematic Analysis Tool
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
.txtmotion 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
- Clone this repository or download the
.pyfile:
bash
git clone https://github.com/yourusername/cycling-kinematics.git
cd cycling-kinematics
- Install required packages:
bash
pip install pandas numpy matplotlib scipy statsmodels
▶️ Usage
- Run the script:
bash
python multi_cycling_kinematic_analysis_FINAL.py
- Follow the GUI prompts:
- Select a
.txtmotion 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"
- Select a
📁 Outputs
For each subject/session:
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
/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:
- Range of Motion (ROM) per joint and axis
- Cross-correlation between left/right time series
- Symmetry Index (NSI):
- min-max normalized
- mean + absolute mean NSI curves
- min-max normalized
- Shapiro-Wilk test for normality
- ANOVA or Friedman test (auto-selected)
- 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
- Repositories: 1
- Profile: https://github.com/ophiravina
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