Esta página se ha traducido con Cloud Translation API.
Switch to English

Ejecuta las prácticas recomendadas de GATK

En esta página, se explica cómo ejecutar una canalización en Google Cloud según las prácticas recomendadas de GATK que brinda el Broad Institute.

El flujo de trabajo que se utiliza en este instructivo es una implementación de las prácticas recomendadas de GATK para el descubrimiento de variantes en los datos de la secuenciación del genoma completo (WGS). El flujo de trabajo está escrito en el lenguaje Workflow Definition Language (WDL) del Broad Institute y se realiza en el ejecutor de WDL Cromwell.

Objetivos

Después de completar el instructivo, sabrás cómo realizar las siguientes actividades:

  • Ejecutar una canalización según las prácticas recomendadas de GATK con los datos de la versión 38 del genoma humano de referencia
  • Ejecutar una canalización según las prácticas recomendadas de GATK con tus propios datos

Costos

En este instructivo, se usan los siguientes componentes facturables de Google Cloud:

  • Compute Engine
  • Cloud Storage

Usa la calculadora de precios para generar una estimación de los costos según el uso previsto. Los usuarios nuevos de Cloud Platform pueden cumplir los requisitos para 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 Google Cloud Console, selecciona o crea un proyecto de Google Cloud.

    Ir al selector de proyecto

  3. Comprueba que la facturación esté habilitada en tu proyecto.

    Descubre cómo puedes habilitar la facturación

  4. Habilita las API de Cloud Life Sciences, Compute Engine, and Cloud Storage.

    Habilita las API

  5. Instala e inicializa el SDK de Cloud.
  6. Instala y actualiza los componentes de gcloud:
    gcloud components update &&
    gcloud components install beta
  7. Instala Git para descargar los archivos necesarios.

    Descargar Git

  8. Con la configuración predeterminada, Compute Engine tiene cuotas de recursos para evitar el uso involuntario. Mediante el aumento de las cuotas, puedes iniciar más máquinas virtuales de forma simultánea, lo que aumenta la capacidad de procesamiento y reduce el tiempo de respuesta.

    Para obtener los mejores resultados en este instructivo, debes solicitar una cuota adicional superior a la predeterminada de tu proyecto. En la siguiente lista, se proporcionan recomendaciones para los aumentos de cuota, así como las cuotas mínimas necesarias para ejecutar el instructivo. Realiza tus solicitudes de cuota en la región us-central1:

    • CPU: 101 (17 como mínimo)
    • Estándar de disco persistente (GB): 10,500 (320 como mínimo)
    • Direcciones IP en uso: 51 (2 como mínimo)

    Puedes dejar vacíos los otros campos de la solicitud de cuota para mantener las cuotas actuales.

Crea un bucket de Cloud Storage

Crea un depósito de Cloud Storage con el comando gsutil mb. Debido a un requisito del motor de Cromwell, no debes utilizar caracteres de guión bajo (_) en el nombre del depósito. De lo contrario, se producirá un error.

gsutil mb gs://BUCKET

La canalización producirá resultados, registros y archivos intermedios en este bucket.

Descarga los archivos de ejemplo

Descarga la secuencia de comandos de WDL y auxiliar:

git clone https://github.com/broadinstitute/wdl-runner.git
git clone https://github.com/gatk-workflows/broad-prod-wgs-germline-snps-indels.git

El repositorio gatk-workflows/broad-prod-wgs-germline-snps-indels contiene los siguientes archivos, necesarios para ejecutar la canalización:

  • *.wdl: definición del flujo de trabajo
  • *.inputs.json: parámetros de entrada, como las rutas de acceso a los archivos BAM y el genoma de referencia
  • *.options.json: opciones del entorno de ejecución del flujo de trabajo

Puedes encontrar el archivo de definición de la canalización de Cromwell que se usa para ejecutar canalizaciones en WDL en el repositorio broadinstitute/wdl-runner/wdl_runner/.

Ejecuta la canalización con los datos de muestra

La canalización se ejecuta con datos de WGS y la versión 38 del genoma humano de referencia. Los archivos de entrada son archivos BAM sin alinear.

Para ejecutar la canalización, haz lo siguiente:

  1. Crea la variable de entorno GATK_GOOGLE_DIR, que dirige a la carpeta que contiene los archivos de la canalización de Broad:

    export GATK_GOOGLE_DIR="${PWD}"/broad-prod-wgs-germline-snps-indels
    
  2. Crea la variable de entorno GATK_OUTPUT_DIR, que dirige al depósito de Cloud Storage y una carpeta para el output del flujo de trabajo, los archivos work intermedios y logging:

    export GATK_OUTPUT_DIR=gs://BUCKET/FOLDER
    
  3. Cambia el directorio a la carpeta /wdl_runner en el repositorio que descargaste. Este directorio contiene el archivo de definición de la canalización para ejecutar canalizaciones basadas en WDL en Google Cloud:

    cd wdl-runner/wdl_runner/
    
  4. Ejecuta la canalización:

    gcloud beta lifesciences pipelines run \
      --pipeline-file wdl_pipeline.yaml \
      --location us-central1 \
      --regions us-central1 \
      --inputs-from-file WDL=${GATK_GOOGLE_DIR}/PairedEndSingleSampleWf.wdl,\
    WORKFLOW_INPUTS=${GATK_GOOGLE_DIR}/PairedEndSingleSampleWf.hg38.inputs.json,\
    WORKFLOW_OPTIONS=${GATK_GOOGLE_DIR}/PairedEndSingleSampleWf.options.json \
      --env-vars WORKSPACE=${GATK_OUTPUT_DIR}/work,\
    OUTPUTS=${GATK_OUTPUT_DIR}/output \
      --logging ${GATK_OUTPUT_DIR}/logging/
    
  5. El comando muestra un ID de operación en el formato Running [operations/OPERATION_ID]. Puedes usar el ID de operación para realizar un seguimiento del estado de la canalización. Para ello, ejecuta el siguiente comando (asegúrate de que el valor de la marca --location coincida con la ubicación especificada en el paso anterior):

    gcloud beta lifesciences operations describe OPERATION_ID \
        --location=us-central1 \
        --format='yaml(done, error, metadata.events)'
    
  6. El comando operations describe muestra done: true cuando finaliza la canalización.

    Puedes ejecutar una secuencia de comandos incluida con el wdl_runner para comprobar cada 300 segundos si el trabajo está en ejecución, finalizó o mostró un error:

    ../monitoring_tools/monitor_wdl_pipeline.sh OPERATION_ID us-central1 300
    
  7. Una vez que tu canalización finalice, ejecuta el siguiente comando para enumerar los resultados enviados a tu bucket de Cloud Storage:

    gsutil ls gs://BUCKET/FOLDER/output/
    

Puedes ver los archivos intermedios creados por la canalización y elegir cuáles quieres conservar, o bien quitarlos para reducir los costos asociados con Cloud Storage. Si quieres quitar los archivos, consulta Cómo borrar archivos intermedios en tu depósito de Cloud Storage.

Cómo ejecutar la canalización de las Recomendaciones de GATK en tus datos

Antes de ejecutar la canalización en tus datos locales, tienes que copiar los datos en un bucket de Cloud Storage.

Cómo copia los archivos de entrada

La canalización puede ejecutarse con los archivos BAM sin alinear almacenados en Cloud Storage. Si tus archivos están en otro formato, como BAM alineado o FASTQ, debes convertirlos para que puedan subirse a Cloud Storage. Puedes convertirlos de manera local o usar la API de Pipelines para convertirlos en la nube.

El ejemplo siguiente muestra cómo copiar un archivo único de un sistema de archivos local a un bucket de Cloud Storage:

gsutil -m -o 'GSUtil:parallel_composite_upload_threshold=150M' cp FILE \
    gs://BUCKET/FOLDER

Para ver más ejemplos de cómo copiar archivos a un depósito de Cloud Storage, consulta la sección sobre Cómo copiar datos a Cloud Storage.

La herramienta de línea de comandos de gsutil verifica las checksums automáticamente, de modo que cuando la transferencia se realice correctamente, tus datos serán compatibles para que los uses con las prácticas recomendadas de GATK.

Ejecuta la canalización en tus datos

Para ejecutar las prácticas recomendadas de GATK en tus propios archivos BAM sin alinear, crea una copia de PairedEndSingleSampleWf.hg38.inputs.json y actualiza las rutas de acceso para que dirijan a tus archivos en un depósito de Cloud Storage. A continuación, puedes seguir los pasos de Ejecuta la canalización con los datos de muestra con el archivo PairedEndSingleSampleWf.hg38.inputs.json actualizado.

Si tus datos no son archivos BAM sin alinear y contienen genomas de referencia, secuenciación del exoma, paneles orientados y datos somáticos, tendrás que usar flujos de trabajo distintos. Consulta el Foro de asistencia de GATK y el repositorio de GitHub del Broad Institute para obtener más información.

Solución de problemas

  • La canalización está configurada para usar las instancias de Compute Engine en regiones y zonas específicas. Cuando ejecutas la herramienta de gcloud, utiliza automáticamente una región y una zona predeterminadas según la ubicación en la que se creó tu proyecto de Google Cloud. Esto puede generar el siguiente mensaje de error cuando ejecutas la canalización:

    "ERROR: (gcloud.beta.lifesciences.pipelines.run) INVALID_ARGUMENT: Error: validating pipeline: zones and regions cannot be specified together"

    Para resolver este problema, quita la región y zona predeterminadas mediante los siguientes comandos y, luego, ejecuta la canalización nuevamente:

    gcloud config unset compute/zone
    gcloud config unset compute/region
    

    Si quieres obtener más información acerca de cómo configurar la región y zona predeterminadas en tu proyecto de Google Cloud, consulta Cambia la región o la zona predeterminadas.

  • Si tienes problemas para ejecutar la canalización, consulta la solución de problemas de la API de Cloud Life Sciences.

  • GATK tiene exigencias estrictas acerca de los formatos de archivos de entrada. Para evitar problemas, puedes validar tus archivos con ValidateSamFile.

  • Si tu ejecución de GATK falla, puedes comprobar los registros mediante el siguiente comando:

    gsutil ls gs://BUCKET/FOLDER/logging
    
  • Si te encuentras con errores de permiso, comprueba que tu cuenta de servicio tenga acceso de lectura a los archivos de entrada y acceso de escritura a la ruta de acceso del depósito de los archivos de salida. Si escribes archivos de salida en un bucket de un proyecto de Google Cloud que no es tuyo, deberás otorgarle permiso a la cuenta de servicio para que acceda al bucket.

Limpieza

Borra los archivos intermedios del bucket de Cloud Storage

Cuando ejecutas la canalización, esta almacena los archivos intermedios en gs://BUCKET/FOLDER/work. Puedes quitar los archivos después de que se complete el flujo de trabajo para reducir los cargos de Cloud Storage.

Para ver cuánto espacio se usa en el directorio work, ejecuta el siguiente comando. Es posible que el comando tarde varios minutos en ejecutarse debido al tamaño de los archivos en el directorio.

gsutil du -sh gs://BUCKET/FOLDER/work

Ejecuta el comando siguiente para quitar todos los archivos intermedios del directorio work:

gsutil -m rm gs://BUCKET/FOLDER/work/**

Borra el proyecto

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

Para borrar el proyecto, haz lo siguiente:

  1. En Cloud Console, ve a la página Proyectos.

    Ir a la página Proyectos

  2. En la lista de proyectos, selecciona el que quieres borrar y haz clic en Borrar proyecto (Delete project. Después de seleccionar la casilla de verificación ubicada junto al nombre del proyecto, haz clic en Borrar proyecto
  3. En el cuadro de diálogo, escribe el ID del proyecto y, luego, haz clic en Cerrar para borrar el proyecto.

¿Qué sigue?

  • En este instructivo, En este instructivo, se muestra cómo ejecutar un flujo de trabajo predefinido en un caso de uso limitado, pero no está diseñado para ejecutarse en producción. A fin de obtener información para realizar el procesamiento de datos genómicos en un entorno de producción en Google Cloud, consulta Arquitectura de referencia del procesamiento de datos genómicos.
  • El sitio de GATK y los foros del Broad Institute ofrecen información general, documentación y asistencia más completas sobre las herramientas de GATK y WDL.