KARAMBIOSCIENCE
EST. 2026
EVIDENCE / 04

ClockQC evidence note · v0.10 · 24 October 2026

We tested the missing-probe explanation.

The probe-count difference was real. Including those probes did not resolve the reconstruction mismatch in the completed 256-array comparison.

← ClockQC research

Result: the hypothesis was not supported under the tested settings.

Across 20,179,456 measured clock-input values, reconstruction RMSE rose slightly after including the 65 SNP probes. The remaining mismatch is small, but its historical cause is still unresolved.

The controlled question

The deposited GSE174422 matrix contains 485,577 loci. Our initial minfi-based reconstruction contained 485,512. The 65 extra loci were exactly the array’s SNP probes: 25 type I and 40 type II. None is a direct input to the clocks, but they can influence background estimation and normalization.

We compared inclusion against the validated SNP-excluded control using the same raw arrays, ENmix version, out-of-band background correction, RELIC, quantile1 normalization across the full cohort and RCP. The primary diagnostic was agreement with deposited data, not a favorable repeatability result. All 256 arrays and 128 duplicate pairs were retained.

This was an exploratory diagnostic following v0.9, not a publicly preregistered confirmatory trial.

The measured result

MeasureSNP excludedSNP includedInterpretation
Beta reconstruction RMSE0.00012450140.00012541330.73% higher error
Maximum beta discrepancy0.015943640.01594944Mismatch remains
PCHorvath1 score RMSE vs deposit0.01892672 years0.01916967 yearsNo improvement
PCHorvath1 duplicate disagreement S1.87963894 years1.87951732 yearsEssentially unchanged

Beta values are methylation fractions. RMSE summarizes numerical reconstruction differences, not biological-age accuracy. The comparison covers all 78,826 required clock inputs across 256 arrays; it does not verify every probe on the chip.

S = √[mean(d²) / 2], where d is a duplicate-pair score difference. This bias-inclusive disagreement measure is invariant to swapping pair labels. It is not automatically an independent per-array error SD, a longitudinal change threshold or a clinically meaningful difference.

The full report includes results for all ten original and PC clock versions. DNAmTL values use predicted kilobases; age-clock values use years.

Checks that passed

  • Common raw methylated and unmethylated intensities matched exactly for every array.
  • The native SNP-excluded background-correction fixture matched the previous corrected intensities within 1.86 × 10⁻⁸ intensity units.
  • The SNP-inclusive quantile fixture matched ENmix’s own implementation with zero intensity difference.
  • The SNP-excluded downstream normalization/RCP fixture matched v0.9 within 5.6 × 10⁻¹⁶ beta units.
  • Lossless storage checks and 17 existing scoring/validation tests passed.

Separate exploratory pairing check

All 128 recorded duplicate pairs were mutual nearest matches among the 256 arrays using continuous RMSE across the 65 deposited SNP measurements. This supports the recorded pairing but is not a formal genotype-identity assay. No samples were excluded as a result.

What remains open

Exact historical preprocessing has not been recovered. Passing arithmetic and implementation checks does not establish biological validity. The study does not measure day-to-day biological variation or demonstrate human aging reversal.

Read it. Check it. Reproduce the stated layer.

Standalone audit: a small Python 3 standard-library package that recalculates the clock-score discrepancies and duplicate disagreement from supplied score tables and pair labels. It does not recalculate clocks from methylation values or reproduce the probe-level beta RMSE.

v0.10 extension: the verified original package includes code, measured clock inputs, scores and run logs. It is not a standalone raw-data reproduction. Score recomputation also needs the v0.9 analysis code, clock parameters, imputation references, baseline_v09_inputs.npz and SNP-excluded measured inputs. A full raw rerun additionally needs the pinned R environment, IDATs, v0.9 corrected-intensity caches and quantile targets. Read START-HERE.txt and the dependency manifest before running.

The supplementary v0.9 environment is not bundled in this download. Request the supporting reproduction files if you do not already have it.

v0.10 archive integrity

SHA-256: 9a94dcf25c2d23fb0bb7ce14b101273d65ae31b9f1f0ef45209bb4570528a232

Version: v0.10; experiment completed 23 October 2026. This website note was published in the deployment package dated 24 October 2026.

Sources and provenance

The numerical results on this page come from Karam’s saved computational run. The cited investigators supplied the underlying measurements and methods; they have not endorsed this reanalysis.