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 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, quindi non è necessario installarlo.

crea un'istanza Compute Engine

Crea un'istanza Compute Engine usando 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 determinata località, seleziona us-central1 (Iowa) per Regione e us-central1-a per 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 versione successiva.
  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 hai già 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à pronta, verrà visualizzata 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 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 comandi seguenti 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 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 a 30 volte di copertura mappato al riferimento GRCh38. Per garantire un runtime più rapido, aggiungi il flag --regions chr20 quando esegui DeepVariant in modo che DeepVariant venga eseguita 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)
    • Esome (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 nell'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 integrata 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 sono descritti i flag passati al comando:

    Flag Descrizione
    model_type DeepVariant supporta diversi tipi di dati di input. Questo tutorial utilizza il sequenziamento del genoma intero (WSG, Whole Genome Sequencing).
    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 Il percorso dei file gVCF di output.
    regions (Facoltativo) Un elenco separato da spazi di regioni di cromosomi da elaborare. I singoli elementi possono essere valori letterali di regione, come 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 sulla macchina in 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é 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 genera 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 i file di output:

    ls $OUTPUT_DIR
    

Stime del runtime

La seguente tabella mostra il runtime approssimativo quando si esegue DeepVariant utilizzando un campione di genoma intero 30 volte 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 di VM spot, che sono molto più economiche delle VM normali.

Tipo di macchina Runtime 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 smettano di essere addebitati. Le sezioni seguenti 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