Esecuzione di DeepVariant

DeepVariant è una pipeline di analisi che utilizza una profonda rete neurale 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 di Compute Engine.

Obiettivi

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

Costi

In questo documento vengono utilizzati 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 possono essere idonei a una prova senza costi aggiuntivi.

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. Nella pagina del selettore di progetti della console Google Cloud, seleziona o crea un progetto Google Cloud.

    Vai al selettore progetti

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

  4. Attiva l'API Compute Engine.

    Abilita l'API

  5. Nella pagina del selettore di progetti della console Google Cloud, seleziona o crea un progetto Google Cloud.

    Vai al selettore progetti

  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 utilizzare Cloud Shell. Cloud Shell è un ambiente a riga di comando che include già Google Cloud CLI, per cui non è necessario installarlo.

Crea un'istanza di Compute Engine

Crea un'istanza di Compute Engine utilizzando la console Google Cloud o l'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 non tu abbia un motivo specifico per eseguire l'istanza in una determinata posizione, seleziona us-central1 (Iowa) per l'area geografica e us-central1-a per l'area 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: il tuo ID progetto Google Cloud
  • ZONE: la zona in cui è stato eseguito il deployment dell'istanza. Una zona è una località geografica 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 quella predefinita.

Potrebbe essere necessario un po' di tempo per l'avvio dell'istanza. Una volta 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 l'interfaccia alla 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 l'ambiente ed esegui DeepVariant sull'istanza di Compute Engine che hai creato:

  1. Installa 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 nell'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 di 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 e una copertura 30x mappato 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 la sequenza di Illumina, ma DeepVariant supporta anche i seguenti altri tipi di dati di input:

    • Genoma intero (Illuminazione) (WGS)
    • Exome (Illumina) (WES)
    • Genoma intero (PacBio)
    • Ibrido PacBio e Illumina genoma intero (HYBRID_PACBIO_ILLUMINA)

    Esegui gsutil cp per copiare i dati di test di input dal bucket Cloud Storage di deepvariant nelle directory dell'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, archiviata in un'immagine Docker predefinita in Container Registry. Per eseguire il pull dell'immagine, esegui il comando seguente:

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

    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
    

    La tabella seguente descrive i flag trasmessi al comando:

    Flag Descrizione
    model_type DeepVariant supporta diversi tipi di dati di input. Questo tutorial utilizza la sequenza genomica completa (WSG).
    ref La posizione del file FASTA di riferimento.
    reads La posizione del file BAM di input.
    output_vcf La posizione dei file VCF di output.
    output_gvcf La posizione dei file di output gVCF.
    regions (Facoltativo) Un elenco separato da spazi delle regioni cromosomiche da elaborare. I singoli elementi possono essere valori letterali di regione, come chr20:10-20 o percorsi a 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 sulla macchina su cui viene eseguita DeepVariant.
    intermediate_results_dir Flag facoltativo che specifica la directory per gli output intermedi delle fasi make_examples e call_variants. Una volta completato il comando, i file verranno salvati nella directory locale nei seguenti formati:
    dry_run Flag facoltativo. Se impostato su true, i comandi verranno stampati anziché eseguirli.
    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 di DeepVariant, i file seguenti vengono restituiti 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 controlla che vengano visualizzati:

    ls $OUTPUT_DIR
    

Stime di runtime

La seguente tabella 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 i dati di esempio da Cloud Storage.

Consulta i prezzi di Compute Engine per i prezzi orari. Prendi in considerazione l'utilizzo di VM Spot, che sono significativamente più economiche delle VM normali.

Tipo di macchina Durata 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

Al termine del tutorial, puoi eseguire la pulizia delle risorse che hai creato in modo che smettano di utilizzare la quota e vengano addebitati costi. Le seguenti sezioni descrivono come eliminare o disattivare queste risorse.

Il modo più semplice per eliminare la fatturazione è 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