本教程介绍了如何在 Batch 上运行 Nextflow 流水线。具体来说,本教程将运行 Nextflow 中的示例 rnaseq-nf 生命科学流水线,该流水线使用 RNA-Seq 从短读数据中量化基因组特征。
本教程面向想要将 Nextflow 与 Batch 搭配使用的 Batch 用户。
Nextflow 是一款用于编排生物信息学工作流的开源软件。
创建 Cloud Storage 存储桶
如需创建 Cloud Storage 存储桶来存储 Nextflow 流水线的临时工作文件和输出文件,请使用 Google Cloud 控制台或命令行。
控制台
如需使用 Google Cloud 控制台创建 Cloud Storage 存储桶,请按以下步骤操作:
gcloud
如需使用 Google Cloud CLI 创建 Cloud Storage 存储桶,请使用 gcloud storage buckets create 命令。
gcloud storage buckets create gs://BUCKET_NAME
将 BUCKET_NAME 替换为存储桶的全局唯一名称。
如果请求成功,输出应类似于以下内容:
Creating gs://BUCKET_NAME/...
   ```
配置 Nextflow
如需将 Nextflow 流水线配置为在 Batch 上运行,请在命令行中按以下步骤操作:
- 克隆示例流水线代码库: - git clone https://github.com/nextflow-io/rnaseq-nf.git
- 转到 - rnaseq-nf文件夹:- cd rnaseq-nf
- 打开 - nextflow.config文件:- nano nextflow.config- 该文件应包含以下 - gcb部分:- gcb { params.transcriptome = 'gs://rnaseq-nf/data/ggal/transcript.fa' params.reads = 'gs://rnaseq-nf/data/ggal/gut_{1,2}.fq' params.multiqc = 'gs://rnaseq-nf/multiqc' process.executor = 'google-batch' process.container = 'quay.io/nextflow/rnaseq-nf:v1.1' workDir = 'gs://BUCKET_NAME/WORK_DIRECTORY' google.region = 'REGION' }
- 在 - gcb部分中,执行以下操作:- 将 - BUCKET_NAME替换为您在前面步骤中创建的 Cloud Storage 存储桶的名称。
- 将 - WORK_DIRECTORY替换为流水线可用于存储日志和输出内容的新文件夹的名称。- 例如,输入 - workDir。
- 将 - REGION替换为要使用的区域。- 例如,输入 - us-central1。
- 在 - google.region字段之后,添加以下字段:- 添加 - google.project字段:- google.project = 'PROJECT_ID'- 将 - PROJECT_ID替换为当前 Google Cloud 项目的项目 ID。
- 如果您未使用 Compute Engine 默认服务账号作为作业的服务账号,请添加 - google.batch.serviceAccountEmail字段:- google.batch.serviceAccountEmail = 'SERVICE_ACCOUNT_EMAIL'- 将 - SERVICE_ACCOUNT_EMAIL替换为您为此教程准备的作业服务账号的电子邮件地址。
 
 
- 如需保存所做的修改,请执行以下操作: - 按 - Control+S键。
- 输入 - Y。
- 按 - Enter键。
 
运行流水线
使用命令行运行示例 Nextflow 流水线:
../nextflow run nextflow-io/rnaseq-nf -profile gcb
流水线会使用您在上一步中提供的设置运行一个小型数据集。此操作最多可能需要 10 分钟才能完成。
流水线运行完毕后,输出应类似于以下内容:
N E X T F L O W  ~  version 23.04.1
Launching `https://github.com/nextflow-io/rnaseq-nf` [crazy_curry] DSL2 - revision: 88b8ef803a [master]
 R N A S E Q - N F   P I P E L I N E
 ===================================
 transcriptome: gs://rnaseq-nf/data/ggal/transcript.fa
 reads        : gs://rnaseq-nf/data/ggal/gut_{1,2}.fq
 outdir       : results
Uploading local `bin` scripts folder to gs://example-bucket/workdir/tmp/53/2847f2b832456a88a8e4cd44eec00a/bin
executor >  google-batch (4)
[67/71b856] process > RNASEQ:INDEX (transcript)     [100%] 1 of 1 ✔
[0c/2c79c6] process > RNASEQ:FASTQC (FASTQC on gut) [100%] 1 of 1 ✔
[a9/571723] process > RNASEQ:QUANT (gut)            [100%] 1 of 1 ✔
[9a/1f0dd4] process > MULTIQC                       [100%] 1 of 1 ✔
Done! Open the following report in your browser --> results/multiqc_report.html
Completed at: 20-Apr-2023 15:44:55
Duration    : 10m 13s
CPU hours   : (a few seconds)
Succeeded   : 4
查看流水线的输出
流水线运行完成后,它会将输出文件、日志、错误或临时文件存储在 Cloud Storage 存储桶的 WORK_DIRECTORY 文件夹中的 results/qc_report.html 文件内。
如需检查 Cloud Storage 存储桶的 WORK_DIRECTORY 文件夹中的流水线输出文件,您可以使用 Google Cloud 控制台或命令行。
控制台
如需使用 Google Cloud 控制台检查流水线的输出文件,请按以下步骤操作:
- 在 Google Cloud 控制台中,前往存储桶页面。 
- 在名称列中,点击您在上一步中创建的存储桶的名称。 
- 在存储分区详情页面上,打开 - WORK_DIRECTORY文件夹。
工作流运行的每个单独任务都有一个文件夹。每个文件夹都包含运行过的命令、输出文件以及流水线创建的临时文件。
gcloud
如需使用 gcloud CLI 检查流水线的输出文件,请使用 gcloud storage ls 命令。
gcloud storage ls gs://BUCKET_NAME/WORK_DIRECTORY
替换以下内容:
- BUCKET_NAME:您在前面的步骤中创建的存储桶的名称。
- WORK_DIRECTORY:您在- nextflow.config文件中指定的目录。
输出会列出流水线运行的每个单独任务对应的文件夹。 每个文件夹都包含运行过的命令、输出文件以及流水线创建的临时文件。