运行 DeepVariant

DeepVariant 是一种分析流水线,它使用深度神经网络从下一代 DNA 测序数据中检出基因变异。

本教程介绍了如何使用示例数据在 Google Cloud 上运行 DeepVariant。在单个 Compute Engine 实例上运行 DeepVariant。

目标

完成本教程后,您将了解如何在 Google Cloud 上运行 DeepVariant。

费用

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

  • Compute Engine

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

须知事项

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

    转到“项目选择器”

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

  4. 启用 Compute Engine API。

    启用 API

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

    转到“项目选择器”

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

  7. 启用 Compute Engine API。

    启用 API

  8. 安装 Google Cloud CLI。
  9. 如需初始化 gcloud CLI,请运行以下命令:

    gcloud init
  10. 提示:需要命令提示符?您可以使用 Cloud Shell。Cloud Shell 命令行环境已经包含 Google Cloud CLI,因此您无需再进行安装。

创建 Compute Engine 实例

使用 Google Cloud 控制台或 gcloud CLI 创建 Compute Engine 实例,以运行 DeepVariant。

控制台

  1. 在 Google Cloud 控制台中,转到虚拟机实例页面。

    转到“虚拟机实例”页面

  2. 点击创建实例
  3. 为实例选择一个名称,格式为 PROJECT_ID-deepvariant-run,其中 PROJECT_ID 是您的 Google Cloud 项目的 ID。
  4. 为实例选择区域地区。除非您有明确的理由需要在特定位置运行实例,否则请选择 us-central1 (Iowa) 区域us-central1-a 地区
  5. 机器类型菜单中,选择 n1-standard-64(64 个 vCPU、240 GB 内存)
  6. CPU 平台菜单中,选择 Intel Skylake 或更高版本
  7. 启动磁盘部分,点击更改以开始配置您的启动磁盘。
  8. 公共映像标签页上,选择 Ubuntu 20.04 LTS。在启动磁盘类型菜单中,选择标准永久性磁盘。在大小 (GB) 字段中,输入 300。点击选择
  9. 点击创建以创建实例。

gcloud

gcloud compute instances create \
    PROJECT_ID-deepvariant-run \
    --project PROJECT_ID \
    --zone ZONE \
    --scopes "cloud-platform" \
    --image-project ubuntu-os-cloud \
    --image-family ubuntu-2004-lts \
    --machine-type n1-standard-64 \
    --min-cpu-platform "Intel Skylake" \
    --boot-disk-size=300GB

请替换以下内容:

  • PROJECT_ID:您的 Google Cloud 项目 ID
  • ZONE 是部署您的实例的可用区。可用区就是您的实例及其资源所在的大致区域位置。例如,us-west1-aus-west 区域中的地区。如果您之前使用 gcloud config set compute/zone 设置默认地区,则此标志的值将替换该默认值。

实例启动需要您稍等片刻。准备就绪后,实例将在虚拟机实例页面上显示,并带有绿色状态图标。

连接到实例

您可以使用 Google Cloud 控制台或 gcloud CLI 连接到实例:

控制台

  1. 在 Google Cloud 控制台中,转到虚拟机实例页面。

    转到“虚拟机实例”页面

  2. 在虚拟机实例列表中,点击您创建的实例所在行中的 SSH

gcloud

gcloud compute ssh PROJECT_ID-deepvariant-run --zone ZONE

运行 DeepVariant

配置环境并在您创建的 Compute Engine 实例上运行 DeepVariant:

  1. 安装 Docker Community Edition (CE)

    sudo apt-get -qq -y install \
      apt-transport-https \
      ca-certificates \
      curl \
      gnupg-agent \
      software-properties-common
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
    sudo add-apt-repository \
      "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
      $(lsb_release -cs) \
      stable"
    sudo apt-get -qq -y update
    sudo apt-get -qq -y install docker-ce
    
  2. 通过将以下命令复制并粘贴到本地环境来配置 DeepVariant 环境变量:

    BIN_VERSION="1.2.0"
    BASE="${HOME}/deepvariant-run"
    INPUT_DIR="${BASE}/input"
    REF="GRCh38_no_alt_analysis_set.fasta"
    BAM="HG003.novaseq.pcr-free.35x.dedup.grch38_no_alt.chr20.bam"
    OUTPUT_DIR="${BASE}/output"
    DATA_DIR="${INPUT_DIR}/data"
    OUTPUT_VCF="HG003.output.vcf.gz"
    OUTPUT_GVCF="HG003.output.g.vcf.gz"
    
  3. 为输入数据目录和输出目录创建本地目录结构:

    mkdir -p "${OUTPUT_DIR}"
    mkdir -p "${INPUT_DIR}"
    mkdir -p "${DATA_DIR}"
    
  4. 本教程使用公开提供的 HG003 基因组,其覆盖率为 30x,与 GRCh38 参考基因组相对应。为了确保运行时的速度更快,您需要在运行 DeepVariant 时添加 --regions chr20 标志,以保证 DeepVariant 仅在 20 号染色体 (chr20) 上运行。

    示例数据是使用 Illumina 测序创建的,不过 DeepVariant 还支持以下其他类型的输入数据:

    • 全基因组 (Illumina) (WGS)
    • Exome (Illumina) (WES)
    • 全基因组 (PacBio)
    • 全基因组 PacBio 和 Illumina 混合 (HYBRID_PACBIO_ILLUMINA)

    运行 gsutil cp 将输入测试数据从 deepvariant Cloud Storage 存储桶复制到您所创建实例上的目录。

    # Input BAM and BAI files:
    gsutil cp gs://deepvariant/case-study-testdata/"${BAM}" "${DATA_DIR}"
    gsutil cp gs://deepvariant/case-study-testdata/"${BAM}".bai "${DATA_DIR}"
    
    # GRCh38 reference FASTA file:
    FTPDIR=ftp://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/000/001/405/GCA_000001405.15_GRCh38/seqs_for_alignment_pipelines.ucsc_ids
    curl ${FTPDIR}/GCA_000001405.15_GRCh38_no_alt_analysis_set.fna.gz | gunzip > "${DATA_DIR}/${REF}"
    curl ${FTPDIR}/GCA_000001405.15_GRCh38_no_alt_analysis_set.fna.fai > "${DATA_DIR}/${REF}".fai
    
  5. DeepVariant 是暂存在 Container Registry 内的预构建 Docker 映像中的容器化应用。 要提取映像,请运行以下命令:

    sudo docker pull gcr.io/deepvariant-docker/deepvariant:"${BIN_VERSION}"
    
  6. 要启动 DeepVariant,请运行以下命令:

    sudo docker run \
        -v "${DATA_DIR}":"/input" \
        -v "${OUTPUT_DIR}:/output" \
        gcr.io/deepvariant-docker/deepvariant:"${BIN_VERSION}"  \
        /opt/deepvariant/bin/run_deepvariant \
        --model_type=WGS \
        --ref="/input/${REF}" \
        --reads="/input/${BAM}" \
        --output_vcf=/output/${OUTPUT_VCF} \
        --output_gvcf=/output/${OUTPUT_GVCF} \
        --regions chr20 \
        --num_shards=$(nproc) \
        --intermediate_results_dir /output/intermediate_results_dir
    

    下表介绍了传递给命令的标志:

    标志 说明
    model_type DeepVariant 支持多种不同类型的输入数据。本教程使用全基因组测序 (WSG)。
    ref 参考 FASTA 文件的位置。
    reads 输入 BAM 文件的位置。
    output_vcf 输出 VCF 文件的位置。
    output_gvcf 输出 gVCF 文件的位置。
    regions (可选)要处理的染色体区域的空格分隔列表。其中的每个元素可以是区域字面量(例如 chr20:10-20),也可以是 BED/BEDPE 文件的路径。
    num_shards 并行运行的分片数量。为获得最佳结果,请将此标志的值设置为运行 DeepVariant 的机器上的核心数量。
    intermediate_results_dir 可选标记,用于指定 make_examples 和 call_variants 阶段的中间输出的目录。命令完成后,系统会将文件按照以下格式保存到本地目录中:
    dry_run 可选标志。如果设置为 true,则会输出命令(而不是执行命令)。
    call_variants_output.tfrecord.gz
    gvcf.tfrecord-SHARD_NUMBER-of-NUM_OF_SHARDS.gz
    make_examples.tfrecord-SHARD_NUMBER-of-NUM_OF_SHARDS.gz
    
  7. DeepVariant 运行完成后,会将以下文件输出到 deepvariant-run/output 目录:

    • HG003.output.g.vcf.gz
    • HG003.output.g.vcf.gz.tbi
    • HG003.output.vcf.gz
    • HG003.output.vcf.gz.tbi
    • HG003.output.visual_report.html

    运行以下命令可列出输出目录中的文件,并检查输出文件是否显示出来:

    ls $OUTPUT_DIR
    

运行时估算

下表显示了使用 BAM 文件中的 30x 全基因组样本运行 DeepVariant 时的大致运行时间。这些估算值不包括设置实例和从 Cloud Storage 下载任何样本数据所需的时间。

如需了解每小时的价格,请参阅 Compute Engine 价格。请考虑使用 Spot 虚拟机,这比常规虚拟机便宜。

机器类型 运行时间(以小时为单位)
n1-standard-8 24.63
n1-standard-16 13.30
n1-standard-32 7.77
n1-standard-64 5.64
n1-standard-96 4.38

清理

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

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

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

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

    转到“管理资源”

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

后续步骤