organagemortalitylung

Lung OrganAge mortality model for Olink Explore 3072, using author-recommended fold 1. Trained on UK Biobank plasma measured with Olink Explore 3072. Input columns are original case-sensitive protein symbols (e.g. NTproBNP, HLA-DRA), not UniProt IDs or Olink assay IDs. Values are assay-normalized Olink NPX on the log2 relative-abundance scale, not raw counts, concentrations, linear abundances or z-scores. No additional centering or cohort scaling is applied. Absent proteins contribute zero; NaNs in supplied proteins propagate, matching the original Example_Script.R scoring expressions. For other assays, the authors recommend a symmetric abundance distribution, protein-wise mean subtraction and SD division, then multiplication by the full-model UKB protein SDs in Table S3. This cohort-dependent cross-platform preparation is not performed by pyaging. The optional Example_Script.R SD-matching step is also external; NPX labeling alone does not establish comparability across Olink panels, batches, plasma and serum. Output is relative natural-log mortality hazard, not age in years. The 2026 Insilico trial used conventional OrganAge models on Olink Explore 3072 serum; organ-specific variants are not the six-clock comparison endpoints. pyaging returns the original raw score and does not apply the trial wrapper’s cohort harmonization or mortality-to-years conversion. Models labelled Female and Male contain protein features; neither requires a sex covariate. Academic/non-commercial research use only; commercial use requires a separate license from the authors.

Original coefficients: organAging. Rebuild with clocks/build_organage.py; pinned SHA-256 digests and the authors license accompany the artifact.

[ ]:
from pathlib import Path
import sys

root = next(path for path in (Path.cwd(), *Path.cwd().parents) if (path / "clocks" / "build_organage.py").is_file())
sys.path.insert(0, str(root / "clocks"))
from build_organage import build_clock, save_clock

model = build_clock('organagemortalitylung')
[ ]:
model.metadata["clock_name"] = 'organagemortalitylung'
model.metadata["data_type"] = 'proteomics'  # Paper: Plasma protein-based organ-specific aging and mortality models.
model.metadata["species"] = 'Homo sapiens'  # Paper: Models were developed using human UK Biobank plasma proteomics.
model.metadata["year"] = 2025
model.metadata["approved_by_author"] = '⌛'
model.metadata["citation"] = 'Goeminne, L. J. E., et al. "Plasma protein-based organ-specific aging and mortality models unveil diseases as accelerated aging of organismal systems." Cell Metabolism 37, 205–222.e6 (2025).'
model.metadata["doi"] = 'https://doi.org/10.1016/j.cmet.2024.10.005'
model.metadata["notes"] = "Lung OrganAge mortality model for Olink Explore 3072, using author-recommended fold 1. Trained on UK Biobank plasma measured with Olink Explore 3072. Input columns are original case-sensitive protein symbols (e.g. NTproBNP, HLA-DRA), not UniProt IDs or Olink assay IDs. Values are assay-normalized Olink NPX on the log2 relative-abundance scale, not raw counts, concentrations, linear abundances or z-scores. No additional centering or cohort scaling is applied. Absent proteins contribute zero; NaNs in supplied proteins propagate, matching the original Example_Script.R scoring expressions. For other assays, the authors recommend a symmetric abundance distribution, protein-wise mean subtraction and SD division, then multiplication by the full-model UKB protein SDs in Table S3. This cohort-dependent cross-platform preparation is not performed by pyaging. The optional Example_Script.R SD-matching step is also external; NPX labeling alone does not establish comparability across Olink panels, batches, plasma and serum. Output is relative natural-log mortality hazard, not age in years. The 2026 Insilico trial used conventional OrganAge models on Olink Explore 3072 serum; organ-specific variants are not the six-clock comparison endpoints. pyaging returns the original raw score and does not apply the trial wrapper's cohort harmonization or mortality-to-years conversion. Models labelled Female and Male contain protein features; neither requires a sex covariate. Academic/non-commercial research use only; commercial use requires a separate license from the authors."
model.metadata["research_only"] = True
model.metadata["tissue"] = ['plasma']  # Paper: Models were developed using human UK Biobank plasma proteomics.
model.metadata["predicts"] = ['mortality risk']  # Paper: The result will be the predicted biological age or the predicted relative log(mortality hazard).
model.metadata["training_target"] = ['mortality']  # Paper: Mortality-based models were trained to predict time to death.
model.metadata["unit"] = ['log hazard']  # Paper: Mortality-based models generate relative log(mortality hazards).
model.metadata["model_type"] = 'elastic net Cox regression'  # Paper: The mortality-based models were trained with Cox elastic net.
model.metadata["platform"] = ['Olink Explore 3072']  # Paper: The authors provide dedicated coefficients for Olink Explore 3072 data.
model.metadata["population"] = 'adults'  # Paper: UK Biobank participants were recruited as adults.
model.metadata["journal"] = 'Cell Metabolism'
model.metadata["last_author"] = 'Vadim N. Gladyshev'
model.metadata["n_features"] = 11
model.metadata["citations"] = 128
model.metadata["citations_date"] = '2026-10-02'

[ ]:
save_clock(model)
print(model.metadata["clock_name"], len(model.features), model.metadata["unit"])