CRAI: Cumulative Relative Asymmetry Index — analytical dataset and code for quantifying interocular asymmetry of axial elongation in paediatric myopia
收藏资源简介:
This deposit accompanies a methodological study introducing and validating the Cumulative Relative Asymmetry Index (CRAI) — a novel scale-invariant metric for quantifying interocular asymmetry of axial elongation in pediatric myopia. The metric is defined at the interval level (Relative Asymmetry Index, RAI) and aggregated at the patient level (CRAI), complemented by an annualized Absolute Asymmetry Index (AAI). The deposit contains the anonymized patient-level dataset patients_anonymised.csv (n = 267 children, ages 5–16 years, 913 follow-up intervals), the Python reference implementation crai_metrics.py, and a complete analysis pipeline analysis_pipeline.py reproducing the principal numerical findings. Data collection. Clinical records were collected during routine ophthalmological care between 2015 and 2026 in Barnaul, Russian Federation, and aggregated into a centralized digital monitoring platform during 2025–2026 for the present analysis. Dataset columns include CRAI_percent, AAI_annual_mm_per_year, net_AL_change_rate_mm_per_year, age_years_at_first_visit, sex, followup_duration_years, and n_valid_intervals (full schema in README.md). Key findings reproducible from this deposit: 22 % of children with progressive myopia exhibit statistically detectable interocular asymmetry of axial elongation (AAI exceeding the Minimal Detectable Change at 95 % confidence, MDC₉₅ ≈ 0.118 mm/year), and 13.9 % demonstrate pronounced asymmetry (CRAI > 50 %), where the slower-progressing eye accumulates axial length at no more than half the rate of the faster-progressing eye. Beyond these strictly defined groups, approximately 70 % of patients display a non-minimal asymmetric component (CRAI > 15 %). Convergent evidence supports the pronounced-asymmetry signal: within the pronounced stratum, no patients fall below the patient-level measurement noise floor (~0.06 mm/year), and 73 % exceed MDC₉₅ — providing dual validation against measurement uncertainty. Median CRAI 22.7 %, median annualized AAI 0.073 mm/year, category prevalence 30.7 % / 55.4 % / 13.9 % (Minimal / Moderate / Pronounced). CRAI is positively associated with age across the pediatric age range (Spearman ρ = +0.28, p < 0.001), persisting after adjustment for the overall net AL change rate (partial ρ = +0.25, p < 0.001), while the overall net AL change rate decreases approximately three-fold across age strata. CRAI is statistically independent of the overall net AL change rate after age adjustment (partial ρ = −0.08, p = 0.20), confirming the metric's scale invariance — making it directly applicable in cohorts with widely different overall progression activity. Reproduction. Run python analysis_pipeline.py against patients_anonymised.csv to reproduce Table 1 (cohort characteristics), Table 2 (CRAI category prevalence with Wilson confidence intervals), age-stratified dynamics (Table 3 in the manuscript), and the patient-level noise floor / MDC₉₅ derivation. Requires numpy, pandas, scipy only. Version 3.0 (May 2026). Recalibrated to canonical raw data snapshot of 23 May 2026. Cohort updated from n = 256 to n = 267 patients (913 valid intervals; previously 904). The annualized rate variable is reformulated as the signed net AL change rate (preserving the directional distinction between net axial elongation and net axial shortening driven by choroidal thickening response to therapy) and renamed from mean_annual_AL_growth_mm_per_year to net_AL_change_rate_mm_per_year. Metric definitions (RAI, CRAI, AAI) and category cut-offs (15 / 50 %) are unchanged from Version 2.0. Version 2.0 (May 2026). Revised principal category cut-offs from 15 / 45 % to 15 / 50 % on principled grounds — 15 % serves as a statistical noise filter while 50 % has a direct biological interpretation. Dataset and metric definitions unchanged from Version 1.0; only default category thresholds in the code (categorize_crai() defaults and reproduce_table_2() in analysis_pipeline.py) updated. Interval-level data are not deposited to minimize re-identification risk but are available from the corresponding author upon reasonable request from researchers with a defined methodological purpose.



