Shaduf.Research preview
Aging Clocks Catalog/Tools and access

Aging Clocks Catalog · Implementations and feasibility

Use existing tools; understand access limits

Finding a paper or repository is only the first step. A reproducible result needs the exact data, implementation, reference parameters and permissions.

Foundation reviewed ; reliability and calibration evidence reviewed ; cross-modal access reviewed . A bounded documentary review, not a diagnostic or treatment service. Specification/readiness review: .

This page does not calculate your age. It provides existing-tool pointers, source-code findings and a fixed synthetic example. There is no calculator, upload form, personal-health-data workflow or restricted-weight download.

Existing tools—and the limits of access

Find an implementation, then check the exact version and rights
ResourceUseful roleWhat public access does not establish
BioAge R packageClinical Phenotypic Age, KDM and homeostatic-dysregulation workflows, with training and projection treated separately. [T01]DESCRIPTION 0.1.0 declares GPL-3. Relevant calculation files were read, not executed. Reference fits/data and redistribution obligations still require review.
BiolearnModel selection, loading, imputation, quality control and evaluation documentation. [T02]Documentation does not prove all models, weights and datasets share one licence or can run in every environment. No package run or rights audit was performed.
pyagingPublic documentation/source pointer for a broader implementation catalogue. [T03]The “latest” route is mutable; rendered documentation differed between review snapshots. No immutable executable version is asserted.
ProteoClockDocuments proteomic models and Olink-format inputs. [SC3]galkin_2025 / best_clock.pt weights are restricted to registered UK Biobank researchers inside RAP; local download/copy/storage is prohibited by the observed README. ProtAge and the Han model have author-request paths. No unrestricted six-model reproduction is established.
PAOPAC author documentationREADME specifies Olink NPX inputs plus an Age metadata field; a Windows/CPython-3.9 compiled module and separate binary model distribution. [S14]The pointer is inspectable, but no binary was obtained or run. Full methods, exact trial version, feature mapping and deployment rights remain unverified. Required age metadata is not enough to infer how calendar age affects the score.
OMICmAge software routesPublication supplies development/validation code and a software-request route. [M21]Described software licence is for academic/nonprofit research with restrictions; data/algorithm agreements may be needed. Not authorization for public-calculator or commercial redistribution; no request was made.
ReadablePaper + repository

You may be able to inspect the method and code.

Runnable and reusableArtifacts + data + permissions

You still need the exact weights, preprocessing, references, environment and permission for the intended use.

An open article, a public repository, a package licence and model-weight permission are four separate facts. A reference sample also needs a lawful redistribution basis.

Access update, 26 September 2026: PAOPAC’s author documentation can now be inspected. That does not close the six-clock trial’s artifact gaps or make a public calculator ready. The ProteoClock restriction on galkin_2025 weights remains unchanged; neither a compiled model pointer nor current public code certifies what a historical trial ran. [S14; SC3]

More research access—not ready-made personal scores

These access findings concern specified implementations observed on 27 September 2026. An already acquired MRI or metabolomic dataset can support a research comparison without justifying a new scan or assay. The fixed clinical example below remains the first demonstrator priority; public code alone does not clear model, reference-data or deployment rights.

Cross-modal implementations: what is available and what remains to verify
ResourceVerified access findingPractical boundary
MiMIRPublic metabolomic source and synthetic-data pointers. DESCRIPTION version 1.4 declares GPL-3 and R ≥4.1.0; README gives a different minimum R version. [I01]Inspect the exact coefficients, feature names/units, quantification generation and reference rights. The preprocessing below depends on the submitted cohort; it is not a fixed one-person score. No installation was tested.
DunedinPACNIFreeSurfer-based R package, with variants including or excluding gray:white ratio and documented missing-region handling. Repository licence label: CC BY-NC-ND 4.0. [I04]Pin FreeSurfer/model variant, region order, quality control, imputation and expected outputs. Neither a modified/commercial service nor individual normative interpretation is cleared by the repository’s existence.
Organ proteomic codeOh organageUKB notebooks and Wang Organ-PAC analysis/training pointers are public. [I02; I03]A score-generation artifact and a locally refitted clinical-risk model are different objects. Complete models, preprocessing, reference parameters, environments and component permissions remain unaudited.
Personal-MetaboHealthPublished fixed Dutch reference and ten-feature NMR specification; higher means better health. The linked code could not be retrieved. [V08]Not the unchanged fourteen-feature mortality score. Coefficients, reference constants, sign, units, assay version, licence and independent outputs still need verification. A reference-average cutpoint is not a validated clinical decision threshold.

Why an unchanged input can receive a different standardized value

MiMIR’s inspected prep_met_for_scores adds 1 to an entire feature column if any submitted row is zero, then logs and standardizes using that submitted sample. Both zero handling and scaling are cohort-relative. [I01]

Synthetic preprocessing fixture—not a metabolite or trained clock output
Submitted valuesUnchanged inputValue before logStandardized value
[1, 2, 4]220
[1, 2, 4, 0]230.3653694230

The catalog’s fixed arithmetic applies the inspected rule with sample-standard-deviation scaling. No patient, metabolite units, model weights or MiMIR execution are involved. This dependence can be valid for an explicitly cohort-relative analysis; it prevents treating the function unchanged as a personal calculator. Freeze zero/limit-of-detection handling, transformations, reference means and dispersions before claiming row-independent scoring. [I01]

A newer fixed reference can address this computation barrier without proving clinical actionability. Personal-MetaboHealth’s overall lifestyle pre/post contrast was null; baseline-defined subgroups moved in opposite directions. Its modeled disease-onset delay is observational extrapolation, not intervention-derived years gained. The fixed-reference design therefore merits an implementation audit, not a personalized treatment rule. [V08]

The Personal-MetaboHealth code route remained unreadable in the 28 September recheck. MiMIR’s cohort dependence, DunedinPACNI’s processing/licence limits and the proteomic artifact restrictions above still apply; no new high-dimensional or personal-data service follows from the documentation. [F07]

Three source-code findings that matter

Phenotypic Age: identify the returned field. With no supplied fit, phenoage_calc.R first trains a generic survival model. Its generic result is phenoage; orig=TRUE additionally calculates the fixed expression as phenoage0. The returned $fit describes the generic model, not an export of that fixed expression. The NHANES helper trains and projects without requesting orig=TRUE; a precomputed phenoage0 dataset column is separate. A code update does not automatically regenerate stored columns. [D04]

KDM: in kdm_calc.R, a supplied fit with unspecified s_ba2 can still estimate biological-age variance from the projection sample. A frozen one-person implementation requires the biomarker regressions and that reference variance. Permissive missingness is not permission to invent laboratory values.

Homeostatic dysregulation: hd_calc.R further scales raw Mahalanobis distance using the projection cohort’s dispersion and warns against single-row input. Choose and label a raw reference distance or an independently frozen scale; it is not a universal age in years. These findings are from source inspection, not package execution. [T01]

Inspected source-file versions

These file-level blobs identify the reviewed code, not a fully reproduced environment:

DESCRIPTION: 71186d645e38f53fc179faffd9bd94d555e4d5a6
phenoage_calc.R: 468e95b32b23a48566a8f3e266a4a103330c25ff
kdm_calc.R: 0ea6c1d1c2399e331fd6ebad2216648c42e7169a
hd_calc.R: 84d51d0121f2fdfbf98cc837e179e32f4317bc9d.

ProteoClock README: f41e85c59b1ffeec6b8da66fb7029dd4cd77f30a, observed 21 September 2026. Current repository links can change; a blob record alone does not pin the entire study workflow.

The three calculation files were reread on 22 September 2026 and remain unchanged at the listed blobs. Freezing a reference means fixing its parameters and final scale, not merely keeping the same software name. [R15]

A column name does not pin preprocessing. The BioAge preparation source constructs lncrp using log(1 + CRP), while the coefficient branch consumes whatever transformed column it receives. The example below deliberately supplies ln(CRP in mg/dL). Its correct arithmetic does not certify the entire preparation/helper pipeline or prove which code generated a distributed binary dataset. [F01; F04]

A static clinical Phenotypic Age calculation

Synthetic inputs; not a real person. This fixture is the BioAge orig coefficient specification with natural log of CRP in mg/dL supplied to lncrp. It is one explicitly named clinical Phenotypic Age implementation—not DNAmPhenoAge, a purchased product, every version called “original,” or an author-certified test vector. The clinical target comes from the paper; the precise constants below come from the pinned BioAge expression. [F01; F02]

Complete invented inputs for the fixed arithmetic example
InputValueRequired unit / transformation
Chronological age50Years
Albumin45g/L
Creatinine80µmol/L
Glucose5mmol/L
C-reactive protein (CRP)0.1mg/dL, then ln(CRP), not ln(1 + CRP)
Lymphocytes30Percentage, not fraction
Mean cell volume (MCV)90fL
Red-cell distribution width (RDW)13Percent, not RDW-SD in fL
Alkaline phosphatase (ALP)70U/L
White-cell count (WBC)51,000 cells/µL; numerically equivalent to 10⁹/L
Fixed coefficients and transformations
xb = −19.90667 − 0.03359355 × 45
   + 0.009506491 × 80 + 0.1953192 × 5
   + 0.09536762 × ln(0.1) − 0.01199984 × 30
   + 0.02676401 × 90 + 0.3306156 × 13
   + 0.001868778 × 70 + 0.05542406 × 5
   + 0.08035356 × 50
   = −9.12847527

m = 1 − exp(−1.51714 × exp(xb) / 0.007692696)
  = 0.02117684

Score = ln(−0.0055305 × ln(1−m)) / 0.090165 + 141.50225
      = 41.2234 score-years

The explicit ln(CRP) fixture was confirmed again in the 28 September audit: 41.2234126846 score-years, displayed as 41.2234. Its raw gap is 41.2234126846 − 50 = −8.7765873154 gap-years. These decimals show arithmetic, not knowledge of a person’s true age. Neither the score nor intermediate m is a validated personal lifespan or risk estimate. The R package and empirical cohorts were not run. [F01; F02]

An algebraically equivalent form avoids saturation of the nested exponential/logarithm calculation:

Score = [xb + ln(0.0055305 × 1.51714 / 0.007692696)]
        / 0.090165 + 141.50225

The two expressions agree on this fixture. Finite arithmetic at an extreme input is only a numerical check, not evidence that the model is biologically valid there. The follow-up checked nine fixed outputs against a separately written 50-digit Decimal path within 1e−9 score-years. That is numerical agreement, not biological precision or an author-certified clinical vector; independent source-choice, expected-output and rights review still must precede a demonstrator. [R15]

Correct unitCRP: 0.1 mg/dL

Use the required unit before taking its natural logarithm.

Unit error, not aging+2.43545 score-years

Entering the mg/L number as mg/dL makes CRP ten times too large without changing the specimen.

Fixed-formula shift: 0.09536762 × ln(10) / 0.090165 = 2.43545. Zero/nonpositive CRP cannot be silently logged. This is a synthetic unit check, not a clinical interpretation.

Changing calendar age alone changes this score

Fixed synthetic check, same nine laboratory values: increase only the entered chronological age from 50 to 51 in the explicitly ln(CRP)-supplied BioAge orig specification. The score increases by 0.08035356 / 0.090165 = 0.8911834969 score-years; score minus chronological age decreases by 0.1088165031 gap-years. Nothing in this example changes a measured analyte. [R15]

Raw score+0.89118 score-years

The age coefficient mechanically advances the output.

Score-minus-age gap−0.10882 gap-years

Calendar age advances by more than the computed score, so the gap falls.

Rounded display of the fixed calculation above—not an intervention, a normal-aging trajectory or evidence of improvement. Freezing calendar age would define a different counterfactual calculation and must be labeled rather than silently substituted for the original score.

No KDM number is supplied merely to create a two-clock display. A named fixed reference fit and independently checked outputs are missing. Supplying an invented fit would change the estimator rather than complete the example.

Why retain this denominator? The original 2018 supplement and BioAge’s restored April-2026 expression support 0.090165 for the named natural-log fixture. The source history below retains the conflicting later equation. Neither the original full-precision execution artifact nor an independent primary-method expected-output pair was recovered. [D01; D02; D03]

The same fixture can expose different specifications

All rows below use the same invented inputs above and natural log of CRP. They are named computations, not independent aging clocks or biological measurements. The added source-history and isolated-execution checks are dated 29 September 2026.

Fixed synthetic base: specification comparisons, rounded for display
SpecificationScore-yearsWhat the audit calculated
BioAge orig, explicit ln(CRP)41.2234The precise coefficient expression and transformations above.
Levine 2018 printed Table S141.2991Rounded Table S1 coefficients and gamma 0.0077, with the supplementary formula; not unrounded original predictions.
2018 table coefficients, methods-prose gamma41.2935Same table coefficients and mapping, but gamma 0.0076927 instead of 0.0077. This is a separately named precision choice.
Literal 2019 correction42.8964The conflicting printed denominator 0.09165 plus that correction’s other constants; not adopted for the retained example.
BioAge historical denominator only42.8482Precise BioAge constants unchanged except denominator 0.09165. This isolates a different change from the preceding row.
Executed isolated Biolearn function41.7998The byte-pinned function reproduces the earlier scalar translation; only this function ran, not the complete package or empirical workflows.

All rows use the fixed age-50, CRP-0.1-mg/dL case above. Source constants and transformations are kept together; extra displayed digits support checking, not biological precision. The literal correction and denominator-only variant differ because they change different constants. [D01; D02; D03; D05]

Biolearn minus BioAge = 0.5763854369 score-years for this fixture (about 0.5764). Table S1 prints RDW 0.3306, BioAge uses 0.3306156, and the inspected Biolearn code uses 0.3356; other constants and the added 0.00001 also differ. Not all differences are ordinary rounding. The supplement prints gamma at different precision in prose and Table S1; the table-based row deliberately keeps the table values together. Choose one source specification rather than mix digits. [F01; F02; F03]

A separate transform sensitivity: the inspected BioAge NHANES preparation path uses log(1 + CRP). Supplying ln(1.1) instead of ln(0.1) to the same coefficient expression, with CRP = 0.1 mg/dL and all other synthetic inputs unchanged, gives 43.7596691608—an increase of 2.5362564762 score-years (about 2.5363). This is a conditional code-path comparison, not a rerun of NHANES or proof of the path behind every bundled dataset. [F04]

Neither difference is an observed customer error, a biological effect, a personal uncertainty band or a universal correction. The source intent and all installed versions were not investigated. The retained 41.2234 result is correct for the explicit natural-log fixture; it does not establish that every same-named function or data-preparation path is interchangeable.

A correction, a code change and a restoration

Final age-mapping denominator: source chronology, not a new clinical result
Source / dateWhat changed?What the evidence establishes
2018 original supplementFinal denominator 0.090165.Printed in the overview and detailed derivation; primary support for the retained mapping. [D01]
25 February 2019 correctionPrints 0.09165 while adding a missing equation step to a later validation article.A genuine conflicting specification, not mere rounding or a newly trained clock. Equation read from extracted publisher PDF text; rendering failed. [D02]
11 October 2023 BioAge changeCode adopts 0.09165.Demonstrates that a package name alone cannot identify the historical computation. [D03]
2 April 2026 restorationCode restores 0.090165, with a same-day revert and reapplication; the pinned final file uses 0.090165.The maintainer attributes the restoration to Levine confirmation. That is attributed correspondence, not independently authenticated author instruction or proof of every study’s code. [D03]

The original supplement plus the restored file support the current named fixture. They do not authorize silently rewriting the 2019 publication or declaring historical clinical results wrong without their actual execution chain. A changed denominator can preserve raw-score ranks while changing score-years; the worked interpretation contrasts that with a concentration-dependent CRP transform.

Gamma, selection lambda and the final denominator are different parameters

The survival calculation uses a 120-month horizon and Gompertz gamma: 0.0076927 in the 2018 methods prose, rounded to 0.0077 in Table S1. The age input and final score use years. The final age-mapping denominator is 0.090165; the variable-selection penalty lambda = 0.0192 is neither gamma nor that denominator. Changing 120 to 10 alone is not a month-to-year conversion. [D01]

The inspected pyaging PhenoAge notebook’s saved class places 0.0192 in its hazard expression. That source-level mismatch makes it an unsuitable unquestioned reference for the original formula; no claim is made about every distributed binary, and none was executed. Keep all-table and methods-prose-gamma calculations separately labeled rather than splice constants. [D09]

Numerical checks are not clinical validation

The 28 September fixed-fixture audit used the base fixture, age-only 51, and CRP-only 1.0 mg/dL across three specifications. Nine expected outputs agreed with a separately written 50-digit Decimal calculation within 1e−9 score-years; that tolerance describes arithmetic. Stable/nested forms, field order, unrelated records and supported equivalent-unit representations were checked. Ten malformed fixtures and command-line data arguments were rejected. No clock package, molecular data or patient record was executed.

29 September execution check: the exact 1,405-byte Biolearn function was verified by its Git blob and executed in isolation with NumPy/pandas on the same three cases. It matched the inherited expectations within 1e−9 score-years. Five declared mathematical variants across three cases also matched a 60-digit Decimal path. This strengthens source parity and internal regression evidence—not an independently established original-method expected output. No BioAge fit, full Biolearn package, reference-export notebook or clinical dataset was run. [D05]

The Biolearn epsilon-adjusted transformation has a different domain: when m is below 0.00001, its outer logarithm has a nonpositive argument. A deliberately artificial linear predictor of −20 demonstrates that numerical boundary, not a real customer’s biological domain. Arbitrary clamping, epsilon additions or age fallbacks would define another specification. [F03]

The unwrapped pinned function returned nonfinite values for zero, negative and NaN CRP in the bounded checks, rather than explicit validation exceptions. The audit’s guard rejects those cases. Valid-case nonmutation and row/column invariance do not establish safe behavior over a whole clinical domain or physical assay-batch agreement. [D05]

Static now; synthetic presets only after review

Readiness decisions—not a deployed calculator or clinical authorization
ScopeDecisionRequired boundary
Static educationGoThe named clinical fixture, unit/transform comparisons, KDM algebra and labeled distance geometry can be explained without personal inputs.
Fixed synthetic clinical presetsConditional go for a separate assignmentOne specified formula; only the base, age-only and CRP-representation presets. Source history and isolated execution do not close the independent-output gate below. Separate source-choice, reference and component-rights review still comes first. No free-form personal fields.
Numeric human-reference KDM / HDNo-go nowNo verified frozen fit/covariance-and-scale artifact with lawful reuse and authoritative expected outputs was obtained. Do not train a replacement or invent parameters.
Curated methylation referenceConditional laterA permitted matrix, weights, platform/normalization metadata, failure behavior and authoritative predictions are still needed.
Broad uploads / public six-clock serviceNo-go nowAssay, preprocessing, exact artifacts, permissions and personal interpretation remain unresolved. Guidance is useful without executable outputs.
What numeric KDM and HD are missing

The named KDM candidate is the BioAge NHANES III sex-stratified, age-30–75 reference using fev, sbp, totchol, hba1c, albumin, creat, lncrp, alp, bun. For regressions xⱼ = qⱼ + kⱼ × age + errorⱼ, the complete-input formula is:

KDM = [Σ((xⱼ − qⱼ) × kⱼ / sⱼ²) + age / S_BA²]
      / [Σ(kⱼ² / sⱼ²) + 1 / S_BA²]

Every intercept qⱼ, slope kⱼ, residual SD sⱼ, biological-age variance S_BA², unit/transform and reference filter must be frozen and reviewed. Supplying a fit without s_ba2 can retain projection-cohort dependence. The helper’s pregnancy-code filter is not proof of clinically confirmed nonpregnancy for every retained record: the preparation code recodes some unknown statuses. CRP transformation, creatinine calibration and fev versus fev_1000 also need the exact codebook-to-fit match. No complete full-precision reference payload was recovered and verified here, and no reference was fitted. The existing export leads below narrow the access gap without closing it. [F01; F04; F05]

HD instead needs a complete transformed feature set, reference mean, positive-definite covariance and fixed final scale. A raw Mahalanobis distance is not age-years; BioAge additionally uses projection-cohort distance dispersion. Singular covariance, unsupported missingness or an undefined log of zero cannot be repaired silently with a pseudoinverse, epsilon or new regularization. A hypothetical point (3,4) against an identity-covariance zero reference has distance 5—not five years or a clinical HD result. [F01]

Existing export routes: a useful lead, not an accepted reference

What the newly inspected pyaging export designs provide
CandidateConcrete existing routeStill needed before numeric human-reference output
Nine-marker KDMThe pinned notebook cites the BioAge revision, re-derives the named reference on SI-unit variants, exports parameters to JSON and generates BioAge parity rows. FEV uses litres; CRP is supplied raw in mg/dL with internal log1p. These are fit-specific conventions, not interchangeable inputs. [D06]A complete full-precision q/k/s and S_BA² payload for both strata; exact units, filters, coding and historical creatinine calibration; artifact permissions and independently established expected outputs. Rounded displays and generated NHANES parity rows do not supply this.
HD with fixed log scaleThe saved class stores reference mean/SD, normalized complete-case center, precision matrix and fixed log_hd_sd, separately by the source strata. It returns log distance divided by that stored scale—not raw distance or years. [D07]All numeric reference buffers, transformations, inclusion/missingness rules, chosen final scale, revision and rights, plus matching independent outputs. The class definition is not the complete clinical reference.

The KDM notebook fits/exports rather than loading a verified full-precision JSON. Its install step pins BioAge only if the package is absent; that condition alone does not verify an existing installation. No export notebook, parity participant row or binary was run in this review. This is an existing route worth checking, not proof that a lawful, independently checked artifact has been recovered. Source licences do not settle artifact-level permissions. [D06; D07]

HD’s coordinate system matters. In the inspected BioAge path, column means/SDs are calculated before complete-case filtering, so the normalized complete-case center need not be zero. A covariance matrix without its coordinates is incomplete. An equivalent complete raw-coordinate mean/covariance can suffice for raw distance if transformations and reference rows match; a scaled or log-scaled output additionally needs its fixed final dispersion. The export design recognizes these dependencies but does not supply verified numeric readiness here. [D07]

Tests that must pass before a synthetic-preset feature

Proposed acceptance checks: fixed presets, no personal input
GatePass conditionFailure behavior
Source and preset identityPin formula, constants, ln(CRP) transform, canonical units and output semantics. Freeze base/age-only/CRP presets; do not use software plausibility ranges as empirical validity bounds.Withhold the output for an unknown preset, specification or extension.
Units and invalid valuesConvert 1 mg/L CRP to 0.1 mg/dL before logging; 4.5 g/dL albumin to 45 g/L; WBC 10⁹/L and thousand/µL are numerically equivalent. Reject missing/extra, nonnumeric/nonfinite and invalid-log inputs.No mean imputation, zero-fill or silent log1p. RDW-percent is not RDW-SD; censored CRP is not zero. A plausible-looking value can still have the wrong unit.
Frozen reference and invarianceSame named inputs must remain unchanged under row/column reordering, unrelated records or a different computation batch. Any future KDM variance or HD scale must be fixed.Treat a change as a different estimator or pipeline defect, not biology. Software invariance does not prove physical assay-batch invariance.
Independent outputs — unmetObtain a complete permitted input with units/transforms, source and reference revision, expected result and precision, and a provenance chain independent of the implementation being accepted. Author certification is one route; a separately established primary-method reference computation can also qualify.The inherited 41.2234126846 / 42.1145961815 / 43.6588594785 fixtures remain internal regression checks. Neither another arithmetic path nor the library’s own output closes this gate; numerical tolerance is not biological precision.
Rights, interpretation and upkeepReview each code/model/reference component and actual network/logging behavior. Freeze, test, review, then deliberately version changes to coefficients, transforms, coverage or calibration.No silent latest-model replacement, personal uploads, invented uncertainty band, treatment optimizer or lifespan conversion. Preserve historical labels or mark results reprocessed.

A bounded search of primary equations, helpers, tests and export candidates did not recover that qualifying independent input/output pair. This is not a claim that none exists. The evidence distinctions explain what was established and what remains missing; static explanation is supported while preset acceptance stays conditional. [D01; D05; D08]

The original article’s CC BY 3.0, BioAge’s GPL-3 declaration and Biolearn’s three-condition BSD licence are distinct component facts, not blanket permission for every model, dataset or deployment. Any implementation needs its own notices, reference rights and separately authorized legal/regulatory review. The current page remains static; individual-change uncertainty is still unestablished by these deterministic fixtures. [F02; F06]

Sources and reading limits

Source labels distinguish primary research, seller documents and implementation notes. Inherited M/SC/T source observations are from 21 September 2026; added R source observations are from 22 September 2026. Calculation checks do not constitute model or clinical replication. The added S14 access observation is dated 26 September 2026.

T01. BioAge R package README and relevant source files inspected, not executed. DESCRIPTION 0.1.0 declares GPL-3; package paper was identified, not independently read.

T02. Biolearn documentation Overview, model, imputation and evaluation resources inspected; no installation or per-model rights audit.

T03. pyaging documentation Mutable documentation/source pointer; no immutable executable version claimed.

SC3. ProteoClock README First-party access description observed 21 September 2026; inspected blob f41e85c59b1ffeec6b8da66fb7029dd4cd77f30a. Exact release-to-trial pin and full licence tree not audited.

M21. Chen et al. (2026), OMICmAge Published 25 February 2026. Primary development, external validation, replicate, limitation, access and conflict sections; sponsored/company-affiliated work with patent interests.

M03. Levine et al. (2018), An epigenetic biomarker of aging for lifespan and healthspan Clinical selection, units/coefficient table, methylation stage and validation passages inspected; no raw-data reanalysis.

R15. BioAge calculation sources: phenoage_calc.R, kdm_calc.R and hd_calc.R. Complete files reread on 22 September 2026; the inspected blobs remain those listed above. Fixed synthetic arithmetic was checked separately; the R package was not run and no independent author-supplied reference vector or service-specific covariance was obtained.

S14. PAOPAC author README Complete text inspected on 26 September 2026, blob ba5d4a8ee7ce2107d8fe34f1dbe24b40dc2da5f0. Input/platform requirements were read; compiled module and separate binary model were not obtained or run. Full preprint methods, exact trial-artifact correspondence and permission for public deployment remain unverified.

Added V/I evidence and access observations: . Published findings, code inspection and catalog arithmetic are separate; no new clinical or molecular model was rerun.

I01. MiMIR author implementation Tree 1746f2d98d6d9c3c5bfe35dd42e63b99314cf909; README and DESCRIPTION inspected, plus R/predictors_functions.R lines 1–160, blob 262cb5f0387487d149282f13f607cfd23a37de20. Bundled parameter/data filenames observed, not decoded or individually licensed. No R package execution.

I04. DunedinPACNI author implementation Tree 9d5e1229be741a9e12784345ca6daa605ed83432; complete README and opening 100 licence lines inspected. README reports package 0.0.0.1, development with FreeSurfer 6 and alternative input variants. CC BY-NC-ND 4.0 software label is distinct from article access. Coefficients/functions not executed; no individual normative or deployment clearance.

I02. Organ-PAC author code Tree 7824d1e3e75d00d3fc06cb29a583583861fbf2dd; README and Fig6.R lines 1–180, blob 89ed32f10642ad3a57f848a570089fa87bf10967, inspected. Current fit/predict code is not a proven historical execution artifact. Full models, permissions and environment not audited or executed.

I03. Oh organageUKB author code Tree b49aa385835f19d374d94a37410da1550d655905; README and notebook filenames inspected. Notebook bodies, coefficients and complete rights/environment dependencies not independently audited.

V08. van den Berg et al. (2026), Personal-MetaboHealth Published 7 September. Relevant full fixed-reference, direction, observational outcome, intervention and limitation passages inspected. Linked code was not retrieved; no coefficient/reference-output audit. The title’s actionability claim is not treated as demonstrated decision benefit.

F-source specification/readiness observations: . Fixed-fixture arithmetic is distinct from source inspection, empirical validation and deployment permission.

F01. BioAge pinned source. Calculation blobs remain 468e95b32b23a48566a8f3e266a4a103330c25ff (Phenotypic Age), 0ea6c1d1c2399e331fd6ebad2216648c42e7169a (KDM) and 84d51d0121f2fdfbf98cc837e179e32f4317bc9d (HD). Complete calculation texts and tree correspondence inspected; no R package or cohort run.

F02. Levine et al. (2018), original clinical/DNAm paper and Supplement 1. Clinical target, units, licence, formulas and Table S1 inspected in the source review. Printed-table parameters are one declared arithmetic specification, not unrounded author predictions.

F03. Biolearn clinical mathematics, blob d3df517dce9a2ebe392d5b976c6ba4208b4c72fd, and clinical registry. Complete text inspected at that immutable commit. The 28 September review used scalar translation only. The 29 September follow-up executed the byte-identical function in isolation with NumPy/pandas (D05), not the package or all installed versions; the registry remains input metadata, not clinical validation.

F04. BioAge preparation code, blob df49e59e2adae3725c08f54d7c994e2ece7f54e4. Opening and relevant NHANES III preparation/reference portions inspected, including lines 755 onward. Conditional log1p/field sensitivity, not whole-pipeline execution or proof that distributed binaries match this source.

F05. BioAge KDM helper, blob f94745bd32485ed90109c756d698f6d04ae2108a. Complete text inspected for training/projection and filters; no frozen reference artifact produced.

F06. BioAge GPL-3 declaration in DESCRIPTION and Biolearn licence. Package-level evidence only; not clearance of model weights, reference data, API services or clinical deployment.

F07. Personal-MetaboHealth code route remained inaccessible in the 28 September review. Earlier V08/I access findings are retained; no missing code, reference or permission was reconstructed.

Computational-identity evidence observed . D labels distinguish source history, code inspection and bounded execution; they do not refresh unrelated evidence.

D01. Levine et al. (2018) and Supplementary Data 1. Clinical equations, units, Table S1 and distinction from DNAmPhenoAge inspected; relevant 2018 equations/tables visually checked. No full-precision original execution artifact or independently supplied clinical input/output fixture recovered.

D02. Liu et al., correction published 25 February 2019. The conflicting equation was read from publisher-extracted PDF text; image rendering failed, so visual verification is not claimed. No journal reconciliation or historical execution artifact obtained.

D03. BioAge history: 11 October 2023 change, 2 April 2026 restoration, subsequent revert/reapplication and resulting pinned expression. Diffs establish code chronology. The maintainer’s attribution to Levine is not authenticated correspondence or proof of every historical study’s implementation.

D04. BioAge fixed/generic calculation, NHANES helper and preparation source. Calculation/helper read completely; relevant preparation passages inspected. Source fields and log1p path do not authenticate stored dataset columns. No R helper, survival fit or participant data executed.

D05. Pinned Biolearn hematology function, blob d3df517dce9a2ebe392d5b976c6ba4208b4c72fd. The 1,405-byte source was verified and executed only in isolation on three inherited synthetic cases with NumPy/pandas. The complete package, remote models and empirical workflows were not run. This checks implementation parity, not independent primary-method truth.

D06. Pinned pyaging KDMAge export notebook, blob b9ec3a65a20a75f855039617bf7c7344d900accb. Metadata, extraction and selected parameter-loading code inspected. It re-derives parameters and BioAge parity rows; rounded displays are not a recovered full-precision payload. Notebook, participant rows and binaries were not executed. Applicable independent outputs and artifact-level permissions remain unverified.

D07. Pinned pyaging HD export design, blob 09526c1b220eb123ebcfaa25be27cb44a2f18b5a, and BioAge HD reference helper. Saved class/reference-buffer and fixed log-scale design inspected; BioAge calculation source supplies normalization/final-scaling context. No complete numeric reference, independent output or rights-cleared model payload recovered; no reference fitted.

D08. Biolearn clinical-layer tests and generic-model tests were read, not executed. Layout/unit/round-trip tests and molecular-model expectations did not provide a qualifying independent clinical Phenotypic Age fixture. This is a bounded search result, not a claim that testing or such an artifact is absent everywhere.

D09. Pinned pyaging PhenoAge notebook. Selected saved class, coefficient and metadata passages inspected. Its use of 0.0192 in the hazard expression conflicts with the primary gamma/selection-penalty distinction; pending approval metadata is not approval. No binary executed or finding about every distributed version asserted.

Next: Check a model against your study’s inputs or learn how units and uncertainty affect interpretation.

Search published pools, pages, reports, and evidence.