Summary and Schedule
Welcome
This hands-on workshop teaches you how to analyze single-cell RNA sequencing (scRNA-seq) data from start to finish. You will work with a real 10x Genomics PBMC dataset on Purdue’s HPC clusters, progressing from raw FASTQ files through alignment, quality control, clustering, cell type annotation, multi-sample integration, and differential expression analysis.
Learning Outcomes
After completing this workshop, you will be able to:
- Process raw scRNA-seq data using Cell Ranger and STARsolo on an HPC cluster
- Perform quality control, normalization, and dimensionality reduction with Seurat v5 in R
- Identify cell types through marker gene analysis and automated annotation
- Integrate multiple samples, run differential expression analysis, and interpret pathway enrichment results
| Setup Instructions | Download files required for the lesson | |
| Duration: 00h 00m | 1. Introduction to Single-Cell RNA-Seq |
What is single-cell RNA sequencing and how does it differ from bulk
RNA-seq? How does the 10x Genomics Chromium platform capture and barcode individual cells? What does the resulting count matrix look like and why are UMIs important? What are the main computational steps in a scRNA-seq analysis workflow? What will this workshop cover and what is out of scope? |
| Duration: 00h 30m | 2. Raw Data Processing |
How do we organize scRNA-seq data files on an HPC cluster? How do we align 10x Chromium FASTQ files with Cell Ranger? How do we run STARsolo as an open-source alternative? How do the outputs from Cell Ranger and STARsolo compare? |
| Duration: 01h 30m | 3. Quality Control |
How do we load a 10x count matrix into R and create a Seurat
object? What quality metrics should we examine for scRNA-seq data? How do we choose appropriate filtering thresholds? How does mitochondrial gene percentage help identify dying cells? What are doublets and how can we detect them? |
| Duration: 02h 30m | 4. Normalization and Feature Selection |
Why do we need to normalize scRNA-seq data before comparing
cells? How does log normalization work and where are the results stored? What are highly variable features and why do we select them? What does scaling do and when should we regress out confounders? How does SCTransform differ from the LogNormalize workflow? |
| Duration: 03h 25m | 5. Dimensionality Reduction and Clustering |
Why do we need to reduce the dimensions of scRNA-seq data before
clustering? How do we choose the right number of principal components? What does UMAP show us and what can it NOT tell us? How does graph-based clustering work and what does the resolution parameter control? How do we evaluate whether our clustering resolution is appropriate? |
| Duration: 04h 25m | 6. Cell Type Annotation |
How do we systematically find the genes that define each
cluster? How do we assign cell type labels using known marker genes? How does automated annotation with SingleR work? When do manual and automated annotations disagree and what should we do? What are best practices for confident, reproducible annotation? |
| Duration: 05h 25m | 7. Multi-Sample Integration |
Why do cells from different samples cluster separately even when they
are the same cell type? How does CCA-based integration correct for batch effects? How do we evaluate whether integration was successful without removing real biology? How do we find genes that differ between conditions within a specific cell type? When should we NOT integrate datasets? |
| Duration: 06h 25m | 8. Differential Expression Analysis |
What are the main approaches for differential expression testing in
scRNA-seq? Why is pseudobulk analysis preferred over per-cell testing for multi-sample experiments? How do we create volcano plots and other visualizations to interpret DE results? How do we connect lists of DE genes to biological pathways using GO enrichment? How should we export our results for sharing and reproducibility? |
| Duration: 07h 25m | Finish |
The actual schedule may vary slightly depending on the topics and exercises chosen by the instructor.
Instructors
Arun Seetharam: Arun is a Bioinformatics Scientist at Purdue’s Rosen Center for Advanced Computing (RCAC). He develops and delivers bioinformatics training workshops and provides research computing support for the Purdue community.
Michael Carlson, Ph.D.: Michael is a Senior Computational Scientist at Purdue University’s Rosen Center for Advanced Computing (RCAC). Michael has a background in computational physics, specifically hypersonic materials. He also leads many introductory workshops in the High-Performance Computing domain.
Workshop Schedule (4/21/2026)
| Time | Topic |
|---|---|
| 8:30 – 9:00 | Arrival & Setup |
| 9:00 – 9:20 | Episode 1: Introduction to Single-Cell RNA-Seq |
| 9:20 – 10:05 | Episode 2: Raw Data Processing |
| 10:05 – 10:20 | Break |
| 10:20 – 11:05 | Episode 3: Quality Control |
| 11:05 – 11:55 | Episode 4: Normalization and Feature Selection |
| 11:55 – 12:00 | Morning Recap |
| 12:00 – 1:00 | Lunch |
| 1:00 – 1:45 | Episode 5: Dimensionality Reduction and Clustering |
| 1:45 – 2:30 | Episode 6: Cell Type Annotation |
| 2:30 – 2:45 | Break |
| 2:45 – 3:25 | Episode 7: Multi-Sample Integration |
| 3:25 – 4:00 | Episode 8: Differential Expression & Wrap-up |
| 4:00 – 4:30 | Q&A / Feedback |
Prerequisites
This workshop assumes:
- Basic Linux/command-line skills: navigating directories, running commands, editing files
- Basic R skills: installing packages, reading/writing data, creating plots
- A Purdue HPC account: access to the Negishi cluster or Scholar (provided)
- An SSH client: terminal (macOS/Linux) or PuTTY/MobaXterm (Windows)
No prior experience with single-cell RNA-seq is required.
Scope of This Workshop
This workshop teaches a standard scRNA-seq analysis workflow using a specific set of tools and data:
- Platform: 10x Genomics Chromium 3’ Gene Expression (v3 chemistry)
- Organism: Human (GRCh38 reference genome)
- Dataset: 10k PBMCs (peripheral blood mononuclear cells), a well-characterized immune cell mixture
- Analysis toolkit: Seurat v5 in R, running on Purdue’s Negishi HPC cluster
- Integration dataset: IFN-beta stimulated PBMCs from the SeuratData package
By the end of the workshop you will have a solid understanding of the core scRNA-seq analysis pipeline and be able to apply these same steps to your own datasets.
What is NOT covered in this workshop
- Spatial transcriptomics (Visium, MERFISH, Slide-seq)
- Multi-modal assays (CITE-seq, Multiome ATAC+GEX)
- Trajectory and pseudotime analysis (Monocle3, RNA velocity, scVelo)
- Python-based analysis (Scanpy / AnnData ecosystem)
- Experimental design and wet-lab sample preparation
- Custom reference genome building for non-model organisms
These are all important topics, but each warrants its own dedicated workshop. If you are interested in any of these areas, see the Additional Reading section in the Reference page for pointers to relevant resources.
SSH Setup
You need SSH access to the Negishi cluster for Episode 2 (raw data processing) and to copy the workshop data. Follow the instructions for your operating system below.
Connecting to the Cluster
You will need SSH access to the Negishi cluster at Purdue. Choose the instructions for your operating system below.
Data Setup
Copying Workshop Data
The workshop data is pre-staged on the cluster. Copy it to your scratch directory:
BASH
mkdir -p ${RCAC_SCRATCH}/scrna_workshop
rsync -avP /depot/workshop/data/scrna_workshop/ ${RCAC_SCRATCH}/scrna_workshop/
This will copy:
-
FASTQ files:
fastq/pbmc_10k_v3_S1_L00{1,2}_R{1,2}_001.fastq.gz -
10x Reference:
reference/refdata-gex-GRCh38-2024-A/ -
Pre-computed count matrix:
filtered_feature_bc_matrix/(for episodes 3+) -
Pre-computed R objects:
rds/(optional, for jumping into later episodes)
Starting RStudio on Open OnDemand
For Episodes 3 to 8, we will use RStudio through Negishi’s Open OnDemand (OOD) web portal. Follow these steps to launch an RStudio session.
Step 1: Log in to Open OnDemand
Open your browser and navigate to gateway.negishi.rcac.purdue.edu. Complete the Purdue SSO login (BoilerKey/Duo with Microsoft authentication).
Step 2: Launch RStudio (Bioconductor)
From the top menu bar, click the Interactive Apps tab. Under the Bioinformatics Apps section, select RStudio (bioconductor).
Choose the correct app
Make sure you select RStudio (bioconductor) under Bioinformatics Apps — not the RStudio Server option listed under the GUIs section. The Bioconductor version includes pre-installed single-cell analysis packages that we need for this workshop.

R Package Installation (skip this section if using OOD)
The R packages are pre-installed on the cluster. If you need to install them locally:
R
# Install BiocManager if not already installed
if (!requireNamespace("BiocManager", quietly = TRUE))
install.packages("BiocManager")
# Core packages
install.packages("Seurat")
install.packages("tidyverse")
# Bioconductor packages
BiocManager::install(c(
"SingleR",
"celldex",
"clusterProfiler",
"org.Hs.eg.db",
"enrichplot"
))
# SeuratData for integration dataset
install.packages("remotes")
remotes::install_github("satijalab/seurat-data")
