omics.co.in logo omics.co.in

Module 7: Alignment Post-Processing & Quality Assessment with Samtools & Qualimap

Tested Stacks: GATK 4.6.1 Samtools 1.21 Nextflow 24.10 Seurat v5.1 Python 3.12
Prerequisites: Basic Linux CLI & Sequencing Formats
Module 07 • Alignment QA Track 18 • Practical Transcriptomics Hands-On Code Included

Module 7: Alignment Post-Processing & Quality Assessment with Samtools & Qualimap

Converting SAM to coordinate-sorted BAM with samtools, indexing, flagstat alignment rate validation, and comprehensive Qualimap RNA-seq diagnostics: 5'-to-3' gene body coverage bias, genomic origin, and saturation curves.

7. Alignment Quality Assessment with Samtools & Qualimap

High-quality RNA-seq alignments typically exhibit $\ge 80\text{–}90\%$ overall alignment rates. Qualimap RNA-seq verifies critical technical metrics:

  • 5' to 3' Gene Body Coverage: Checks for degradation. Strong 3' bias indicates RNA degradation during poly(A) capture; 5' bias indicates incomplete reverse transcription.
  • Genomic Origin Distribution: Healthy libraries show $\ge 70\text{–}85\%$ exonic reads. High intronic percentages (>20%) indicate pre-mRNA or genomic DNA contamination; high intergenic reads indicate unannotated transcripts or DNA carryover.
# Quick alignment summary statistics with samtools
samtools flagstat 04_alignment/Sample1.sorted.bam > 04_alignment/Sample1_flagstat.txt

# Comprehensive RNA-seq QC analysis with Qualimap
qualimap rnaseq \
  -bam 04_alignment/Sample1.sorted.bam \
  -gtf ref/Homo_sapiens.GRCh38.110.gtf \
  -outdir 04_alignment/qualimap_Sample1/ \
  -p strand-specific-reverse \
  --java-mem-size=8G
⚠️

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 chr1 or 1; divergent naming causes silent alignment drops.
Was this guide helpful to your research?
Help us maintain 100% accurate, peer-reviewed bioinformatics standards.
📝 Propose Edit on GitHub ↗