Skip to content

Commit 2bc35bf

Browse files
committed
Update README.md to academic version with acknowledgements
1 parent 26572de commit 2bc35bf

File tree

1 file changed

+47
-22
lines changed

1 file changed

+47
-22
lines changed

README.md

Lines changed: 47 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<img src="man/figures/image.png" alt="Athlytics logo" width="220"/>
55

66
# Athlytics
7-
*An all-in-one, offline R toolkit for endurance analytics — from FIT/TCX/GPX & Strava exports to core models (ACWR, EF, Pa:Hr decoupling, PB, Exposure) with built-in QC & uncertainty.*
7+
*An offline, reproducible R toolkit for endurance-exercise data: from FIT/TCX/GPX & Strava archives to validated models (ACWR, EF, pa:hr decoupling, PB, exposure), with built-in QC and uncertainty estimation.*
88

99
<p>
1010
📘 <a href="https://hezhiang.com/Athlytics/"><strong>Docs</strong></a> &nbsp;&bull;&nbsp;
@@ -48,9 +48,9 @@
4848

4949
## 🎯 Overview
5050

51-
**Athlytics** is a powerful R package for analyzing your endurance training data from **local Strava exports**. It provides a complete, **offline** toolkit to transform your raw data into meaningful insights about fitness, fatigue, and performance.
51+
**Athlytics** is a research-oriented R package for the longitudinal analysis of endurance training. It operates entirely on **local Strava exports** (or FIT/TCX/GPX files), avoiding API dependencies to ensure **privacy** and long-term **reproducibility**.
5252

53-
Designed for athletes, coaches, and sports scientists, Athlytics standardizes the entire analysis process—from loading your data to generating publication-quality plots. Because it works **offline** without needing API keys, your data remains completely **private** and your workflows are **stable and reproducible** forever.
53+
The package standardizes the workflow from data ingestion and quality control to model estimation and uncertainty quantification. Implemented endpoints include **acute-to-chronic workload ratio (ACWR)**, **aerobic efficiency (EF)**, and **cardiovascular decoupling (pa:hr)**, alongside personal-best and exposure profiles suitable for **single-subject** and **cohort** designs. All functions return tidy data, facilitating statistical modeling and figure generation for academic reporting.
5454

5555
<br>
5656
<div align="center">
@@ -62,17 +62,13 @@ Designed for athletes, coaches, and sports scientists, Athlytics standardizes th
6262

6363
## ✨ Key Features
6464

65-
***100% Local and Private**: Works directly with your Strava ZIP export. No data is ever uploaded, and no internet connection or API keys are needed. You have full control over your information.
65+
***Reproducible by design** – Fully offline; no API keys. Deterministic pipelines suitable for longitudinal studies.
66+
***Validated metrics** – Implements ACWR, EF, and decoupling commonly used in exercise physiology; integrated **QC** checks.
67+
***Uncertainty-aware** – Functions return estimates with variance/intervals where applicable, enabling principled inference.
68+
***Cohort support** – Built-in helpers for multi-athlete datasets and percentile-band references.
69+
***Tidy outputs** – Consistent, analysis-ready tibbles for downstream modeling and figure pipelines.
6670

67-
***All-in-One Analysis Pipeline**: Handles everything from loading and cleaning raw data to calculating advanced metrics and creating visualizations. No more patching together different tools.
68-
69-
***Robust Scientific Metrics**: Implements widely used metrics for performance analysis, including Acute-to-Chronic Workload Ratio (ACWR), Aerobic Efficiency (EF), and Cardiovascular Decoupling, with built-in quality checks.
70-
71-
***Powerful Cohort Analysis**: Purpose-built for comparing multiple athletes. Easily load data for a team or group and benchmark an individual's progress against the cohort.
72-
73-
***Reproducible and Shareable**: Because the workflow is self-contained, your analysis scripts are easy to share and will produce the same results every time, making it ideal for reliable, long-term tracking.
74-
75-
***
71+
---
7672

7773
## 📦 Installation
7874

@@ -91,16 +87,15 @@ install.packages("Athlytics")
9187
remotes::install_github("HzaCode/Athlytics")
9288
```
9389

94-
***
95-
90+
---
9691
### 🚀 Quick Start
9792

9893

9994
### 📥 Step 1: Export Your Strava Data
10095

10196
1. Navigate to **[Strava Settings → My Account](https://www.strava.com/settings/profile)**.
10297
2. Under "Download or Delete Your Account," click **"Get Started"** and then **"Request Your Archive"**.
103-
3. You will receive an email with a download link (it may take a little while).
98+
3. You'll receive an email with a download link — this sometimes takes a few hours.
10499
4. Download the ZIP file (e.g., `export_12345678.zip`). **There is no need to unzip it.**
105100

106101
### 💻 Step 2: Load and Analyze (Cohort Example)
@@ -119,7 +114,7 @@ cohort_data <- bind_rows(athlete1, athlete2)
119114
# 2. Calculate ACWR for each athlete in the cohort
120115
cohort_acwr <- cohort_data %>%
121116
group_by(athlete_id) %>%
122-
group_modify(~ calculate_acwr(.x, load_metric = "duration_mins")) %>%
117+
group_modify(~ calculate_acwr(.x, activity_type = "Run", load_metric = "duration_mins")) %>%
123118
ungroup()
124119

125120
# 3. Generate percentile bands to serve as a reference for the cohort
@@ -130,7 +125,7 @@ individual_acwr <- cohort_acwr %>% filter(athlete_id == "A1")
130125
plot_with_reference(individual = individual_acwr, reference = reference_bands)
131126
```
132127

133-
***
128+
---
134129

135130
## 📊 Core Analyses
136131

@@ -163,23 +158,49 @@ Measure your endurance by analyzing how much your heart rate "drifts" upward dur
163158
<em><a href="https://hezhiang.com/Athlytics/reference/calculate_decoupling.html">Learn more about Decoupling...</a></em>
164159
</p>
165160

166-
***
161+
---
162+
163+
## 📐 Methods & Validation
164+
165+
This release implements widely used constructs in endurance-exercise analytics:
166+
- **ACWR**: rolling acute (e.g., 7-day) vs chronic (e.g., 28-day) load ratios with smoothing options.
167+
- **Aerobic Efficiency (EF)**: output (pace/power) relative to effort (heart rate) over time.
168+
- **Cardiovascular Decoupling (pa:hr)**: drift between pace/power and heart rate during steady efforts.
169+
170+
We provide input validation, outlier handling, and activity-level QC filters (e.g., minimal duration, HR plausibility ranges). For cohort summarization, Athlytics computes percentile bands and supports stratification by sport, sex, or other covariates when available.
171+
172+
---
173+
174+
## 🔁 Reproducibility & Data Privacy
175+
176+
Analyses are file-based and fully **offline**, ensuring privacy of personally identifiable training data. We recommend:
177+
1) Versioning your Strava ZIP archives;
178+
2) Pinning Athlytics and dependent package versions;
179+
3) Archiving code and rendered artifacts (e.g., via Zenodo) with a clear computational environment manifest.
180+
181+
---
167182

168183
## 📝 Citation
169184

170-
If you use **Athlytics** in your research, please cite the software. We also recommend citing the original methodological papers for any metrics used (see documentation for references).
185+
If you use **Athlytics** in academic work, please cite the software as well as the original methodological sources for specific metrics.
171186

172187
```bibtex
173188
@software{athlytics2025,
174-
title = {Athlytics: A Computational Framework for Longitudinal Analysis of Exercise Physiology},
189+
title = {Athlytics: A Reproducible Framework for Endurance Data Analysis},
175190
author = {Zhiang He},
176191
year = {2025},
177192
version = {1.0.0},
178193
url = {https://github.com/HzaCode/Athlytics}
179194
}
180195
```
181196

182-
***
197+
---
198+
199+
## ⚖️ Ethical Considerations
200+
201+
Athlytics processes personal training records. Ensure appropriate consent for cohort analyses, de-identify outputs where required, and comply with local IRB/ethics and data-protection regulations.
202+
203+
---
183204

184205
## 🤝 Contributing
185206

@@ -189,4 +210,8 @@ Contributions are welcome! Please read our [CONTRIBUTING.md](CONTRIBUTING.md) gu
189210
* **💡 Suggest a Feature**: [Start a Discussion](https://github.com/HzaCode/Athlytics/discussions)
190211
* **🔧 Submit a Pull Request**: We appreciate your help in improving Athlytics.
191212

213+
---
214+
215+
## 🙏 Acknowledgements
192216

217+
The author acknowledges the helpful feedback from the pyOpenSci community, and the constructive suggestions provided by Professors [Benjamin S. Baumer](https://github.com/beanumber) and [Iztok Fister Jr.](https://github.com/firefly-cpp), as well as the developers of the referenced R packages. We also thank the endurance-analytics and open-source communities for constructive feedback on data quality, modeling choices, and reproducibility practices.

0 commit comments

Comments
 (0)