Dataproc の JupyterLab ノートブックでゲノム解析を実行する


このチュートリアルでは、Dataproc で構成できる DaskNVIDIA RAPIDS、GPU を使用してシングルセル ゲノミクス分析を実行する方法について説明します。スタンドアロン スケジューラまたはリソース管理用の YARN のいずれかを使用してDask を実行するよう Dataproc を構成できます。

このチュートリアルでは、ホストされた JupyterLab インスタンスを使用して Dataproc を構成し、シングルセル ゲノミクス分析を備えたノートブックを実行します。Dataproc で Jupyter Notebook を使用すると、Jupyter のインタラクティブな機能と Dataproc で可能になるワークロード スケーリングを組み合わせることができます。Dataproc では、1 台のマシンから多数のマシンにワークロードをスケールアウトできます。それらのマシンは必要なだけ多数の GPU で構成できます。

このチュートリアルは、データ サイエンティストと研究者を対象としています。Python の使用経験があり、以下の基本的な知識があることを前提としています。

目標

  • Dataproc インスタンスを作成し、GPU、JupyterLab、オープンソース コンポーネントで構成します。
  • Dataproc でノートブックを実行します。

費用

このドキュメントでは、Google Cloud の次の課金対象のコンポーネントを使用します。

  • Dataproc
  • Cloud Storage
  • GPUs
  • 料金計算ツールを使うと、予想使用量に基づいて費用の見積もりを生成できます。 新しい Google Cloud ユーザーは無料トライアルをご利用いただける場合があります。

    このドキュメントに記載されているタスクの完了後、作成したリソースを削除すると、それ以上の請求は発生しません。詳細については、クリーンアップをご覧ください。

    始める前に

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

      Go to project selector

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

    3. Enable the Dataproc API.

      Enable the 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 とオープンソース コンポーネントを使用して Dataproc クラスタを作成する

    1. Dataproc クラスタを作成します。
    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-version: クラスタ イメージのバージョンで、2.0-ubuntu18
    • --master-machine-type: メインのマシンタイプで、n1-standard-32
    • --master-accelerator: メインノード上の GPU のタイプと数で、4 つの 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: クラスタのウェブ UI へのアクセスを許可します。
    • --single-node: クラスタを単一ノード(ワーカーなし)として構成します。

    Jupyter Notebook にアクセスする

    1. Dataproc Google Cloud コンソールで [クラスタ] ページを開きます。
      [クラスタ] ページを開く
    2. クラスタをクリックし、[ウェブ インターフェース] タブをクリックします。
    3. [JupyterLab] をクリックします。
    4. JupyterLab で新しいターミナルを開きます。
    5. clara-parabricks/rapids-single-cell-examples リポジトリのクローンを作成し、dataproc/multi-gpu ブランチをチェックアウトします。

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

    6. JupyterLab で、rapids-single-cell-examples/notebooks リポジトリに移動し、1M_brain_gpu_analysis_uvm.ipynb Jupyter ノートブックを開きます。

    7. ノートブックのすべての出力をクリアするには、[編集] > [すべての出力をクリア] を選択します。

    8. ノートブックのセル内の手順を確認します。このノートブックでは、Dataproc で Dask と RAPIDS を使用して、データの処理と可視化を含む 100 万セルのシングルセル RNA-seq ワークフローについて説明します。詳細については、RAPIDS を使用した単一細胞ゲノム解析の高速化をご覧ください。

    クリーンアップ

    このチュートリアルで使用したリソースについて、Google Cloud アカウントに課金されないようにするには、リソースを含むプロジェクトを削除するか、プロジェクトを維持して個々のリソースを削除します。

    プロジェクトを削除する

    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.

    リソースを個別に削除する

    1. Dataproc クラスタを削除します。
      gcloud dataproc clusters delete cluster-name \
          --region=region
      
    2. バケットを削除します。
      gcloud storage buckets delete BUCKET_NAME

    次のステップ

    • Dataproc について学習する。
    • リファレンス アーキテクチャ、図、チュートリアル、ベスト プラクティスを確認する。Cloud Architecture Center を確認する。