deepspot-m
Acerca de
DeepSpot-M genera transcriptómica espacial virtual a nivel de transcriptoma completo a partir de mosaicos de histología H&E. Predice la expresión en log1p-CPM para genes codificantes de proteínas consultados por símbolo y puede ejecutar inferencia en una portaobjeto completa tras el mosaico. Esta habilidad requiere instalar el paquete `deepspotm` de PyPI y acceder a los pesos del modelo restringido desde Hugging Face.
Instalación rápida
Claude Code
Recomendadonpx skills add K-Dense-AI/claude-scientific-skills -a claude-code/plugin add https://github.com/K-Dense-AI/claude-scientific-skillsgit clone https://github.com/K-Dense-AI/claude-scientific-skills.git ~/.claude/skills/deepspot-mCopia y pega este comando en Claude Code para instalar esta habilidad
Documentación
DeepSpot-M
Overview
DeepSpot-M is a multimodal foundation model that maps a 224x224 H&E histology tile to spatial gene expression in log1p-CPM. The output is virtual spatial transcriptomics: one value per queried gene per tile, laid out on the grid the tiles came from.
A LoRA-adapted pathology foundation backbone (Midnight) tokenises the tile. A
cross-attention gene decoder lets each gene query attend to the patch tokens, and a gene
router hypernetwork builds gene-specific projections from frozen biological embeddings
(Evo 2, Orthrus, ProtT5, scGPT, Apertus). Genes enter the model as queryable embeddings
rather than fixed output slots, so the released model covers a ~19k protein-coding gene
panel including genes unseen in training. The panel ships with the weights as
tokens.csv and is exposed as model.gene_names; genes outside it cannot be queried in
this release.
Applied to TCGA, the model produced a virtual spatial transcriptomics atlas of 28,664 slides across 32 cancer types.
Licensing
The code is PolyForm Noncommercial 1.0.0 and the weights are CC-BY-NC-SA-4.0. Use it for noncommercial research and check both licences before redistributing outputs.
Installation
uv pip install deepspotm==1.0.0
Version 1.0.0 targets Python 3.10 to 3.13 and pulls in PyTorch. Install the PyTorch build that matches your CUDA version first if you want GPU inference.
Model access
The weights are gated:
- Open https://huggingface.co/ratschlab/DeepSpotM and request access.
- Once access is granted, authenticate the machine that will download them:
huggingface-cli login
from_pretrained reads that cached token, so a login is needed once per machine.
Quick start
from deepspotm import DeepSpotM
model, image_processor = DeepSpotM.from_pretrained("ratschlab/DeepSpotM", source="scgpt")
vals = model.predict_genes(image_processor(pil_tile).unsqueeze(0), ["EPCAM", "CD3D"])
pil_tile is a PIL image of exactly 224x224 pixels. image_processor turns it into a
tensor, unsqueeze(0) adds the batch dimension, and predict_genes takes the batch plus a
list of HGNC gene symbols. Values come back in log1p-CPM, aligned with the gene list you
passed, so keep that list beside the output to keep the columns labelled. Symbols must be
in the released ~19k-gene panel (model.gene_names); an unknown symbol raises KeyError
naming the offending genes.
Tile requirements
Tiles must be 224x224 RGB at roughly 20x magnification (about 0.5 microns per pixel). Check the size at the boundary of your pipeline rather than passing an unchecked crop through:
TILE_PX = 224
def require_tile(tile):
"""Return an RGB 224x224 tile, or raise if the crop is the wrong size."""
if tile.size != (TILE_PX, TILE_PX):
raise ValueError(
f"DeepSpot-M expects a {TILE_PX}x{TILE_PX} tile at about 20x "
f"(~0.5 microns per pixel); got {tile.size[0]}x{tile.size[1]}. "
"Re-tile at the matching level or resample the crop."
)
return tile.convert("RGB")
Extract tiles at the slide level whose resolution is nearest 0.5 microns per pixel, then crop to 224x224 there. Resampling from a coarser level changes the texture the backbone reads.
Keep the dependency optional
deepspotm and its weights are a heavy, gated dependency. Import it inside the function
that needs it so the surrounding project installs, imports and tests without it, and turn
an ImportError into a message that names every step:
DEEPSPOTM_HELP = (
"DeepSpot-M is unavailable. Install it with `uv pip install deepspotm==1.0.0`, request "
"access to the gated weights at https://huggingface.co/ratschlab/DeepSpotM, then "
"authenticate with `huggingface-cli login`."
)
def load_deepspotm(source="scgpt"):
try:
from deepspotm import DeepSpotM
except ImportError as exc:
raise RuntimeError(DEEPSPOTM_HELP) from exc
return DeepSpotM.from_pretrained("ratschlab/DeepSpotM", source=source)
Embedding sources
source selects which frozen gene embedding the router builds projections from. It is one
of five values:
source | Gene embedding |
|---|---|
evo2 | genomic sequence |
orthrus | RNA |
prott5 | protein sequence |
scgpt | single-cell expression |
apertus | language model |
Each gives a different view of gene identity. Pick one per run, and run the same tiles
through more than one source when the choice matters to your analysis. See
references/api.md for the full call surface, batching and device placement, gene symbol
handling and output units.
Whole slide workflow
Prediction is per tile, so a slide-scale run is a tiling step followed by batched inference:
- Extract 224x224 tiles on a grid with the
histolabskill, keeping each tile's coordinates. - Process and stack tiles into batches with
torch.stack. - Call
predict_genesonce per batch with the same gene list. - Concatenate the batches into a tiles-by-genes matrix and attach the coordinates.
That matrix is the virtual spatial transcriptomics map for the slide, and it drops
straight into AnnData for downstream spatial analysis. references/whole_slide.md has a
worked loop, batch sizing and an AnnData assembly step.
Common use cases
- Spatial expression maps for marker genes across a tumour section.
- Transcriptome-wide prediction over a slide cohort with no matching assay run.
- Querying any of the ~19k panel genes by symbol, including genes unseen in training — far beyond the few hundred genes of a typical spatial assay panel.
- Adding an expression channel to a morphology-only histology pipeline.
- Building a slide-level cohort atlas, as done for TCGA.
Detailed references
references/api.md:from_pretrainedandpredict_genesin full, the five embedding sources and how to choose, batching, device placement, gene symbol handling, and converting log1p-CPM output.references/whole_slide.md: tiling with histolab, a slide-scale prediction loop, assembling and storing a tiles-by-genes matrix, and cohort-scale runs.
Primary sources
- Paper: https://doi.org/10.64898/2026.06.19.26356060 (medRxiv, posted 22 June 2026)
- Code: https://github.com/ratschlab/DeepSpotM
- Weights: https://huggingface.co/ratschlab/DeepSpotM
- PyPI: https://pypi.org/project/deepspotm/
Repositorio GitHub
Preguntas frecuentes
¿Qué es el Skill deepspot-m?
deepspot-m es un Skill de Claude creado por K-Dense-AI. Los Skills agrupan instrucciones y recursos que Claude carga cuando los necesita para realizar tareas relacionadas con deepspot-m sin indicaciones adicionales.
¿Cómo instalo deepspot-m?
Usa los comandos de instalación de esta página: añade deepspot-m a Claude Code como plugin o clona su repositorio en tu directorio de skills y reinicia Claude para cargarlo.
¿A qué categoría pertenece deepspot-m?
deepspot-m pertenece a la categoría Meta.
¿Se puede usar deepspot-m gratis?
Sí. deepspot-m aparece en AIMCP y se puede instalar gratis.
Habilidades relacionadas
Esta habilidad proporciona una configuración probada en producción para Content Collections, una herramienta centrada en TypeScript que transforma archivos Markdown/MDX en colecciones de datos con tipado seguro mediante validación Zod. Úsala al construir blogs, sitios de documentación o aplicaciones Vite + React con mucho contenido para garantizar seguridad de tipos y validación automática de contenido. Abarca todo, desde la configuración del plugin de Vite y compilación MDX hasta la optimización de despliegue y validación de esquemas.
Esta habilidad permite a los desarrolladores crear aplicaciones con la plataforma de mercados de predicción Polymarket, incluyendo la integración de API para operaciones y datos de mercado. También proporciona transmisión de datos en tiempo real a través de WebSocket para monitorear operaciones en vivo y actividad del mercado. Úsela para implementar estrategias de trading o crear herramientas que procesen actualizaciones de mercado en tiempo real.
Esta habilidad ayuda a los desarrolladores a crear complementos de OpenCode que se conectan a más de 25 tipos de eventos, como comandos, archivos y operaciones LSP. Proporciona la estructura del complemento, las especificaciones de la API de eventos y los patrones de implementación para módulos en JavaScript/TypeScript. Úsala cuando necesites interceptar, monitorear o extender el ciclo de vida del asistente de IA de OpenCode con lógica personalizada basada en eventos.
SGLang es un framework de alto rendimiento para el servicio de LLM que se especializa en generación rápida y estructurada para JSON, expresiones regulares y flujos de trabajo de agentes utilizando su caché de prefijos RadixAttention. Ofrece una inferencia significativamente más rápida, especialmente para tareas con prefijos repetidos, lo que lo hace ideal para salidas complejas y estructuradas, y conversaciones multiturno. Elige SGLang sobre alternativas como vLLM cuando necesites decodificación restringida o estés construyendo aplicaciones con uso extensivo de prefijos compartidos.
