工具 | GATK: SNP/InDel检测 - 图1

GATK软件介绍

GATK是千人基因组计划中开发出来的进行基因组变异分析的软件。它包含很多命令,其中进行SNP/InDel分析的工具主要有两个:

  1. UnifiedGenotyper: 基于位点的比对结果分析SNP/InDel。
  2. HaplotypeCaller: 较新版本才有的命令,取代了UnifiedGenotyper。可以在表现出变异的位点区域使用比对上的reads进行局部的de novo组装,从而能得到更好的SNP/InDel分析结果。还能够很好地处理RNA-Seq的剪接性比对结果,从而可以利用转录组测序数据进行SNP/InDel分析。

HaplotypeCaller

进行SNP/InDel分析的输入文件有两个:

  1. 参考基因组fasta文件
  2. 比对到参考基因组上重测序样品的BAM文件(需要@RG信息,可以使用Picard的AddOrReplaceReadGroups添加)

分染色体进行/多染色体进行

  1. # 为什么分染色体进行?
  2. gatk --java-options "-Xmx10g -Djava.io.tmpdir=./tmp" HaplotypeCaller -R ../01.ref/genome.fasta -I ../02.mapping/S1.sort.markdup.bam -L chr1 -ERC GVCF -O S1/S1.chr1.g.vcf.gz 1>S1/S1.chr1.HC.log 2>&1

对多个分别使用HaplotypeCaller命令进行分析后,再通过GATK的CombineGVCFs命令将多个样品的文件整合到一起。

  1. gatk --java-options "-Xmx10g -Djava.io.tmpdir=./tmp" CombineGVCFs -R ../01.ref/genome.fasta -V gvcf.chr1.list -O chr1.g.vcf.gz 1>chr1.CombineGVCFs.log 2>&1

GenotypeGVCFs

两种方法

CombineGVCFs

分染色体进行,适合样品较少时使用

GenomicsDB

适合样品较多时使用

额外添加或减少样品时,很方便

  1. gatk --java-options "-Xmx10g -Djava.io.tmpdir=./tmp -DGATK_STACKTRACE_ON_USER_EXCEPTION=true" GenomicsDBImport --sample-name-map gvcf.chr1.map --genomicsdb-workspace-path genomeDB.chr1 -L chr1 --reader-threads 2 --batch-size 50 --tmp-dir ./tmp 1>chr1.GenomicsDBImport.log 2>&1

MergeVcfs

分染色体vcf文件合并

SNP/InDel提取和过滤

使用GATK的VariantFiltration命令对变异位点结果进行过滤。理论上,更好的过滤方法是根据已有的准确的变异位点,通过机器学习的方法对变异位点的质量得分进行矫正。

SNP

InDel

参考

github 地址:https://github.com/broadinstitute/gatk

https://gatk.broadinstitute.org/hc/en-us