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:
BUCKET_NAME
: um nome globalmente exclusivo para o seu contentor.PROJECT_ID
: o ID do projeto do seu Google Cloud projeto.
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, introduzaworkDir
.
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 comandodsub
.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.