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.
Antes de comenzar
- 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.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Asegúrate de que la facturación esté habilitada para tu proyecto de Google Cloud.
-
Habilita la API de Compute Engine.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Asegúrate de que la facturación esté habilitada para tu proyecto de Google Cloud.
-
Habilita la API de Compute Engine.
- Instala Google Cloud CLI.
-
Para inicializar la CLI de gcloud, ejecuta el siguiente comando:
gcloud init
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.
Console
- En la consola de Google Cloud, ve a la página Instancias de VM.
- Haz clic en Crear instancia.
-
Elige un Nombre para la instancia con el formato
PROJECT_ID-deepvariant-run
, en el que PROJECT_ID es el ID de tu proyecto de Google Cloud. -
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 yus-central1-a
como Zona. - En el menú Tipo de máquina, selecciona n1-standard-64 (64 CPU virtuales, 240 GB de memoria).
- En el menú Plataforma de CPU, selecciona Intel Skylake o una versión posterior.
- En la sección Disco de arranque, haz clic en Cambiar para configurar el disco de arranque.
- 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.
- Haz 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ónus-west
. Si anteriormente estableciste una zona predeterminada congcloud 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 con la consola de Google Cloud o gcloud CLI:
Console
- En la consola de Google Cloud, ve a la página Instancias de VM.
- En la lista de instancias de máquina virtual, haz clic en SSH en la fila de la instancia que creaste.
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:
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
Para configurar las variables de entorno de DeepVariant, copia y pega los siguientes comandos en tu entorno local:
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"
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}"
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 con 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)
- Genoma completo: Híbrido de Illumina y PacBio (HYBRID_PACBIO_ILLUMINA)
Ejecuta
gsutil cp
para copiar los datos de prueba de entrada del bucket de Cloud Storagedeepvariant
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
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}"
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. Cuando se complete el comando, se guardarán los archivos en tu directorio local con los siguientes formatos: dry_run
Marca opcional. Si se configura como verdadero, 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
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 del directorio de salida y verifica que se muestren los archivos de salida:
ls $OUTPUT_DIR
Estimaciones del tiempo 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 ver los precios por hora. Considera usar VMs Spot, que son significativamente más económicas que las VMs 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, haz lo siguiente:
- En la consola de Google Cloud, ve a la página Administrar recursos.
- En la lista de proyectos, elige el proyecto que quieres borrar y haz clic en Borrar.
- En el diálogo, escribe el ID del proyecto y, luego, haz clic en Cerrar para borrar el proyecto.
¿Qué sigue?
- Hay configuraciones más complejas disponibles en el repositorio de DeepVariant en GitHub. Por ejemplo, puedes ejecutar DeepVariant con varias instancias. Estas variaciones proporcionan mejoras en la velocidad de procesamiento y reducen los costos.
- Lee una entrada de blog de IA de Google sobre la versión de código abierto de DeepVariant.
- Si tienes una pregunta sobre DeepVariant, puedes informar un problema en GitHub. Si tienes preguntas sobre Google Cloud, puedes hacer publicaciones en la lista de distribución gcp-life-sciences-discuss@googlegroups.com.