AG-RTM ageing models
Retinal Age, Chest Age, Abdominal Age and Brain Age estimate chronological age from a colour fundus photograph, a chest radiograph, an abdominal CT volume and a T1-weighted brain MRI. They are the four ageing models released with the paper Prediction bias in biological ageing models (preprint). The age gap is the estimated age minus chronological age.
Code, installation and data format: HORIZONHealthcare/AG-RTM.
Access. Log in, fill in the short form on this page, and access is granted straight away. Then log in on your machine with hf auth login before downloading.
Models
| Model | Input | Training data | Test MAE (years) | Checkpoint |
|---|---|---|---|---|
| Retinal Age | Colour fundus photograph (2D) | AlzEye | 5.31 | retinal_age.pth |
| Chest Age | Frontal chest radiograph (2D) | ChestX-ray14 | 5.15 | chest_age.pth |
| Abdominal Age | Abdominal CT volume (2.5D, 32 axial slices) | Merlin | 4.04 | abdominal_age.pth |
| Brain Age | T1-weighted brain MRI (2.5D, 32 axial slices) | OASIS-3 | 3.81 | brain_age.pth |
All four models fine-tune DINOv3-Large (vit_large_patch16_dinov3.lvd1689m) with a small regression head: Linear(1024β32) β ReLU β Dropout(0.5) β Linear(32β1). Abdominal Age and Brain Age encode 32 axial slices one by one and average their features before the head. Each model was trained on healthy patients only, and the checkpoint with the lowest validation MAE was kept. Each checkpoint holds the weights and the settings needed to rebuild the model, and loads with torch.load(..., weights_only=True).
Usage
git clone https://github.com/HORIZONHealthcare/AG-RTM.git && cd AG-RTM
conda create -n ag-rtm python=3.11 -y && conda activate ag-rtm
pip install -r requirements.txt --extra-index-url https://download.pytorch.org/whl/cu121
hf auth login
hf download lyqun/AG-RTM chest_age.pth --local-dir weights
cd code
python predict.py --checkpoint ../weights/chest_age.pth --input my_data.csv --output predictions.csv
Replace chest_age.pth with retinal_age.pth, abdominal_age.pth or brain_age.pth for the other models, or download all four with hf download lyqun/AG-RTM --local-dir weights.
Input CSV columns:
- Retinal Age, Chest Age and Abdominal Age:
subject_id,image_path,biomarker_value. - Brain Age:
subject_id,session_id,archive_path,biomarker_value.
biomarker_value is chronological age and is optional. The output gives predicted_age, and age_gap when age is supplied.
Performance
Test MAE, RMSE and rΒ² with 95% confidence intervals from a bootstrap with 1,000 resamples (patient-level, except volume-level for Abdominal Age, because Merlin releases no patient identifiers).
| Model | Test subset | MAE (years) | RMSE (years) | Pearson rΒ² |
|---|---|---|---|---|
| Retinal Age | 65,360 images, 12,141 patients | 5.31 (5.23β5.40) | 6.80 (6.68β6.91) | 0.745 (0.732β0.758) |
| Chest Age | 21,733 radiographs, 4,623 patients | 5.15 (4.95β5.42) | 6.80 (6.45β7.26) | 0.796 (0.769β0.819) |
| Abdominal Age | 4,984 volumes | 4.04 (3.94β4.14) | 5.32 (5.17β5.46) | 0.918 (0.912β0.923) |
| Brain Age | 1,454 sessions, 808 patients | 3.81 (3.59β4.03) | 4.92 (4.65β5.20) | 0.643 (0.604β0.680) |
Model details
Retinal Age
- Input: colour fundus photographs, cropped around the fundus and padded to a square. Images are resized to 256 pixels and centre-cropped to 224 Γ 224.
- Training data: AlzEye (Moorfields Eye Hospital, London, UK), 9,844 healthy patients (53,680 images); validation 2,462 healthy patients (14,038 images). The split was made at the patient level.
- JPEG decoding: the paper decoded the photographs with Pillow built against IJG libjpeg 9e. The pip Pillow (libjpeg-turbo) shifts predictions by 0.2 years on average. To reproduce the paper exactly, install the Anaconda build:
pip uninstall -y Pillow && conda install -y -c defaults --override-channels pillow=11.3.0. - Checkpoint:
retinal_age.pth, epoch 28. SHA-256fb5fbddb2ab2e0189097b604a025d2d8ba042e8c7a998c7b3b16f2b8afe36b03
Chest Age
- Input: frontal (PA or AP) radiographs. Images are resized to 256 pixels and centre-cropped to 224 Γ 224.
- Training data: ChestX-ray14 (NIH Clinical Center), 8,698 healthy patients (12,622 radiographs); validation 2,175 healthy patients (3,174 radiographs). The split was made at the patient level. Healthy means a radiograph with none of the fourteen findings (No Finding).
- Checkpoint:
chest_age.pth, epoch 42. SHA-2568d006ee05a292e3764ca3ec8889b0d66675a508c1252f043017ba9d6e9566118
Abdominal Age
- Input: NIfTI volume in Hounsfield units. The volume is resampled to 1.5 mm, the body is segmented at β950 HU and cropped with a 15 mm margin, and 32 axial slices are sampled.
- Training data: Merlin abdominal CT dataset (Stanford AIMI), 4,633 healthy studies; validation 1,597 healthy studies. Merlin releases no patient identifiers, so its official split was kept. Healthy means a study with none of the thirty report-derived findings. Merlin is distributed under a non-commercial research data use agreement.
- Checkpoint:
abdominal_age.pth, epoch 29. SHA-2561de3f4ad84b33eb1d457163c7cc7e954a2dce2563566b7a5b318f401b627c9c9
Brain Age
- Input: a T1w NIfTI volume, or an OASIS-3 session ZIP archive. Each run is reoriented to RAS, intensity-clipped to the 0.5th and 99.5th percentiles, cropped to the head with a 5 mm margin, and 32 axial slices are sampled. A session with several T1w runs gets the mean prediction.
- Training data: OASIS-3, 411 healthy patients (889 sessions); validation 103 healthy patients (229 sessions). The split was made at the patient level. Healthy means a session whose nearest clinical visit recorded CDR 0 and normal cognition.
- Checkpoint:
brain_age.pth, epoch 11. SHA-25619cb29205c03e329ee67ba45195d8ea41ee7b1339ca3c036770ad79d869178cc
Limitations
The paper shows that the age gap from these models is pulled towards the mean age more strongly in unhealthy than in healthy patients (differential regression to the mean). Report associations within age subgroups. The age gap does not reliably reflect the health of an individual. Each model was trained on one cohort and has not been validated elsewhere. The models are for research use only and are not medical devices.
License
The weights are released under CC BY-NC 4.0. Use must also respect the terms of each training dataset.
OASIS-3 asks for this acknowledgement: "Data were provided in part by OASIS-3: Longitudinal Multimodal Neuroimaging: Principal Investigators: T. Benzinger, D. Marcus, J. Morris; NIH P30 AG066444, P50 AG00561, P30 NS09857781, P01 AG026276, P01 AG003991, R01 AG043434, UL1 TR000448, R01 EB009352. AV-45 doses were provided by Avid Radiopharmaceuticals, a wholly owned subsidiary of Eli Lilly."
Citation
@article{lin2026investigating,
title = {Investigating the fundamental characteristics of retinal age models},
author = {Lin, Yiqun and Ong, Ariel Yuhan and Wong, Matthew Yu Heng and others and Zhou, Yukun},
journal = {Research Square},
note = {Preprint},
year = {2026},
doi = {10.21203/rs.3.rs-10157626/v1}
}
Model tree for lyqun/AG-RTM
Base model
timm/vit_large_patch16_dinov3.lvd1689m