GATK 软件分析流程

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,恶意文件检测 1000次 1年
对象存储 OSS,内容安全 1000次 1年
简介: GATK 软件分析流程由阿里云和 Broad Institute 合作提供。Broad Institute 提供的 GATK 流程最佳实践用 工作流定义语言(WDL) 编写,通过批量计算集成的 Cromwell 工作流引擎解析执行。用户将为作业运行时实际消耗的计算和存储资源付费,不需要支付资源之外的附加费用。Broad Institute GATK 网站和论坛为 GATK 工具和 WDL 提供了更完整的背景信息,文档和支持。如果需要执行用 WDL 编写的通用工作流程,请参考 cromwell 工作流引擎和 WDL 支持的 APP 。

1. 准备

A) 使用 OSS 存储

要在批量计算上运行 GATK,输入、输出文件都需要保存在 OSS。所以,需要先开通 OSS 并创建好 Bucket。

注意:创建 Bucket 的区域,需要和运行批量计算的 GATK 区域一致。

B) 安装 batchcompute-cli 命令行工具

 pip install batchcompute-cli

安装完成后,还需要 配置 。

注意:当前最佳实践中使用的 GATK 相关软件版本信息如下:
  GATK: 4.0.0.0
  picard: 2.13.2
  genomes-in-the-cloud: 2.3.0-1501082129

2. 快速运行

本示例中,运行 Broad Institute 提供的 GATK4 版本全基因分析流程,该流程分为两步:

  第一步为 gatk4-data-processing 。

  第二步为 gatk4-germline-snps-indels 。

在配置好 bcs 工具后,执行如下命令:

bcs gen ./demo -t gatk

cd demo/gatk4-data-processing

sh main.sh # 运行gatk4-data-processing 流程

cd ../gatk4-germline-snps-indels

sh main.sh # 运行gatk4-germline-snps-indels 流程

这样您就在批量计算上运行了以上两个 GATK4 流程。

3. 命令详解

A) 生成示例

执行如下命令生成示例:

bcs gen ./demo -t gatk

它将生成以下目录结构:

demo

|-- Readme.md

|-- gatk4-data-processing

|   |-- main.sh

|   |-- src

|       |-- LICENSE

|       |-- README.md

|       |-- generic.batchcompute-papi.options.json

|       |-- processing-for-variant-discovery-gatk4.hg38.wgs.inputs.json

|       |-- processing-for-variant-discovery-gatk4.hg38.wgs.inputs.30x.json

|       |-- processing-for-variant-discovery-gatk4.wdl

|-- gatk4-germline-snps-indels

    |-- main.sh

    |-- src

        |-- LICENSE

        |-- README.md

        |-- generic.batchcompute-papi.options.json

        |-- haplotypecaller-gvcf-gatk4.hg38.wgs.inputs.json

        |-- haplotypecaller-gvcf-gatk4.hg38.wgs.inputs.30x.json

        |-- haplotypecaller-gvcf-gatk4.wdl

  gatk4-data-processing 目录中包括了运行 gatk4-data-processing 流程所需的所有配置和脚本。

  gatk4-germline-snps-indels 目录中包括了运行 gatk4-germline-snps-indels 流程所需的所有配置和脚本。

  每个目录下面的 main.sh 脚本封装了使用 bcs 工具提交作业的命令。

  src 目录下面包括了工作流实现代码。

B) 运行 gatk4-data-processing 流程

进入 demo/gatk4-data-processing 目录,运行 main.sh,该文件内容如下:

#!/bin/bash



# bcs asub cromwell -h for more



bcs asub cromwell gatk-job\

   --config ClassicNetwork=false\

   --input_from_file_WDL src/processing-for-variant-discovery-gatk4.wdl\

   --input_from_file_WORKFLOW_INPUTS src/processing-for-variant-discovery-gatk4.hg38.wgs.inputs.json\

   --input_from_file_WORKFLOW_OPTIONS src/generic.batchcompute-papi.options.json\

   --input_WORKING_DIR oss://demo-bucket/cli/gatk4_worker_dir/\

   --output_OUTPUTS_DIR oss://demo-bucket/cli/gatk4_outputs/\

   -t ecs.sn1.large -d cloud_efficiency

其中,部分参数描述为:

  input_from_file_WDL:WDL 流程描述文件路径。

  input_from_file_WORKFLOW_INPUTS:WDL 流程输入文件。

  input_from_file_WORKFLOW_OPTIONS:WDL 流程选项文件。

  input_WORKING_DIR:OSS上的目录,用来存储 WDL 流程中各个步骤生成的文件,bcs 会自动给您生成一个默认的路径。

  output_OUTPUTS_DIR:OSS 上的目录,用来存储 WDL 流程结束后生成的 metadata 文件,bcs 会自动给您生成一个默认的路径。

其他参数,请参考 bcs asub -h 命令。

如果希望使用此流程来运行自己的数据,需要修改 src/processing-for-variant-discovery-gatk4.hg38.wgs.inputs.json 文件中的 PreProcessingForVariantDiscovery_GATK4.flowcell_unmapped_bams_list 参数,指定存储在 OSS 上的 ubam 文件。

注意:该示例中的流程输入文件不是 FASTQ 格式,而是 unaligned BAM 文件。

C) 运行 gatk4-germline-snps-indels 流程

该流程的运行与 gatk4-data-processing 流程类似,参考上述章节。

  如果希望使用此流程来运行自己的数据,需要修改 src/haplotypecaller-gvcf-gatk4.hg38.wgs.inputs.json 文件中的 HaplotypeCallerGvcf_GATK4.input_bam 参数,修改为 gatk4-data-processing 流程输出的 bam 文件路径。

  将 HaplotypeCallerGvcf_GATK4.input_bam_index 参数修改为相应的索引文件路径。

4. 作业状态查询与日志

在提交作业后,如果看到以下信息,说明提交成功

Job created: job-0000000059DC658400006822000001E3

job-0000000059DC658400006822000001E3 即是当次提交作业的 ID。

查看作业状态:

bcs j   # 获取作业列表

bcs j job-0000000059DC658400006822000001E3 # 查看作业详情

查看作业日志:

bcs log job-0000000059DC658400006822000001E3

5. 验证结果

查看 OSS 空间中的输出数据:

bcs o ls oss://demo-bucket/cli/gatk4_worker_dir/

查看 metadata 文件:

bcs o ls oss://demo-bucket/cli/gatk4_outputs/

6. 如何分析 30X 的全基因组数据

A) 生成配置文件

执行上述步骤生成本示例时,会同时生成一个适用 30X 全基因组数据分析的配置:
  processing-for-variant-discovery-gatk4.hg38.wgs.inputs.30x.json
  haplotypecaller-gvcf-gatk4.hg38.wgs.inputs.30x.json

B) 修改 processing-for-variant-discovery-gatk4 配置文件

为分析 30X 样本,需要将 processing-for-variant-discovery-gatk4.hg38.wgs.inputs.30x.json 文件中的PreProcessingForVariantDiscovery_GATK4.flowcell_unmapped_bams_list 参数改为OSS 文件路径,该文件包括了需要分析的 30X 样本在 OSS 上的路径列表。

注意,30X 数据样本,格式为 unaligned BAM 文件。

C)修改 gatk4-data-processing 流程文件

找到 gatk4-data-processing 流程的 main.sh 文件,将其中的 --input_from_file_WORKFLOW_INPUTS 参数,修改为 src/processing-for-variant-discovery-gatk4.hg38.wgs.inputs.30x.json,加上 --timeout 172800 参数,并提交作业。

D) 修改 haplotypecaller-gvcf-gatk4 配置文件

将 haplotypecaller-gvcf-gatk4.hg38.wgs.inputs.30x.json 中的 HaplotypeCallerGvcf_GATK4.input_bam 参数修改为gatk4-data-processing 流程输出的 bam 文件路径。

将 HaplotypeCallerGvcf_GATK4.input_bam_index 参数修改为相应的索引文件路径。

E) 修改 gatk4-germline-snps-indels 流程文件

找到 gatk4-germline-snps-indels 流程的 main.sh,将其中的 --input_from_file_WORKFLOW_INPUTS 参数修改为 src/haplotypecaller-gvcf-gatk4.hg38.wgs.inputs.30x.json,加上 --timeout 172800 参数,并最后提交作业。

本文作者:阿里云批量计算团队
文章转自阿里云基因行业公众号,欢迎大家扫码关注

目录
相关文章
|
5月前
|
数据挖掘 数据库
化学成分检测材料分析流程丨样品分析流程方案
化学成分检测涉及样品准备、分析方法选择(如光谱、色谱、质谱、能谱法)、样品分析、数据解读、结果验证及报告撰写。此过程需依据样品类型和待测成分选择合适方法,并可能需专业机构协助。
|
1月前
|
敏捷开发 数据可视化 测试技术
解析软件项目管理:以板栗看板为例,其如何有效影响并优化软件开发流程
软件项目管理是一个复杂而重要的过程,涵盖了软件产品的创建、维护和优化。其核心目标是确保软件项目能够顺利完成,同时满足预定的质量、时间和预算目标。本文将深入探讨软件项目管理的内涵及其对软件开发过程的影响,并介绍一些有效的管理工具。
|
6月前
|
安全 测试技术 网络架构
【专栏】编写网络设备割接方案的七个步骤,包括明确割接目标、收集信息、制定计划、设计流程、风险评估、准备测试环境和编写文档。
【4月更文挑战第28天】本文介绍了编写网络设备割接方案的七个步骤,包括明确割接目标、收集信息、制定计划、设计流程、风险评估、准备测试环境和编写文档。通过实际案例分析,展示了如何成功完成割接,确保业务连续性和稳定性。遵循这些步骤,可提高割接成功率,为公司的网络性能和安全提供保障。
703 0
|
监控 数据可视化 算法
可视化分析算法:文档管理软件性能提升的关键
在文档管理软件中,可视化分析算法可以用于性能分析与优化,可以帮助提高用户体验、减少资源浪费和提高系统的效率。以下是一些步骤和方法,可以帮助你进行这方面的工作——
154 1
|
6月前
|
机器人
量化交易机器人系统开发详情源码/功能步骤/需求设计/稳定版
he development of a quantitative trading robot system involves multiple aspects, including strategy design, data processing, and transaction execution. The following is a detailed overview of the development strategy for a quantitative trading robot system:
|
6月前
|
自然语言处理 搜索推荐 算法
Metaforce佛萨奇2.0丨3.0系统开发稳定版/需求设计/功能说明/案例项目/逻辑方案/源码程序
Metaforce佛萨奇系统是一个基于人工智能技术的虚拟助手系统,
|
6月前
|
机器人 TensorFlow 算法框架/工具
量化交易机器人系统开发详细策略/需求步骤/逻辑方案/源码设计
auto nhwc_data = nhwc_Tensor->host<float>(); auto nhwc_size = nhwc_Tensor->size(); ::memcpy(nhwc_data, image.data, nhwc_size);
|
开发框架 运维 测试技术
ARBT(阿尔比特)智能合约系统开发稳定版/详细案例/步骤逻辑/需求方案/成熟技术/源码架构
需求分析:与客户充分沟通,了解其业务需求和期望,明确系统的功能和性能要求。
|
机器学习/深度学习 算法 数据挖掘
Sentieon DNAscope:适配多测序平台数据的快速精准分析流程
Sentieon DNAscope:适配多测序平台数据的快速精准分析流程
237 0
|
人工智能 机器人
AI智能自动交易量化机器人系统开发稳定版丨案例设计丨方案项目丨功能分析丨源码说明
When developing an AI automated quantitative trading robot system, it is first necessary to clarify the system's goals and requirements. Determine key factors such as the market, trading strategy, and risk control methods to be traded. Next, establish the basic framework for data acquisition and pro