[NeurIPS25 D&B Spotlight] A tile-level histopathology image understanding benchmark
49
stars
122
commits
Python
primary language
Jun 8, 2026
updated
Published at NeurIPS 2025 Datasets and Benchmarks Track (Spotlight)
We introduce THUNDER, a comprehensive benchmark designed to rigorously compare foundation models across various downstream tasks in computational pathology. THUNDER enables the evaluation and analysis of feature representations, robustness, and uncertainty quantification of these models across different datasets. Our benchmark encompasses a diverse collection of well-established datasets, covering multiple cancer types, image magnifications, and varying image and sample sizes. We propose an extensive set of tasks aimed at thoroughly assessing the capabilities and limitations of foundation models in digital pathology.
⚡ Paper: THUNDER: Tile-level Histopathology image UNDERstanding benchmark
⚡ Homepage/Documentation: THUNDER docs
⚡ Examples: THUNDER examples
⚡ Reproduce results: THUNDER reproduction guidelines
⚡ Leaderboards: THUNDER leaderboards
thunder benchmark keep spider_breast zero_shot_vlm. See the dedicated zero-shot classification leaderboard.We propose a benchmark to compare and study foundation models across three axes: (i) downstream task performance, (ii) feature space comparisons, and (iii) uncertainty and robustness. Our current version integrates 23 foundation models, vision-only, vision-language, trained on pathology or natural images, on 16 datasets covering different magnifications and organs. THUNDER also supports the use of new user-defined models for direct comparisons.
To learn more about how to use thunder, please visit our documentation.
An API and command line interface (CLI) are provided to allow users to download datasets, models, and run benchmarks. The API is designed to be user-friendly and allows for easy integration into existing workflows. The CLI provides a convenient way to access the same functionality from the command line.
[!IMPORTANT] Downloading supported foundation models: you will have to visit the Huggingface URL of supported models you wish to use in order to accept usage conditions.
When using the API you can run the following code to download datasets, models and run a benchmark:
from thunder import benchmark
benchmark("phikon", "break_his", "knn")
When using the CLI you can run the following command to see all available options,
thunder --help
In order to reproduce the above example you can run the following command:
thunder benchmark phikon break_his knn
To reproduce our leaderboard results for a given model across all datasets and tasks, we provide a SLURM array script:
sbatch scripts/benchmark_all_tasks.sh <model_name>
It also works with a custom model by passing a custom: path to your model file:
sbatch scripts/benchmark_all_tasks.sh custom:/path/to/your/model.py
Once all array tasks finish, gather the outputs with thunder results-summary; the reproduced leaderboard scores are the benchmark_* rows of the resulting table. The script is a generic SLURM template, you will likely need to adapt the #SBATCH header at the top of the file to your cluster before it will run. The segmentation datasets need a GPU with at least 32 GB of VRAM. See the guidelines for details.
We also provide a get_model_from_name function through our API to extract embeddings using any foundation model we support on your own data. Below is an example if you want to get the Pytorch callable, transforms and function to extract embeddings for uni2h:
from thunder.models import get_model_from_name
model, transform, get_embeddings = get_model_from_name("uni2h", device="cuda")
Code tested with Python 3.10. To replicate, you can create the following conda environment and activate it,
conda create -n thunder_env python=3.10
conda activate thunder_env
To install thunder run one of the following commands:
pip install thunder-bench
pip install -e . # install the package in editable mode
pip install . # install the package
Before running thunder, ensure that the environment variable THUNDER_BASE_DATA_FOLDER is defined. This variable specifies the path where outputs, foundation models, and datasets will be stored. You can set it by running:
export THUNDER_BASE_DATA_FOLDER="/path/to/your/data/folder"
Replace /path/to/your/data/folder with your desired storage directory.
If you want to use the CONCH and MUSK models, you should install them as follows:
pip install git+https://github.com/Mahmoodlab/CONCH.git # CONCH
pip install git+https://github.com/lilab-stanford/MUSK.git # MUSK
@article{marza2025thunder,
title={{THUNDER}: Tile-level Histopathology image UNDERstanding benchmark},
author={Marza, Pierre and Fillioux, Leo and Boutaj, Sofi{\`e}ne and Mahatha, Kunal and Desrosiers, Christian and Piantanida, Pablo and Dolz, Jose and Christodoulidis, Stergios and Vakalopoulou, Maria},
journal={Neural Information Processing Systems (NeurIPS) D&B Track},
year={2025}
}
This work has been partially supported by ANR-23-IAHU-0002, ANR-21-CE45-0007, ANR-23-CE45-0029, and the Health Data Hub (HDH) as part of the second edition of the France-Québec call for projects Intelligence Artificielle en santé. It was performed using computational resources from the Mésocentre computing center of Université Paris-Saclay, CentraleSupélec and École Normale Supérieure Paris-Saclay supported by CNRS and Région Île-de-France, and from GENCI-IDRIS (Grant 2025-AD011016068).
Python
99.2%
[NeurIPS25 D&B Spotlight] A tile-level histopathology image understanding benchmark
49
stars
122
commits
Python
primary language
Jun 8, 2026
updated
Published at NeurIPS 2025 Datasets and Benchmarks Track (Spotlight)
We introduce THUNDER, a comprehensive benchmark designed to rigorously compare foundation models across various downstream tasks in computational pathology. THUNDER enables the evaluation and analysis of feature representations, robustness, and uncertainty quantification of these models across different datasets. Our benchmark encompasses a diverse collection of well-established datasets, covering multiple cancer types, image magnifications, and varying image and sample sizes. We propose an extensive set of tasks aimed at thoroughly assessing the capabilities and limitations of foundation models in digital pathology.
⚡ Paper: THUNDER: Tile-level Histopathology image UNDERstanding benchmark
⚡ Homepage/Documentation: THUNDER docs
⚡ Examples: THUNDER examples
⚡ Reproduce results: THUNDER reproduction guidelines
⚡ Leaderboards: THUNDER leaderboards
thunder benchmark keep spider_breast zero_shot_vlm. See the dedicated zero-shot classification leaderboard.We propose a benchmark to compare and study foundation models across three axes: (i) downstream task performance, (ii) feature space comparisons, and (iii) uncertainty and robustness. Our current version integrates 23 foundation models, vision-only, vision-language, trained on pathology or natural images, on 16 datasets covering different magnifications and organs. THUNDER also supports the use of new user-defined models for direct comparisons.
To learn more about how to use thunder, please visit our documentation.
An API and command line interface (CLI) are provided to allow users to download datasets, models, and run benchmarks. The API is designed to be user-friendly and allows for easy integration into existing workflows. The CLI provides a convenient way to access the same functionality from the command line.
[!IMPORTANT] Downloading supported foundation models: you will have to visit the Huggingface URL of supported models you wish to use in order to accept usage conditions.
When using the API you can run the following code to download datasets, models and run a benchmark:
from thunder import benchmark
benchmark("phikon", "break_his", "knn")
When using the CLI you can run the following command to see all available options,
thunder --help
In order to reproduce the above example you can run the following command:
thunder benchmark phikon break_his knn
To reproduce our leaderboard results for a given model across all datasets and tasks, we provide a SLURM array script:
sbatch scripts/benchmark_all_tasks.sh <model_name>
It also works with a custom model by passing a custom: path to your model file:
sbatch scripts/benchmark_all_tasks.sh custom:/path/to/your/model.py
Once all array tasks finish, gather the outputs with thunder results-summary; the reproduced leaderboard scores are the benchmark_* rows of the resulting table. The script is a generic SLURM template, you will likely need to adapt the #SBATCH header at the top of the file to your cluster before it will run. The segmentation datasets need a GPU with at least 32 GB of VRAM. See the guidelines for details.
We also provide a get_model_from_name function through our API to extract embeddings using any foundation model we support on your own data. Below is an example if you want to get the Pytorch callable, transforms and function to extract embeddings for uni2h:
from thunder.models import get_model_from_name
model, transform, get_embeddings = get_model_from_name("uni2h", device="cuda")
Code tested with Python 3.10. To replicate, you can create the following conda environment and activate it,
conda create -n thunder_env python=3.10
conda activate thunder_env
To install thunder run one of the following commands:
pip install thunder-bench
pip install -e . # install the package in editable mode
pip install . # install the package
Before running thunder, ensure that the environment variable THUNDER_BASE_DATA_FOLDER is defined. This variable specifies the path where outputs, foundation models, and datasets will be stored. You can set it by running:
export THUNDER_BASE_DATA_FOLDER="/path/to/your/data/folder"
Replace /path/to/your/data/folder with your desired storage directory.
If you want to use the CONCH and MUSK models, you should install them as follows:
pip install git+https://github.com/Mahmoodlab/CONCH.git # CONCH
pip install git+https://github.com/lilab-stanford/MUSK.git # MUSK
@article{marza2025thunder,
title={{THUNDER}: Tile-level Histopathology image UNDERstanding benchmark},
author={Marza, Pierre and Fillioux, Leo and Boutaj, Sofi{\`e}ne and Mahatha, Kunal and Desrosiers, Christian and Piantanida, Pablo and Dolz, Jose and Christodoulidis, Stergios and Vakalopoulou, Maria},
journal={Neural Information Processing Systems (NeurIPS) D&B Track},
year={2025}
}
This work has been partially supported by ANR-23-IAHU-0002, ANR-21-CE45-0007, ANR-23-CE45-0029, and the Health Data Hub (HDH) as part of the second edition of the France-Québec call for projects Intelligence Artificielle en santé. It was performed using computational resources from the Mésocentre computing center of Université Paris-Saclay, CentraleSupélec and École Normale Supérieure Paris-Saclay supported by CNRS and Région Île-de-France, and from GENCI-IDRIS (Grant 2025-AD011016068).
Python
99.2%