Preprint
|Download Model
| Blog (from Shaban)
| Blog (from Sizun)
| Cite
| Namesake
KRONOS is a panel-agnostic foundation model for spatial proteomics, self-supervised on 47 million single-marker patches spanning 175 protein markers, 16 tissue types, 8 imaging platforms and 5 institutions. Its architecture couples a shared channel-wise stem with sinusoidal marker-identity embeddings, making it natively compatible with high-dimensional multiplex data.
- 🔬 Biology at scale: label-efficient cell phenotyping, unsupervised tissue phenotyping, tissue/region classification, artefact detection, patient stratification, and spatial biomarker discovery.
- 🔎 Spatial search engine: drop in any cell, patch, or region of interest and KRONOS retrieves morphologically or immunologically similar areas across multi-cohort databases—supporting both exploratory and hypothesis-driven queries.
- 🛠️ Open resource: pretrained weights and step-by-step notebooks/tutorials.
The KRONOS codebase and pretrained weights are released to the academic community for non-commercial academic research only. Any commercial research use, integration into commercial products or services, or creation of derivative models (including those further trained, fine-tuned, or distilled from KRONOS) requires prior approvals.
🧬 Cell Phenotyping
Identify diverse cell types from multiplex marker profiles using KRONOS embeddings.
👉 Tutorial: Cell Phenotyping
🧩 Patch Phenotyping
Classify small tissue regions based on local cellular composition — no segmentation required.
👉 Tutorial: Patch Phenotyping
Distinguish biologically meaningful regions from technical noise or imaging artifacts.
👉 Tutorial: Region & Artifact Detection
🧠 Unsupervised Tissue Phenotyping
Cluster tissue regions by shared cellular and molecular features — without labels.
👉 Tutorial: Unsupervised Tissue Phenotyping
🔎 Tissue Search
Search and retrieve tissue samples with similar phenotypic or spatial patterns using KRONOS as a spatial reverse image search engine.
👉 Tutorial: Tissue Search
🧪 Patient Stratification
Use KRONOS embeddings for downstream analysis such as treatment response prediction and patient subgroup discovery.
👉 Tutorial: Patient Stratification
- Initial codebase up! KRONOS model weights are now available on HuggingFace.
Hardware requirements: KRONOS can be run on any consumer-grade GPU (e.g., NVIDIA 3090).
Software requirements: KRONOS was developed and tested on Ubuntu 22.04 and Python 3.10.
Model access: Request access to the KRONOS from HuggingFace.
conda create -n kronos python=3.10.0
conda activate kronos
# for Unix/macOS
python3 -m pip install --user virtualenv
python3 -m venv kronos
source kronos/bin/activate
# for Windows
py -m venv kronos
.\kronos\Scripts\activate
git clone https://github.com/mahmoodlab/KRONOS.git && cd KRONOS
pip install -e .
# run this command to install packages required for running tutorials
pip install -e .[tutorials]
from kronos import create_model, create_model_from_pretrained
model, precision, embedding_dim = create_model_from_pretrained(
checkpoint_path="hf_hub:MahmoodLab/kronos", # Make sure you have requested access on HuggingFace
cache_dir="./model_assets",
)
print("Model precision: ", precision)
print("Model embedding dimension: ", embedding_dim)
We provide an example of processing a batch of dummy multiplex images with 10 markers. Refer to the tutorials for full-scale examples.
import torch
device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
model.to(device)
batch_size = 2
marker_count = 10
patch_size = 224
# generating a dummy batch with random values
batch = torch.randn(batch_size, marker_count, patch_size, patch_size).to(device)
# generating dummy mean and std values for normalization
# see marker_metadata.csv for actual mean and std values for each marker ids
mean = torch.randn(marker_count).to(device)
std = torch.randn(marker_count).to(device)
# normalizing the batch
batch = (batch - mean[None, :, None, None]) / std[None, :, None, None]
# feature extraction
with torch.no_grad():
patch_embeddings, marker_embeddings, token_embeddings = model(batch)
print(f'Patch embeddings: {patch_embeddings.shape}')
print(f'Marker embeddings: {marker_embeddings.shape}')
print(f'Token embeddings: {token_embeddings.shape}')
You can now save the patch/marker/token-specific features to a npy or h5 file to use for downstream tasks.
The project was built on top of dinov2 repository. We thank the authors and developers for their contributions.
If you have questions, comments, or concerns, feel free to email Faisal Mahmood ([email protected]
), Sizun Jiang ([email protected]
) or Muhammad Shaban ([email protected]
). All requests and questions will be answered in a timely manner. Immediate responses may not be available.
@article{shaban2024foundation,
title = {A Foundation Model for Spatial Proteomics},
author = {Muhammad Shaban and Yuzhou Chang and Huaying Qiu and Yao Yu Yeo and Andrew H. Song and Guillaume Jaume and Yuchen Wang and Luca L. Weishaupt and Tong Ding and Anurag Vaidya and Abdallah Lamane and Daniel Shao and Mohammed Zidane and Yunhao Bai and Paige McCallum and Shuli Luo and Wenrui Wu and Yang Wang and Precious Cramer and Chi Ngai Chan and Pierre Stephan and Johanna Schaffenrath and Jia Le Lee and Hendrik A Michel and Caiwei Tian and Cristina Almagro-Perez and Sophia J. Wagner and Sharifa Sahai and Ming Y. Lu and Richard J. Chen and Andrew Zhang and Mark Edward M Gonzales and Ahmad Makky and Joey Lee and Hao Cheng and Maximilian Haist and Darci Phillips and Yuqi Tan and Garry P Nolan and W. Richard Burack and Jacob D Estes and Jonathan T.C. Liu and Toni K Choueiri and Neeraj Agarwal and Marc Barry and Scott J Rodig and Long Phi Le and Georg Gerber and Christian M. Schürch and Fabian J. Theis and Youn H Kim and Joe Yeong and Sabina Signoretti and Brooke Howitt and Lit-Hsin Loo and Qin Ma and Sizun Jiang and Faisal Mahmood},
year = {2025},
note = {Preprint},
howpublished = {\url{https://arxiv.org/abs/2506.03373}},
}
In case you were wondering: No, KRONOS is not a nod to the 1954 alien-robots-from-space movie. We borrowed the name from the Kronosaurus, the Early Cretaceous marine reptile that could reach 10–11 meters in length. Fewer than a dozen reasonably complete Kronosaurus specimens have ever been excavated, and one of the best-known mounts hangs in the Harvard Museum of Comparative Zoology. So yes, our model is literally named after a Harvard dinosaur. See more here.