Aufträge mit Nextflow-Pipelines in Batch orchestrieren

In dieser Anleitung wird erläutert, wie Sie eine Nextflow-Pipeline in Batch ausführen. In dieser Anleitung wird die Beispiel-rnaseq-nf-Life Sciences-Pipeline von Nextflow ausgeführt, mit der genomische Merkmale aus Short-Read-Daten mit RNA-Seq quantifiziert werden.

Diese Anleitung richtet sich an Batch-Nutzer, die Nextflow mit Batch verwenden möchten.

Nextflow ist eine Open-Source-Software zum Orchestrieren von Bioinformatik-Workflows.

Cloud Storage-Bucket erstellen

Verwenden Sie die Google Cloud Console oder die Befehlszeile, um einen Cloud Storage-Bucket zum Speichern temporärer Arbeits- und Ausgabedateien aus der Nextflow-Pipeline zu erstellen.

Console

So erstellen Sie einen Cloud Storage-Bucket mit der Google Cloud Console:

  1. Rufen Sie in der Google Cloud Console die Seite Buckets auf.

    Buckets aufrufen

  2. Klicken Sie auf Erstellen.

  3. Geben Sie auf der Seite Bucket erstellen einen weltweit eindeutigen Namen für den Bucket ein.

  4. Klicken Sie auf Erstellen.

  5. Klicken Sie im Fenster Öffentlicher Zugriff wird verhindert auf Bestätigen.

gcloud

Verwenden Sie den gcloud storage buckets create-Befehl, um mit der Google Cloud CLI einen Cloud Storage-Bucket zu erstellen.

gcloud storage buckets create gs://BUCKET_NAME

Ersetzen Sie BUCKET_NAME durch einen global eindeutigen Namen für Ihren Bucket.

Wenn die Anfrage erfolgreich ist, sollte die Ausgabe in etwa so aussehen:

Creating gs://BUCKET_NAME/...
   ```

Nextflow konfigurieren

So konfigurieren Sie die Nextflow-Pipeline für die Ausführung in Batch:

  1. Klonen Sie das Beispiel-Pipeline-Repository:

    git clone https://github.com/nextflow-io/rnaseq-nf.git
    
  2. Wechseln Sie zum Ordner rnaseq-nf:

    cd rnaseq-nf
    
  3. Öffnen Sie die Datei nextflow.config.

    nano nextflow.config
    

    Die Datei sollte den folgenden gcb-Abschnitt enthalten:

    gcb {
      params.transcriptome = 'gs://rnaseq-nf/data/ggal/transcript.fa'
      params.reads = 'gs://rnaseq-nf/data/ggal/gut_{1,2}.fq'
      params.multiqc = 'gs://rnaseq-nf/multiqc'
      process.executor = 'google-batch'
      process.container = 'quay.io/nextflow/rnaseq-nf:v1.1'
      workDir = 'gs://BUCKET_NAME/WORK_DIRECTORY'
      google.region  = 'REGION'
    }
    
  4. Führen Sie im Abschnitt gcb folgende Schritte aus:

    1. Ersetzen Sie BUCKET_NAME durch den Namen des Cloud Storage-Bucket, den Sie in den vorherigen Schritten erstellt haben.

    2. Ersetzen Sie WORK_DIRECTORY durch den Namen eines neuen Ordners, in dem die Pipeline Protokolle und Ausgaben speichern kann.

      Geben Sie beispielsweise workDir ein.

    3. Ersetzen Sie REGION durch die zu verwendende Region.

      Geben Sie beispielsweise us-central1 ein.

    4. Fügen Sie nach dem Feld google.region die folgenden Felder ein:

      1. Fügen Sie das Feld google.project hinzu:

        google.project = 'PROJECT_ID'
        

        Ersetzen Sie PROJECT_ID durch die Projekt-ID des aktuellen Google Cloud Projekts.

      2. Wenn Sie nicht das Compute Engine-Standarddienstkonto als Dienstkonto des Jobs verwenden, fügen Sie das Feld google.batch.serviceAccountEmail hinzu:

        google.batch.serviceAccountEmail = 'SERVICE_ACCOUNT_EMAIL'
        

        Ersetzen Sie SERVICE_ACCOUNT_EMAIL durch die E-Mail-Adresse des Dienstkontos des Jobs, das Sie für dieses Tutorial vorbereitet haben.

  5. So speichern Sie Ihre Änderungen:

    1. Drücken Sie Control+S.

    2. Geben Sie Y ein.

    3. Drücken Sie Enter.

Pipeline ausführen

Führen Sie die Nextflow-Beispielpipeline über die Befehlszeile aus:

../nextflow run nextflow-io/rnaseq-nf -profile gcb

Die Pipeline wird mit einem kleinen Dataset und den Einstellungen ausgeführt, die Sie in den vorherigen Schritten angegeben haben. Dieser Vorgang kann bis zu 10 Minuten dauern.

Nachdem die Pipeline ausgeführt wurde, sollte die Ausgabe in etwa so aussehen:

N E X T F L O W  ~  version 23.04.1
Launching `https://github.com/nextflow-io/rnaseq-nf` [crazy_curry] DSL2 - revision: 88b8ef803a [master]
 R N A S E Q - N F   P I P E L I N E
 ===================================
 transcriptome: gs://rnaseq-nf/data/ggal/transcript.fa
 reads        : gs://rnaseq-nf/data/ggal/gut_{1,2}.fq
 outdir       : results

Uploading local `bin` scripts folder to gs://example-bucket/workdir/tmp/53/2847f2b832456a88a8e4cd44eec00a/bin
executor >  google-batch (4)
[67/71b856] process > RNASEQ:INDEX (transcript)     [100%] 1 of 1 ✔
[0c/2c79c6] process > RNASEQ:FASTQC (FASTQC on gut) [100%] 1 of 1 ✔
[a9/571723] process > RNASEQ:QUANT (gut)            [100%] 1 of 1 ✔
[9a/1f0dd4] process > MULTIQC                       [100%] 1 of 1 ✔

Done! Open the following report in your browser --> results/multiqc_report.html

Completed at: 20-Apr-2023 15:44:55
Duration    : 10m 13s
CPU hours   : (a few seconds)
Succeeded   : 4

Ausgaben der Pipeline ansehen

Nach Abschluss der Pipeline werden Ausgabedateien, Logs, Fehler oder temporäre Dateien in der Datei results/qc_report.html im Ordner WORK_DIRECTORY Ihres Cloud Storage-Buckets gespeichert.

Wenn Sie die Ausgabedateien der Pipeline im Ordner WORK_DIRECTORY Ihres Cloud Storage-Buckets prüfen möchten, können Sie die Google Cloud -Konsole oder die Befehlszeile verwenden.

Console

So prüfen Sie die Ausgabedateien der Pipeline mit der Google Cloud Console:

  1. Rufen Sie in der Google Cloud Console die Seite Buckets auf.

    Buckets aufrufen

  2. Klicken Sie in der Spalte Name auf den Namen des Buckets, den Sie in den vorherigen Schritten erstellt haben.

  3. Öffnen Sie auf der Seite Bucket-Details den Ordner WORK_DIRECTORY.

Für jede Aufgabe, die im Workflow ausgeführt wird, gibt es einen Ordner. Jeder Ordner enthält die ausgeführten Befehle, die Ausgabedateien und die temporären Dateien, die von der Pipeline erstellt wurden.

gcloud

Wenn Sie die Ausgabedateien der Pipeline mit der gcloud CLI prüfen möchten, verwenden Sie den Befehl gcloud storage ls.

gcloud storage ls gs://BUCKET_NAME/WORK_DIRECTORY

Ersetzen Sie Folgendes:

  • BUCKET_NAME: der Name des Buckets, den Sie in den vorherigen Schritten erstellt haben.

  • WORK_DIRECTORY: Das Verzeichnis, das Sie in der Datei nextflow.config angegeben haben.

In der Ausgabe wird für jede einzelne Aufgabe, die in der Pipeline ausgeführt wurde, ein Ordner aufgeführt. Jeder Ordner enthält die ausgeführten Befehle, die Ausgabedateien und die temporären Dateien, die von der Pipeline erstellt wurden.