Orchestrare i job eseguendo le pipeline dsub su Batch

Questo tutorial spiega come eseguire una pipeline dsub su Batch. Nello specifico, la pipeline dsub di esempio elabora i dati di sequenziamento del DNA in un file Binary Alignment Map (BAM) per creare un file indice BAM (BAI).

Questo tutorial è destinato agli utenti Batch che vogliono utilizzare dsub con Batch. dsub è uno scheduler di job open source per orchestrare i workflow di elaborazione batch su Google Cloud. Per saperne di più su come utilizzare Batch con dsub, consulta la documentazione di dsub per Batch.

Crea un bucket Cloud Storage

Per creare un bucket Cloud Storage per archiviare i file di output della pipeline di esempio dsub utilizzando gcloud CLI, esegui il comando gcloud storage buckets create:

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

Sostituisci quanto segue:

L'output è simile al seguente:

Creating gs://BUCKET_NAME/...

Esegui la pipeline dsub

La pipeline di esempio dsub indicizza un file BAM dal progetto 1000 Genomes e restituisce i risultati in un bucket Cloud Storage.

Per eseguire la pipeline di esempio dsub, esegui questo 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

Sostituisci quanto segue:

  • PROJECT_ID: l' ID progetto del tuo progetto Google Cloud .

  • BUCKET_NAME: il nome del bucket Cloud Storage che hai creato.

  • WORK_DIRECTORY: il nome di una nuova directory che la pipeline può utilizzare per archiviare log e output. Ad esempio, inserisci workDir.

La pipeline dsub esegue un job batch che scrive il file BAI e i log nella directory specificata nel bucket Cloud Storage. Nello specifico, il repository dsub contiene un'immagine Docker predefinita che utilizza samtools per indicizzare il file BAM specificato nel flag --input.

Il comando non viene completato finché non viene eseguita la pipeline dsub, il cui completamento può variare in base alla pianificazione del job Batch. In genere, questa operazione richiede circa 10 minuti: Batch di solito inizia a eseguire il job entro pochi minuti e la durata del job è di circa 8 minuti.

All'inizio, il comando è ancora in esecuzione e l'output è simile al seguente:

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.

Al termine del job, il comando termina e l'output è simile al seguente:

  JOB_NAME: SUCCESS
JOB_NAME

Questo output include i seguenti valori:

  • JOB_NAME: il nome del job.

  • USERNAME: il tuo Google Cloud nome utente.

  • PROJECT_ID: l' ID progetto del tuo progetto Google Cloud .

Visualizzare i file di output

Per visualizzare i file di output creati dalla pipeline di esempio dsub utilizzando gcloud CLI, esegui il comando gcloud storage ls:

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

Sostituisci quanto segue:

  • BUCKET_NAME: il nome del bucket Cloud Storage che hai creato.

  • WORK_DIRECTORY: la directory che hai specificato nel comando dsub.

  • PROJECT_ID: l' ID progetto del tuo progetto Google Cloud .

L'output è simile al seguente:

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

Questo output include il file BAI e una directory contenente i log del job.