Menjalankan analisis genomik di notebook JupyterLab di Dataproc


Tutorial ini menunjukkan cara menjalankan analisis genomik sel tunggal menggunakan Dask, NVIDIA RAPIDS, dan GPU, yang dapat Anda konfigurasikan di Dataproc. Anda dapat mengonfigurasi Dataproc untuk menjalankan Dask dengan penjadwal mandiri atau dengan YARN untuk pengelolaan resource.

Tutorial ini mengonfigurasi Dataproc dengan instance JupyterLab yang dihosting untuk menjalankan notebook yang menampilkan analisis genomik sel tunggal. Dengan menggunakan Jupyter Notebook di Dataproc, Anda dapat menggabungkan kemampuan interaktif Jupyter dengan penskalaan beban kerja yang diaktifkan Dataproc. Dengan Dataproc, Anda dapat menskalakan workload dari satu hingga banyak mesin, yang dapat dikonfigurasi dengan GPU sebanyak yang Anda butuhkan.

Tutorial ini ditujukan untuk data scientist dan peneliti. Tutorial ini mengasumsikan bahwa Anda berpengalaman dengan Python dan memiliki pengetahuan dasar tentang hal berikut:

Tujuan

  • Buat instance Dataproc yang dikonfigurasi dengan GPU, JupyterLab, dan komponen open source.
  • Menjalankan notebook di Dataproc.

Biaya

Dalam dokumen ini, Anda akan menggunakan komponen Google Cloudyang dapat ditagih berikut:

  • Dataproc
  • Cloud Storage
  • GPUs
  • Untuk membuat perkiraan biaya berdasarkan proyeksi penggunaan Anda, gunakan kalkulator harga. Pengguna Google Cloud baru mungkin memenuhi syarat untuk mendapatkan uji coba gratis.

    Setelah menyelesaikan tugas yang dijelaskan dalam dokumen ini, Anda dapat menghindari penagihan berkelanjutan dengan menghapus resource yang Anda buat. Untuk mengetahui informasi selengkapnya, lihat Pembersihan.

    Sebelum memulai

    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

    Menyiapkan lingkungan Anda

    1. Pilih lokasi untuk resource Anda.

      REGION=REGION
      

    2. Membuat bucket Cloud Storage.

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

    3. Salin tindakan inisialisasi berikut ke bucket Anda.

      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
      

    Membuat cluster Dataproc dengan JupyterLab dan komponen open source

    1. Buat 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
    

    Cluster memiliki properti berikut:

    • --region: Region tempat cluster Anda berada.
    • --image-version: 2.0-ubuntu18, versi image cluster
    • --master-machine-type: n1-standard-32, jenis mesin utama.
    • --master-accelerator: jenis dan jumlah GPU di node utama, empat GPU nvidia-tesla-t4.
    • --initialization-actions: jalur Cloud Storage ke skrip penginstalan yang menginstal driver GPU, Dask, RAPIDS, dan dependensi tambahan.
    • --initialization-action-timeout: waktu tunggu untuk tindakan inisialisasi.
    • --metadata: diteruskan ke tindakan inisialisasi untuk mengonfigurasi cluster dengan driver GPU NVIDIA, penjadwal mandiri untuk Dask, dan RAPIDS versi 21.06.
    • --optional-components: mengonfigurasi cluster dengan komponen opsional Jupyter.
    • --enable-component-gateway: memungkinkan akses ke UI web di cluster.
    • --single-node: mengonfigurasi cluster sebagai satu node (tanpa pekerja).

    Mengakses Notebook Jupyter

    1. Buka halaman Clusters di konsol Google Cloud Dataproc.
      Buka halaman Cluster
    2. Klik cluster Anda, lalu klik tab Antarmuka Web.
    3. Klik JupyterLab.
    4. Buka terminal baru di JupyterLab.
    5. Clone repositori clara-parabricks/rapids-single-cell-examples dan lihat cabang dataproc/multi-gpu.

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

    6. Di JupyterLab, buka repositori rapids-single-cell-examples/notebooks dan buka Notebook Jupyter 1M_brain_gpu_analysis_uvm.ipynb.

    7. Untuk menghapus semua output di notebook, pilih Edit > Clear All Outputs

    8. Baca petunjuk di sel notebook. Notebook ini menggunakan Dask dan RAPIDS di Dataproc untuk memandu Anda melalui alur kerja RNA-seq sel tunggal pada 1 juta sel, termasuk memproses dan memvisualisasikan data. Untuk mempelajari lebih lanjut, lihat Mempercepat Analisis Genomik Sel Tunggal menggunakan RAPIDS.

    Pembersihan

    Agar tidak perlu membayar biaya pada akun Google Cloud Anda untuk resource yang digunakan dalam tutorial ini, hapus project yang berisi resource tersebut, atau simpan project dan hapus setiap resource.

    Menghapus project

    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.

    Menghapus resource satu per satu

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

    Langkah selanjutnya