批量执行NGS分析
对于测序得到的大量数据,批量并自动执行NGS分析是提高工作效率的有效方式。
从搭建、执行NGS流程中可以看出,图形化的操作界面提供了友好、便捷的操作体验,但是当面临大批量的测序数据时,需要重复设置输入、输出、执行等步骤。为进一步提高NGS流程的执行效率,本章节介绍如何通过循环读取输入数据,批量运行NGS。同时,您也可以参考本示例,将批量运行的方法复制到其他的分析任务中。
配置命令行工具
批量执行分析需要通过命令行工具完成。请参考配置命令行工具章节,下载命令行工具并完成配置。
获取NGS作业配置文件
编写NGS作业配置文件有两种方式,建议您使用第一种,通过获取已经执行成功的NGS配置文件,并在该配置文件基础上进行修改,得到可以用于批量执行NGS的配置文件。本示例介绍使用方法一获取配置文件的方法。
- 方式一
- 方式二
使用命令行工具完成NGS流程的搭建,进而获取相应的配置文件。详细的操作请参见命令行工具。
- 使用switch命令进入NGS流程所在的项目。
例如,使用health switch project ngs-project命令进入到名为ngs-project的项目中。
- 使用health get job命令获取该项目下所有的作业信息。
- 查询NGS作业对应的job-id,使用health get job job-id命令获取NGS作业的信息。使用health get workflow命令查询NGS作业对应的workflow-id。获取到的作业信息如图1所示。
- 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
![点击放大](https://support.huaweicloud.com/bestpractice-eihealth/zh-cn_image_0000001157958577.png)
![](https://support.huaweicloud.com/bestpractice-eihealth/public_sys-resources/note_3.0-zh-cn.png)
- 如果执行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' ...