Esecuzione di DeepVariant

DeepVariant è una pipeline di analisi che utilizza una rete neurale profonda per chiamare varianti genetiche dai dati di sequenziamento del DNA di nuova generazione.

Questo tutorial spiega come eseguire DeepVariant su Google Cloud utilizzando dati di esempio. Esegui DeepVariant su una singola istanza Compute Engine.

Obiettivi

Dopo aver completato questo tutorial, saprai come eseguire DeepVariant su Google Cloud.

Costi

In questo documento, utilizzi i seguenti componenti fatturabili di Google Cloud:

  • Compute Engine

Per generare una stima dei costi in base all'utilizzo previsto, utilizza il Calcolatore prezzi. I nuovi utenti di Google Cloud potrebbero essere idonei per una prova gratuita.

Prima di iniziare

  1. Accedi al tuo account Google Cloud. Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti gratuiti per l'esecuzione, il test e il deployment dei carichi di lavoro.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

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

  4. Attiva l'API Compute Engine.

    Abilita l'API

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

    Go to project selector

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

  7. Attiva l'API Compute Engine.

    Abilita l'API

  8. Installa Google Cloud CLI.
  9. Per initialize gcloud CLI, esegui questo comando:

    gcloud init
  10. Suggerimento: se hai bisogno di un prompt dei comandi, Puoi usare Cloud Shell. Cloud Shell è un ambiente a riga di comando che include già Google Cloud CLI, quindi non è necessario installarlo.

crea un'istanza Compute Engine

Crea un'istanza Compute Engine con la console Google Cloud o gcloud CLI per eseguire DeepVariant.

Console

  1. Nella console Google Cloud, vai alla pagina Istanze VM.

    Vai alla pagina Istanze VM

  2. Fai clic su Crea istanza.
  3. Scegli un nome per l'istanza nel formato PROJECT_ID-deepvariant-run, dove PROJECT_ID è l'ID del tuo progetto Google Cloud.
  4. Scegli una regione e una zona per l'istanza. A meno che tu non abbia un motivo specifico per eseguire l'istanza in una località specifica, seleziona us-central1 (Iowa) per la Regione e us-central1-a per la Zona.
  5. Nel menu Tipo di macchina, seleziona n1-standard-64 (64 vCPU, 240 GB di memoria).
  6. Nel menu Piattaforma CPU, seleziona Intel Skylake o versioni successive.
  7. Nella sezione Disco di avvio, fai clic su Cambia per iniziare a configurare il disco di avvio.
  8. Nella scheda Immagini pubbliche, scegli Ubuntu 20.04 LTS. Nel menu Tipo di disco di avvio, seleziona Disco permanente standard. Nel campo Dimensioni (GB), inserisci 300. Fai clic su Seleziona.
  9. Fai clic sul pulsante Crea per creare l'istanza.

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

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del tuo progetto Google Cloud
  • ZONE: la zona in cui viene eseguito il deployment dell'istanza. Una zona è una località regionale approssimativa in cui risiedono l'istanza e le relative risorse. Ad esempio, us-west1-a è una zona nella regione us-west. Se in precedenza hai impostato una zona predefinita utilizzando gcloud config set compute/zone, il valore di questo flag sostituisce quello predefinito.

Potrebbe essere necessario un po' di tempo per l'avvio dell'istanza. Quando sarà pronto, verrà visualizzato nella pagina Istanze VM con un'icona di stato verde.

Connettersi all'istanza

Puoi connetterti all'istanza utilizzando la console Google Cloud o gcloud CLI:

Console

  1. Nella console Google Cloud, vai alla pagina Istanze VM.

    Vai alla pagina Istanze VM

  2. Nell'elenco delle istanze di macchine virtuali, fai clic su SSH nella riga dell'istanza che hai creato.

gcloud

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

Esecuzione di DeepVariant

Configura il tuo ambiente ed esegui DeepVariant sull'istanza Compute Engine che hai creato:

  1. Installa la 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. Configura le variabili di ambiente DeepVariant copiando e incollando i seguenti comandi nel tuo ambiente locale:

    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. Crea la struttura della directory locale per la directory dei dati di input e la directory di output:

    mkdir -p "${OUTPUT_DIR}"
    mkdir -p "${INPUT_DIR}"
    mkdir -p "${DATA_DIR}"
    
  4. Questo tutorial utilizza un genoma HG003 disponibile pubblicamente con una copertura di 30x mappata al riferimento GRCh38. Per garantire un runtime più rapido, aggiungi il flag --regions chr20 quando esegui DeepVariant, in modo che DeepVariant venga eseguito solo sul cromosoma 20 (chr20).

    I dati di esempio sono stati creati utilizzando il sequenziamento Illumina, ma DeepVariant supporta anche questi altri tipi di dati di input:

    • Genoma intero (Illumina) (WGS)
    • Exome (Illumina) (WES)
    • Genoma intero (PacBio)
    • Genoma intero PacBio e Illumina ibrida (HYBRID_PACBIO_ILLUMINA)

    Esegui gsutil cp per copiare i dati di test di input dal bucket Cloud Storage deepvariant alle directory sull'istanza che hai creato:

    # 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 è un'applicazione containerizzata ospitata in un ambiente temporaneo in un'immagine Docker predefinita in Container Registry. Per eseguire il pull dell'immagine, esegui questo comando:

    sudo docker pull gcr.io/deepvariant-docker/deepvariant:"${BIN_VERSION}"
    
  6. Per avviare DeepVariant, esegui questo comando:

    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
    

    Nella tabella seguente vengono descritti i flag passati al comando:

    Flag Descrizione
    model_type DeepVariant supporta diversi tipi di dati di input. Questo tutorial utilizza il sequenziamento dell'intero genoma (WSG).
    ref La posizione del file FASTA di riferimento.
    reads La posizione del file BAM di input.
    output_vcf Il percorso dei file VCF di output.
    output_gvcf Il percorso dei file gVCF di output.
    regions (Facoltativo) Un elenco di regioni dei cromosomi da elaborare, separate da spazi. I singoli elementi possono essere valori letterali di regione, ad esempio chr20:10-20 o percorsi ai file BED/BEDPE.
    num_shards Numero di shard da eseguire in parallelo. Per ottenere risultati ottimali, imposta il valore di questo flag sul numero di core della macchina su cui viene eseguito DeepVariant.
    intermediate_results_dir Flag facoltativo che specifica la directory per gli output intermedi delle fasi make_examples e call_variants. Al termine del comando, i file verranno salvati nella directory locale nei seguenti formati:
    dry_run Flag facoltativo. Se il criterio viene impostato su true, i comandi verranno stampati anziché essere eseguiti.
    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. Al termine DeepVariant, invia i seguenti file nella directory 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

    Esegui questo comando per elencare i file nella directory di output e verifica che vengano visualizzati:

    ls $OUTPUT_DIR
    

Stime di runtime

La tabella seguente mostra il tempo di esecuzione approssimativo durante l'esecuzione di DeepVariant utilizzando un campione di genoma intero 30x in un file BAM. Queste stime non includono il tempo necessario per configurare l'istanza e scaricare eventuali dati di esempio da Cloud Storage.

Puoi fare riferimento ai prezzi di Compute Engine per i prezzi orari. Prendi in considerazione l'utilizzo delle VM spot, che sono molto più economiche rispetto alle VM normali.

Tipo di macchina Tempo di esecuzione in ore
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

Esegui la pulizia

Dopo aver completato il tutorial, puoi eseguire la pulizia delle risorse che hai creato in modo che smettano di utilizzare la quota e generino addebiti. Le sezioni seguenti descrivono come eliminare o disattivare queste risorse.

Il modo più semplice per eliminare la fatturazione è quello di eliminare il progetto che hai creato per il tutorial.

Per eliminare 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.

Passaggi successivi