Read and Load Nanostring SMI data

  mtx.file = NULL,
  metadata.file = NULL,
  molecules.file = NULL,
  segmentations.file = NULL,
  type = "centroids",
  mol.type = "pixels",
  metadata = NULL,
  mols.filter = NA_character_,
  genes.filter = NA_character_,
  fov.filter = NULL,
  subset.counts.matrix = NULL,
  cell.mols.only = TRUE

LoadNanostring(data.dir, fov, assay = "Nanostring")



Path to folder containing Nanostring SMI outputs


Path to Nanostring cell x gene matrix CSV


Contains metadata including cell center, area, and stain intensities


Path to molecules file


Path to segmentations CSV


Type of cell spatial coordinate matrices to read; choose one or more of:

  • “centroids”: cell centroids in pixel coordinate space

  • “segmentations”: cell segmentations in pixel coordinate space


Type of molecule spatial coordinate matrices to read; choose one or more of:

  • “pixels”: molecule coordinates in pixel space


Type of available metadata to read; choose zero or more of:

  • “Area”: number of pixels in cell segmentation

  • “fov”: cell's fov

  • “Mean.MembraneStain”: mean membrane stain intensity

  • “Mean.DAPI”: mean DAPI stain intensity

  • “Mean.G”: mean green channel stain intensity

  • “Mean.Y”: mean yellow channel stain intensity

  • “Mean.R”: mean red channel stain intensity

  • “Max.MembraneStain”: max membrane stain intensity

  • “Max.DAPI”: max DAPI stain intensity

  • “Max.G”: max green channel stain intensity

  • “Max.Y”: max yellow stain intensity

  • “Max.R”: max red stain intensity


Filter molecules that match provided string


Filter genes from cell x gene matrix that match provided string


Only load in select FOVs. Nanostring SMI data contains 30 total FOVs.


If the counts matrix should be built from molecule coordinates for a specific segmentation; One of:

  • “Nuclear”: nuclear segmentations

  • “Cytoplasm”: cell cytoplasm segmentations

  • “Membrane”: cell membrane segmentations


If TRUE, only load molecules within a cell


Name to store FOV as


Name to store expression matrix as


ReadNanostring: A list with some combination of the following values:

  • matrix”: a sparse matrix with expression data; cells are columns and features are rows

  • centroids”: a data frame with cell centroid coordinates in three columns: “x”, “y”, and “cell”

  • pixels”: a data frame with molecule pixel coordinates in three columns: “x”, “y”, and “gene”

LoadNanostring: A Seurat object


This function requires the data.table package to be installed

Progress Updates with progressr

This function uses progressr to render status updates and progress bars. To enable progress updates, wrap the function call in with_progress or run handlers(global = TRUE) before running this function. For more details about progressr, please read vignette("progressr-intro")

Parallelization with future

This function uses future to enable parallelization. Parallelization strategies can be set using plan. Common plans include “sequential” for non-parallelized processing or “multisession” for parallel evaluation using multiple R sessions; for other plans, see the “Implemented evaluation strategies” section of ?future::plan. For a more thorough introduction to future, see vignette("future-1-overview")