MERFISH: whole-embryo spatial transcriptomics

Training materials for the 2026 V4SDB Student Summer School on Spatial Transcriptomics

Instructors:

Dorottya Ralbovszki (BRIC University of Copenhagen)
dorottya.ralbovszki@bric.ku.dk

Virág Tarcsa (ELTE)
tarcsa.virg@gmail.com


Workshop Overview

Most spatial transcriptomics methods require thin sections. MERFISH, applied to whole mounts, does not: it resolves individual mRNA molecules in three dimensions inside an intact embryo. In this session we work with weMERFISH data — 495 genes imaged at subcellular resolution in whole zebrafish embryos across gastrulation and early organogenesis — and ask what becomes possible once every cell keeps its address.

The session is built around a single notebook, run on the local HIVE server (installed by Bruker for the Summer School). No personal laptop setup and no prior Python is assumed, though you will get more out of it if you have seen scanpy before.

Run the notebook — on the HIVE server
  1. In D:\Students, create a folder with your name or nickname.
  2. Copy the file 2026V4SDBSummerSchool-MERFISH_Archive/01_weMERFISH_basics_YW_updated1 into that folder.
  3. Open the file.
  4. If VS Code opens it in Restricted Mode, click Manage → Trust the folder.
  5. Open the Extensions panel (left-hand sidebar) and install the Jupyter extension.
  6. Click Run All. When prompted to pick a kernel, choose the V4SDB Python environment.
  7. Enjoy the ride.
Nothing to download

The two embryo files the notebook needs are already provided on the HIVE server — nothing to download from Dryad, and no internet connection is required during the session.

Software

We use the standard scverse Python stack: scanpy, leidenalg, igraph, requests, plotly, nbformat. On the HIVE server these are already installed in the V4SDB Python environment you select when you run the notebook, so the notebook’s own pip install cell should not need to do any real work — it is there mainly for anyone later running the notebook outside the HIVE server.

scanpy

  • The general-purpose single-cell analysis toolkit. The same library you will have used for 10x data — which is exactly the point. Its native sc.pl.spatial() function does most of the plotting here.

AnnData

  • The container format. Cells × genes, plus annotations on both axes and arbitrary matrices attached to each.

squidpy

  • Spatial extensions to scanpy: neighbourhood enrichment, spatial statistics, image handling. Not required for this session but the natural next step.

plotly

  • Used for the interactive 3D embryo view.

Data

Wan Y, El Kholtei J, Jenie I, et al. (2026) Whole-embryo spatial transcriptomics at subcellular resolution from gastrulation to organogenesis. Science. https://doi.org/10.1126/science.adt3439

The full dataset is deposited at Dryad under doi:10.5061/dryad.j0zpc86v9 (129 GB, CC0). We only ever need two files from it — the 50% and 75% epiboly embryos — which are provided directly on the HIVE server rather than fetched live from Dryad during the session.

The atlas can also be browsed interactively at MERFISHEYES, and the analysis code from the paper is at github.com/yinan-wan0/weMERFISH.

Workshop step by step

0. Setup

Confirm the packages are available (already true in the V4SDB environment on the HIVE server), then point the notebook at the two embryo .h5ad files.

1. A quick tour of the weMERFISH AnnData object

Reading .h5ad into AnnData and finding your way around it: cell metadata, the gene panel, and — the field that matters most for a whole-mount dataset — the spatial coordinates, which live in .obsm['spatial'] for every stage.

2. QC and data preparation

The distributed files have already passed the authors’ own QC and filtering, so we don’t re-run a 10x-style filtering pipeline. What we do look at: counts and detected genes per cell, and — the diagnostic unique to spatial data — whether a cluster holds together in physical space, not just in expression space.

3. Plotting the embryo in space

The native imaging-space view via sc.pl.spatial(), alongside the precomputed spherical sphere_side / sphere_top views, plus an interactive, rotatable 3D scatter of the whole embryo.

4. Gene expression in space

Mapping individual genes onto the embryo surface. Reading the BMP/Chordin dorsoventral gradient (bmp4 vs chrd) directly off the data.

5. Clustering and spatial structure

The familiar PCA–neighbours–Leiden workflow run on the full 495-gene panel. Then the question that only spatial data permits: put clusters computed without any coordinate information back onto the embryo and ask whether they correspond to real tissue domains, alongside a confusion matrix against the authors’ own annotation and a standard marker-gene analysis.

6. Comparing across stages

Loading the 75% epiboly embryo and comparing one gene — tbxta — between stages, both as spatial maps and as a quantitative profile along the animal–vegetal axis. A prompt to think about the limits of comparing snapshots rather than tracked cells.

References

weMERFISH
Wan, Y., El Kholtei, J., Jenie, I., Colomer-Rosell, M., Liu, J., Navajas Acedo, J., Du, L. Y., Codina-Tobias, M., Wang, M., Sawh, A., Lin, E., Chuang, T.-H., Mango, S. E., Yu, G., Bintu, B., & Schier, A. F. (2026). Whole-embryo spatial transcriptomics at subcellular resolution from gastrulation to organogenesis. Science. https://doi.org/10.1126/science.adt3439

MERFISH
Chen, K. H., Boettiger, A. N., Moffitt, J. R., Wang, S., & Zhuang, X. (2015). Spatially resolved, highly multiplexed RNA profiling in single cells. Science, 348(6233), aaa6090. https://doi.org/10.1126/science.aaa6090

scanpy
Wolf, F. A., Angerer, P., & Theis, F. J. (2018). SCANPY: large-scale single-cell gene expression data analysis. Genome Biology, 19, 15. https://doi.org/10.1186/s13059-017-1382-1

squidpy
Palla, G., Spitzer, H., Klein, M., Fischer, D., Schaar, A. C., Kuemmerle, L. B., Rybakov, S., Ibarra, I. L., Holmberg, O., Virshup, I., Lotfollahi, M., Richter, S., & Theis, F. J. (2022). Squidpy: a scalable framework for spatial omics analysis. Nature Methods, 19, 171–178. https://doi.org/10.1038/s41592-021-01358-2