用gatk进行二代测序数据snp calling流程 以及对代码的解析
时间: 2024-09-23 08:09:14 浏览: 173
GATK (Genome Analysis Toolkit) 是一款广泛用于遗传学研究的工具包,尤其适用于第二代高通量测序数据(如Illumina)的分析,其中Snp Calling(单核苷酸多态性检测)是一个关键步骤。以下是使用GATK进行SNP Calling的一般流程:
1. **数据预处理**:
- 使用BWA、SAMtools等工具将原始FASTQ文件对齐到参考基因组上,得到 BAM 文件。
- 使用Picard或Samtools进行排序和标记 duplicates (重复读取),以减少噪音。
2. **局部真实ignment和realignment**:
- 如果需要,运行GATK的IndelRealigner,针对插入删除事件进行校正。
3. **Base Recalibration**:
- 使用GATK的BaseRecalibrator工具生成质量评分模型,以修正测序错误。
4. **Variant Calling**:
- 使用HaplotypeCaller (GATK 3.x及以上版本) 或 GATK Variant Discovery Workflow (GATK 2.x版本) 进行SNP和InDel的联合检测。
- HaplotypeCaller会尝试从序列数据中组装出每个样本的haplotype块,并基于此推断变异信息。
5. **过滤和annoation**:
- 使用Variant Filtration模块(如Filter variants by annotation),应用一些标准过滤规则(如QD、DP、FS、MQRankSum等)筛选高质量的SNPs。
- 通过Annotator添加额外的信息,比如功能注释、数据库匹配等。
6. **VCF转换和报告生成**:
- 将结果转换成VCF (Variant Call Format) 格式,以便于后续分析和可视化。
代码解析:
GATK命令行通常包含多个步骤的组合,例如:
```bash
java -jar GenomeAnalysisTK.jar \
-T HaplotypeCaller \
-R reference.fa \
-I input.bam \
-o output.vcf \
--emitRefConfidence GVCF \
--variant_index_type LINEAR \
--variant_index_parameter 128000 \
--minPruning 3 \
--max_alternate_alleles 6
```
这里的参数含义:
- `-T` 指定工具类型 (HaplotypeCaller)
- `-R` 参考基因组文件
- `-I` 输入的BAM文件
- `-o` 输出的VCF文件
- `--emitRefConfidence GVCF` 生成Genotyping Likelihoods for every position in the genome,而不是只记录变异
- 其他选项如`--minPruning`控制最小的同源性支持来合并潜在的SNP
阅读全文