12: Single-Cell RNA Sequencing Foundations
Tested Stacks:
GATK 4.6.1
Samtools 1.21
Nextflow 24.10
Seurat v5.1
Python 3.12
Prerequisites: Basic Linux CLI & Sequencing Formats
📚 Chapter 12 of 13
0% Course Completed
Chapter 12: Single-Cell RNA Sequencing Foundations
Bulk RNA sequencing measures the average gene expression across millions of pooled cells, masking rare stem cell populations, transitional differentiation states, and tumor microenvironment heterogeneity. Single-Cell RNA Sequencing (scRNA-seq) isolates individual cells, allowing researchers to explore biology at single-cell resolution.
The Architecture of a Droplet Read: Barcode vs. UMI
In 10x Chromium chemistry, each sequencing read pair carries vital structural barcodes:
- Cellular Barcode (16 bp): Identifies the specific oil droplet / gel bead from which the mRNA molecule originated. All reads with the same cell barcode originate from the same single cell.
- Unique Molecular Identifier (UMI, 10–12 bp): A completely random oligonucleotide appended to the individual mRNA molecule before any PCR amplification. Multiple reads sharing identical cell barcodes, alignments, and UMIs represent PCR duplicates of a single original transcript and are collapsed into a single count.
1. Primary Processing with Cell Ranger
# Execute 10x Genomics Cell Ranger count on FASTQ directories
cellranger count \
--id=pbmc_10k_run \
--transcriptome=/databases/refdata-gex-GRCh38-2024-A \
--fastqs=raw_fastqs/ \
--sample=pbmc_10k \
--localcores=16 \
--localmem=642. Key Single-Cell Quality Control Filters
- Number of Detected Genes (nFeature_RNA): Cells with <200 genes represent empty droplets or debris; cells with abnormally high gene counts (>6,000) represent doublets (two cells in one droplet).
- Mitochondrial Transcript Percentage: When a cell membrane ruptures during dissociation, cytoplasmic mRNA leaks out while mitochondria are retained. High mitochondrial percentages (>10–20%) indicate dying or damaged cells.
⚠️
Common Pitfalls & Troubleshooting Checklist
- Java Heap Exhaustion (GATK / Picard): If processes terminate with
java.lang.OutOfMemoryError, set your environment variable explicitly:export _JAVA_OPTIONS="-Xmx16g -Djava.io.tmpdir=/tmp". - Index Timestamp Mismatch: If tools complain that a BAM index is missing or out of date, regenerate with
samtools index -@ 4 sample.bam. - Conda Channel Conflicts: Avoid ABI incompatibilities between bioconda and conda-forge by setting strict priority:
conda config --set channel_priority strict. - Chromosome Naming Contamination: Always verify whether reference FASTA headers use
chr1or1; divergent naming causes silent alignment drops.
Was this guide helpful to your research?
Help us maintain 100% accurate, peer-reviewed bioinformatics standards.