Organizar tareas ejecutando flujos de procesamiento de dsub en Batch

En este tutorial se explica cómo ejecutar una dsub canalización en Batch. En concreto, el ejemplo de flujo de procesamiento dsub procesa datos de secuenciación de ADN en un archivo de mapa de alineación binario (BAM) para crear un archivo de índice BAM (BAI).

Este tutorial está dirigido a los usuarios de Batch que quieran usar dsub con Batch. dsub es un programador de tareas de código abierto para orquestar flujos de trabajo de procesamiento por lotes en Google Cloud. Para obtener más información sobre cómo usar Batch con dsub, consulta la documentación de dsub sobre Batch.

Crea un segmento de Cloud Storage

Para crear un segmento de Cloud Storage en el que almacenar los archivos de salida de la canalización de ejemplo dsub con la CLI de gcloud, ejecuta el comando gcloud storage buckets create:

gcloud storage buckets create gs://BUCKET_NAME \
    --project PROJECT_ID

Haz los cambios siguientes:

El resultado debería ser similar al siguiente:

Creating gs://BUCKET_NAME/...

Ejecuta el flujo de procesamiento dsub.

El flujo de procesamiento de dsub de ejemplo indexa un archivo BAM del proyecto 1000 Genomas y envía los resultados a un segmento de Cloud Storage.

Para ejecutar la canalización de ejemplo dsub, ejecuta el siguiente comando dsub:

dsub \
    --provider google-batch \
    --project PROJECT_ID \
    --logging gs://BUCKET_NAME/WORK_DIRECTORY/logs \
    --input BAM=gs://genomics-public-data/1000-genomes/bam/HG00114.mapped.ILLUMINA.bwa.GBR.low_coverage.20120522.bam \
    --output BAI=gs://BUCKET_NAME/WORK_DIRECTORY/HG00114.mapped.ILLUMINA.bwa.GBR.low_coverage.20120522.bam.bai \
    --image quay.io/cancercollaboratory/dockstore-tool-samtools-index \
    --command 'samtools index ${BAM} ${BAI}' \
    --wait

Haz los cambios siguientes:

  • PROJECT_ID: el ID de proyecto de tu Google Cloud proyecto.

  • BUCKET_NAME: el nombre del segmento de Cloud Storage que has creado.

  • WORK_DIRECTORY: el nombre de un nuevo directorio que la canalización puede usar para almacenar registros y resultados. Por ejemplo, escribe workDir.

El flujo de procesamiento dsub ejecuta una tarea por lotes que escribe el archivo BAI y los registros en el directorio especificado de tu segmento de Cloud Storage. En concreto, el repositorio dsub contiene una imagen de Docker prediseñada que usa samtools para indexar el archivo BAM que has especificado en la marca --input.

El comando no finaliza hasta que se completa la ejecución de la canalización dsub, lo que puede variar en función de cuándo se programe el trabajo por lotes. Por lo general, este proceso tarda unos 10 minutos: Batch suele empezar a ejecutar el trabajo en unos minutos y el tiempo de ejecución del trabajo es de unos 8 minutos.

Al principio, el comando sigue ejecutándose y el resultado es similar al siguiente:

Job properties:
  job-id: JOB_NAME
  job-name: samtools
  user-id: USERNAME
Provider internal-id (operation): projects/PROJECT_ID/locations/us-central1/jobs/JOB_NAME
Launched job-id: JOB_NAME
To check the status, run:
  dstat --provider google-batch --project PROJECT_ID --location us-central1 --jobs 'JOB_NAME' --users 'USERNAME' --status '*'
To cancel the job, run:
  ddel --provider google-batch --project PROJECT_ID --location us-central1 --jobs 'JOB_NAME' --users 'USERNAME'
Waiting for job to complete...
Waiting for: JOB_NAME.

Después de que el trabajo se haya completado correctamente, el comando finaliza y el resultado es similar al siguiente:

  JOB_NAME: SUCCESS
JOB_NAME

Esta salida incluye los siguientes valores:

  • JOB_NAME: el nombre del puesto.

  • USERNAME: tu nombre de usuario Google Cloud .

  • PROJECT_ID: el ID de proyecto de tu Google Cloud proyecto.

Ver los archivos de salida

Para ver los archivos de salida creados por el flujo de trabajo dsub de ejemplo con gcloud CLI, ejecuta el comando gcloud storage ls:

gcloud storage ls gs://BUCKET_NAME/WORK_DIRECTORY \
    --project PROJECT_ID

Haz los cambios siguientes:

  • BUCKET_NAME: el nombre del segmento de Cloud Storage que has creado.

  • WORK_DIRECTORY: el directorio que has especificado en el comando dsub.

  • PROJECT_ID: el ID de proyecto de tu Google Cloud proyecto.

El resultado debería ser similar al siguiente:

gs://BUCKET_NAME/WORK_DIRECTORY/HG00114.mapped.ILLUMINA.bwa.GBR.low_coverage.20120522.bam.bai
gs://BUCKET_NAME/WORK_DIRECTORY/logs/

Esta salida incluye el archivo BAI y un directorio que contiene los registros del trabajo.