运行 dsub

使用 dsub 编写脚本,然后在 Google Cloud 上运行批处理计算任务和工作流。

目标

完成本教程后,您将了解如何在 Google Cloud 上运行 dsub 流水线,以基于大型 DNA 序列二进制文件(BAM 文件)创建索引(BAI 文件)。

费用

在本文档中,您将使用 Google Cloud 的以下收费组件:

  • Compute Engine
  • Cloud Storage

您可使用价格计算器根据您的预计使用情况来估算费用。 Google Cloud 新用户可能有资格申请免费试用

准备工作

  1. 安装 Python 3.6+。如需详细了解如何设置您的 Python 开发环境,例如在您的系统上安装 pip,请参阅 Python 开发环境设置指南
  2. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  3. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  4. Make sure that billing is enabled for your Google Cloud project.

  5. Enable the Cloud Life Sciences, Compute Engine, and Cloud Storage APIs.

    Enable the APIs

  6. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  7. Make sure that billing is enabled for your Google Cloud project.

  8. Enable the Cloud Life Sciences, Compute Engine, and Cloud Storage APIs.

    Enable the APIs

创建 BAI 文件

完成以下步骤,以从 DNA 序列的大型二进制文件(BAM 文件)创建索引(BAI 文件)。数据来自 1,000 Genomes Project

  1. 克隆 databiOSphere/dsub GitHub 代码库:

    git clone https://github.com/databiosphere/dsub.git
  2. 切换到 dsub 工具的目录。该代码库包含一个预构建的 Docker 映像,该映像使用 samtools 建立索引。

    cd dsub
  3. 安装 dsub 及其依赖项:

    sudo python3 setup.py install
  4. 运行 dsub 工具以创建 BAI 文件,将 PROJECT_ID 替换为您的 Google Cloud 项目 ID,将 BUCKET 替换为您具有写入权限的 Cloud Storage 存储分区:

    dsub \
        --provider google-cls-v2 \
        --project PROJECT_ID \
        --logging gs://BUCKET/logs \
        --input BAM=gs://genomics-public-data/1000-genomes/bam/HG00114.mapped.ILLUMINA.bwa.GBR.low_coverage.20120522.bam \
        --output BAI=gs://BUCKET/HG00114.mapped.ILLUMINA.bwa.GBR.low_coverage.20120522.bam.bai \
        --image quay.io/cancercollaboratory/dockstore-tool-samtools-index \
        --command 'samtools index ${BAM} ${BAI}' \
        --wait

    samtools 命令在包含 --input 标志的数据文件上运行。流水线将输出文件和日志写入您的 Cloud Storage 存储分区。

  5. 要验证是否生成了 BAI 文件,请运行以下命令:

    gcloud storage ls gs://BUCKET
    

    该命令会返回以下响应:

    gs://BUCKET/HG00114.mapped.ILLUMINA.bwa.GBR.low_coverage.20120522.bam.bai
    

清除数据

完成本教程后,您可以清理您创建的资源,让它们停止使用配额,以免产生费用。以下部分介绍如何删除或关闭这些资源。

删除项目

为了避免产生费用,最简单的方法是删除您为本教程创建的项目。

如需删除项目,请执行以下操作:

  1. In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  2. In the project list, select the project that you want to delete, and then click Delete.
  3. In the dialog, type the project ID, and then click Shut down to delete the project.

后续步骤

如需详细了解如何在本地使用 dsub 进行开发,或使用 dsub 扩展到 Google Cloud 上的多个任务,请参阅 GitHub 上的 dsub 文档