快速入门GATK

  • A+
所属分类:Bioinformatics

GATK,全称是Genome Anlysis Toolkit,顾名思义,是一套用于分析基因组的工具箱。主要功能是寻找变异位点和基因分型,但是实际上功能超多,导致初学者都不知道从何学习GATK。

最近因为mapping-by-sequencing要寻找variant,所以接触了GATK。我相信很多人第一眼看到GATK是茫然的,因为它的功能实在是太多了,都不知道从何开始。这里就说下我是如何在一脸茫然的情况下学习GATK。

GATK的功能虽然超级多,但主要可以归为以下几个方面

  • 诊断和质量控制工具(Diagnostics and Quality Control Tools)
  • 序列数据处理工具(Sequence Data Processing Tools)
  • 变异位点探索工具(Variant Discovery Tools)
  • 变异位点评估工具(Variant Evaluation Tools)
  • 变异位点操作工具(Variant Manipulation Tools)
  • 注释模块
  • 读段(reads)过滤
  • 资源文件解码工具
  • 参考序列实用工具

如何快速建立GATK的心理表征

这里面的每一项点开都有好多内容,我第一次点开的时候,也是一脸茫然,不知道从何入手。

但是根据《认知学习法》,最好的学习方式就是“不要怂,直接上”,找到一个已有流程,先把代码敲上去,然后慢慢理解每一行代码的作用,建立一个模糊的心理表征,然后循序渐进,慢慢学习其他工具,最后就能熟练使用GATK了。

所以记下来主要的任务,就是带大家建立关于GATK的模糊概念。

mapping-by-sequencing其中一个重要环节就是“SNP calling”,我最初用的是samtoolsbcftools,结果的variant特别多(估计很多是假阳性).虽然最后还是找到了causual mutation, 但是为了保证今后causual mutation的准确性,我发现了有文章使用了GATK。他给的代码如下:

第一步: 不管三七二十一直接把代码自己敲一遍。
第二步: 读每行代码的解释,理解他的意图

  1. 用了picard toolsAddOrReplaceReadGroups.jar加了read group,根据以前百度GATK的经验,了解GATK要求bam文件的header必须包含@RG,所以这一步应该是前面比对时候,没有在参数中增加相应部分。所以如果我在比对的时候增加了这个参数,这一步就可以免了。
  2. picard toolsMarkDuplicates.jar去重。这是因为二代测序有一部桥式PCR扩增底物的过程,在100x以上出现reads重复,很大可能是PCR扩增重复了,所以可以直接去掉。
  3. samtoolsindex,建立索引,提高检索效率。
  4. 先建立indel区间文件,然后对该区域进行reads重比对。这一步我没有经验,然后我在GATK的论坛搜索了这个工具,发现原因是indel会导致附近的错配,所以需要借由这一步降低indel附近的假阳性。但是最新的HaplotypeCaller or MuTect2已经不需要了,这些工具的haplotype组装步奏效果类似。这里的UnifiedGenotyper or the original MuTect.还是要的。
  5. 使用UnifiedGenotyper寻找variant。论坛搜索发现,现在推荐用HaplotypeCaller,效果更好。
  6. 根据上一步得到vcf文件对第四步得到BAM文件进行碱基重校准,得到校准所需的文件。
  7. 使用PrintReads根据第6步得到的文件,对第四步得到的BAM文件进行校准
  8. 根据重校准的BAM文件重新找variant。
  9. 根据第8步的文件进行校准
  10. 输出第二次校准后BAM文件
  11. 第三次寻找variant。

第三步:根据上述过程对拟南芥中使用GATK寻找variant建立大致的认识:

  1. 常规步骤: 先比对,比对后把SAM转成BAM然后排序,建立索引,去除PCR重复
  2. 对indel附近进行重新比对
  3. 由于拟南芥没有已知的VCF文件让UnifiedGenotyper学习,所以需要通两轮碱基校准和variant calling降低假阳性

第四步: 再看看别的流程,不断修改最初的认识。我通过翻文献又找到了一个perl脚本

好像和之前建立的模型不太一样呀,这里变成先找variant然后过滤了。
但是,这些流程所用的工具基本都来自于

  • 序列数据处理工具(Sequence Data Processing Tools)
  • 变异位点探索工具(Variant Discovery Tools)
  • 变异位点评估工具(Variant Evaluation Tools)

其实都是先找到variant,然后通过各种方法降低假阳性。

小结

总结一下
GATK常用套路就是先找variant,然后降低假阳性(例如BQSR, VQSR或直接过滤等)

有了这样一个大致印象后,我再去学习GATK Best Practices,就稍微有点思路了。

这些就是我这段日子学习GATK的感悟,不涉及到具体的操作。希望大家能够提供更多GATK相关的pipeline,让我能够不断更新自己的心理表征

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: