在 Batch 上运行 Nextflow 流水线以编排作业

本教程介绍了如何在 Batch 上运行 Nextflow 流水线。具体来说,本教程将运行 Nextflow 中的示例 rnaseq-nf 生命科学流水线,该流水线使用 RNA-Seq 从短读数据中量化基因组特征。

本教程面向想要将 Nextflow 与 Batch 搭配使用的 Batch 用户。

Nextflow 是一款用于编排生物信息学工作流的开源软件。

创建 Cloud Storage 存储桶

如需创建 Cloud Storage 存储桶来存储 Nextflow 流水线的临时工作文件和输出文件,请使用 Google Cloud 控制台或命令行。

控制台

如需使用 Google Cloud 控制台创建 Cloud Storage 存储桶,请按以下步骤操作:

  1. 在 Google Cloud 控制台中,前往存储桶页面。

    进入“存储桶”

  2. 点击 创建

  3. 创建存储桶页面上,为存储桶输入一个全局唯一的名称

  4. 点击创建

  5. 系统将禁止公开访问窗口中,点击确认

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 上运行,请在命令行中按以下步骤操作:

  1. 克隆示例流水线代码库:

    git clone https://github.com/nextflow-io/rnaseq-nf.git
    
  2. 转到 rnaseq-nf 文件夹:

    cd rnaseq-nf
    
  3. 打开 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'
    }
    
  4. gcb 部分中,执行以下操作:

    1. BUCKET_NAME 替换为您在前面步骤中创建的 Cloud Storage 存储桶的名称。

    2. WORK_DIRECTORY 替换为流水线可用于存储日志和输出内容的新文件夹的名称。

      例如,输入 workDir

    3. REGION 替换为要使用的区域。

      例如,输入 us-central1

    4. google.region 字段之后,添加以下字段:

      1. 添加 google.project 字段:

        google.project = 'PROJECT_ID'
        

        PROJECT_ID 替换为当前 Google Cloud 项目的项目 ID。

      2. 如果您未使用 Compute Engine 默认服务账号作为作业的服务账号,请添加 google.batch.serviceAccountEmail 字段:

        google.batch.serviceAccountEmail = 'SERVICE_ACCOUNT_EMAIL'
        

        SERVICE_ACCOUNT_EMAIL 替换为您为此教程准备的作业服务账号的电子邮件地址。

  5. 如需保存所做的修改,请执行以下操作:

    1. Control+S 键。

    2. 输入 Y

    3. 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 控制台检查流水线的输出文件,请按以下步骤操作:

  1. 在 Google Cloud 控制台中,前往存储桶页面。

    进入“存储桶”

  2. 名称列中,点击您在上一步中创建的存储桶的名称。

  3. 存储分区详情页面上,打开 WORK_DIRECTORY 文件夹。

工作流运行的每个单独任务都有一个文件夹。每个文件夹都包含运行过的命令、输出文件以及流水线创建的临时文件。

gcloud

如需使用 gcloud CLI 检查流水线的输出文件,请使用 gcloud storage ls 命令

gcloud storage ls gs://BUCKET_NAME/WORK_DIRECTORY

替换以下内容:

  • BUCKET_NAME:您在前面的步骤中创建的存储桶的名称。

  • WORK_DIRECTORY:您在 nextflow.config 文件中指定的目录。

输出会列出流水线运行的每个单独任务对应的文件夹。 每个文件夹都包含运行过的命令、输出文件以及流水线创建的临时文件。