Research
My research program centers on sport-related concussion and its prolonged consequences in physically active populations, with an emphasis on translating evidence into actionable clinical practice.
Current Projects
Foundation Stack — 52-Week PPCS Aerobic Prescription Series
Active · 2026–2027
Structured long-form installments for clinicians, researchers, and families: problem → comparison table → disagreements → methods → SOP → limitations. Four pillars (reproduction, methods, synthesis, pitfalls). Week 1 published.
Bayesian Meta-Analysis: Physical Activity Interventions for PPCS
Active · 2025–2026
A systematic review and Bayesian hierarchical meta-analysis examining the efficacy of structured exercise protocols — particularly sub-symptom threshold aerobic exercise — on symptom severity and functional recovery in adolescents and young adults with persistent post-concussion symptoms (PPCS, ≥28 days post-injury).
Methods: PRISMA-compliant systematic search · Hedges’ g effect sizes · brms / Stan Bayesian random-effects model · ggdist visualization
Analysis platform: guanglab.org/labs/ · RStudio Server · Oracle Cloud ARM
PPCSexRx — Clinical Exercise Prescription
CRAN v0.1.0 (June 2026) · v0.2 in development
PPCSexRx encodes my 2026 NATA Foundation CAT as three R steps — screen → prescribe → track — with GRADE disclosure and safety stops at every step. Works for high school ATs without BCTT and clinics with BCTT data; no extra R packages required on CRAN v0.1.0.
Functions: screen_ppcs() · prescribe_ppcs() · track_progress()
install.packages("PPCSexRx")
library(PPCSexRx)Links: CRAN · Vignette · GitHub · OSF · Shiny demo (no R needed)
GRADE certainty: LOW. For licensed clinicians only; not a substitute for clinical judgement.
How it works — 5-minute walkthrough (outputs from CRAN v0.1.0)
Step 1 — Screen (16 y/o, 35 days post-injury):
screen_ppcs(age = 16, days_post_injury = 35)======================================== PPCSexRx Eligibility Screen GRADE: LOW certainty | Li (2026) ======================================== ✅ STATUS: ELIGIBLE CLINICAL REASON: Patient meets PICO eligibility criteria: age 16 years, 35 days post-injury (>= 28), no active contraindications. NEXT STEP: Proceed to prescribe_ppcs(). BCTT preferred; age-predicted fallback if unavailable. ========================================
Step 2 — Prescribe (no BCTT at a high school):
rx <- prescribe_ppcs(age = 16, days_post_injury = 35)
print(rx)Target HR : 133 bpm Duration : 20 min/session · Frequency: 5/week Method : Age-predicted: 60-70% HRmax (BCTT unavailable) SAFETY : Stop if symptoms worsen >= 2 PCSS points. EVIDENCE : GRADE: LOW certainty. Conditional recommendation FOR.
With BCTT (hrst = 160) → 128 bpm (80% HRst). Same safety shell, two fidelity tiers.
Step 3 — Track three sessions (PCSS 32→28→25):
log <- NULL
for (i in 1:3) {
tr <- track_progress(log, c(32, 28, 25)[i], c(100, 102, 104)[i], 20, rx)
log <- tr$updated_log
}
print(tr)
plot(tr)Sessions completed : 3 PCSS change : ↓ 7 points (improvement) NEXT SESSION HR : 138 bpm (+5 after 2 stable sessions)
Safety stop — 18 days post-injury (verbose = FALSE for athlete-facing text):
Result: CONTRAINDICATED — Not yet ready. Speak with your clinician.
Full demo script (copy into RStudio):
library(PPCSexRx)
screen_ppcs(age = 16, days_post_injury = 35)
rx <- prescribe_ppcs(age = 16, days_post_injury = 35)
print(rx)
log <- NULL
for (i in 1:3) {
tr <- track_progress(log, c(32, 28, 25)[i], c(100, 102, 104)[i], 20, rx)
log <- tr$updated_log
}
print(tr); plot(tr)
screen_ppcs(age = 16, days_post_injury = 18, verbose = FALSE)
prescribe_ppcs(age = 17, days_post_injury = 42, hrst = 160)PPCS Pilot Study: Multimodal Clinical Assessment
Planned · 2027
A prospective pilot study developing and validating a multimodal clinical assessment battery for PPCS in adolescent athletes. Assessments include oculomotor tracking, speech-motor performance (Pataka diadochokinesis), and standardized symptom inventories.
Methods: Eye-tracking · Pataka paradigm · Repeated-measures design · Mixed-effects modelling
Methods & Infrastructure
I maintain a self-hosted research computing environment at guanglab.org for reproducible Bayesian analysis:
| Tool | Purpose |
|---|---|
| PPCSexRx (CRAN) | SSTAE clinical decision support · walkthrough · install |
| R / brms / Stan | Bayesian meta-analysis |
| RStudio Server | Cloud-based analysis environment |
| ASReview | AI-assisted literature screening |
| Zotero | Reference management |
| Quarto | Reproducible reporting & this website |
All analysis code and outputs for published work are made publicly available to support open science practices.