Esegui un'analisi genomica in un notebook JupyterLab

Questo tutorial mostra come eseguire un'analisi di genomica a cellula singola utilizzando Dask, NVIDIA RAPIDS e GPU, che puoi configurare in Managed Service per Apache Spark. Puoi configurare Managed Service per Apache Spark per eseguire Dask con il suo scheduler autonomo o con YARN per la gestione delle risorse.

Questo tutorial configura Managed Service per Apache Spark con un'istanza di JupyterLab ospitata per eseguire un notebook che include un'analisi di genomica a cellula singola. L'utilizzo di un notebook Jupyter in Managed Service per Apache Spark ti consente di combinare le funzionalità interattive di Jupyter con la scalabilità dei workload che Managed Service per Apache Spark consente. Con Managed Service per Apache Spark, puoi fare lo scale out dei tuoi workload da una a più macchine, che puoi configurare con tutte le GPU di cui hai bisogno.

Questo tutorial è rivolto a data scientist e ricercatori. Presuppone che tu abbia esperienza con Python e conoscenze di base di quanto segue:

Obiettivi

  • Crea un'istanza di Managed Service per Apache Spark configurata con GPU, JupyterLab e componenti open source.
  • Esegui un notebook in Managed Service per Apache Spark.

Costi

In questo documento vengono utilizzati i seguenti componenti fatturabili di Google Cloud:

  • Managed Service for Apache Spark
  • Cloud Storage
  • GPUs
  • Per generare una stima dei costi in base all'utilizzo previsto, utilizza il calcolatore prezzi.

    I nuovi Google Cloud utenti potrebbero avere diritto a una prova senza costi.

    Al termine delle attività descritte in questo documento, puoi evitare l'addebito di ulteriori costi eliminando le risorse che hai creato. Per saperne di più, consulta Esegui la pulizia.

    Prima di iniziare

    1. Nella Google Cloud console, nella pagina di selezione del progetto, seleziona o crea un Google Cloud progetto.

      Ruoli richiesti per selezionare o creare un progetto

      • Seleziona un progetto: la selezione di un progetto non richiede un ruolo IAM specifico: puoi selezionare qualsiasi progetto su cui ti è stato concesso un ruolo.
      • Crea un progetto: per creare un progetto, devi disporre del ruolo Autore progetto (roles/resourcemanager.projectCreator), che contiene l' resourcemanager.projects.create autorizzazione. Scopri come concedere i ruoli.

      Vai al selettore di progetti

    2. Verifica che la fatturazione sia abilitata per il tuo Google Cloud progetto.

    3. Abilitare l'API Dataproc.

      Ruoli richiesti per abilitare le API

      Per abilitare le API, devi disporre del ruolo IAM Amministratore utilizzo servizi (roles/serviceusage.serviceUsageAdmin), che contiene l'autorizzazione serviceusage.services.enable. Scopri come concedere i ruoli.

      Abilitare l'API

    prepara l'ambiente

    1. Seleziona una località per le tue risorse.

      REGION=REGION
      

    2. Creare un bucket Cloud Storage.

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

    3. Copia le seguenti azioni di inizializzazione nel 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
      

    Crea un cluster Managed Service per Apache Spark con JupyterLab e componenti open source

    1. Crea un cluster Managed Service per 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
    

    Il cluster ha le seguenti proprietà:

    • --region: la regione in cui si trova il cluster.
    • --image-version: 2.0-ubuntu18, la versione dell'immagine del cluster
    • --master-machine-type: n1-standard-32, il tipo di macchina principale .
    • --master-accelerator: il tipo e il numero di GPU sul nodo principale, quattro nvidia-tesla-t4 GPU.
    • --initialization-actions: i percorsi di Cloud Storage agli script di installazione che installano i driver GPU, Dask, RAPIDS e dipendenze aggiuntive.
    • --initialization-action-timeout: il timeout per le azioni di inizializzazione.
    • --metadata: passata alle azioni di inizializzazione per configurare il cluster con i driver GPU NVIDIA, lo scheduler autonomo per Dask e la versione 21.06 di RAPIDS.
    • --optional-components: configura il cluster con il componente facoltativo Jupyter.
    • --enable-component-gateway: consente l'accesso alle UI web sul cluster.
    • --single-node: configura il cluster come un singolo nodo (senza worker).

    Accedi al notebook Jupyter

    1. Apri la pagina Cluster nella console Managed Service per Apache Spark Google Cloud .
      Apri la pagina Cluster
    2. Fai clic sul cluster e poi sulla scheda Interfacce web.
    3. Fai clic su JupyterLab.
    4. Apri un nuovo terminale in JupyterLab.
    5. Clona il clara-parabricks/rapids-single-cell-examples repository ed estrai il ramo dataproc/multi-gpu.

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

    6. In JupyterLab, vai al rapids-single-cell-examples/notebooks e apri il notebook Jupyter 1M_brain_gpu_analysis_uvm.ipynb.

    7. Per cancellare tutti gli output nel notebook, seleziona Modifica > Cancella tutti gli output.

    8. Leggi le istruzioni nelle celle del notebook. Il notebook utilizza Dask e RAPIDS in Managed Service per Apache Spark per guidarti in un flusso di lavoro RNA-seq a cellula singola su 1 milione di cellule, inclusi l'elaborazione e la visualizzazione dei dati. Per saperne di più, consulta Accelerating Single Cell Genomic Analysis using RAPIDS.

    Libera spazio

    Per evitare che al tuo Account Google Cloud vengano addebitati costi relativi alle risorse utilizzate in questo tutorial, elimina il progetto che contiene le risorse oppure mantieni il progetto ed elimina le singole risorse.

    Elimina il progetto

    1. Nella Google Cloud console, vai alla pagina Gestisci risorse.

      Vai a Gestisci risorse

    2. Nell'elenco dei progetti, seleziona il progetto che vuoi eliminare, quindi fai clic su Elimina.
    3. Nella finestra di dialogo, digita l'ID progetto e fai clic su Chiudi per eliminare il progetto.

    Elimina singole risorse

    1. Elimina il cluster Managed Service per Apache Spark.
      gcloud dataproc clusters delete cluster-name \
          --region=region
      
    2. Elimina il bucket:
      gcloud storage buckets delete BUCKET_NAME

    Passaggi successivi