Genomanalyse in einem JupyterLab-Notebook ausführen

In dieser Anleitung erfahren Sie, wie Sie Genomanalysen an Einzelzellen mithilfe von Dask, NVIDIA RAPIDS und GPUs ausführen, die Sie mit Managed Service for Apache Spark konfigurieren können. Managed Service for Apache Spark lässt sich so konfigurieren, dass Dask entweder mit seinem eigenständigen Planer oder mit YARN für die Ressourcenverwaltung ausgeführt wird.

In dieser Anleitung wird Managed Service for Apache Spark mit einer gehosteten JupyterLab-Instanz konfiguriert, um ein Notebook mit einer Genomanalyse an Einzelzellen auszuführen. Mit einem Jupyter-Notebook in Managed Service for Apache Spark können Sie die interaktiven Funktionen von Jupyter mit der Arbeitslastskalierung von Managed Service for Apache Spark kombinieren. Mit Managed Service for Apache Spark haben Sie die Möglichkeit, Ihre Arbeitslasten von einer auf viele Maschinen zu skalieren. Diese lassen sich mit beliebig vielen GPUs konfigurieren.

Diese Anleitung richtet sich an Data Scientists und Forscher. Dabei wird davon ausgegangen, dass Sie mit Python vertraut sind und Grundkenntnisse zu folgenden Themen haben:

Ziele

  • Sie erstellen eine Managed Service for Apache Spark-Instanz, die mit GPUs, JupyterLab und Open-Source-Komponenten konfiguriert ist.
  • Sie führen ein Notebook in Managed Service for Apache Spark aus.

Kosten

In diesem Dokument verwenden Sie die folgenden kostenpflichtigen Komponenten von Google Cloud:

  • Managed Service for Apache Spark
  • Cloud Storage
  • GPUs
  • Mit dem Preisrechner können Sie eine Kostenschätzung für Ihre voraussichtliche Nutzung vornehmen. Verwenden Sie den Preisrechner.

    Neuen Google Cloud Nutzern vonsteht möglicherweise eine kostenlose Testversion zur Verfügung.

    Nach Abschluss der in diesem Dokument beschriebenen Aufgaben können Sie weitere Kosten vermeiden, indem Sie die erstellten Ressourcen löschen. Weitere Informationen finden Sie unter Bereinigen.

    Hinweis

    1. Wählen Sie in der Google Cloud Console auf der Seite für die Projektauswahl ein Projekt vonaus oder erstellen Sie eines Google Cloud .

      Erforderliche Rollen zum Auswählen oder Erstellen eines Projekts

      • Projekt auswählen: Für die Auswahl eines Projekts ist keine bestimmte IAM-Rolle erforderlich. Sie können ein beliebiges Projekt auswählen, für das Ihnen eine Rolle zugewiesen wurde.
      • Projekt erstellen: Zum Erstellen eines Projekts benötigen Sie die Rolle „Projektersteller“ (roles/resourcemanager.projectCreator), die die resourcemanager.projects.create Berechtigung enthält. Informationen zum Zuweisen von Rollen.

      Zur Projektauswahl

    2. Prüfen Sie, ob für Ihr Google Cloud Projekt die Abrechnung aktiviert ist.

    3. die Dataproc API aktivieren

      Erforderliche Rollen zum Aktivieren von APIs

      Zum Aktivieren von APIs benötigen Sie die IAM-Rolle „Service Usage-Administrator“ (roles/serviceusage.serviceUsageAdmin) mit der Berechtigung serviceusage.services.enable. Informationen zum Zuweisen von Rollen.

      API aktivieren

    Umgebung vorbereiten

    1. Wählen Sie einen Standort für Ihre Ressourcen aus.

      REGION=REGION
      

    2. Cloud Storage-Bucket erstellen

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

    3. Kopieren Sie die folgenden Initialisierungsaktionen in Ihren Bucket.

      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
      

    Managed Service for Apache Spark-Cluster mit JupyterLab und Open-Source-Komponenten erstellen

    1. Managed Service for Apache Spark-Cluster erstellen.
    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
    

    Der Cluster hat die folgenden Attribute:

    • --region: Die Region, in der sich der Cluster befindet.
    • --image-version: 2.0-ubuntu18, die Cluster-Image-Version.
    • --master-machine-type: n1-standard-32, der Hauptmaschinentyp.
    • --master-accelerator: Der Typ und die Anzahl der GPUs auf dem Hauptknoten, vier nvidia-tesla-t4-GPUs.
    • --initialization-actions: Die Cloud Storage-Pfade zu den Installationsskripts, die GPU-Treiber, Dask, RAPIDS und zusätzliche Abhängigkeiten installieren.
    • --initialization-action-timeout: Das Zeitlimit für die Initialisierungsaktionen.
    • --metadata: Wird an die Initialisierungsaktionen übergeben, um den Cluster mit NVIDIA GPU-Treibern, mit dem eigenständigen Planer für Dask und mit der RAPIDS-Version 21.06 zu konfigurieren.
    • --optional-components: Konfiguriert den Cluster mit der optionalen Jupyter-Komponente.
    • --enable-component-gateway: Ermöglicht den Zugriff auf Web-UIs im Cluster.
    • --single-node: Konfiguriert den Cluster als einzelnen Knoten (keine Worker).

    Auf Jupyter-Notebook zugreifen

    1. Öffnen Sie in der Managed Service for Apache Spark Google Cloud Console die Seite Cluster.
      Zur Seite "Cluster"
    2. Klicken Sie auf den Cluster und dann auf den Tab Weboberflächen.
    3. Klicken Sie auf JupyterLab.
    4. Öffnen Sie in JupyterLab ein neues Terminal.
    5. Klonen Sie das clara-parabricks/rapids-single-cell-examples Repository und checken Sie den dataproc/multi-gpu Branch aus.

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

    6. Wechseln Sie in JupyterLab zum rapids-single-cell-examples/notebooks und öffnen Sie das 1M_brain_gpu_analysis_uvm.ipynb.

    7. Wählen Sie Bearbeiten > Alle Ausgaben löschen aus, um alle Ausgaben im Notebook zu löschen.

    8. Lesen Sie die Anleitung in den Zellen des Notebooks. Das Notebook verwendet Dask und RAPIDS in Managed Service for Apache Spark, um Sie durch einen Workflow für eine einzellige RNA-Sequenzierung für 1 Million Zellen zu führen, einschließlich Verarbeitung und Visualisierung der Daten. Weitere Informationen finden Sie unter Genomanalysen an Einzelzellen mit RAPIDS beschleunigen.

    Bereinigen

    Damit Ihrem Google Cloud-Konto die in dieser Anleitung verwendeten Ressourcen nicht in Rechnung gestellt werden, löschen Sie entweder das Projekt, das die Ressourcen enthält, oder Sie behalten das Projekt und löschen die einzelnen Ressourcen.

    Projekt löschen

    1. Wechseln Sie in der Google Cloud -Console zur Seite Ressourcen verwalten.

      Zur Seite „Ressourcen verwalten“

    2. Wählen Sie in der Projektliste das Projekt aus, das Sie löschen möchten, und klicken Sie dann auf Löschen.
    3. Geben Sie im Dialogfeld die Projekt-ID ein und klicken Sie auf Shut down (Beenden), um das Projekt zu löschen.

    Einzelne Ressourcen löschen

    1. Löschen Sie Ihren Managed Service for Apache Spark-Cluster.
      gcloud dataproc clusters delete cluster-name \
          --region=region
      
    2. Löschen Sie den Bucket:
      gcloud storage buckets delete BUCKET_NAME

    Nächste Schritte