使用 dsub 编写脚本,然后在 Google Cloud 上运行批处理计算任务和工作流。
目标
完成本教程后,您将了解如何在 Google Cloud 上运行 dsub 流水线,以基于大型 DNA 序列二进制文件(BAM 文件)创建索引(BAI 文件)。
费用
在本文档中,您将使用 Google Cloud 的以下收费组件:
- Compute Engine
- Cloud Storage
您可使用价格计算器根据您的预计使用情况来估算费用。
准备工作
- 安装 Python 3.6+。如需详细了解如何设置您的 Python 开发环境,例如在您的系统上安装 pip,请参阅 Python 开发环境设置指南。
- 登录您的 Google Cloud 账号。如果您是 Google Cloud 新手,请创建一个账号来评估我们的产品在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the Cloud Life Sciences, Compute Engine, and Cloud Storage APIs.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the Cloud Life Sciences, Compute Engine, and Cloud Storage APIs.
创建 BAI 文件
完成以下步骤,以从 DNA 序列的大型二进制文件(BAM 文件)创建索引(BAI 文件)。数据来自 1,000 Genomes Project。
克隆 databiOSphere/dsub GitHub 代码库:
git clone https://github.com/databiosphere/dsub.git
切换到 dsub 工具的目录。该代码库包含一个预构建的 Docker 映像,该映像使用 samtools 建立索引。
cd dsub
安装 dsub 及其依赖项:
sudo python3 setup.py install
运行 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 存储分区。要验证是否生成了 BAI 文件,请运行以下命令:
gcloud storage ls gs://BUCKET
该命令会返回以下响应:
gs://BUCKET/HG00114.mapped.ILLUMINA.bwa.GBR.low_coverage.20120522.bam.bai
清除数据
完成本教程后,您可以清理您创建的资源,让它们停止使用配额,以免产生费用。以下部分介绍如何删除或关闭这些资源。
删除项目
为了避免产生费用,最简单的方法是删除您为本教程创建的项目。
如需删除项目,请执行以下操作:
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
后续步骤
如需详细了解如何在本地使用 dsub 进行开发,或使用 dsub 扩展到 Google Cloud 上的多个任务,请参阅 GitHub 上的 dsub 文档。