brain-age-modeling · git:20260825.cbd02ff · 2026-08-25 · sha256 dce61d7dd22781b2

brain-age-modeling git:20260825.cbd02ffA

Immutable. This exact content is served forever at /api/v1/blob/dce61d7dd22781b2.

---
name: brain-age-modeling
description: "Use this skill whenever the user wants brain-age prediction, predicted-age bias correction, Brain-PAD/brain-age gap export, cross-validated age modeling, or downstream group analysis of accelerated or delayed brain aging. Triggers include 'brain age', 'Brain-PAD', 'brain age gap', 'predicted age', 'age bias correction', 'accelerated aging', and 'neuroimaging age model'."
license: MIT
layer: base
skill_type: workflow
dependencies:
  - statistical-ml
  - cnn3d
  - run_models
---
# Brain-Age Modeling Workflow

## Overview

`brain-age-modeling` is a leakage-safe task workflow over NeuroClaw regression
estimators. It trains predicted-age models, fits age-bias correction on each
training fold, and exports held-out raw age, corrected age, and Brain-PAD.

```text
Brain-PAD = bias-corrected predicted age - chronological age
```

Positive Brain-PAD indicates an older-appearing brain relative to chronological
age under the fitted model; it is not by itself a diagnosis or causal effect.

---

## Installation

```bash
pip install numpy pandas scipy scikit-learn joblib
```

Optional feature generators such as FreeSurfer, NeuroSTORM, or a 3D CNN are
handled by their own skills before this tabular brain-age workflow.

---

## Workflows

### 1. Prepare brain features

```text
subject_id,site,age,cortical_thickness,hippocampal_volume,fc_001
sub-001,A,64,2.51,3810,0.12
sub-002,B,59,2.63,4022,0.08
```

Use a healthy training reference when the scientific interpretation requires
deviation from normative aging. Do not include downstream disease outcomes as
predictors.

### 2. Ridge brain-age model

```bash
python skills/brain-age-modeling/scripts/train_reference.py \
  --features brain_features.csv \
  --age-col age \
  --subject-col subject_id \
  --group-col site \
  --model ridge \
  --folds 5 \
  --seed 123 \
  --output-dir run_models_output/brain_age
```

### 3. Alternative regressors

The workflow reuses regression estimators from `statistical-ml`, including
`ols`, `ridge`, `elastic_net`, `svr`, and optional `xgboost`. Keep site,
family, or cohort groups intact where appropriate.

### 4. Downstream analysis

After held-out Brain-PAD has been generated, analyze group differences or
clinical associations with explicit age, sex, site, intracranial-volume, and
other prespecified covariates. Use only held-out Brain-PAD values.

---

## Input / Output Summary

| Item | Format |
|---|---|
| Input | CSV with subject, chronological age, and numeric brain features |
| Optional grouping | site/cohort/family column |
| Predictions | `predictions.csv` |
| Prediction columns | raw age, corrected age, Brain-PAD |
| Fold membership | `fold_assignments.csv` |
| Metrics | raw and bias-corrected metrics in `metrics.json` |
| Checkpoint | predictor and corrector per fold in `checkpoint.joblib` |
| Provenance | `config.json`, `run_manifest.json` |

The bias corrector is fitted from chronological age and predictions in the
training fold only, then applied to the held-out fold.

---

## Testing

```bash
pytest models/tests/test_extended_models.py -q
python skills/brain-age-modeling/scripts/train_reference.py --help
```

---

## Directory Reference

```text
models/brain_age/
├── correction.py       fold-local predicted-age bias correction
└── train.py            cross-validated brain-age workflow

skills/brain-age-modeling/
├── SKILL.md
└── scripts/train_reference.py
```

---

## Reference

- Brain-PAD should always be reported together with the training population,
  feature family, validation design, and bias-correction procedure.

---

Created At: 2026-07-26 HKT
Last Updated At: 2026-07-29 HKT
Author: chengwang96