在 JupyterLab 笔记本中运行基因组分析

本教程介绍如何使用可在 Managed Service for Apache Spark 上配置的 DaskNVIDIA RAPIDS 和 GPUs 运行单个单元基因组分析。您可以将 Managed Service for Apache Spark 配置为使用其独立调度器或 YARN 运行 Dask 以进行资源管理。

本教程使用托管的 JupyterLab 实例配置 Managed Service for Apache Spark,以运行包含单细胞基因组分析的笔记本。通过在 Managed Service for Apache Spark 上使用 Jupyter 笔记本,您可以将 Jupyter 的交互式功能与 Managed Service for Apache Spark 支持的工作负载伸缩功能结合使用。借助 Managed Service for Apache Spark,您可以将工作负载从一台机器横向扩容到多台机器,并且可以为这些机器配置任意数量的 GPU。

本教程适用于数据科学家和研究人员。本教程假定您具有 Python 使用经验,并具备以下基础知识:

目标

  • 创建使用 GPU、JupyterLab 和开源组件配置的 Managed Service for Apache Spark 实例。
  • 在 Managed Service for Apache Spark 上运行笔记本

费用

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

  • Managed Service for Apache Spark
  • Cloud Storage
  • GPUs
  • 您可使用 价格计算器 根据您的预计使用情况来估算费用。

    新 Google Cloud 用户可能有资格申请免费试用

    完成本文档中描述的任务后,您可以通过删除所创建的资源来避免继续计费。如需了解详情,请参阅清理

    准备工作

    1. 在 Google Cloud 控制台的项目选择器页面上, 选择或创建一个 Google Cloud 项目。

      选择或创建项目所需角色

      • 选择项目:选择项目不需要特定的 IAM 角色,您可以选择已被授予角色的任何项目。
      • 创建项目:如需创建项目,您需要拥有 Project Creator 角色 (roles/resourcemanager.projectCreator),该角色包含 resourcemanager.projects.create 权限。了解如何授予 角色

      转到“项目选择器”

    2. 验证是否已为您的 Google Cloud 项目启用结算功能。

    3. 启用 Dataproc API。

      启用 API 所需的角色

      如需启用 API,您需要拥有 Service Usage Admin IAM 角色 (roles/serviceusage.serviceUsageAdmin),该角色包含 serviceusage.services.enable 权限。了解如何授予角色

      启用 API

    准备环境

    1. 为您的资源选择位置

      REGION=REGION
      

    2. 创建 Cloud Storage 存储桶。

      gcloud storage buckets create gs://BUCKET --location=REGION
      

    3. 将以下 初始化操作 复制到您的存储桶。

      SCRIPT_BUCKET=gs://goog-dataproc-initialization-actions-REGION
      gcloud storage cp ${SCRIPT_BUCKET}/gpu/install_gpu_driver.sh BUCKET/gpu/install_gpu_driver.sh
      gcloud storage cp ${SCRIPT_BUCKET}/dask/dask.sh BUCKET/dask/dask.sh
      gcloud storage cp ${SCRIPT_BUCKET}/rapids/rapids.sh BUCKET/rapids/rapids.sh
      gcloud storage cp ${SCRIPT_BUCKET}/python/pip-install.sh BUCKET/python/pip-install.sh
      

    使用 JupyterLab 和开源组件创建 Managed Service for Apache Spark 集群

    1. 创建 Managed Service for Apache Spark 集群。
    gcloud dataproc clusters create CLUSTER_NAME \
        --region REGION \
        --image-version 2.0-ubuntu18 \
        --master-machine-type n1-standard-32 \
        --master-accelerator type=nvidia-tesla-t4,count=4 \
        --initialization-actions
    BUCKET/gpu/install_gpu_driver.sh,BUCKET/dask/dask.sh,BUCKET/rapids/rapids.sh,BUCKET/python/pip-install.sh
    \
        --initialization-action-timeout=60m \
        --metadata
    gpu-driver-provider=NVIDIA,dask-runtime=yarn,rapids-runtime=DASK,rapids-version=21.06,PIP_PACKAGES="scanpy==1.8.1,wget" \
        --optional-components JUPYTER \
        --enable-component-gateway \
        --single-node
    

    该集群具有以下属性:

    • --region:集群所在的区域
    • --image-version2.0-ubuntu18(集群映像版本)
    • --master-machine-typen1-standard-32(主要机器类型)。
    • --master-accelerator:主节点上 GPU 的类型和数量(四个 nvidia-tesla-t4 GPU)。
    • --initialization-actions:用于安装 GPU 驱动程序、Dask、RAPIDS 和额外依赖项的安装脚本的 Cloud Storage 路径。
    • --initialization-action-timeout:初始化操作的超时时间。
    • --metadata:传递给初始化操作以使用 NVIDIA GPU 驱动程序、Dask 的独立调度器和 RAPIDS 版本 21.06 配置集群。
    • --optional-components:使用 Jupyter 可选组件配置集群。
    • --enable-component-gateway:允许访问集群上的网页界面。
    • --single-node:将集群配置为单个节点(无工作器)。

    访问 Jupyter 笔记本

    1. 在 Managed Service for Apache Spark Google Cloud 控制台中打开集群 页面。
      打开“集群”页面
    2. 点击您的集群,然后点击 Web 界面标签页。
    3. 点击 JupyterLab
    4. 在 JupyterLab 中打开新终端
    5. 克隆 clara-parabricks/rapids-single-cell-examples 代码库并签出 managed-spark/multi-gpu 分支。

      git clone https://github.com/clara-parabricks/rapids-single-cell-examples.git
      git checkout managed-spark/multi-gpu
      

    6. 在 JupyterLab 中,转到 rapids-single-cell-examples/notebooks 代码库,并打开 1M_brain_gpu_analysis_uvm.ipynb Jupyter 笔记本。

    7. 如需清除笔记本中的所有输出,请选择修改 > 清除所有输出项

    8. 阅读笔记本单元中的相关说明。该笔记本使用 Managed Service for Apache Spark 上的 Dask 和 RAPIDS 引导您在 100 万个单元上完成单个单元 RNA-seq 工作流,包括处理和直观呈现数据。如需了解详情,请参阅 使用 RAPIDS 加速单个单元基因组分析

    清理

    为避免因本教程中使用的资源导致您的 Google Cloud 账号产生费用,请删除包含这些资源的项目,或者保留项目但删除各个资源。

    删除项目

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

      转到“管理资源”

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

    删除各个资源

    1. 删除 Managed Service for Apache Spark 集群。
      gcloud dataproc clusters delete cluster-name \
          --region=region
      
    2. 删除存储桶:
      gcloud storage buckets delete BUCKET_NAME

    后续步骤