Orquestrar jobs executando pipelines dsub no Batch

Neste tutorial, explicamos como executar um pipeline dsub no Batch. Especificamente, o exemplo de pipeline dsub processa dados de sequenciamento de DNA em um arquivo de mapa de alinhamento binário (BAM) para criar um arquivo de índice BAM (BAI).

Este tutorial é destinado a usuários do Batch que querem usar o dsub com o Batch. O dsub é um programador de jobs de código aberto para orquestrar fluxos de trabalho de processamento em lote no Google Cloud. Para saber mais sobre como usar o Batch com o dsub, consulte a documentação do dsub para o Batch.

Criar um bucket do Cloud Storage

Para criar um bucket do Cloud Storage para armazenar os arquivos de saída do pipeline de amostra dsub usando a CLI gcloud, execute o comando gcloud storage buckets create:

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

Substitua:

O resultado será assim:

Creating gs://BUCKET_NAME/...

Executar o pipeline dsub

O pipeline de amostra dsub indexa um arquivo BAM do Projeto 1.000 Genomas e gera os resultados em um bucket do Cloud Storage.

Para executar o pipeline de exemplo dsub, execute o seguinte 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

Substitua:

  • PROJECT_ID: o ID do projeto do seu projeto Google Cloud .

  • BUCKET_NAME: o nome do bucket do Cloud Storage criado.

  • WORK_DIRECTORY: o nome de um novo diretório que o pipeline pode usar para armazenar registros e saídas. Por exemplo, insira workDir.

O pipeline dsub executa um job em lote que grava o arquivo BAI e os registros no diretório especificado no bucket do Cloud Storage. Especificamente, o repositório dsub contém uma imagem do Docker predefinida que usa samtools para indexar o arquivo BAM especificado na flag --input.

O comando não será concluído até que o pipeline dsub termine de ser executado, o que pode variar de acordo com o momento em que o job do Batch é programado. Normalmente, isso leva cerca de 10 minutos: o Batch geralmente começa a executar o job em alguns minutos, e o tempo de execução do job é de cerca de 8 minutos.

No início, o comando ainda está em execução, e a saída é semelhante a esta:

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.

Depois que o job for concluído, o comando será encerrado e a saída será semelhante a esta:

  JOB_NAME: SUCCESS
JOB_NAME

Esta saída inclui os seguintes valores:

  • JOB_NAME: o nome do job.

  • USERNAME: seu Google Cloud nome de usuário.

  • PROJECT_ID: o ID do projeto do seu projeto Google Cloud .

Ver os arquivos de saída

Para conferir os arquivos de saída criados pelo pipeline de amostra dsub usando a CLI gcloud, execute o comando gcloud storage ls:

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

Substitua:

  • BUCKET_NAME: o nome do bucket do Cloud Storage criado.

  • WORK_DIRECTORY: o diretório especificado no comando dsub.

  • PROJECT_ID: o ID do projeto do seu projeto Google Cloud .

O resultado será assim:

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

Essa saída inclui o arquivo BAI e um diretório com os registros do job.