Orquestre trabalhos executando pipelines dsub no Batch

Este tutorial explica como executar um dsub pipeline no Batch. Especificamente, o exemplo de pipeline dsub processa dados de sequenciação de ADN num ficheiro de mapa de alinhamento binário (BAM) para criar um ficheiro de índice BAM (BAI).

Este tutorial destina-se a utilizadores do Batch que querem usar o dsub com o Batch. dsub é um agendador de tarefas de código aberto para orquestrar fluxos de trabalho de processamento em lote no Google Cloud. Para saber como usar o comando Batch com dsub, consulte a documentação do comando Batch.dsub

Crie um contentor do Cloud Storage

Para criar um contentor do Cloud Storage para armazenar os ficheiros de saída do pipeline de exemplo dsub através da CLI gcloud, execute o comando gcloud storage buckets create:

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

Substitua o seguinte:

O resultado é semelhante ao seguinte:

Creating gs://BUCKET_NAME/...

Execute o pipeline dsub

O pipeline de amostra dsub indexa um ficheiro BAM do 1000 Genomes Project e envia os resultados para um contentor do Cloud Storage.

Para executar o exemplo de pipeline 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 o seguinte:

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

  • BUCKET_NAME: o nome do contentor do Cloud Storage que criou.

  • WORK_DIRECTORY: o nome de um novo diretório que o pipeline pode usar para armazenar registos e resultados. Por exemplo, introduza workDir.

O pipeline dsub executa uma tarefa em lote que escreve o ficheiro BAI e regista-se no diretório especificado no seu contentor do Cloud Storage. Especificamente, o repositório dsub contém uma imagem Docker pré-criada que usa o samtools para indexar o ficheiro BAM que especificou na flag --input.

O comando não termina até que o pipeline dsub termine a execução, o que pode variar consoante a data de agendamento da tarefa em lote. Normalmente, este processo demora cerca de 10 minutos: o Batch começa normalmente a executar a tarefa em poucos minutos e o tempo de execução da tarefa é de cerca de 8 minutos.

Inicialmente, o comando continua a ser executado e o resultado é semelhante ao seguinte:

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.

Em seguida, após a conclusão bem-sucedida da tarefa, o comando termina e o resultado é semelhante ao seguinte:

  JOB_NAME: SUCCESS
JOB_NAME

Esta saída inclui os seguintes valores:

  • JOB_NAME: o nome da tarefa.

  • USERNAME: o seu nome de utilizador Google Cloud .

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

Veja os ficheiros de saída

Para ver os ficheiros de saída criados pela pipeline dsub de amostra através da CLI gcloud, execute o comando gcloud storage ls:

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

Substitua o seguinte:

  • BUCKET_NAME: o nome do contentor do Cloud Storage que criou.

  • WORK_DIRECTORY: o diretório que especificou no comando dsub.

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

O resultado é semelhante ao seguinte:

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

Esta saída inclui o ficheiro BAI e um diretório que contém os registos da tarefa.