Dataset Integration Exercise

We will integrate two PBMC datasets from different 10x Chromium chemistry versions to observe and correct batch effects.

Part 1: Data Acquisition

  1. Navigate to the 10x Genomics dataset page
  2. Download these two PBMC datasets (Note: you need to enter some information including an email address prior to being able to download data):
  3. Download the “Feature / cell matrix (filtered)” for each dataset

Part 2: Initial Processing Without Integration

Step 1: Load and combine datasets

Step 2: Standard preprocessing

Step 3: Clustering and visualization

Part 3: Batch Correction

For Seurat users (Seurat v5):

In Seurat v5, the two chemistry versions live as separate counts layers inside the RNA assay (this happens automatically when you merge() the two objects; you can also enforce it with obj[["RNA"]] <- split(obj[["RNA"]], f = obj$batch)). Integration then operates directly on this single, layered object - there is no longer a separate IntegrateData() step as in Seurat v4.

For scanpy users:

Part 4: Post-Integration Analysis

Part 5: Comparison & Discussion

Discuss with a neighbor:

  1. How did cells cluster before vs. after integration?
  2. Are cell types now mixed across batches?
  3. Judging from the UMAPs, was the integration successful? Are there populations that stayed separated by batch, or any that now look over-mixed?
  4. Can you identify the major PBMC cell types after integration?

Bonus Challenges