GATK 软件分析流程

本文涉及的产品
对象存储 OSS,OSS 加速器 50 GB 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 参数,并最后提交作业。

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

目录
相关文章
|
Java Maven
maven报错:[ERROR] 不再支持源选项 7。请使用 8 或更高版本。
maven报错:[ERROR] 不再支持源选项 7。请使用 8 或更高版本。
976 0
|
小程序 Java 关系型数据库
weixin025移动学习平台的设计与实现+ssm(文档+源码)_kaic
基于微信小程序的移动学习平台旨在解决传统APP占用过多手机存储空间的问题,提升用户体验。该平台使用微信开发者工具开发前端,SSM框架和Java语言开发后台,并采用MySQL数据库保存数据。系统支持管理员对教师、课程、学生信息进行管理,教师可查看及审核作业,管理课程资源;学生能提交作业、查看审核结果并收藏或评论课程资源。此平台使用户无需安装独立APP即可访问学习内容,极大提升了便捷性和管理效率。 关键词:基于微信小程序的移动学习平台;微信开发者工具;SSM框架
数据知识产权登记服务上线了!
数据知识产权登记服务上线了!
314 1
|
传感器 vr&ar Android开发
基于Arduino的智能眼镜
基于Arduino的智能眼镜
740 0
|
SQL 分布式计算 数据挖掘
阿里云MaxCompute携手华大基因打造精准医疗应用云平台,十万基因组计算成本降低至1000美金以内
华大基因是中国最领先的基因科技公司,华大基因为消除人类病痛、经济危机、国家灾难、濒危动物保护、缩小贫富差距等方面提供分子遗传层面的技术支持。让我们结合maxcompute的技术特点,看看如何助力华大基因。
2780 13
|
负载均衡 监控 前端开发
在Linux中,如何配置负载均衡器以分配网络流量?
在Linux中,如何配置负载均衡器以分配网络流量?
|
存储 NoSQL 测试技术
【Docker项目实战】使用Docker部署FileGator文件管理器
【4月更文挑战第17天】使用Docker部署FileGator文件管理器
564 2
|
存储 安全 Linux
深入Linux进程内核:揭开进程工作原理的神秘面纱
深入Linux进程内核:揭开进程工作原理的神秘面纱
611 0
|
存储 弹性计算 文件存储
阿里云文件系统SMB访问协议服务及使用指南
阿里云于2016年发布了支持NFS网络文件系统访问协议的阿里云文件系统。2017年3月,又增加了SMB文件系统访问协议的支持,正式对外公测。2018年1月,阿里云NAS SMB支持正式提供商业化服务。本文简单描述了SMB文件系统访问协议以及阿里云NAS支持的SMB协议功能,并简单介绍了该服务的使用场景以及使用流程。
7297 0

热门文章

最新文章