Eseguire un'analisi genomica in un blocco note JupyterLab su Dataproc


Questo tutorial mostra come eseguire un'analisi genomica a cella singola utilizzando Dask, NVIDIA RAPIDS e GPU, che puoi configurare su Dataproc. Puoi configurare Dataproc per eseguire Dask con il relativo scheduler autonomo o con YARN per la gestione delle risorse.

Questo tutorial configura Dataproc con un'istanza JupyterLab ospitata per eseguire un blocco note con un'analisi genomica a cella singola. L'utilizzo di un blocco note Jupyter su Dataproc consente di combinare le funzionalità interattive di Jupyter con la scalabilità dei carichi di lavoro abilitata da Dataproc. Con Dataproc puoi fare lo scale out dei carichi di lavoro da una a più macchine, configurabili con tutte le GPU che ti servono.

Questo tutorial è destinato a data scientist e ricercatori. Si parte dal presupposto che hai esperienza con Python e hai una conoscenza di base di quanto segue:

Obiettivi

  • Crea un'istanza Dataproc configurata con GPU, JupyterLab e componenti open source.
  • Esegui un blocco note su Dataproc.

Costi

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

  • Dataproc
  • Cloud Storage
  • GPUs
  • Per generare una stima dei costi basata sull'utilizzo previsto, utilizza il Calcolatore prezzi. I nuovi utenti di Google Cloud potrebbero essere idonei per una prova gratuita.

    Una volta completate le attività descritte in questo documento, puoi evitare la fatturazione continua eliminando le risorse che hai creato. Per ulteriori informazioni, consulta la pagina Pulizia.

    Prima di iniziare

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

      Go to project selector

    2. Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.

    3. Attiva l'API Dataproc.

      Abilita l'API

    prepara l'ambiente

    1. Seleziona uno località per le tue risorse.

      REGION=REGION
      

    2. Creare un bucket Cloud Storage.

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

    3. Copia quanto segue azioni di inizializzazione al tuo 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 Dataproc con JupyterLab e componenti open source

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

    Il cluster ha le seguenti proprietà:

    • --region: il 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 livello principale tipo di macchina.
    • --master-accelerator: il tipo e il numero di GPU sul nodo principale, quattro GPU nvidia-tesla-t4.
    • --initialization-actions: i percorsi di installazione di Cloud Storage script che installano driver GPU, Dask, RAPIDS e dipendenze aggiuntive.
    • --initialization-action-timeout: il timeout per le azioni di inizializzazione.
    • --metadata: passata alle azioni di inizializzazione per la configurazione del cluster con Driver GPU NVIDIA, scheduler autonomo per Dask e versione RAPIDS 21.06.
    • --optional-components: configura il cluster con Componente facoltativo Jupyter.
    • --enable-component-gateway: consente l'accesso alle UI web sul cluster.
    • --single-node: configura il cluster come nodo singolo (senza worker).

    Accedere al blocco note Jupyter

    1. Apri la pagina Cluster nella console Google Cloud di Dataproc.
      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 clara-parabricks/rapids-single-cell-examples repository e controlla la filiale dataproc/multi-gpu.

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

    6. In JupyterLab, vai a Repository rapids-single-cell-examples/notebooks e apri il 1M_brain_gpu_analysis_uvm.ipynb blocco note Jupyter.

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

    8. Leggi le istruzioni nelle celle del blocco note. Il blocco note utilizza Dask e RAPIDS su Dataproc ti guidano attraverso un flusso di lavoro RNA-seq a cella singola su 1 milione di celle, tra cui elaborazione e per visualizzare i dati. Per saperne di più, vedi Accelerare l'analisi genomica a cella singola utilizzando RAPIDS.

    Esegui la pulizia

    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 console Google Cloud, 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 del progetto e fai clic su Chiudi per eliminare il progetto.

    Elimina singole risorse

    1. Elimina il cluster Dataproc.
      gcloud dataproc clusters delete cluster-name \
          --region=region
      
    2. Elimina il bucket:
      gcloud storage buckets delete BUCKET_NAME

    Passaggi successivi