更新时间:2022-06-06 GMT+08:00
分享

批量执行NGS分析

对于测序得到的大量数据,批量并自动执行NGS分析是提高工作效率的有效方式。

从搭建、执行NGS流程中可以看出,图形化的操作界面提供了友好、便捷的操作体验,但是当面临大批量的测序数据时,需要重复设置输入、输出、执行等步骤。为进一步提高NGS流程的执行效率,本章节介绍如何通过循环读取输入数据,批量运行NGS。同时,您也可以参考本示例,将批量运行的方法复制到其他的分析任务中。

配置命令行工具

批量执行分析需要通过命令行工具完成。请参考配置命令行工具章节,下载命令行工具并完成配置。

获取NGS作业配置文件

编写NGS作业配置文件有两种方式,建议您使用第一种,通过获取已经执行成功的NGS配置文件,并在该配置文件基础上进行修改,得到可以用于批量执行NGS的配置文件。本示例介绍使用方法一获取配置文件的方法。

  • 方式一

    使用EIHealth平台完成NGS流程的搭建,并执行成功,然后在“分析作业”页面导出作业信息.yaml文件。

  • 方式二

    使用命令行工具完成NGS流程的搭建,进而获取相应的配置文件。详细的操作请参见命令行工具

  1. 使用switch命令进去NGS流程所在的项目。

    例如,使用health switch project ngs-project命令进入到名为ngs-project的项目中。

  2. 使用health get job命令获取该项目下所有的作业信息。
  3. 查询NGS作业对应的job-id,使用health get job job-id命令获取NGS作业的信息。使用health get workflow命令查询NGS作业对应的workflow-id。获取到的作业信息如图1所示。

    图1 NGS作业信息

  4. health get job -s命令获取启动分析作业的模板。依据模板要求,将步骤3中获取到的NGS作业信息和workflow-id填充至模板中,修改好的配置文件示例请参见NGS配置文件示例

    请将该模板保存为.yaml格式至本地,并在本地完成模板修改。例如,命名为ngs.yaml。

编写执行脚本并提交作业

运行分析作业时,流程中的每一个应用称之为一个任务(Task),通过循环读取Task的输入数据,可以实现作业的批量执行。

例如,您可以在本地创建.bat格式的批处理文件,执行该脚本即可批量运行NGS分析作业。

@echo off

set list="task-1-fastp.fastq-file1=asset0331:/ngs/NA12878_0.R1.fastq.gz;task-1-fastp.fastq-file2=asset0331:/ngs/NA12878_0.R2.fastq.gz" "task-1-fastp.fastq-file1=asset0331:/ngs/NA12878_0.R1.fastq.gz;task-1-fastp.fastq-file2=asset0331:/ngs/NA12878_0.R2.fastq.gz"

health switch project ngs-project

for %%a in (%list%) do (
	echo %%a
	health create job -y D:\test\ngs.yaml -i %%a
	echo/
)
pause
图2 批处理文件说明
  • 如果执行NGS批量任务时需要变更不同的原始数据、参考基因序列、测序平台、文件前缀等,请参考上述批处理文件示例,将需要变更的数据补充完整。
  • .bat批处理文件需要和命令行工具放在同一路径下,同时,命令行工具需为登录状态。

NGS配置文件示例

NGS作业由十个Task执行完成,本示例以fastp和bwa-mem两个Task为例,介绍.yaml文件填写规则,完整的NGS配置文件请参考本示例以及获取NGS作业配置文件章节得到的作业信息和模板填写。

job:
  name: ngs-test
  description ''
  priority: 0
  timeout: 1440
  output_dir: ''
  workflow_id: ngs-workflow::1.0.0::ngs-project
  tasks:
  - task_name: task-1-fastp
    inputs:
    - name: fastq-file1 
      values:
      - 'ngs-project:/ngs/NA12878_0.R1.fastq.gz'
    inputs:
    - name: fastq-file2 
      values:
      - 'ngs-project:/ngs/NA12878_0.R2.fastq.gz'	
    resources:
      cpu: 0.1C
      memory: 0.1G
      gpu_type: ''
      gpu: '0'
  - task_name: task-2-bwa-mem
    inputs:
    - name: fq-file1
      values:
      - '${task-1-fastp.fq-file1}'
    - name: fq-file2
      values:
      - '${task-1-fastp.fq-file2}'
    - name: ref-file
      values:
      - 'ngs-project:/ngs/GCA_000001405.15_GRCh38_no_alt_plus_hs38d1_analysis_set.fna'
    - name: seq-platform
      values:
      - 'MGI'
    - name: sample-id
      values:
      - 'NA12878'
    resources:
      cpu: 16C
      memory: 10G
      gpu_type: ''
      gpu: '0'
...
分享:

    相关文档

    相关产品