查看原文
其他

GATK官方教程 / 概述及工作前的布置

YSX@Tumour 生信宝典 2022-09-19

  GATK是基因组分析工具包,基于Linux环境,专注于变异发现。GATK是鉴定胚系DNA和RNAseq数据中的SNP和Indel的行业标准。
  GATK的研究范围现已扩大到包括体细胞短变体呼叫 (Somatic short variant calling),并涉及拷贝数 (CNV)和结构变异 (SV)。
  除了变异调用者 (Variant callers)本身之外,GATK还包括许多用于执行相关任务的实用程序,如高通量测序数据的处理、质量控制,并捆绑了流行的Picard工具包。
“Calling”怎么理解合适?
  在遗传物质的变异分析领域,“Call” 这个词似乎不是遗传学上的权威名词,可能只是某个软件 (如GATK)自定定义或习惯性的称呼。
  “Call” 的原理是:① 在这些软件找到具体的SNP/Indel等突变之前,变异信息已经存在于Bam文件中了;② GATK等软件只是进一步参照“参考基因组 + Bam文件”将突变形式“提取”、“呼叫”出来;③ 只处理和保留突变信息、基因型等核心信息,会不可逆地舍弃其它信息,例如:测序的碱基序列及其质量值,基因组比对的细节 (只留下测序深度和基因型质量等),野生型及未覆盖区 (Wild type & No call,Wild type会被记录到“Genomic VCF”即gVCF中,普通VCF文件的野生型和未覆盖区均被扔掉,这对于后期如何将N个单样本VCF文件,合并为单个含N个样本的文件,有重大影响)。
  “Call” 的算法:是另一个议题,需要参考GATK等专业软件的相关技术文档,这里不再描述。
   在实践过程中,可以将“Call”简单地理解为 (变异)“检测”;Call 之后一般是VCF文件,此时与Bam文件就非常不同了,因为如上所述,只“Call”了基因型、测序深度、基因型质量等核心信息,且这些信息Bam文件并没有直接给出。即:Bam文件有A、T、G、C序列及其比对的详情,“Call”之后生成的VCF文件只有基因型、测序深度、基因型质量等围绕突变形式等信息,不再提供比对的详情,所以VCF文件比Bam文件小得多
  上面对“Call”的解读,仅限于遗传物质的变异分析领域。
  这些工具主要用于处理Illumina测序技术产生的外显子组和全基因组,但它们也可以用于处理各种其它技术和实验设计。虽然它最初是为人类遗传学而开发的,但自那以后,GATK已经进化到可以处理任何生物体的基因组数据,任何的倍性水平

如何启动GATK4

  GATK,正确发音为“Gee-ay-tee-kay”(/dʒi•eɪ•ti•keɪ/),而不是“Gat-kay”(/ɡæt•keɪ/),代表基因组分析工具包,是一组用于分析高通量测序数据的命令行工具的集合,主要集中在变体 (或称为变异)发现上。
  这些工具可以单独使用,也可以链接、整合在一起形成完整的工作流 (Pipeline)。GATK提供端到端的工作流程,称为GATK最佳实践 (GATK Best Practices),为特定的用例量身定制:

https://gatk.broadinstitute.org/hc/en-us/sections/360007226651-Best-Practices-Workflows

https://gatk.broadinstitute.org/hc/categories/360002302312

本文所列的网址如果有访问不了,不是网速不好,也不是网址过期,原因自己脑补。有时候刷新几次可能管用
  从4.0版本开始,GATK包含了一个Picard工具包 (https://gatk.broadinstitute.org/hc/en-us/articles/360035894751)的副本,所以所有的Picard工具都可以从GATK本身内获得,其文档可在GATK网站的工具索引(Tool Index: https://gatk.broadinstitute.org/hc/en-us/categories/360002369672)找到。

内容

1. 预览管道 (Pipeline,即打包的数据分析流程)
2. 快速入门
3. 系统及环境
4. 获得GATK
5. 安装
6. 测试否工作
7. 运行GATK和Picard命令
8. 学习最佳实践
9. 管道运行
10. 得到帮助
11. 订阅论坛通知
1. 预览管道
  如果你还不确定是否真的需要在工作中使用GATK,那么应该考虑在不做任何实际工作的情况下先简单测试软件的使用。要做到这一点,可以考虑使用GATK的云平台Terra (https://app.terra.bio/),可以让你更容易开始使用GATK。
  GATK团队已经在预先配置的工作空间中 (https://app.terra.bio/#library/showcase)设置了所有的最佳实践管道,这样你就可以点击它们,看看它们是如何工作的,并检查它们对示例数据产生的结果。你也可以上传你自己的数据(私密且安全的),来测试管道在这些数据上的表现。
  作为补充,GATK团队还推出了新的教程,使用同样位于Terra的Jupyter notebook,向你介绍管道每一步的逻辑、操作和结果。GATK团队已经在其受欢迎的研讨会系列中使用了这种方法,并取得了非常令人鼓舞的结果,未来他们计划将所有的教程作为Jupyter notebook提供。
  你可以在下面的链接中 (https://gatk.broadinstitute.org/hc/en-us/articles/360041155152-GATK-on-the-cloud-with-Terra)阅读更多关于如何、以及为什么你可以在Terra上开始使用GATK的内容。如果你最终喜欢上了它,甚至可以通过Terra来完成你所有的工作,但GATK团队并不期望它适合所有人。这一般是GATK团队授权给用户试用相关的工具、测试新版本的最好方式,而不需要预先投入大量的努力和精力。
2. 快速开始
· 在Linux或MacOSX上运行,不支持MS Windows
· 确保你有Java 8/JDK 1.8 (Oracle或OpenJDK都没关系)
· 下载GATK包或者在这里获取Docker镜像:
https://github.com/broadinstitute/gatk/releases
https://hub.docker.com/r/broadinstitute/gatk/

 

· 有两个jar是有原因的,不过不用担心,见下一点
· 通过GATK包装器脚本调用GATK,而不是直接调用任何一个jar
· 基本语法是:gatk [--java-options "-Xmx4G"] ToolName [GATK args],全部细节:
https://gatk.broadinstitute.org/hc/en-us/articles/360035531892
· 使用Terra工作区测试管道,了解每个工具的功能:
https://app.terra.bio/#library/showcase
· 如果需要帮助,可阅读《用户指南》 (https://gatk.broadinstitute.org/hc/en-us),并在论坛上提问 (https://gatk.broadinstitute.org/hc/en-us/community/topics)
3. 系统及环境
  大多数GATK4工具都有相当简单的软件需求:1个UNIX风格的操作系统,及Java 1.8。
  然而,一些工具有额外的R、Python依赖。这些依赖(及其基本的系统需求)在这里会详细描述:https://gatk.broadinstitute.org/hc/en-us/articles/360035889531
  因此,GATK团队强烈建议使用Docker容器系统,如果这是您的基础设施上的一个选项,而不是自定义安装。所有发布的GATK4版本都可以在这里的Docker hub (https://hub.docker.com/r/broadinstitute/gatk/)中找到预先打包好的容器映像。
  如果你不能使用Docker,请使用GATK团队提供的Conda环境来管理依赖,如Github库中README (https://github.com/broadinstitute/gatk/blob/master/README.md)描述的那样。
  你还需要Python 2.6或更高版本来运行gatk包装器脚本(如下所述)。

  如果在Java版本需求方面遇到困难,请参阅此文寻求帮助:https://gatk.broadinstitute.org/hc/en-us/articles/360035532332

4. 获得GATK

  下载GATK包或获取Docker映像的网址链接,在上文中已列出。下面的说明将假设你下载了GATK包到你的本地设备,并打算直接运行它。关于如何走Docker路线的说明,请参阅本教程。

下载并解压缩这些包(名为gatk-[version])后,你会在生成的目录中发现四个文件:

gatk

gatk-package-[version]-local.jar

gatk-package-[version]-spark.jar

README.md

  现在你可能会问,为什么有两个jar

  顾名思义,就是gatk-package-[version]-spark.jar是在Spark集群上运行Spark工具的jar包;而gatk-package-[version]-local.jar是用于其它所有平台的jar(包括“本地”运行Spark工具,例如在常规服务器或集群上)。

  这是否意味着您必须指定每次要运行哪一个?不!看到里面的gatk文件了吗?这是1个可以调用的可执行包装器脚本,它将根据命令行的其余部分为您选择合适的jar
  只要你想,你仍然可以调用一个特定的jar,但是直接使用gatk更容易,它还会负责设置一些参数,否则你必须手动指定。

5. 安装

  在传统意义上不需要安装,因为预编译的jar文件应该可以在任何满足上面列出的要求的POSIX平台上工作。您只需要打开下载的包,并将包含jar文件和启动脚本的文件夹放在硬盘驱动器(或服务器文件系统)上一个方便的目录中

  虽然jar文件本身不能简单地添加到您的PATH中,但是您可以使用gatk包装器脚本来做到这一点。请根据您使用的终端shell查找说明;在bash中,典型的语法是export PATH="/path/to/gatk-package/:$PATH"其中/path/to/gatk-package/gatk可执行文件所在位置的路径。请注意jar文件必须保持在与gatk相同的目录中,以使其工作。确保在路径中包含最终的/

  你也可以创建一个别名来执行在你的.bash_profile文件,这样只要输入gatk就会运行文件路径:alias gatk='/path/to/gatk-package/gatk'。

6. 测试gatk命令是否有效

  要测试是否可以成功调用GATK,请在终端应用程序中运行以下命令。这里假设您已经按照上面的建议将gatk添加到您的PATH中

./gatk  --help

  这应该输出调用语法的摘要,列出工具和调用特定工具的帮助文档的选项,以及主要的Spark选项(如果适用)。

7. 执行命令GATK和Picard

  工具索引部分列出了可用的工具,并对其进行了一些详细描述,还有可用的选项。调用任何GATK或Picard工具的基本语法如下:

gatk [--java-options "jvm args like -Xmx4G go here"] ToolName [GATK args go here]

  所以举个例子,一个简单的GATK命令会是这样的:

gatk --java-options "-Xmx8G" HaplotypeCaller -R reference.fasta -I input.bam -O output.vcf

  可以在这里找到更多关于GATK命令行语法的信息:https://gatk.broadinstitute.org/hc/en-us/articles/360035531892
  Picard工具的语法

  当从GATK内部使用时,所有Picard工具使用与GATK相同的语法。相对于“Picard风格”语法的转换是非常直接的;无论你过去做什么,例如I=input.bam,你现在做-I input.bam例如,一个简单的Picard命令会是这样的:

gatk ValidateSamFile -I input.bam -MODE SUMMARY

8. 学习最佳实践
  GATK最佳实践(网址见上文)是端到端的工作流程,旨在为在高通量测序(HTS)数据中执行变异(Variant)发现分析提供逐步(Step-by-step)的建议。
  GATK团队有几个这样的工作流程,可以根据项目的目标(根据感兴趣的变异类型)和实验设计(根据测序方法的类型)量身定制。而且,虽然它们最初是为人类基因组研究而设计的,但GATK最佳实践可以适用于各种非人类生物体的分析,包括非二倍体

  最佳实践的文档包括对所涉及过程的高层描述,各种类型的文档解释了更深入的细节,根据约束条件及用例可做出的调整,这些建议的一组实际管道实现,以及 (可能是最重要的)包括幻灯片、视频和指导大家完成每一步的研讨会材料。

9. 管道运行

  处理序列数据和执行变异发现所涉及的大部分工作都可以以管道脚本的形式自动完成,这通常包括某种形式的并行化,以加快执行速度。GATK团队提供了GATK最佳实践工作流的脚本实现,以及一些额外的辅助、附件脚本,以便让每个人更容易地运行这些有时相当复杂的工作流。
  这些工作流是用WDL (www.openwdl.org)编写的,并打算在任何支持WDL执行的平台上运行。在《用户指南》的流水线 (https://gatk.broadinstitute.org/hc/en-us/articles/360035889771)部分列出了相应的选项。GATK团队首选的选项是Cromwell (https://cromwell.readthedocs.io/en/stable/)执行引擎,它和GATK一样,也是由Broad的数据科学平台(DSP)开发的,可以作为服务在GATK的云平台Terra(https://app.terra.bio/,以前被称为FireCloud)上使用。

  如果您选择通过Terra运行GATK工作流,那么您实际上不需要执行上述任何一项,因为所有内容都已经以准备运行的形式预装好了(软件、脚本,甚至一些示例数据)。在这一点上,Terra是运行工作流最简单的方式,就像GATK团队在他们自己的工作中所做的那样。

  如上所述,GATK团队已经在名为Terra的云平台上的预配置工作区 (https://app.terra.bio/#library/showcase)中设置了所有的最佳实践管道,所以你可以在不做任何设置的情况下尝试它们。你可以将结果与其它管道进行比较,也可以上传自己的数据(私密且安全),以测试GATK的管道在这方面的表现如何。

10. 获得帮助

  GATK团队通过非常活跃的社区论坛 (https://gatk.broadinstitute.org/hc/en-us/community/topics)提供所有支持。您可以根据以下指导方针,提出问题并报告您可能遇到的任何问题:

在寻求帮助之前

  在论坛发帖前,请做好以下准备:

1.使用每个页面右上角的搜索框——它会搜索包括用户指南和论坛在内的所有内容。

https://gatk.broadinstitute.org/hc/en-us/categories/360002310591
https://gatk.broadinstitute.org/hc/en-us/community/topics

2. 如果碰到什么Bug:

· 对所有输入文件执行验证检查,确保它们都正确格式化
· 查看用户指南的“疑难解答GATK4问题”一节,它涵盖了不是Bug的常见问题:
https://gatk.broadinstitute.org/hc/en-us/sections/360007226791
· 在论坛上搜索以前的报告,例如:使用错误信息
· 请再次尝试您正在使用的任何工具的最新版本
寻求帮助时

  当问一个问题时,请包括以下内容:

1. 所有版本信息(GATK版本、Java、您的操作系统,如果可能)。
2. 不要只告诉GATK团队你在遵循最佳实践——准确描述你在做什么。
3. 包括相关细节,例如平台、DNA-或RNA-Seq、WES(+捕获试剂盒)或WGS(无PCR或PCR+)、配对或单端、读取长度、预期平均覆盖率、体细胞数据等。
4. 对于工具错误,包括您运行的完整命令和stacktrace (_i.e.;如果终端输出中有一长堆不可读的软件官样文章)。
5. 对于格式问题,包括对bam运行ValidateSamFile或对vcf运行ValidateVariants的结果。
6. 对于奇怪/意外的结果,包括一个说明性的例子,例如附上IGV的截图,并详细解释为什么你认为这个结果很奇怪——特别是如果你在处理非人类数据。GATK团队可能没有意识到你的生物体的特殊性。

  GATK团队通常会在1~2个工作日内回复您,但请注意,更复杂的问题(或不明确的报告)可能需要更长的时间来解决。另外,一年中有些时候特别忙,可能需要比平时更长的时间来回答您的问题。

  GATK团队可能会要求您提交一份正式的bug报告,其中包括发送一些测试数据,GATK团队可以使用这些数据来自行重现问题。这是调试时经常需要的。请放心,GATK团队将所有传输来的数据视为私人和机密。在某些情况下,可能会请求您的允许,在测试框架中囊括您的测试案例,这是公开可访问的。在这种情况下,您有责任向拥有数据的人验证您是否被授权允许公开该数据。

  请注意,本文档指南中的信息针对最终用户。对于开发者来说,源代码和相关资源可以在GitHub (https://hub.docker.com/r/broadinstitute/gatk)上找到。

11. 订阅论坛通知

  考虑订阅论坛通知和公告,这样当回答你的问题时,当GATK团队在博客上发布新内容时,你就会收到一封电子邮件,这是了解新功能和机会的最好方式。有关说明,请参阅此链接 (https://gatk.broadinstitute.org/hc/en-us/articles/360035889511)。

一些问题

  从Github下载压缩版本,解压缩后,有了gatk-package-4.1.8.1-local.jar和gatk-package-4.1.8.1-spark.jar,可能看不到GenomeAnalysisTK.jar脚本。

资料来源

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

https://gatk.broadinstitute.org/hc/en-us/sections/360007226651-Best-Practices-Workflows

https://gatk.broadinstitute.org/hc/en-us/articles/360036194592-Getting-started-with-GATK4

https://gatk.broadinstitute.org/hc/en-us/articles/360035535912-Data-pre-processing-for-variant-discovery

https://gatk.broadinstitute.org/hc/en-us/articles/360037498992--How-to-Map-reads-to-a-reference-with-alternate-contigs-like-GRCH38

https://gatk.broadinstitute.org/hc/en-us/articles/360035894731-Somatic-short-variant-discovery-SNVs-Indels-

https://gatk.broadinstitute.org/hc/en-us/articles/360035535892-Somatic-copy-number-variant-discovery-CNVs-

往期精品(点击图片直达文字对应教程)

机器学习

后台回复“生信宝典福利第一波”或点击阅读原文获取教程合集


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存