保姆级教程:用GATK4从鸡的fastq数据到vcf文件,手把手搞定全流程(附避坑指南)
保姆级教程用GATK4从鸡的fastq数据到vcf文件全流程实战第一次接触GATK流程时面对复杂的参数和报错信息我曾在实验室熬到凌晨三点——直到发现-R参数里少写了一个反斜杠。这份教程将用鸡基因组案例带你完整走通从原始数据到变异检测的全流程重点标注那些教科书不会告诉你的实战细节。1. 环境准备与参考基因组处理工欲善其事必先利其器。建议使用conda管理生物信息学软件环境conda create -n gatk4 python3.8 conda install -c bioconda gatk44.2.6.1 bwa0.7.17 samtools1.12鸡参考基因组Gallus_gallus.GRCg6a.dna.primary_assembly.fa需从Ensembl下载注意处理大基因组文件的特殊要求# 建立BWA索引耗时约2小时 bwa index -a bwtsw GRCg6a.fa # 生成FASTA索引 samtools faidx GRCg6a.fa # 创建序列字典注意O参数需与参考基因组同名 gatk CreateSequenceDictionary -R GRCg6a.fa -O GRCg6a.dict避坑提示当看到java.lang.OutOfMemoryError错误时需调整JVM内存参数例如gatk --java-options -Xmx4g CreateSequenceDictionary -R GRCg6a.fa2. 原始数据比对与BAM处理假设我们有一对鸡的WGS测序数据sample1_R1.fq.gz和sample1_R2.fq.gz比对时最关键的是正确设置RG头信息bwa mem -t 8 -M -Y -R RG\tID:sample1\tSM:sample1\tLB:WGS\tPL:ILLUMINA \ GRCg6a.fa sample1_R1.fq.gz sample1_R2.fq.gz | \ samtools view -Sb - sample1.raw.bam常见问题排查表错误现象可能原因解决方案最终vcf为空文件RG头信息错误用samtools view -H sample1.bam | grep RG验证比对速度极慢未使用-Y参数添加-Y参数处理Illumina长读段内存溢出未限制线程数根据服务器核心数调整-t参数后续BAM处理流程包含三个关键步骤排序与去重需30GB内存samtools sort - 8 -o sample1.sorted.bam sample1.raw.bam gatk MarkDuplicates -I sample1.sorted.bam -O sample1.markdup.bam \ -M sample1.metrics.txt --REMOVE_DUPLICATES true生成索引文件samtools index sample1.markdup.bam质量评估可选但推荐samtools flagstat sample1.markdup.bam sample1.flagstat.txt3. 变异检测与gVCF生成单样本变异检测使用HaplotypeCaller时建议先生成gVCF格式以便后续群体分析gatk HaplotypeCaller \ -R GRCg6a.fa \ -I sample1.markdup.bam \ -O sample1.g.vcf.gz \ -ERC GVCF \ --native-pair-hmm-threads 8关键参数解析-ERC GVCF生成分区间隔的gVCF文件-stand-call-conf 30可调整变异检测置信度阈值--disable-read-filter根据数据质量选择性关闭过滤性能优化技巧添加--java-options -Xmx32g可提升大基因组处理效率但需确保服务器有足够内存。4. 群体分析与VQSR质控当处理多个样本时推荐的工作流程是合并gVCF文件适用于10样本find . -name *.g.vcf.gz gvcf.list gatk CombineGVCFs -R GRCg6a.fa -V gvcf.list -O cohort.g.vcf.gz联合基因分型gatk GenotypeGVCFs \ -R GRCg6a.fa \ -V cohort.g.vcf.gz \ -O raw_variants.vcf.gzVQSR质控需准备已知变异集gatk VariantRecalibrator \ -R GRCg6a.fa \ -V raw_variants.vcf.gz \ --resource:known_sites chicken_dbSNP.vcf \ -an QD -an FS -an SOR -an MQ -an MQRankSum -an ReadPosRankSum \ -mode SNP \ -O snp.recal \ --tranches-file snp.tranchesVQSR过滤指标阈值参考指标优质变异阈值说明QD2.0质量深度比FS60.0链特异性偏差SOR3.0链比值MQ40.0映射质量最后应用过滤规则生成最终结果gatk ApplyVQSR \ -R GRCg6a.fa \ -V raw_variants.vcf.gz \ -O filtered_variants.vcf.gz \ --truth-sensitivity-filter-level 99.0 \ --tranches-file snp.tranches \ --recal-file snp.recal \ -mode SNP记得用bcftools stats filtered_variants.vcf.gz评估最终变异集质量。当看到转换/颠换比率在2.0-2.1范围内时通常说明数据分析流程运行良好。