Skill: genome-variant-calling
Use When
- User wants to call germline variants (SNPs, indels) from a deduplicated BAM.
- User needs to produce a VCF or GVCF for downstream joint genotyping.
- User wants to compare variant callers (GATK HaplotypeCaller vs DeepVariant).
- User is performing WGS or WES variant discovery.
Inputs
- Required:
- Deduplicated BAM file with index (
.bam+.bai). - Reference FASTA with
.faiindex and.dictsequence dictionary.
- Deduplicated BAM file with index (
- Optional:
- Caller choice:
gatkordeepvariant(default:gatk). - Intervals or BED file (for WES target regions).
- GVCF mode flag (emit reference confidence; default: off).
- Ploidy (default: 2).
- Output directory (default: current directory).
- Threads / memory allocation.
- Caller choice:
Workflow
- Validate that the BAM is sorted, indexed, and has read groups.
- If GATK: run
gatk HaplotypeCallerwith--emit-ref-confidence GVCF(if GVCF mode) or standard VCF output. - If DeepVariant: run via Docker or Singularity with the appropriate model type (
WGSorWES). - If intervals are provided (WES): restrict variant calling to target regions with padding.
- Index the output VCF/GVCF with
bcftools indexorgatk IndexFeatureFile. - Report variant counts: total variants, SNPs, indels, het/hom ratio, Ti/Tv ratio.
Output Contract
- VCF or gVCF file (
.vcf.gz). - VCF index (
.vcf.gz.tbi). - Variant summary statistics (total, SNPs, indels, het/hom ratio, Ti/Tv).
Limits
- GATK requires Java 17+.
- DeepVariant requires Docker or Singularity (GPU recommended for performance).
- Joint genotyping (GenomicsDBImport + GenotypeGVCFs) is a separate downstream step.
- Memory: ~4 GB per thread for GATK HaplotypeCaller; GPU recommended for DeepVariant.
- This skill handles single-sample calling; multi-sample joint calling is out of scope.
- Common failure cases:
- BAM missing read groups, causing GATK HaplotypeCaller to reject the input.
- Reference FASTA lacking
.dictor.faiindex files. - DeepVariant Docker/Singularity image not found or GPU driver mismatch.
微信扫一扫