▸ Chatomics Field GuideWhat They Don't Teach You →

Glossary · Single-Cell and Spatial

Xenium

A padlock-probe imaging platform that gives you real single-cell spatial resolution, at the cost of a gene list you have to choose in advance.

By Ming "Tommy" Tang, Director of Bioinformatics in Big Pharma · Reviewed September 2026 · 2 min read

Also: in situ, imaging-based spatial

Definition

Xenium In Situ is an imaging-based spatial transcriptomics platform from 10x Genomics that detects RNA directly in intact tissue sections using padlock probes and fluorescence in situ hybridization, resolving transcripts at roughly 30 nm resolution. It measures a targeted gene panel, 250-380 genes for the standard v1 configuration or up to 5,000 for Xenium Prime, rather than the whole transcriptome. Output is a cell x gene count matrix built from transcripts assigned to individually segmented cells, plus per-molecule x,y coordinates, which is what distinguishes it from spot-based platforms like Visium.

You reach for Xenium when a collaborator hands you a cell_feature_matrix folder and a transcripts.csv.gz and asks for cell types and neighborhoods, or when you're choosing a spatial platform and need to know what you're trading against Visium. It shows up in chapter 9 because the underlying analysis, clustering, embedding, differential expression, runs on the same sparse cell x gene matrix you already know from scRNA-seq. What's new is the geometry: every cell now has x,y coordinates, and the quality of those coordinates depends on a segmentation step most people never look at closely enough.

The decisions that matter happen before you ever open Seurat or Scanpy: which QV threshold you accept, whether you trust the default cell boundaries, and whether a 250-to-380-gene panel can actually answer your biological question.

Why it matters

Getting segmentation and quality filtering right determines whether your "cells" are biologically real or an artifact of a boundary-drawing algorithm. Using Cellpose plus Baysor instead of default cell expansion, and keeping the QV >= 20 filter, are the two levers with the most leverage over downstream cluster quality, and both are invisible if you only look at the final UMAP.

Where people get it wrong

Practitioners carry over Visium's spot-as-fixed-unit mental model and treat Xenium's segmented cells as similarly given, when they're the output of a tunable algorithm; they also assume subcellular resolution implies whole-transcriptome coverage, when Xenium panels are targeted gene lists chosen before the experiment runs.

A concrete example

Loading a Xenium output folder in Seurat and confirming the QV filter actually did something before you trust downstream clustering. Checking the fraction of transcripts retained at QV >= 20 is a fast sanity check before you invest hours in clustering and niche analysis.

r
library(Seurat)

xenium.obj <- LoadXenium(
  data.dir = "path/to/xenium_output",
  fov = "fov",
  assay = "Xenium",
  mols.qv.threshold = 20,   # default QV cutoff; don't lower it casually
  cell.centroids = TRUE,
  segmentations = "cell"
)

# sanity check: how much did the QV filter actually remove?
median(xenium.obj$nCount_Xenium)
VlnPlot(xenium.obj, features = "nCount_Xenium", pt.size = 0)

Related terms

Questions people ask

What is Xenium in spatial transcriptomics?

Xenium In Situ is 10x Genomics' imaging-based spatial platform. It uses padlock probes and fluorescence in situ hybridization to detect targeted gene panels directly in tissue at roughly 30 nm resolution, assigning transcripts to individual segmented cells rather than pooling them into spots.

Xenium vs Visium: what's the actual difference?

Visium captures the whole transcriptome but each 55 µm spot pools 5-15 cells, so you infer single-cell signal statistically. Xenium gives you true single-cell (even subcellular) resolution but only for a preselected gene panel, 250-380 genes for v1 or up to 5,000 for Prime. Choose based on whether you need transcriptome breadth or cellular resolution.

How do I analyze Xenium data?

Load the cell_feature_matrix and transcripts.csv.gz with Seurat's LoadXenium or ReadXenium (or Scanpy/Squidpy equivalents), filter transcripts at QV >= 20, then run standard normalization, PCA, KNN graph construction, and Louvain clustering, the same pipeline as scRNA-seq, now with spatial coordinates attached for neighborhood analysis.

Why does Xenium segmentation matter so much?

Xenium's raw output is transcript locations, not cells. Cells are constructed by a segmentation algorithm that assigns each transcript to a nucleus-based boundary. Default cell-expansion segmentation misassigns reads at tissue boundaries; published best practice uses Cellpose for nuclei detection plus Baysor for read assignment instead.

What tissue types work with Xenium?

Xenium is validated on formalin-fixed paraffin-embedded (FFPE) thin sections and on fresh frozen tissue with the appropriate protocol, so most standard histology archives are compatible without new collection protocols.

Related pages

Related reading on the blog

Sources

  1. Optimizing Xenium In Situ data utility by quality assessment and best-practice analysis workflows — QV threshold, detection efficiency vs scRNA-seq, Cellpose+Baysor segmentation, Hotspot for spatially variable genes
  2. High resolution mapping of the tumor microenvironment using integrated single-cell, spatial and in situ analysis — subcellular precision for boundary cells and rare populations; Visium-Xenium integration via spot interpolation
  3. Neighborhood/cellular niches analysis with spatial transcriptome data in Seurat and Bioconductor — Xenium output file structure and ReadXenium/CreateFOV usage
  4. Seurat Reference: ReadXenium — LoadXenium/ReadXenium function signature and default QV threshold of 20
  5. Comparison of spatial transcriptomics technologies across six cancer types — Xenium single-cell resolution vs Visium 55 µm spot size and whole-transcriptome vs targeted panel comparison
  6. Xenium Panel Design Concepts and Terms — padlock probe design, 40-base mRNA homology requirement