跳到主要内容
知仓学习社ZHICANG

deepspot-m

Generate transcriptome-wide virtual spatial transcriptomics from H&E histology with DeepSpot-M. Use when you need spatial gene expression in log1p-C…

不碰外部(只输出文字)无严重或高危命中K-Dense-AI/scientific-agent-skills

它会碰到什么

扫了多少3 个文本文件,19 KB
它会碰到什么不碰外部(只输出文字)
命中总数0 处
命中统计严重 0 · 高 0 · 中 0 · 低 0

这一栏是扫描器报的事实,不是结论。命中多不等于有毒(安全工具、规则库、示例脚本本来就会包含危险写法),命中少也不等于干净。它和你手上的凭据、文件、网络有什么关系,需要你自己看。

技能内容

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:

  1. Open <https://huggingface.co/ratschlab/DeepSpotM> and request access.
  2. 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:

  1. Extract 224x224 tiles on a grid with the histolab skill, keeping each tile's

coordinates.

  1. Process and stack tiles into batches with torch.stack.
  2. Call predict_genes once per batch with the same gene list.
  3. 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_pretrained and predict_genes in 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/>

想直接用这个技能?

本站把开放许可(MIT / Apache 等)的技能按仓库打包整理到网盘,点一下转存到你自己的网盘,不用一个个从 GitHub 拉。许可未声明的技能只给原始仓库链接,不打包。

它属于哪个仓库

星标★ 45,217
本站分层T1
该仓技能数166
原文件路径skills/deepspot-m/SKILL.md

同一个仓库里的其他技能

看这个仓库的全部 166 个技能