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

本文介绍了GATK 4.1.8.1版本的基因组分析工具,包括其在SNP/Indel检测、CNV/SV分析、工作流程、最佳实践和云计算平台的应用。学习如何下载、安装、测试并遵循GATK Best Practices进行变异发现和数据处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

232e86eb064a53e9e77c8a6505831ebc.png

  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ʒieɪ•tikeɪ/),而不是“Gat-kay(/ɡætkeɪ/),代表基因组分析工具包,是一组用于分析高通量测序数据的命令行工具的集合,主要集中在变体 (或称为变异)发现上。

  这些工具可以单独使用,也可以链接、整合在一起形成完整的工作流 (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. 运行GATKPicard命令

8. 学习最佳实践

9. 管道运行

10. 得到帮助

11. 订阅论坛通知

1. 预览管道

  如果你还不确定是否真的需要在工作中使用GATK,那么应该考虑在不做任何实际工作的情况下先简单测试软件的使用。要做到这一点,可以考虑使用GATK的云平台Terra (https://app.terra.bio/),可以让你更容易开始使用GATK

  GATK团队已经在预先配置的工作空间中 (https://app.terra.bio/#library/showcase)设置了所有的最佳实践管道,这样你就可以点击它们,看看它们是如何工作的,并检查它们对示例数据产生的结果。你也可以上传你自己的数据(私密且安全的),来测试管道在这些数据上的表现。

  作为补充,GATK团队还推出了新的教程,使用同样位于TerraJupyter 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. 快速开始

· LinuxMacOSX上运行,不支持MS Windows

· 确保你有Java 8/JDK 1.8 (OracleOpenJDK都没关系)

· 下载GATK包或者在这里获取Docker镜像:

https://github.com/broadinstitute/gatk/releases

https://hub.docker.com/r/broadinstitute/gatk/

7cb90fd62f788a9fe98f54832b884868.png 40878832c83995814777a7c3b3f07b4f.png

· 有两个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

  然而,一些工具有额外的RPython依赖。这些依赖(及其基本的系统需求)在这里会详细描述: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. 执行命令GATKPicard

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

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-SeqWES(+捕获试剂盒)WGS(PCRPCR+)、配对或单端、读取长度、预期平均覆盖率、体细胞数据等。

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.jargatk-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-

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

de89a90de5e9ca3205fb2b0e2f133c94.png

59df3f077f4b06bb3f1da2d411e68087.png

3cab421fb51375c081d86045a477b8b4.png

3f1a5ac93b19e2b611294eb8fcc2ace0.png

252c4be3e4340faec70aa7ffe6b1080f.png

84d26bbd00d09efa16759a1316a736e8.png

11d72dd2b0333de6e39ccab3c64670cc.png

271adc229ffeb6fb6badfcac74f382b5.png

d290a673b1fb9f8242a1ee0056568419.png

aca8a3c6967bab6d90350c8fe0a26ef3.png

95c1f5cbccd30dc3847b8732e1929478.png

2eb82dea1e2db8ee272eadf6fe5bbbbb.png

ac155cec5434996a24218bee9723047f.png

563248d68242e4e8848c913cbfa34a61.png

56e9dd57526416ae84b53349fea315ff.png

cb278093dfe382ae21914fe2dd365ec0.png

51729995e5bc4307e754dab9e5022a24.png

cb1ebee85e1e50ba6673232215f4628d.png

4b1717255155d048e6750b076d09e1c2.png

b3f4e63599861d95ce20313ad61e4202.png

619423ad4b6aa807d7e42f69aa6edd55.png

12598e305ae1284517be4b64cfc0c607.png

1a3ca09cfab87675c67590dc5227b7f7.png

35c39af27d778f0804b6e90ae30058a5.png

30b8d5f08d8f85693362ff0419162722.png

d434a23f25fe8a71cf373e63388f6553.png

dbf5701a2d541bdbe4b2541cfb034614.png

b7d28cc92e4bd625289db2ce062b3804.png

机器学习

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

cc47c1915a06c06a925ae827543b6977.png

719464871f64ee71ded9d44b10fadf80.png

aad95e7a5df3d7c74f948704cf5651c1.png

Linux上安装并运行GATK(Genome Analysis Toolkit)的详细步骤通常涉及以下几个部分: **一、下载和安装Java** GATK需要Java 8或更高版本。首先确保你的系统已经安装了Java,如果没有,可以访问Oracle官网下载并安装:https://www.oracle.com/java/technologies/javase-jdk8-downloads.html **二、从官方网站下载GATK** 访问GATK官网(https://software.broadinstitute.org/gatk/downloads/index.html),选择适用于你操作系统的版本(如Ubuntu, CentOS等)。这里以下载最新稳定版为例,点击"Download GATK",然后选择"GenomeAnalysisTK_latest.tar.gz" 下载。 **三、解压文件** 将下载的GATK压缩包上传到服务器,然后解压: ```sh tar -xvf GenomeAnalysisTK_latest.tar.gz ``` 这将创建一个包含GATK工具的目录,通常叫 "GenomeAnalysisTK-X.X.X",其中X.X.X是版本号。 **四、配置环境变量** 为了让系统能够直接识别GATK,需要添加bin目录到PATH环境变量。在bash shell中编辑`.bashrc`或`.bash_profile`: ```sh export PATH=$PATH:/path/to/GenomeAnalysisTK-X.X.X/bin ``` 保存并关闭文件,然后运行 `source ~/.bashrc` 或重启终端使其生效。 **五、验证安装** 现在你可以试试看是否能运行GATK: ```sh gatk --version ``` 这应该会显示GATK的版本信息。 **六、运行CreateSequenceDictionary** 最后,使用刚安装的GATK执行`CreateSequenceDictionary`命令: ```sh gatk CreateSequenceDictionary \ -R /mnt/f/C. lanceoleosa_genomeXYYC.LG.fasta \ -O /mnt/f/C. lanceoleosa_genomeXYYC.LG.dict ``` 这里的 `-R` 参数是参考序列文件,`-O` 参数指定输出字典文件。 **注意**: - 如果遇到“command 'gatk' not found”这类错误,确保已经添加了GATK bin到PATH,并且输入的命令无误。 - 指定的文件路径需替换为实际存在的文件路径。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值