运行 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. 登录您的 Google Cloud 账号。如果您是 Google Cloud 新手,请创建一个账号来评估我们的产品在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。
  3. 在 Google Cloud Console 中的项目选择器页面上,选择或创建一个 Google Cloud 项目

    转到“项目选择器”

  4. 确保您的 Google Cloud 项目已启用结算功能

  5. 启用 Cloud Life Sciences, Compute Engine, and Cloud Storage API。

    启用 API

  6. 在 Google Cloud Console 中的项目选择器页面上,选择或创建一个 Google Cloud 项目

    转到“项目选择器”

  7. 确保您的 Google Cloud 项目已启用结算功能

  8. 启用 Cloud Life Sciences, Compute Engine, and Cloud Storage API。

    启用 API

创建 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 文件,请运行以下命令:

    gsutil ls gs://BUCKET
    

    该命令会返回以下响应:

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

清理

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

删除项目

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

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

  1. 在 Google Cloud 控制台中,进入管理资源页面。

    转到“管理资源”

  2. 在项目列表中,选择要删除的项目,然后点击删除
  3. 在对话框中输入项目 ID,然后点击关闭以删除项目。

后续步骤

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