Menjalankan DeepVariant

DeepVariant adalah pipeline analisis yang menggunakan deep neural network untuk memanggil varian genetik dari data pengurutan DNA generasi berikutnya.

Tutorial ini menjelaskan cara menjalankan DeepVariant di Google Cloud menggunakan data sampel. Anda menjalankan DeepVariant pada satu instance Compute Engine.

Tujuan

Setelah menyelesaikan tutorial ini, Anda akan mengetahui cara menjalankan DeepVariant di Google Cloud.

Biaya

Dalam dokumen ini, Anda menggunakan komponen Google Cloud yang dapat ditagih berikut:

  • Compute Engine

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

Sebelum memulai

  1. Login ke akun Google Cloud Anda. Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa produk kami dalam skenario dunia nyata. Pelanggan baru juga mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
  2. Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.

    Buka pemilih project

  3. Pastikan penagihan telah diaktifkan untuk project Google Cloud Anda.

  4. Enable the Compute Engine API.

    Enable the API

  5. Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.

    Buka pemilih project

  6. Pastikan penagihan telah diaktifkan untuk project Google Cloud Anda.

  7. Enable the Compute Engine API.

    Enable the API

  8. Menginstal Google Cloud CLI.
  9. Untuk initialize gcloud CLI, jalankan perintah berikut:

    gcloud init
  10. Tips: Perlu command prompt? Anda dapat menggunakan Cloud Shell. Cloud Shell adalah lingkungan command line yang sudah menyertakan Google Cloud CLI, sehingga Anda tidak perlu menginstalnya.

Membuat instance Compute Engine

Buat instance Compute Engine menggunakan Konsol Google Cloud atau gcloud CLI untuk menjalankan DeepVariant.

Konsol

  1. Di Konsol Google Cloud, buka halaman VM Instances.

    Buka halaman VM Instances

  2. Klik Create instance.
  3. Pilih Nama untuk instance dalam format PROJECT_ID-deepvariant-run dengan PROJECT_ID sebagai ID untuk project Google Cloud Anda.
  4. Pilih Region dan Zone untuk instance tersebut. Kecuali Anda memiliki alasan khusus untuk menjalankan instance di lokasi tertentu, pilih us-central1 (Iowa) untuk Region dan us-central1-a untuk Zone.
  5. Pada menu Machine type, pilih n1-standard-64 (64 vCPU, 240 GB memory).
  6. Di menu platform CPU, pilih Intel Skylake or yang lebih baru.
  7. Di bagian Boot disk, klik Change untuk mulai mengonfigurasi boot disk Anda.
  8. Pada tab Public images, pilih Ubuntu 20.04 LTS. Di menu Boot disk type, pilih Standard persistent disk. Di kolom Size (GB), masukkan 300. Klik Select.
  9. Klik Create untuk membuat instance.

gcloud

gcloud compute instances create \
    PROJECT_ID-deepvariant-run \
    --project PROJECT_ID \
    --zone ZONE \
    --scopes "cloud-platform" \
    --image-project ubuntu-os-cloud \
    --image-family ubuntu-2004-lts \
    --machine-type n1-standard-64 \
    --min-cpu-platform "Intel Skylake" \
    --boot-disk-size=300GB

Ganti kode berikut:

  • PROJECT_ID: project ID Google Cloud Anda
  • ZONE: zona tempat instance Anda di-deploy. Zona merupakan perkiraan lokasi regional tempat instance Anda dan resource-nya berada. Misalnya, us-west1-a adalah zona di region us-west. Jika Anda telah menetapkan zona default sebelumnya menggunakan gcloud config set compute/zone, nilai flag ini akan menggantikan default tersebut.

Tunggu hingga instance memulai. Setelah siap, instance akan muncul di halaman VM Instances dengan ikon status hijau.

Menghubungkan ke instance

Anda dapat terhubung ke instance menggunakan Google Cloud Console atau gcloud CLI:

Konsol

  1. Di Konsol Google Cloud, buka halaman VM Instances.

    Buka halaman VM Instances

  2. Dalam daftar instance virtual machine, klik SSH di baris instance yang dibuat.

gcloud

gcloud compute ssh PROJECT_ID-deepvariant-run --zone ZONE

Menjalankan DeepVariant

Konfigurasikan lingkungan Anda dan jalankan DeepVariant pada instance Compute Engine yang Anda buat:

  1. Instal Docker Community Edition (CE):

    sudo apt-get -qq -y install \
      apt-transport-https \
      ca-certificates \
      curl \
      gnupg-agent \
      software-properties-common
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
    sudo add-apt-repository \
      "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
      $(lsb_release -cs) \
      stable"
    sudo apt-get -qq -y update
    sudo apt-get -qq -y install docker-ce
    
  2. Konfigurasikan variabel lingkungan DeepVariant dengan menyalin dan menempel perintah berikut ke lingkungan lokal Anda:

    BIN_VERSION="1.2.0"
    BASE="${HOME}/deepvariant-run"
    INPUT_DIR="${BASE}/input"
    REF="GRCh38_no_alt_analysis_set.fasta"
    BAM="HG003.novaseq.pcr-free.35x.dedup.grch38_no_alt.chr20.bam"
    OUTPUT_DIR="${BASE}/output"
    DATA_DIR="${INPUT_DIR}/data"
    OUTPUT_VCF="HG003.output.vcf.gz"
    OUTPUT_GVCF="HG003.output.g.vcf.gz"
    
  3. Buat struktur direktori lokal untuk direktori data input dan direktori output:

    mkdir -p "${OUTPUT_DIR}"
    mkdir -p "${INPUT_DIR}"
    mkdir -p "${DATA_DIR}"
    
  4. Tutorial ini menggunakan genom HG003 yang tersedia secara publik dengan cakupan 30x yang dipetakan ke referensi GRCh38. Untuk memastikan runtime yang lebih cepat, tambahkan flag --regions chr20 saat Anda menjalankan DeepVariant sehingga DeepVariant hanya berjalan pada kromosom 20 (chr20).

    Data sampel dibuat menggunakan pengurutan Illumina, tetapi DeepVariant juga mendukung jenis data input lain berikut:

    • Seluruh genom (Illumina) (WGS)
    • Exome (Illumina) (WES)
    • Seluruh genom (PacBio)
    • Seluruh genom hibrida PacBio dan Illumina (HYBRID_PACBIO_ILLUMINA)

    Jalankan gsutil cp untuk menyalin data pengujian input dari bucket Cloud Storage deepvariant ke direktori pada instance yang Anda buat:

    # Input BAM and BAI files:
    gsutil cp gs://deepvariant/case-study-testdata/"${BAM}" "${DATA_DIR}"
    gsutil cp gs://deepvariant/case-study-testdata/"${BAM}".bai "${DATA_DIR}"
    
    # GRCh38 reference FASTA file:
    FTPDIR=ftp://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/000/001/405/GCA_000001405.15_GRCh38/seqs_for_alignment_pipelines.ucsc_ids
    curl ${FTPDIR}/GCA_000001405.15_GRCh38_no_alt_analysis_set.fna.gz | gunzip > "${DATA_DIR}/${REF}"
    curl ${FTPDIR}/GCA_000001405.15_GRCh38_no_alt_analysis_set.fna.fai > "${DATA_DIR}/${REF}".fai
    
  5. DeepVariant adalah aplikasi dalam container yang di-build dengan image Docker yang telah dibangun sebelumnya di Container Registry. Untuk mengambil image, jalankan perintah berikut:

    sudo docker pull gcr.io/deepvariant-docker/deepvariant:"${BIN_VERSION}"
    
  6. Untuk memulai DeepVariant, jalankan perintah berikut:

    sudo docker run \
        -v "${DATA_DIR}":"/input" \
        -v "${OUTPUT_DIR}:/output" \
        gcr.io/deepvariant-docker/deepvariant:"${BIN_VERSION}"  \
        /opt/deepvariant/bin/run_deepvariant \
        --model_type=WGS \
        --ref="/input/${REF}" \
        --reads="/input/${BAM}" \
        --output_vcf=/output/${OUTPUT_VCF} \
        --output_gvcf=/output/${OUTPUT_GVCF} \
        --regions chr20 \
        --num_shards=$(nproc) \
        --intermediate_results_dir /output/intermediate_results_dir
    

    Tabel berikut menjelaskan flag yang diteruskan ke perintah:

    Tanda Deskripsi
    model_type DeepVariant mendukung berbagai jenis data input. Tutorial ini menggunakan Whole Genome Sequencing (WSG).
    ref Lokasi file FASTA referensi.
    reads Lokasi file BAM input.
    output_vcf Lokasi file VCF output.
    output_gvcf Lokasi file gVCF output.
    regions (Opsional) Daftar region kromosom yang dipisahkan spasi untuk diproses. Setiap elemen dapat berupa literal wilayah, seperti chr20:10-20 atau jalur ke file BED/BEDPE.
    num_shards Jumlah shard yang akan dijalankan secara paralel. Untuk hasil terbaik, tetapkan nilai flag ini ke jumlah core di mesin tempat DeepVariant berjalan.
    intermediate_results_dir Tanda opsional yang menentukan direktori untuk output menengah dari stage make_examples dan call_variants. Setelah perintah selesai, file akan disimpan ke direktori lokal Anda dalam format berikut:
    dry_run Penanda opsional. Jika disetel ke benar (true), perintah akan dicetak, bukan dieksekusi.
    call_variants_output.tfrecord.gz
    gvcf.tfrecord-SHARD_NUMBER-of-NUM_OF_SHARDS.gz
    make_examples.tfrecord-SHARD_NUMBER-of-NUM_OF_SHARDS.gz
    
  7. Setelah DeepVariant selesai, file berikut akan dihasilkan ke direktori deepvariant-run/output:

    • HG003.output.g.vcf.gz
    • HG003.output.g.vcf.gz.tbi
    • HG003.output.vcf.gz
    • HG003.output.vcf.gz.tbi
    • HG003.output.visual_report.html

    Jalankan perintah berikut untuk menampilkan file dalam direktori output, dan memastikan file output ditampilkan:

    ls $OUTPUT_DIR
    

Estimasi runtime

Tabel berikut menunjukkan perkiraan runtime saat menjalankan DeepVariant menggunakan 30x sampel genom utuh dalam file BAM. Estimasi ini tidak mencakup waktu yang diperlukan untuk menyiapkan instance dan mendownload data sampel dari Cloud Storage.

Anda dapat melihat harga Compute Engine untuk mengetahui harga per jam. Pertimbangkan untuk menggunakan Spot VM, yang jauh lebih murah daripada VM biasa.

Machine type Durasi dalam jam
n1-standard-8 24,63
n1-standard-16 13,30
n1-standard-32 7,77
n1-standard-64 5,64
n1-standard-96 4,38

Pembersihan

Setelah menyelesaikan tutorial, Anda dapat membersihkan resource yang dibuat agar resource tersebut berhenti menggunakan kuota dan dikenai biaya. Bagian berikut menjelaskan cara menghapus atau menonaktifkan resource ini.

Cara termudah untuk menghilangkan penagihan adalah dengan menghapus project yang Anda buat untuk tutorial.

Untuk menghapus project:

  1. Di konsol Google Cloud, buka halaman Manage resource.

    Buka Manage resource

  2. Pada daftar project, pilih project yang ingin Anda hapus, lalu klik Delete.
  3. Pada dialog, ketik project ID, lalu klik Shut down untuk menghapus project.

Langkah selanjutnya