Skill: genome-alignment-qc
Use When
- User wants to evaluate BAM quality before variant calling.
- User needs to assess coverage depth and uniformity across the genome or target regions.
- User wants to check mapping rate, duplication rate, and insert size distribution.
- User needs to calculate on-target rate for whole-exome sequencing (WES).
- User wants to compare QC metrics across samples to detect batch effects.
Inputs
- Required:
- BAM file with index (
.bam+.bai).
- BAM file with index (
- Optional:
- Target BED file (for WES on-target metrics).
- Reference FASTA (required for picard metrics).
- Output directory (default: current directory).
- Per-base coverage flag (enables mosdepth per-base output; default: off).
Workflow
- Run
samtools statsandsamtools flagstatfor mapping summary. - Run
samtools idxstatsfor per-chromosome read counts. - Run
mosdepthfor coverage distribution (genome-wide, or restricted to target BED). - If target BED provided: compute on-target rate and per-target coverage statistics.
- Run
picard CollectInsertSizeMetricsfor insert size distribution. - Run
picard CollectAlignmentSummaryMetricsfor detailed alignment statistics. - Compile summary: mapping rate, duplicate rate, mean coverage, coverage uniformity (CV), median insert size, on-target rate (if WES).
- Flag metrics outside recommended thresholds (see
knowledge/sources/genomics/quality-thresholds.md).
Output Contract
samtools statsandsamtools flagstatoutput files.mosdepthcoverage files (.mosdepth.global.dist.txt,.per-base.bed.gzif enabled).- Picard insert size metrics file and histogram.
- Picard alignment summary metrics file.
- Compiled QC summary with key metrics and threshold flags.
Limits
- samtools, mosdepth, and picard must be installed and available on
$PATH. - mosdepth per-base output can be very large for WGS (~10 GB for 30x human).
- Picard requires a Java runtime (Java 8+).
- Reference FASTA is required for picard metrics but not for samtools/mosdepth.
- This skill reports metrics for a single BAM; multi-sample comparison is out of scope.
- Common failure cases:
- BAM index (
.bai) missing or out of date relative to the BAM file. - Target BED file using different chromosome naming convention than the BAM (e.g.,
chr1vs1). - Picard failing due to missing reference FASTA sequence dictionary (
.dict).
- BAM index (
微信扫一扫