Orchestrate jobs by running dsub pipelines on Batch

Ce tutoriel explique comment exécuter un pipeline dsub sur Batch. Plus précisément, l'exemple de pipeline dsub traite les données de séquençage de l'ADN dans un fichier BAM (Binary Alignment Map) pour créer un fichier d'index BAM (BAI).

Ce tutoriel s'adresse aux utilisateurs de Batch qui souhaitent utiliser dsub avec Batch. dsub est un planificateur de tâches Open Source permettant d'orchestrer les workflows de traitement par lot sur Google Cloud. Pour savoir comment utiliser Batch avec dsub, consultez la documentation dsub pour Batch.

Créer un bucket Cloud Storage

Pour créer un bucket Cloud Storage afin de stocker les fichiers de sortie du pipeline dsub exemple à l'aide de la gcloud CLI, exécutez la commande gcloud storage buckets create :

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

Remplacez les éléments suivants :

Le résultat ressemble à ce qui suit :

Creating gs://BUCKET_NAME/...

Exécuter le pipeline dsub

L'exemple de pipeline dsub indexe un fichier BAM du projet 1000 Génomes et génère les résultats dans un bucket Cloud Storage.

Pour exécuter l'exemple de pipeline dsub, exécutez la commande dsub suivante :

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

Remplacez les éléments suivants :

  • PROJECT_ID : ID de projet de votre projet Google Cloud .

  • BUCKET_NAME : nom du bucket Cloud Storage que vous avez créé.

  • WORK_DIRECTORY : nom d'un nouveau répertoire que le pipeline peut utiliser pour stocker les journaux et les sorties. Par exemple, saisissez workDir.

Le pipeline dsub exécute un job par lot qui écrit le fichier BAI et les journaux dans le répertoire spécifié de votre bucket Cloud Storage. Plus précisément, le dépôt dsub contient une image Docker prédéfinie qui utilise samtools pour indexer le fichier BAM que vous avez spécifié dans l'indicateur --input.

La commande ne se termine que lorsque le pipeline dsub a fini de s'exécuter, ce qui peut varier en fonction de la date de planification du job Batch. Cela prend généralement environ 10 minutes : Batch commence généralement à exécuter le job en quelques minutes, et la durée d'exécution du job est d'environ 8 minutes.

Au début, la commande est toujours en cours d'exécution et le résultat ressemble à ce qui suit :

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.

Une fois le job terminé, la commande se termine et le résultat est semblable à ce qui suit :

  JOB_NAME: SUCCESS
JOB_NAME

Ce résultat inclut les valeurs suivantes :

  • JOB_NAME : nom du job.

  • USERNAME : votre Google Cloud nom d'utilisateur.

  • PROJECT_ID : ID de projet de votre projet Google Cloud .

Afficher les fichiers de sortie

Pour afficher les fichiers de sortie créés par l'exemple de pipeline dsub à l'aide de gcloud CLI, exécutez la commande gcloud storage ls :

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

Remplacez les éléments suivants :

  • BUCKET_NAME : nom du bucket Cloud Storage que vous avez créé.

  • WORK_DIRECTORY : répertoire que vous avez spécifié dans la commande dsub.

  • PROJECT_ID : ID de projet de votre projet Google Cloud .

Le résultat ressemble à ce qui suit :

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

Cette sortie inclut le fichier BAI et un répertoire contenant les journaux du job.