| --- |
| license: cc-by-nc-nd-4.0 |
| --- |
| |
| # Model Card for SEAL (Spatial Expression-Aligned Learning) |
|
|
| <img src="assets/SEAL_icon.png" align="right" width="260" alt="SEAL Logo" /> |
|
|
| Inference code for "Towards Spatial Transcriptomics-driven Pathology Foundation Models". This repository contains the basic model code as well as instructions to run inference on H&E and spatial trannscriptomics (ST) samples from the HEST dataset. |
|
|
| ## Why SEAL? |
|
|
| SEAL is a multimodal extension of patch-level pathology foundation models (FMs) that aligns histology with ST. The SEAL training recipe is agnostic to any pathology FMs of interest. |
|
|
| * **π Upgrade existing pathology FMs with molecular signal**: SEAL fine-tunes pretrained patch-level pathology FMs with ST, improving both the slide-level (molecular status, subtyping, pathway expression) and patch-level gene expression prediction performance over original pathology FMs across a large set of benchmarking tasks. |
| * **π Drop-in replacement**: SEAL vision encoders can be used as feature extractors in existing MIL or linear probing pipelines - no architecture changes required. |
| * **π Ask new questions**: SEAL models enable image-to-gene and gene-to-image retrieval, enabling pathway-driven slide exploration and zero-short morphomolecular search |
|
|
|
|
| <br clear="right"/> |
|
|
|
|
| ## Updates |
|
|
| * **02/16/2026**: SEAL pre-release v0.0.1 is online |
|
|
| # Quickstart |
|
|
| ## Install uv (if not already installed) |
|
|
| ```bash |
| curl -LsSf https://astral.sh/uv/install.sh | sh |
| ``` |
|
|
| ## Install dependencies |
|
|
| ```bash |
| uv venv --python 3.11 |
| source .venv/bin/activate |
| uv sync |
| ``` |
|
|
| Default dependency resolution is Linux GPU-first. CUDA/RAPIDS dependencies are included automatically on Linux and skipped on macOS/Windows. |
|
|
| For an explicit cross-platform install, use: |
|
|
| ```bash |
| uv sync --extra cross-platform |
| ``` |
|
|
|
|
| ## Hugging Face CLI Requirement |
|
|
| SEAL uses the Hugging Face CLI backend (`hf` / `huggingface-cli`) for checkpoint downloads in `seal_factory` when `source` is `auto` or `hf`. |
|
|
| Install it (if needed): |
|
|
| ```bash |
| pip install -U "huggingface_hub[cli]" |
| ``` |
|
|
| Quick check: |
|
|
| ```bash |
| hf --version |
| # or |
| huggingface-cli --version |
| ``` |
|
|
| You can then download the model source files using |
|
|
| ```bash |
| hf download mahmoodlab/seal |
| ``` |
|
|
|
|
|
|
| ## Loading Models |
|
|
| ```python |
| from seal import seal_factory |
| |
| # load SEAL_conch |
| (img_model, img_transforms, img_precision), gene_model = seal_factory(backbone="conch") |
| |
| # Pass token directly (alternative to setting HF_TOKEN) |
| (img_model, img_transforms, img_precision), gene_model = seal_factory( |
| backbone="conch", |
| hf_token="hf_..." |
| ) |
| ``` |
|
|
| ## Supported pathology FMs |
| The initial version of SEAL supports five different pathology FMs. At this time, Conch and UNIv2 are available via HF. |
|
|
| | Encoder | Backbone | Embedding Dim | Token Size | Available on HF | |
| |---------------|----------|:---------------:|:------------:|:------------:| |
| | `conch` [[1]](https://www.nature.com/articles/s41591-024-02856-4) | ViT-Base/16 | 512 | 16Γ16 |β
| |
| | `h0mini` [[2]](https://arxiv.org/abs/2501.16239) | ViT-Base/14 | 1,536 | 14Γ14 || |
| | `phikonv2` [[3]](https://arxiv.org/abs/2409.09173) | ViT-Large/16 | 1,024 | 16Γ16 || |
| | `univ2` [[4]](https://www.nature.com/articles/s41591-024-02857-3) | ViT-Huge/14 | 1,536 | 14Γ14 |β
| |
| | `virchow2` [[5]](https://arxiv.org/abs/2408.00738) | ViT-Huge/16 | 2,560 | 16Γ16 || |
|
|
|
|
|
|
|
|
|
|
| ## Setup |
|
|
| By default, `seal_factory` now loads SEAL checkpoints from Hugging Face Hub: |
| - Repo: `MahmoodLab/SEAL` |
| - Expected filenames (for backbone `conch`): |
| - `seal_conch_vision.pth` |
| - `seal_conch_omics.pth` |
|
|
| You can still place local checkpoints in `weights/{backbone}_SEAL/` and `source="auto"` will fall back to local files when a Hub file is unavailable. |
|
|
| ### Huggingface Auth |
|
|
|
|
|
|
| A valid Hugging Face token is required to access the repo. |
|
|
| Provide it as an environment variable: |
|
|
| ```bash |
| export HF_TOKEN="hf_..." |
| ``` |
|
|
| or pass it directly to `seal_factory(..., hf_token="hf_...")`. |
|
|
|
|
|
|
|
|
|
|
| ## Downloading SEAL weights locally to `weights/` |
|
|
| If you prefer local checkpoint files, here is a minimal CONCH example: |
|
|
| ```python |
| from huggingface_hub import hf_hub_download |
| |
| hf_hub_download( |
| repo_id="MahmoodLab/SEAL", |
| filename="seal_conch_vision.pth", |
| local_dir="weights/conch_SEAL", |
| ) |
| |
| hf_hub_download( |
| repo_id="MahmoodLab/SEAL", |
| filename="seal_conch_omics.pth", |
| local_dir="weights/conch_SEAL", |
| ) |
| ``` |
|
|
| Then load from local files only: |
|
|
| ```python |
| from seal import seal_factory |
| (img_model, img_transforms, img_precision), gene_model = seal_factory(backbone="conch", source="local") |
| ``` |
|
|
| ## Acknowledgements |
| The project was built on top of amazing repositories such as [ViT](https://github.com/google-research/big_vision) and [PEFT](https://github.com/huggingface/peft). We thank the authors and developers for their contribution. |
|
|
|
|
| ## Citation |
|
|
| If you find this work useful in yours, please consider citing us: |
|
|
| Hemker, K.\*, Song, A. H.\*, Almagro-Perez, C., Jaume, G., Wagner, S. J., Vaidya, A. J., Simidjievski, N., Jamnik, M. & Mahmood, F. Towards Spatial Transcriptomics-driven Pathology Foundation Models, arXiv pre-print, February 2026. |
|
|
|
|
| ``` |
| @article{hemker2026seal, |
| author = {Konstantin Hemker and Andrew H. Song and Cristina Almagro-Perez and Guillaume Jaume and Sophie J. Wagner and Anurag Vaidya and Nikola Simidjievski and Mateja Jamnik and Faisal Mahmood}, |
| title = {Towards Spatial Transcriptomics-driven Pathology Foundation Models}, |
| journal = {arXiv preprint arXiv:2602.14177}, |
| year = {2026} |
| } |
| |
| ``` |
|
|
| ## Contact |
|
|
| For any additional questions or comments, contact Faisal Mahmood (faisalmahmood@bwh.harvard.edu), |
| Konstantin Hemker (konstantin.hemker@cl.cam.ac.uk), |
| or Andrew H. Song (andrewsong90@gmail.com) |
|
|
|
|
| <img src="assets/mgb_banner.png"> |
|
|