Please see https://pages.github.umn.edu/MSI-RIS/Tutorials/sc_intro/ for the latest version of this tutorial document.
Introduction to Single Cell Genomics
Last Updated: 2026-04-20
Last Delivered: 2026-04-21
Check out the recording of this tutorial and other MSI tutorials on our YouTube channel:
https://www.youtube.com/@UofMMSI/videos
Contact MSI
Our staff can help you access the MSI’s high performance computing resources, design and analyze your experiments!
- For general MSI help (using the systems, how to log in, etc.) email help@msi.umn.edu
- For bioinformatics questions (experimental design, analysis contracts, etc.) email ribhelp@msi.umn.edu
0. Introduction
0.1 Goals
In this tutorial we will cover the following topics:
- Discuss single cell measurement technologies, including some guidelines for planning a successful single cell or single nuclei experiment
- Provide an broad overview of single cell/nuclei gene expression analysis steps
- Demonstrate how to use MSI’s resources for analysis in R and Python
- Discuss important analysis considerations
- Showcase possible analysis avenues for scRNA-seq/snRNA-seq annotated data and discuss other data types
Single Cell or Single Nuclei There are many similarities between single cell RNA-seq analysis (scRNA-seq) and single nuclei RNA-seq analysis (snRNA-seq). We will use the term “single cell” throughout this tutorial for simplicity. The majority of the workflow for scRNA-seq is also applicable to snRNA-seq, with some small but important differences for sample preparation and quality control. Details are provided in our Single Cell Experimental Design template
0.2 Brief introduction to single cell methods
Here we discuss how single cell/nuclei transcriptomes are measured.
0.3 Design considerations
In practice, analyzing single cell experiments requires extensive fine tuning depending on the characteristics of the biological system and research questions. MSI Bioinformatics analysts developed this Single Cell Experimental Design template to help you consider important aspects of sample preparation and sequencing. Some key points from that document include:
- What organism are you studying? Probe-based technologies (ie. 10X Flex) are available only for a subset of organisms.
- Can you get samples at the same time? How are you going to arrange the labwork to avoid confounding factors?
- Morphology of cells: can you actually capture the cells inside a droplet? If not, consider single nuclei or combinatorial labeling approaches.
- Ease of dissociation/stickyness: can you isolate “single” cells? You might need protocol optimizations.
- How abundant are the cell types of interest in your tissue? If rare, you might need enrichment approaches like cell sorting before library preparation.
- Are you planning to do statistical analysis? Then we strongly recommend biological replication!
1. Workflow overview
After performing a controlled experiment, you will use your samples for library preparation and sequencing. We start our analysis with these sequencing files.
Main steps of single cell analyses:
- Process the sequence files (fastqs) into a counts matrix
- Statistically analyze the counts matrix to generate cell clusters and identify (i.e. annotate) cells types
- Use the signal from the annotated clusters to answer the particular biological questions
Tips for submitting cellranger bash jobs
- Check the software versions available on the MSI system with the command
module avail cellranger - See if we have already built a single cell reference that works for your experiment at
/common/bioref/cellranger_10x - After personalizing your script, submit the job with
sbatch. Check the SLURM emails at the end of the job to fine tune the resources needed.
2. Single Cell RNA-seq analysis on MSI
Accessing MSI systems requires that you are either on the UMN campus
network (eduroam or Ethernet in a UMN building) or connected to the UMN VPN. Please see https://it.umn.edu/services-technologies/virtual-private-network-vpn
for information on connecting to the UMN VPN.
You will also be required to have DUO multi-factor authentication set up. Please see https://it.umn.edu/services-technologies/self-help-guides/duo-set-use-duo-security for information about enrolling your device in DUO.
2.1 Open On Demand: files, terminal, interactive apps
Open on Demand (OOD) is web-browser based interface that allows access to MSI resources. We can see the files stored in the system and access computing nodes through a terminal or through graphical user interfaces and interactive apps.
2.2 Exercise: Getting single cell data from GEO
We will use the terminal in OOD to download some scRNA-seq data from GEO. I have selected a small dataset (GEO accession GSM8475184) of human peripheral blood mononuclear cells (PBMCs) from a graft rejection patient to demonstrate the commands. You can explore available datasets at https://www.ncbi.nlm.nih.gov/geo.
The following commands show how I create a folder in my /scratch.global/ space to store the data. When you try this, you’ll see your X500 in place of ‘calix015’.
calix015@ahl03 [~] % cd /scratch.global/$USER/
calix015@ahl03 [/scratch.global/calix015] % mkdir -p sc_tutorial/data/geo
calix015@ahl03 [/scratch.global/calix015] % cd sc_tutorial/data/geo
calix015@ahl03 [/scratch.global/calix015/sc_tutorial] % wget https://ftp.ncbi.nlm.nih.gov/geo/samples/GSM8475nnn/GSM8475184/suppl/GSM8475184_TS2_duringGF_raw_feature_bc_matrix.h5
# you'll see a progress bar, it should take just a few seconds
# Let's see the contents of the folder with the ls command:
calix015@ahl03 [/scratch.global/calix015/sc_tutorial] % ls
# you should see this file: GSM8475184_TS2_duringGF_raw_feature_bc_matrix.h5
Accessing single cell data from UMGC
If your laboratory works with the UMGC, your sequencing data will be delivered directly to your MSI storage space. You can find it in the appropriate folder /projects/standard/YOUR_GROUP/data_delivery/umgc/, where YOUR_GROUP is the MSI space name assigned to your lab. You can use the OOD file system to find it!
2.3 Scanpy in Jupyter: Structure of Anndata objects
In this section we’ll cover how to connect to JupyterLabs through OOD, the interface and how to create your first anndata object, which you can then analyze with scanpy. For that I have preinstalled the software needed.
Installing Scanpy
Most certainly you’ll need to install software for your particular analysis. To do so, you could create an environment that contains all the packages. This is a little example with commands to create a conda environment that contains scanpy (and all its dependencies) and that is displayed in your JupyterLabs interface.
module load miniforge
today_date=$(date +%d%m%y)
code_path='/projects/standard/YOUR_GROUP/YOUR_USER/software' #choose a folder where you have writting permissions
conda create --copy -p $code_path/scanpy_${today_date} scanpy ipykernel
source activate $code_path/scanpy_${today_date}
python -m ipykernel install --user --name SOMETHING1 --display-name SOMETHING2 #You'll see SOMETHING2 in JupyterLabs
conda deactivate
For a more comprehensive guide on how to install and manage your own software check the Software Management tutorial on our YouTube channel!
Demo checklist:
- Session options - customizing
- JupyterLab interface - files and kernels
- Naming files, code/md chunks
- Import libraries
- Order of operations: click A/B, relocate
- Count matrix –> anndata structure
- Variables –> warnings
- Observations –> adding metadata
- Layers –> sparcity and dimentionality
- Save/load your work
- Tutorials and function reference
2.4 Seurat in RStudio: Structure of Seurat objects
In this section I’ll briefly show you how to connect to RStudio through OOD, the interface and how to create your first Seurat object. For that I have preinstalled the software needed.
Demo checklist:
- Session options - customizing
- RStudio interface - console, scripts, file navigation and environment variables
- .libPaths() - installation tips (permissions, dependencies)
- Count matrix - sparcity
- Seurat object - structure
- Metadata
- Slots
- Save/load your work
- Viz on a fully analyzed object
- Tutorials and built in functions
3: Analysis Considerations
Single cell experiments can be as varied as tissue types and biological questions, so we can’t give you a roadmap of how the analysis should be performed. Instead, this section aims to walk you through the main steps to go from a count matrix to annotated data.
4: Exploring biological questions
Once you have an annotated dataset you can begin to explore biological questions. This section provides a brief introduction to possible downstream analysis options for annotated single cell RNA-seq data and describes other data types.
5. Resources
We hope this tutorial facilitates your introduction to the world of single cell analysis, but there is so much more to explore! The links here point to useful information along the experiment and analysis journey:
Experimental design
- Planning: https://z.umn.edu/single_cell
Using MSI Resources
- Getting access: https://msi.umn.edu/getting-started/getting-started-and-access
- Batch jobs: https://msi.umn.edu/computing/slurm-job-submission-and-scheduling
- Interactive computing: https://msi.umn.edu/computing/interactive-hpc/open-ondemand
- Tutorials page: https://msi.umn.edu/getting-started/help/tutorials
- Youtube channel: https://www.youtube.com/@UofMMSI/videos
- Biological databases: https://msi.umn.edu/consulting-and-research/bioinformatics-guides/bioref
Single cell analysis
- Seurat package: https://satijalab.org/seurat/
- Scanpy package: https://scanpy.readthedocs.io/en/stable/index.html
- Azimuth reference atlas: https://azimuth.hubmapconsortium.org/
- CellTypist reference atlas: https://www.celltypist.org/
FEEDBACK CONTACT
Thank you for reading this document, we hope it helps your research! This tutorial was prepared by Natalia Calixto Mancipe, Marissa Macchietto, and Sarah Munro, in the Core Bioinformatics group at MSI. We’d love to hear your feedback, please email us at ribhelp@msi.umn.edu.
Glossary
This section describes the specialized terms that we use in this tutorial. Synonyms for some terms are also included.
Molecular Biology (Wet Bench) Terms
- (Sequencing) Adapter: Short nucleotide oligomers that are ligated to the 5′ and/or 3′ ends of a fragment in a sequencing library. These are non-biological, artificial sequences.
- Library: A collection of nucleic acid molecules that represents the sample organism that you wish to study. For RNAseq, it is usually a collection of cDNA (complementary DNA) sequences synthesized from RNA molecules.
- Library Preparation: The protocol that converts an extracted sample of nucleic acid into a sequencing library, read to run on the instrument. Various library preparation protocols exist, so it is important to know the details of the protocols your experiments are using. The details of the protocol do affect how your data should be handled.
- Sequencing Read: A string of nucleotide bases identified by the sequencing instrument. The nucleotide bases are derived from the sequence of the inserts of the sequencing library.
Bioinformatic Terms
- Depth: The number of times a particular nucleotide position has been seen in sequencing reads. Higher depth means the nucleotide has been read more times and thus typically has less uncertainty. Note that some people use “coverage” or “fold coverage” to refer to this definition of “depth.”
- Gene Annotation: (Noun) The assignment of regions of a reference genome to gene models. The assignments are stored in “annotation files” with formats such as GTF or GFF3. A gene annotation file must only be used with its accompanying reference genome file.
- Cell Annotation: process of identifying and labeling the biological classification of cells or clusters of cells.
- Mapping: A process by which short sequencing reads are compared to a reference genome to identify where they originated. This is the process that is used in inferring the relative abundance of transcripts in a RNA extraction. I distinguish mapping from alignment in that alignment is used to identify homologous sequences (rather than simply identifying a genomic position) and uses different algorithms from mapping. Some people use “mapping” and “alignment” interchangeably.
- Mapping Quality: A numerical value that describes the confidence with which the mapping position is known. Higher values indicate higher confidence. Each mapped read will have a mapping quality value associated with it.
- Normalization: A technique for adjusting the relative gene expression values across samples to account for variation in library size.
- (Raw) Counts Matrix: A matrix of integers describing the assignment of mapped reads to annotated gene models across multiple cells.
-
Reference Genome: A string of nucleotides that describes the genome of a given species. Sequencing reads are mapped against a reference genome, and gene expression is quantified using the accompanying gene annotation file.