Jobs mit dsub-Pipelines in Batch orchestrieren

In dieser Anleitung wird beschrieben, wie Sie eine dsub-Pipeline in Batch ausführen. In diesem Beispiel verarbeitet die dsub-Pipeline DNA-Sequenzierungsdaten in einer BAM-Datei (Binary Alignment Map), um eine BAI-Datei (BAM-Index) zu erstellen.

Diese Anleitung richtet sich an Batch-Nutzer, die dsub mit Batch verwenden möchten. dsub ist ein Open-Source-Job-Scheduler zum Orchestrieren von Batchverarbeitungs-Workflows auf Google Cloud. Weitere Informationen zur Verwendung von Batch mit dsub finden Sie in der dsub-Dokumentation für Batch.

Cloud Storage-Bucket erstellen

Führen Sie den gcloud storage buckets create-Befehl aus, um mit der gcloud CLI einen Cloud Storage-Bucket zum Speichern der Ausgabedateien aus der Beispielpipeline dsub zu erstellen:

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

Ersetzen Sie Folgendes:

Die Ausgabe sieht etwa so aus:

Creating gs://BUCKET_NAME/...

dsub-Pipeline ausführen

In der Beispielpipeline dsub wird eine BAM-Datei aus dem 1000 Genomes Project indexiert und die Ergebnisse werden in einen Cloud Storage-Bucket ausgegeben.

Führen Sie zum Ausführen der dsub-Beispielpipeline den folgenden dsub-Befehl aus:

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

Ersetzen Sie Folgendes:

  • PROJECT_ID: die Projekt-ID Ihres Google Cloud Projekts.

  • BUCKET_NAME: Der Name des Cloud Storage-Buckets, den Sie erstellt haben.

  • WORK_DIRECTORY: Der Name eines neuen Verzeichnisses, in dem die Pipeline Logs und Ausgaben speichern kann. Geben Sie beispielsweise workDir ein.

Die Pipeline dsub führt einen Batchjob aus, der die BAI-Datei und die Logs in das angegebene Verzeichnis in Ihrem Cloud Storage-Bucket schreibt. Das Repository dsub enthält ein vorgefertigtes Docker-Image, das samtools verwendet, um die BAM-Datei zu indexieren, die Sie im Flag --input angegeben haben.

Der Befehl wird erst beendet, wenn die dsub-Pipeline abgeschlossen ist. Das kann je nach Zeitplan des Batch-Jobs variieren. Normalerweise dauert das etwa 10 Minuten: Batch beginnt in der Regel innerhalb weniger Minuten mit der Ausführung des Jobs und die Laufzeit des Jobs beträgt etwa 8 Minuten.

Zuerst wird der Befehl noch ausgeführt und die Ausgabe sieht in etwa so aus:

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.

Wenn der Job erfolgreich abgeschlossen wurde, wird der Befehl beendet und die Ausgabe sieht in etwa so aus:

  JOB_NAME: SUCCESS
JOB_NAME

Diese Ausgabe enthält die folgenden Werte:

  • JOB_NAME: Der Name des Jobs.

  • USERNAME: Ihr Google Cloud Nutzername.

  • PROJECT_ID: die Projekt-ID Ihres Google Cloud Projekts.

Ausgabedateien ansehen

Führen Sie den Befehl gcloud storage ls aus, um die Ausgabedateien aufzurufen, die von der dsub-Beispielpipeline mit der gcloud CLI erstellt wurden:

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

Ersetzen Sie Folgendes:

  • BUCKET_NAME: Der Name des Cloud Storage-Buckets, den Sie erstellt haben.

  • WORK_DIRECTORY: Das Verzeichnis, das Sie im dsub-Befehl angegeben haben.

  • PROJECT_ID: die Projekt-ID Ihres Google Cloud Projekts.

Die Ausgabe sieht etwa so aus:

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

Diese Ausgabe enthält die BAI-Datei und ein Verzeichnis mit den Logs des Jobs.