Global efforts to create a molecular census of the brain using single-cell transcriptomics are producing a large catalog of molecularly defined cell types. However, spatial information is lacking and new methods are needed to map a large number of cell type–specific markers simultaneously on large tissue areas. Here, we describe a cyclic single-molecule fluorescence in situ hybridization methodology and define the cellular organization of the somatosensory cortex.

Access optionsAccess options

Rent or Buy article

Get time limited or full article access on ReadCube.


All prices are NET prices.

Data availability

All code and data are available online at http://linnarssonlab.org/osmFISH. The 6 million raw osmFISH images, totaling ~5 TB, are available from the corresponding authors upon reasonable request.

Additional information

Publisher’s note: Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.


  1. 1.

    Lein, E., Borm, L. E. & Linnarsson, S. Science 358, 64–69 (2017).

  2. 2.

    Ke, R. et al. Nat. Methods 10, 857–860 (2013).

  3. 3.

    Lee, J. H. et al. Science 343, 1360–1363 (2014).

  4. 4.

    Lee, J. H. et al. Nat. Protoc. 10, 442–458 (2015).

  5. 5.

    Stahl, P. L. et al. Science 353, 78–82 (2016).

  6. 6.

    Wang, X. et al. Science 361, eaat5691 (2018).

  7. 7.

    Lubeck, E. & Cai, L. Nat. Methods 9, 743–748 (2012).

  8. 8.

    Chen, K. H., Boettiger, A. N., Moffitt, J. R., Wang, S. & Zhuang, X. Science 348, aaa6090 (2015).

  9. 9.

    Shah, S., Lubeck, E., Zhou, W. & Cai, L. Neuron 92, 342–357 (2016).

  10. 10.

    Femino, A. M., Fay, F. S., Fogarty, K. & Singer, R. H. Science 280, 585–590 (1998).

  11. 11.

    Raj, A., van den Bogaard, P., Rifkin, S. A., van Oudenaarden, A. & Tyagi, S. Nat. Methods 5, 877–879 (2008).

  12. 12.

    Lyubimova, A. et al. Nat. Protoc. 8, 1743–1758 (2013).

  13. 13.

    Lubeck, E., Coskun, A. F., Zhiyentayev, T., Ahmad, M. & Cai, L. Nat. Methods 11, 360–361 (2014).

  14. 14.

    Itzkovitz, S. et al. Nat. Cell Biol. 14, 106–114 (2011).

  15. 15.

    Shaffer, S. M. et al. Nature 546, 431–435 (2017).

  16. 16.

    Zeisel, A. et al. Science 347, 1138–1142 (2015).

  17. 17.

    Marques, S. et al. Science 352, 1326–1329 (2016).

  18. 18.

    Codeluppi, S. et al. protocols.io, https://doi.org/10.17504/protocols.io.psednbe (2018).

  19. 19.

    Maddox, P. H. & Jenkins, D. J. Clin. Pathol. 40, 1256–1257 (1987).

  20. 20.

    Preibisch, S., Saalfeld, S. & Tomancak, P. Bioinformatics 25, 1463–1465 (2009).

  21. 21.

    Pedregosa, F. et al. J. Mach. Learn. Res. 12, 2825–2830 (2012).

  22. 22.

    Van Der Maaten, L. J. P. & Hinton, G. E. J. Mach. Learn. Res. 9, 2579–2605 (2008).

  23. 23.

    Ripley, B. D. J. Appl. Probab. 13, 255–266 (1976).

  24. 24.

    The Astropy Collaboration. Astron. Astrophys. 558, A33 (2013).

  25. 25.

    Rocklin, M. in Proc. 14th Python in Science Conference (eds. Huff, K. & Bergstra, J.) 130–136 (2015).

  26. 26.

    Collette, A. Python and HDF5 (O’Reilly Media, Sebastopol, CA, 2013).

  27. 27.

    Hunter, J. D. Comput. Sci. Eng. 9, 90–95 (2007).

  28. 28.

    Dalcín, L., Paz, R. & Storti, M. J. Parallel Distrib. Comput. 65, 1108–1115 (2005).

  29. 29.

    Hagberg, A.A., Schult, D.A. & Swart, P.J. in Proc. 7th Python in Science Conference (eds. Varoquaux, G., Vaught, T. & Millman, J.) 11–15 (2008).

  30. 30.

    Van Der Walt, S., Colbert, S. C. & Varoquaux, G. Comput. Sci. Eng. 13, 22–30 (2011).

  31. 31.

    McKinney, W. in Proc. 9th Python in Science Conference (eds. van der Walt, S. & Millman, J.) 51–56 (2010).

  32. 32.

    van der Walt, S. et al. PeerJ 2, e453 (2014).

  33. 33.

    Meurer, A. et al. PeerJ Comput. Sci. 3, e103 (2017).

Download references


We thank the Knut and Alice Wallenberg Foundation (C.I.S. and 2015.0041 to S.L.), the Swedish Foundation for Strategic Research (RIF 14-0057 and SB 16-0065 to S.L.), the Swedish Infrastructure for Computing (SNIC 2016/1-283 to S.L.), the Swedish Research Council (542-2013-8373 to C.I.S.), the Chan Zuckerberg Initiative (2017-174399 to S.L.) and the NIH (1U01MH114812-01 to S.L.) for generous support of this work. We thank Microliquid for help in designing and manufacturing the flow cell. We thank P. Lönneberg for maintenance of the computing cluster, J. van der Zwan for the loom-viewer visualization tool, A. Mossi-Albiach for help in probe design and A. Johnsson for project management.

Author information

Author notes

    • Amit Zeisel

    Present address: Faculty of Biotechnology and Food Engineering, Technion, Haifa, Israel

  1. These authors contributed equally: S. Codeluppi and L. E. Borm.


  1. Division of Molecular Neurobiology, Department of Medical Biochemistry and Biophysics, Karolinska Institutet, Stockholm, Sweden

    • Simone Codeluppi
    • , Lars E. Borm
    • , Amit Zeisel
    • , Gioele La Manno
    •  & Sten Linnarsson
  2. Department of Physiology and Pharmacology, Karolinska Institutet, Stockholm, Sweden

    • Simone Codeluppi
    •  & Camilla I. Svensson
  3. Science for Life Laboratory, Stockholm, Sweden

    • Simone Codeluppi
    • , Lars E. Borm
    • , Amit Zeisel
    • , Gioele La Manno
    •  & Sten Linnarsson
  4. Department of Biosciences and Nutrition, Karolinska Institutet, Stockholm, Sweden

    • Josina A. van Lunteren


  1. Search for Simone Codeluppi in:

  2. Search for Lars E. Borm in:

  3. Search for Amit Zeisel in:

  4. Search for Gioele La Manno in:

  5. Search for Josina A. van Lunteren in:

  6. Search for Camilla I. Svensson in:

  7. Search for Sten Linnarsson in:


S.C., L.E.B. and S.L. designed the experiments; S.C. and L.E.B. performed the experiments and data analysis. J.A.V.L. contributed to the image stitching code. G.L.M. and A.Z. contributed to the analysis. L.E.B. designed the fluidic system. A.Z. designed the hybridization chamber. C.I.S. contributed to funding acquisition and provided scientific feedback. S.C., L.E.B. and S.L. wrote the manuscript. All authors provided critical feedback and helped shape the research, analysis and manuscript.

Competing interests

The authors declare no competing interests.

Corresponding authors

Correspondence to Simone Codeluppi or Sten Linnarsson.

Integrated supplementary information

  1. Supplementary Figure 1 osmFISH setup.

    (a) Illustration of the osmFISH protocol. Multiple cycles of hybridization, imaging and stripping are run to map the selected genes on the same tissue section. After processing of all the images, gene expression is used to identify and map cell types in the tissue. (b) CAD rendering of the custom-made aluminum frame (microtiter plate size 127 × 85 mm) fitting 6 hybridization/imaging chambers showing different stages of assembly. First, the coverslip with sample is lowered in the frame and the lid is assembled on top of flow guiding PDMS inserts (green). (c) Assembled hybridization/imaging chamber with fluid inlet and outlet. (d) Schematic of the semiautomatic computer controlled liquid handling system. Hybridization is run in a dry oven and all the buffer exchanges are performed by a pump controlled by a custom script. (e) Cross-section of the hybridization/imaging chamber and the microscope objective during image acquisition.

  2. Supplementary Figure 2 osmFISH technical characteristics.

    (a) Percentage of molecule counts retained at different cycles of hybridization. osmFISH protocol run on a total of six genes and reference beads (blue) show a mean loss of 5.3 ± 6.9% RNA molecules per cycle. Targets labeled with Quasar 670 (Q670) show a larger decrease in dot numbers. (b) Box plots indicating the mean (center line), first and third quartiles (box edges) and minimum and maximum (whiskers), showing the number of false positives per cell counted in a naive animal brain sections labeled with probes against (eGFP Q670), n = 10 fields of view. False positive caused by endogenous tissue background (Q570 & CFR610 no probes) and one channel (Q670) with probes decrease after each imaging cycle due to photobleaching. (c) Stripping efficacy for all channels is determined after every stripping cycle. The fluorescence signal is reduced to minimal to none after stripping. Images of a single positive cell before and after stripping are displayed with identical intensity settings. (d) Computer simulation of the effect of optical crowding on the number of resolvable molecules with increasing signal density in a cell of average size (107 μm2), showing s.d. for n = 10 repeats per simulated point. According to the simulation, the detection upper limit of osmFISH is 125 molecules per cell. Bottom: representative images of simulated cells with increasing density. Green dots mark the resolvable objects, and red the nonresolvable molecules.

  3. Supplementary Figure 3 Brain region analyzed by osmFISH.

    a) Visualization of the processed brain section in the 3D reference brain model generated by the Brain Explorer 2 from Allen Institute for Brain Science (Lein, E. S. et al. Nature 445, 168–176 (2007)). (b) osmFISH was run on the brain area corresponding to section 289 of the Allen Brain reference atlas. The imaged region is highlighted in yellow. (c) Tissue structure visualized by immunohistochemistry. Nuclei (blue), astrocytes (magenta) and blood vessels (green). Asterisk marks the region imaged to evaluate stripping efficacy.

  4. Supplementary Figure 4 Raw RNA spots grouped by cluster.

    Composite images showing the raw RNA spots for all genes grouped according to the major clusters. High-resolution images of individual and grouped genes are available online.

  5. Supplementary Figure 5 Comparison of osmFISH and scRNA-seq.

    (a) Comparison between the distribution of counts for osmFISH (blue, left) and scRNA-seq (red, right). (b) Comparison between the 99th percentile of the osmFISH and scRNA-seq data. osmFISH shows higher counts compared to scRNA-seq, except for a few genes which are characterized by high expression level that saturates the optical space. On average osmFISH shows 3.8 ± 4.2 times higher measurements than scRNA-seq. (c) Cell type correlation between mean expression levels for osmFISH and scRNA-seq clusters (Zeisel et al.16), n = 33 genes. Highest correlation (⍴ = 1) is visualized in yellow.

  6. Supplementary Figure 6 Excitatory and inhibitory clusters.

    (a) Distributions of excitatory neurons. (b) Py L3/4 cells are positioned at the interface between layer 2/3 and layer 4. (c) Py L2/3 L5 which have high Lamp5 expression are found in both layers 2/3 and layer 5. (d) Distribution of the inhibitory neurons. Inhib IC cluster (red arrowhead) and Inhib CP cluster (yellow arrowhead) are highlighted. (e,f) Enlarged region (e) and Allen Brain reference map section 289 (f; Lein, E. S. et al. Nature 445, 168–176 (2007)) showing the border between Inhib IC cells (red arrowhead, internal capsule) and Inhib CP cells (yellow arrowhead, caudoputamen). Experiment not repeated.

  7. Supplementary Figure 7 Cell-type composition in the inferred tissue regions.

    Stacked bar plot showing the percentage of the different cell types in each inferred tissue region. Cell populations above 3% show a label.

  8. Supplementary Figure 8 osmFISH image analysis pipeline.

    (a) Cartoon depicting the data set organization. Each experimental folder contains a number of subfolders corresponding to the osmFISH cycles and the immunofluorescence stainings. Each subfolder contains raw Nikon .nd2 files separated according to fluorescence channel. Each file stores all the x-y positions acquired as a series of 3D stacks. (b) The entire image pipeline can be run through 6 sequential scripts. The parallelization of the code allows processing of all the hybridization simultaneously. The lines with arrowheads connect the input data to the corresponding analysis step. The preprocessing script converts the raw data and generates the filtered images, the raw counting and the stitched reference channel. The stitched reference channels from each hybridization are aligned (reference_registration script) and the registration similarity transformations are used to register the raw counts (dots_coords_correction script) and the osmFISH filtered images (apply_stitching script). After alignment, the segmentation channel is processed to generate cell outlines (staining_segmentation script) that are used to count the cell mapped RNA molecules (map_counting script). In this step the counting is run using the same approach used to count the RNA molecules in each image (raw counting) to account for cell-specific background. The scripts that form the pipeline use a modular open source API that can be used to create tailored pipelines to process different types of smFISH data.

  9. Supplementary Figure 9 Cell identification by segmentation of poly(A) signal.

    (a) Visualization of cell shapes by poly(A) osmFISH. The asterisk defines the region imaged to evaluate stripping efficacy. (b) Distribution of the segmented cells labeled with random colors. The region imaged after stripping has been excluded. (ce) Segmentation based on poly(A) osmFISH can fail (d) if the poly(A) signal is too low or if the majority of the cell body is not in the section so that only a fraction of the cell is visible (c). Arrow indicates a cell with low poly(A) signal (c) that shows specific RNA spots (e) but owing to failed segmentation is lost. (gk) Magnification of the poly(A) osmFISH staining. White segmented cell contours (convex hulls) represent the cells used in the clustering. Yellow contours identify discharged cells and detected molecules in green.

Supplementary information

  1. Supplementary Text and Figures

    Supplementary Figures 1–9 and Supplementary Table 2

  2. Reporting Summary

  3. Supplementary Table 1

    osmFISH probe sequences

  4. Supplementary Software

    pysmFISH, image analysis pipeline for filtering, alignment and counting of osmFISH data. osmFISH cell type analysis, clustering, regionalization and spatial analysis pipeline of spatial gene expression data. Liquid handling, script to control the Dolomite Mitos P-pump for automation of the osmFISH protocol

Source data

About this article

Publication history