HEST¶
Spatial gene-expression prediction from H&E with a frozen encoder, reproducing HEST-Benchmark (Jaume et al., NeurIPS 2024). A closed-form probe on the frozen features predicts the expression of 50 genes at every spot, so the benchmark measures the encoder alone.
Data and task¶
HEST-Benchmark pairs H&E images with spatial transcriptomics. Each spot is a 112 µm
tile with a measured expression vector. Nine tasks are registered, one per organ or
cancer type, as hest/<task>: CCRCC, COAD, IDC, LUNG, LYMPH_IDC, PAAD, PRAD, READ
and SKCM.
Setting |
Value |
|---|---|
Task |
Predict the |
Splits |
HEST’s patient-level folds, read from the downloaded benchmark; soma never partitions the data itself. |
Metric |
|
Protocol¶
The benchmark trains no network. It extracts every spot’s tile features once into the feature cache, then fits a Ridge probe per fold, exactly as HEST does.
Setting |
Value |
|---|---|
Encoder |
Any frozen tile encoder; the |
Features |
|
Probe |
|
Seeds |
|
Each fold writes metrics.json and predictions_<split>.parquet, and the run
writes summary.json, like any soma run; the probe is
soma.benchmark.hest.probe.RidgePCAProbe.
Results¶
soma’s mean_pearson on each task next to the value HEST publishes for the same
encoder. HEST extracts its features with TRIDENT and soma with slide2vec, so the two
are not expected to agree to the digit: the difference is shown as it is, without a
tolerance band, and reproduction is judged by whether the encoders keep their
published ranking.
Task |
Encoder |
Mean Pearson |
HEST reference |
|---|---|---|---|
PAAD |
|
0.501 |
0.500 |
PAAD |
|
0.472 |
0.478 |
PAAD |
|
0.492 |
0.496 |
COAD |
|
0.310 |
0.301 |
COAD |
|
0.262 |
0.258 |
COAD |
|
0.319 |
0.320 |
LUNG |
|
0.559 |
0.559 |
LUNG |
|
0.569 |
0.569 |
LUNG |
|
0.577 |
0.578 |
The published values are the HEST-Benchmark leaderboard.
Reproduce¶
Prepare the data. Install the optional HEST readers, then download one task from the Hugging Face Hub, leaving out HEST’s precomputed features (soma extracts its own):
pip install 'soma-pathology[hest]'
hf download MahmoodLab/hest-bench --include 'IDC/*' --exclude 'fm_v1/*' \
--repo-type dataset --local-dir /path/to/hest-bench
Run one task or all nine; curated manifests are written under
<raw-root>/curated:
soma reproduce hest/IDC --encoder virchow2 --raw-root /path/to/hest-bench/IDC
soma reproduce hest --encoder virchow2 --raw-root /path/to/hest-bench
Compare encoders with --encoders, and append a score to the results ledger with
--record. Benchmarking describes the options shared by every benchmark.