Ejecuta DeepVariant

DeepVariant es una canalización de análisis que utiliza una red neuronal profunda para detectar variantes genéticas a partir de datos de secuenciación de ADN de última generación.

En este instructivo, se explica cómo ejecutar DeepVariant en Google Cloud con datos de muestra. Ejecuta DeepVariant en una sola instancia de Compute Engine.

Objetivos

Después de completar este instructivo, sabrás cómo ejecutar DeepVariant en Google Cloud.

Costos

En este documento, usarás los siguientes componentes facturables de Google Cloud:

  • Compute Engine

Para generar una estimación de costos en función del uso previsto, usa la calculadora de precios. Es posible que los usuarios nuevos de Google Cloud califiquen para obtener una prueba gratuita.

Antes de comenzar

  1. Accede a tu cuenta de Google Cloud. Si eres nuevo en Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
  2. En la página del selector de proyectos de la consola de Google Cloud, selecciona o crea un proyecto de Google Cloud.

    Ir al selector de proyectos

  3. Asegúrate de que la facturación esté habilitada para tu proyecto de Google Cloud.

  4. Habilita la API de Compute Engine.

    Habilita la API

  5. En la página del selector de proyectos de la consola de Google Cloud, selecciona o crea un proyecto de Google Cloud.

    Ir al selector de proyectos

  6. Asegúrate de que la facturación esté habilitada para tu proyecto de Google Cloud.

  7. Habilita la API de Compute Engine.

    Habilita la API

  8. Instala Google Cloud CLI.
  9. Para inicializar la CLI de gcloud, ejecuta el siguiente comando:

    gcloud init
  10. Sugerencia: ¿Necesitas un símbolo del sistema? Puedes usar Cloud Shell. Cloud Shell es un entorno de línea de comandos que ya incluye Google Cloud CLI, por lo que no necesitas instalarlo.

Crea una instancia de Compute Engine

Crea una instancia de Compute Engine con la consola de Google Cloud o gcloud CLI para ejecutar DeepVariant.

Consola

  1. En la consola de Google Cloud, ve a la página Instancias de VM.

    Ir a la página Instancias de VM

  2. Haz clic en Crear instancia.
  3. Elige un Nombre para la instancia en el formato PROJECT_ID-deepvariant-run, en el que PROJECT_ID es el ID de tu proyecto de Google Cloud.
  4. Elige una Región y una Zona para la instancia. A menos que tengas un motivo específico para ejecutar la instancia en una ubicación determinada, selecciona us-central1 (Iowa) como Región y us-central1-a como Zona.
  5. En el menú Tipo de máquina, selecciona n1-standard-64 (64 CPU virtuales, 240 GB de memoria).
  6. En el menú Plataforma de CPU, selecciona Intel Skylake o una versión posterior.
  7. En la sección Disco de arranque, haz clic en Cambiar para configurar el disco de arranque.
  8. En la pestaña Imágenes públicas, elige Ubuntu 20.04 LTS. En el menú Tipo de disco de arranque, selecciona Disco persistente estándar. En el campo Tamaño (GB), ingresa 300. Haz clic en Seleccionar.
  9. Haga clic en Crear para crear la instancia.

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

Reemplaza lo siguiente:

  • PROJECT_ID: El ID del proyecto de Google Cloud.
  • ZONE: es la zona en la que se implementa tu instancia. Una zona es una ubicación regional aproximada en la que residen tu instancia y sus recursos. Por ejemplo, us-west1-a es una zona en la región us-west. Si anteriormente estableciste una zona predeterminada con gcloud config set compute/zone, el valor de esta marca anula el valor predeterminado.

La instancia tardará unos momentos en iniciarse. Cuando esté lista, aparecerá en la página Instancias de VM con un ícono de estado verde.

Conéctate a la instancia

Puedes conectarte a la instancia mediante la consola de Google Cloud o gcloud CLI:

Consola

  1. En la consola de Google Cloud, ve a la página Instancias de VM.

    Ir a la página Instancias de VM

  2. En la lista de instancias de máquina virtual, haga clic en SSH en la fila de la instancia que creó.

gcloud

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

Ejecuta DeepVariant

Configura tu entorno y ejecuta DeepVariant en la instancia de Compute Engine que creaste:

  1. Instala 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. Copia y pega los siguientes comandos en el entorno local para configurar las variables de entorno de DeepVariant:

    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 estructura de directorios local para el directorio de datos de entrada y el de salida:

    mkdir -p "${OUTPUT_DIR}"
    mkdir -p "${INPUT_DIR}"
    mkdir -p "${DATA_DIR}"
    
  4. En este instructivo, se usa un genoma HG003 disponible públicamente con una cobertura de 30 veces asignado a la referencia de GRCh38. Para garantizar un tiempo de ejecución más rápido, agrega la marca --regions chr20 cuando ejecutes DeepVariant, de modo que DeepVariant solo se ejecute en el cromosoma 20 (chr20).

    Los datos de muestra se crearon mediante la secuenciación de Illumina, pero DeepVariant también admite estos otros tipos de datos de entrada:

    • Genoma completo (Illumina) (WGS)
    • Exoma (Illumina) (WES)
    • Genoma completo (PacBio)
    • Híbrido híbrido Iclumina y PacBio completo (HYBRID_PACBIO_ILLUMINA)

    Ejecuta gsutil cp para copiar los datos de prueba de entrada del bucket de Cloud Storage deepvariant a los directorios de la instancia que creaste.

    # 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 es una aplicación en contenedores montada en una imagen prediseñada de Docker en Container Registry. Para extraer la imagen, ejecuta el siguiente comando:

    sudo docker pull gcr.io/deepvariant-docker/deepvariant:"${BIN_VERSION}"
    
  6. Para iniciar DeepVariant, ejecuta el siguiente 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
    

    En la siguiente tabla, se describen las marcas que se pasan en el comando:

    Marca Descripción
    model_type DeepVariant admite varios tipos diferentes de datos de entrada. En este instructivo, se usa la Secuenciación del genoma completo (WSG).
    ref La ubicación del archivo FASTA de referencia.
    reads La ubicación del archivo BAM de entrada.
    output_vcf La ubicación de los archivos VCF de salida.
    output_gvcf La ubicación de los archivos gVCF de salida.
    regions Una lista separada por comas de las regiones cromosómicas que se deben procesar (opcional). Cada elemento puede ser un literal de región, como chr20:10-20 o rutas de acceso a archivos BED/BEDPE.
    num_shards La cantidad de fragmentos que se ejecutarán en paralelo. Para obtener mejores resultados, establece el valor de esta marca en la cantidad de núcleos de la máquina en la que se ejecuta DeepVariant.
    intermediate_results_dir Marca opcional que especifica el directorio para los resultados intermedios de las etapas make_examples y call_variants. Una vez que se complete el comando, los archivos se guardarán en el directorio local con los siguientes formatos:
    dry_run Marca opcional. Si se establece como verdadera, se imprimirán los comandos en lugar de ejecutarse.
    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. Una vez que DeepVariant termina, genera los siguientes archivos en el directorio 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

    Ejecuta el siguiente comando para enumerar los archivos en el directorio de salida y verifica que se muestren los archivos de salida:

    ls $OUTPUT_DIR
    

Estimaciones del entorno de ejecución

En la siguiente tabla, se muestran el tiempo de ejecuciónaproximados cuando se ejecuta DeepVariant con una muestra de genoma completo de 30 veces en un archivo BAM. Estas estimaciones no incluyen el tiempo necesario para configurar la instancia y descargar datos de muestra de Cloud Storage.

Puedes consultar los precios de Compute Engine para conocer los precios por hora. Considera usar VMs Spot, que son mucho más económicas que las VM normales.

Tipo de máquina Tiempo de ejecución en horas
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

Limpia

Una vez que completes el instructivo, puedes limpiar los recursos que creaste para que dejen de usar la cuota y generar cargos. En las siguientes secciones, se describe cómo borrar o desactivar estos recursos.

La manera más fácil de eliminar la facturación es borrar el proyecto que creaste para el instructivo.

Para borrar el proyecto, haga lo siguiente:

  1. En la consola de Google Cloud, ve a la página Administrar recursos.

    Ir a Administrar recursos

  2. En la lista de proyectos, elige el proyecto que quieres borrar y haz clic en Borrar.
  3. En el diálogo, escribe el ID del proyecto y, luego, haz clic en Cerrar para borrar el proyecto.

¿Qué sigue?