老规矩,先奉上学习资料链接:
GATK正确的发音为:"Gee-ay-tee-kay" (/dʒi•eɪ•ti•keɪ/),而不是:"Gat-kay" (/ɡæt•keɪ/) ,代表:Genome Analysis Toolkit中的粗体字母缩写。
它是一个命令行工具集合,用于分析高通量测序数据,主要用于识别变异。这些工具可以单独使用,也可以连接在一起形成完整的工作流。我们提供端到端的工作流,称为GATK最佳实践,为特定的用例量身定制。
从4.0版本开始,GATK包含Picard工具包,因此所有Picard工具都可以从GATK本身中获得。他们的文档可以在本网站的工具索引部分找到。
本次内容有:
- Preview the pipelines
- Quick start for the impatient
- Requirements
- Get GATK
- Install it
- Test that it works
- Run GATK and Picard commands
- Learn the Best Practices
- Run pipelines
- Get help
- Subscribe to forum notifications
1. Preview the pipelines
如果没有服务器可以练习,官网提到他们有一个云平台:cloud platform Terra,使用教程见:GATK on the Cloud with Terra。
2. Quick start for the impatient
- 在Linux或MacOSX上运行;不支持MS Windows。
- 确保你有Java 8 / JDK 1.8
- 下载GATK包:https://github.com/broadinstitute/gatk/releases或获取Docker镜像:https://hub.docker.com/r/broadinstitute/gatk/
- 有两个jars是有原因的,但不用担心;看下一点
- 通过“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. Requirements
需要unix操作系统,Java1.8,还有部分额外的R和Python依赖。相关依赖见:https://gatk.broadinstitute.org/hc/en-us/articles/360035889531。
强烈建议使用Docker容器系统,所有已发布的GATK4版本都可以在Dockerhub中找到预先打包的容器映像:https://hub.docker.com/r/broadinstitute/gatk/
如果你不能使用Docker,请使用我们提供的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. Get GATK
GATK包下载:https://github.com/broadinstitute/gatk/releases 或者Docker镜像:https://hub.docker.com/r/broadinstitute/gatk/。
下面的说明假设您已将GATK包下载到本地机器,并计划直接运行它。
下载后,会在结果目录中发现四个文件:
wget https://github.com/broadinstitute/gatk/releases/download/4.4.0.0/gatk-4.4.0.0.zip
unzip gatk-4.4.0.0.zip
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是用于其他一切(包括“本地”运行Spark工具,即在常规服务器或集群上)的jar。
那么,这是否意味着您每次都必须指定要运行哪个程序?不!看到里面的gatk文件了吗?这是您调用的可执行包装器脚本,它将根据命令行的其余部分为您选择合适的jar。
5. Install it
传统意义上不需要安装,因为预编译的jar文件应该可以在任何满足上面列出的要求的POSIX平台上工作。您只需要打开下载的包,并将包含jar文件和启动脚本的文件夹放在硬盘驱动器(或服务器文件系统)上一个方便的目录中。
在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. Test that it works
./gatk --help
可以成功调用出帮助文档:
image-20231108133928616.png7. Run GATK and Picard commands
工具索引部分列出了可用的工具,并详细描述了可用的选项:https://gatk.broadinstitute.org/hc/en-us/categories/360002369672。调用任何GATK或Picard工具的基本语法如下:
gatk [--java-options "jvm args like -Xmx4G go here"] ToolName [GATK args go here]
可以在这里找到有关GATK命令行语法的更多信息:https://gatk.broadinstitute.org/hc/en-us/articles/360035531892
例如,一个简单的GATK命令是这样的:
gatk --java-options "-Xmx8G" HaplotypeCaller -R reference.fasta -I input.bam -O output.vcf
Picard工具的语法
当在GATK中使用时,所有Picard工具都使用与GATK相同的语法。相对于“Picard”风格语法的转换非常简单;例如,I=input. bam,你现在做-I input.bam。例如,一个简单的Picard命令是这样的:
gatk ValidateSamFile -I input.bam -MODE SUMMARY
8. Learn the Best Practices
GATK最佳实践是端到端的工作流程:https://gatk.broadinstitute.org/hc/en-us/sections/360007226651,旨在为在高通量测序(HTS)数据中执行变体发现分析提供逐步建议。我们有几个这样的工作流是根据项目目标(根据感兴趣的变量类型)和实验设计(根据排序方法类型)量身定制的。虽然它们最初是为人类基因组研究设计的,但GATK最佳实践可以用于分析各种非人类生物体,包括非二倍体。
最佳实践的文档包括对所涉及过程的高级描述,解释更深入细节的各种文档,以及根据约束和用例可以做出的调整,这些建议的一组实际管道实现,以及可能是最重要的研讨会材料,包括幻灯片、视频和指导您完成每个步骤的教程。
9. Run pipelines
我们提供了GATK最佳实践工作流的脚本实现以及一些额外的辅助/辅助脚本,以便每个人都能更容易地运行这些有时相当复杂的工作流。
这些工作流是用WDL编写的,旨在在任何支持WDL执行的平台上运行。选项列在用户指南的流水线部分:https://gatk.broadinstitute.org/hc/en-us/articles/360035889771。我们的首选是 Cromwell 执行引擎,与GATK一样,它也是由Broad的数据科学平台(DSP)开发的,并且可以作为服务在我们的云平台Terra(以前称为FireCloud)上使用。
如果您选择通过Terra运行GATK工作流,则实际上不需要执行上述任何操作,因为所有内容都已经以随时可运行的形式预加载(软件、脚本,甚至一些示例数据)。在这一点上,这是运行工作流最简单的方法,就像我们在自己的工作中所做的那样。如上所述,我们已经在一个名为Terra的云平台上的预配置工作区中设置了所有的最佳实践管道,因此您可以尝试它们,而无需进行任何设置。您可以将结果与其他管道进行比较,也可以上传您自己的数据(私下和安全地)来测试我们的管道在这些管道上的表现。
这疯狂的推荐他们的云平台Terra,后面去看看要不要收费!!!
10. Get Help
我们通过非常活跃的社区论坛(https://gatk.broadinstitute.org/hc/en-us/community/topics)提供所有支持。您可以根据以下指导原则提出问题并报告可能遇到的任何问题:
在寻求帮助之前
在论坛上发表文章前,请做以下工作:
1.使用每个页面右上角的搜索框,它将搜索所有内容,包括用户指南和论坛。
2.如果有些东西不工作:
- 对所有输入文件运行验证检查,以确保它们的格式正确
- 请参阅用户指南中的“故障排除GATK4问题”部分:https://gatk.broadinstitute.org/hc/en-us/sections/360007226791,该部分涵盖了非错误的常见问题
- 在论坛中搜索以前的报告,例如使用错误消息
- 请再次尝试您正在使用的任何工具的最新版本
寻求帮助时
当询问一个问题时,请包括以下内容:
- 所有版本信息(GATK版本,Java,如果可能的话,您的操作系统)。
- 不要只是告诉我们你在遵循最佳实践——准确地描述你在做什么。
- 包括相关细节,例如平台,DNA或rna测序,WES(+捕获试剂盒)或WGS(无PCR或PCR+),配对或单端,读取长度,预期平均覆盖范围,体细胞数据等。
- 对于工具错误,包括您运行的完整命令和堆栈跟踪(_i.e.)。如果有的话,那就是终端输出中那一长堆难以读懂的软件官样文章。
- 对于格式问题,包括对bam运行ValidateSamFile或对vcf运行validatvariants的结果。
- 对于奇怪/意外的结果,包括一个说明性的例子,例如附上IGV截图,并详细解释为什么你认为结果是奇怪的-特别是如果你正在处理非人类数据。我们可能没有意识到你的不是常用物种。
我们通常会在一到两个工作日内回复您,但请注意,更复杂的问题(或不明确的报告)可能需要更长的时间来解决。另外,一年中有些时候我们特别忙,我们可能会比平时花更长的时间来回答你的问题。
我们可能会要求您提交一份正式的bug报告,其中包括向我们发送一些测试数据,我们可以使用这些数据自己重现问题。这通常是调试所需要的。请放心,我们将所有传输给我们的数据视为私人和机密。在某些情况下,我们可能会请求您的许可,在我们的测试框架中包含您的测试用例的片段,这是公开访问的。在这种情况下,您有责任与数据的所有者核实您是否被授权允许我们公开该数据。
请注意,本文档指南中的信息是针对最终用户的。对于开发人员来说,源代码和相关资源可以在GitHub上获得。
11. Subscribe to forum notifications
考虑订阅论坛通知和公告,这样当我们回答你的问题时,你就会收到一封电子邮件,当我们在博客上发布新内容时,这是了解新功能和机会的最佳方式。有关说明,请参阅此链接:https://gatk.broadinstitute.org/hc/en-us/articles/360035889511
这份教程写的真棒啊!当然指的原文~
网友评论