In dieser Anleitung wird erläutert, wie Sie eine Nextflow-Pipeline in Batch ausführen. In dieser Anleitung wird die Life Sciences-Pipeline rnaseq-nf
aus Nextflow ausgeführt, mit der genomische Merkmale aus Short-Read-Daten mithilfe von RNA-Seq quantifiziert werden.
Diese Anleitung richtet sich an Nutzer von Batch, die Nextflow mit Batch verwenden möchten.
Nextflow ist Open-Source-Software zum Orchestrating von Workflows für die Bioinformatik.
Lernziele
In dieser Anleitung lernen Sie Folgendes:
- Installieren Sie Nextflow in Cloud Shell.
- Cloud Storage-Bucket erstellen
- Nextflow-Pipeline konfigurieren.
- Beispielpipeline mit Nextflow in Batch ausführen
- Ausgaben der Pipeline ansehen
- Führen Sie eine Bereinigung durch, um zusätzliche Gebühren zu vermeiden. Gehen Sie dazu so vor:
- Löschen Sie ein Projekt.
- Einzelne Ressourcen löschen
Kosten
In diesem Dokument verwenden Sie die folgenden kostenpflichtigen Komponenten von Google Cloud:
- Batch
- Cloud Storage
Mit dem Preisrechner können Sie eine Kostenschätzung für Ihre voraussichtliche Nutzung vornehmen.
Die in dieser Anleitung erstellten Ressourcen kosten in der Regel weniger als einen Dollar, vorausgesetzt, Sie führen alle Schritte, einschließlich der Bereinigung, zeitnah durch.
Hinweise
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create or select a Google Cloud project.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_ID
with your Google Cloud project name.
-
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Batch, Cloud Storage, Compute Engine, and Logging APIs:
gcloud services enable batch.googleapis.com
compute.googleapis.com logging.googleapis.com storage.googleapis.com - Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create or select a Google Cloud project.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_ID
with your Google Cloud project name.
-
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Batch, Cloud Storage, Compute Engine, and Logging APIs:
gcloud services enable batch.googleapis.com
compute.googleapis.com logging.googleapis.com storage.googleapis.com -
Achten Sie darauf, dass Ihr Projekt ein VPC-Netzwerk (Virtual Private Cloud) mit einer gültigen Netzwerkkonfiguration für dieses Tutorial hat.
In dieser Anleitung wird davon ausgegangen, dass Sie das
default
-Netzwerk verwenden. Standardmäßig verwenden Google Cloud -Ressourcen dasdefault
-Netzwerk, das den für diese Anleitung erforderlichen Netzwerkzugriff bietet. -
Achten Sie darauf, dass Ihr Projekt mindestens ein Dienstkonto mit den Berechtigungen hat, die für die Ausführung des Batchjobs in diesem Tutorial erforderlich sind.
Für Jobs wird standardmäßig das Compute Engine-Standarddienstkonto verwendet, dem automatisch die IAM-Rolle „Bearbeiter“ (
roles/editor
) zugewiesen wird. Es hat bereits alle Berechtigungen, die für dieses Tutorial erforderlich sind.Damit das Dienstkonto des Jobs die erforderlichen Berechtigungen hat, um dem Batch-Dienst-Agent das Erstellen und den Zugriff auf Ressourcen für Batch-Jobs zu ermöglichen, bitten Sie Ihren Administrator, dem Dienstkonto des Jobs die folgenden IAM-Rollen zu erteilen:
-
Batch-Agent-Melder (
roles/batch.agentReporter
) für das Projekt -
Storage-Administrator (
roles/storage.admin
) für das Projekt -
(Empfohlen) Jobs Logs in Cloud Logging generieren lassen:
Log-Autor (
roles/logging.logWriter
) für das Projekt
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Ihr Administrator kann dem Dienstkonto des Jobs möglicherweise auch die erforderlichen Berechtigungen über benutzerdefinierte Rollen oder andere vordefinierte Rollen erteilen.
-
Batch-Agent-Melder (
-
Sie benötigen die für diese Anleitung erforderlichen Berechtigungen.
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Ausführen dieser Anleitung benötigen:
-
Batch-Job-Bearbeiter (
roles/batch.jobsEditor
) für das Projekt -
Dienstkontonutzer (
roles/iam.serviceAccountUser
) für das Dienstkonto des Jobs -
Storage-Objekt-Administrator (
roles/storage.objectAdmin
) für das Projekt
-
Batch-Job-Bearbeiter (
-
Installieren Sie Nextflow:
curl -s -L https://github.com/nextflow-io/nextflow/releases/download/v23.04.1/nextflow | bash
Die Ausgabe sollte in etwa so aussehen:
N E X T F L O W version 23.04.1 build 5866 created 15-04-2023 06:51 UTC cite doi:10.1038/nbt.3820 http://nextflow.io Nextflow installation completed. Please note: - the executable file `nextflow` has been created in the folder: ... - you may complete the installation by moving it to a directory in your $PATH
Cloud Storage-Bucket erstellen
Verwenden Sie die Google Cloud -Konsole 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 mit der Google Cloud -Console einen Cloud Storage-Bucket:
Rufen Sie in der Google Cloud -Konsole die Seite Buckets auf.
Klicken Sie auf
Erstellen.Geben Sie auf der Seite Bucket erstellen einen global eindeutigen Namen für den Bucket ein.
Klicken Sie auf Erstellen.
Klicken Sie im Fenster Öffentlicher Zugriff wird verhindert auf Bestätigen.
gcloud
Verwenden Sie den Befehl gcloud storage buckets create
, um mithilfe 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:
Klonen Sie das Beispiel-Pipeline-Repository:
git clone https://github.com/nextflow-io/rnaseq-nf.git
Wechseln Sie zum Ordner
rnaseq-nf
:cd rnaseq-nf
Ö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' }
Führen Sie im Abschnitt
gcb
folgende Schritte aus:Ersetzen Sie
BUCKET_NAME
durch den Namen des Cloud Storage-Bucket, den Sie in den vorherigen Schritten erstellt haben.Ersetzen Sie
WORK_DIRECTORY
durch den Namen eines neuen Ordners, in dem die Pipeline Protokolle und Ausgaben speichern kann.Geben Sie beispielsweise
workDir
ein.Ersetzen Sie
REGION
durch die Region, die Sie verwenden möchten.Geben Sie beispielsweise
us-central1
ein.Fügen Sie nach dem Feld
google.region
die folgenden Felder hinzu: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.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 der Aufgabe, die Sie für dieses Tutorial vorbereitet haben.
So speichern Sie Ihre Änderungen:
Drücken Sie
Control+S
.Geben Sie
Y
ein.Drücken Sie
Enter
.
Pipeline ausführen
Führen Sie die Beispiel-Nextflow-Pipeline über die Befehlszeile aus:
../nextflow run nextflow-io/rnaseq-nf -profile gcb
In der Pipeline wird ein kleiner Datensatz mit den in den vorherigen Schritten angegebenen Einstellungen ausgeführt. Dieser Vorgang kann bis zu 10 Minuten dauern.
Nach Abschluss der Ausführung der Pipeline 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 Ausführung der Pipeline werden Ausgabedateien, Protokolle, Fehler oder temporäre Dateien in der Datei results/qc_report.html
im Ordner WORK_DIRECTORY
Ihres Cloud Storage-Buckets gespeichert.
Sie können die Ausgabedateien der Pipeline im Ordner WORK_DIRECTORY
Ihres Cloud Storage-Buckets mit der Google Cloud -Konsole oder der Befehlszeile prüfen.
Console
So prüfen Sie die Ausgabedateien der Pipeline mit der Google Cloud -Console:
Rufen Sie in der Google Cloud -Konsole die Seite Buckets auf.
Klicken Sie in der Spalte Name auf den Namen des Buckets, den Sie in den vorherigen Schritten erstellt haben.
Öffnen Sie auf der Seite Bucket-Details den Ordner
WORK_DIRECTORY
.
Für jede Aufgabe, die im Workflow ausgeführt wurde, gibt es einen Ordner. Jeder Ordner enthält die ausgeführten Befehle, Ausgabedateien und 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 Dateinextflow.config
angegeben haben.
In der Ausgabe wird für jede 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.
Bereinigen
Damit Ihrem Google Cloud-Konto die in dieser Anleitung verwendeten Ressourcen nicht in Rechnung gestellt werden, löschen Sie entweder das Projekt, das die Ressourcen enthält, oder Sie behalten das Projekt und löschen die einzelnen Ressourcen.
Projekt löschen
Am einfachsten vermeiden Sie weitere Kosten, indem Sie das aktuelle Projekt löschen.
Verwenden Sie die Google Cloud Console oder die gcloud CLI, um das aktuelle Projekt zu löschen.
Console
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
gcloud
Delete a Google Cloud project:
gcloud projects delete PROJECT_ID
Einzelne Ressourcen löschen
Wenn Sie das aktuelle Projekt weiter verwenden möchten, löschen Sie die einzelnen Ressourcen, die in dieser Anleitung verwendet wurden.
Bucket löschen
Wenn Sie den in dieser Anleitung verwendeten Bucket nicht mehr benötigen, löschen Sie ihn.
Ausgabedateien im Bucket löschen
Nach Abschluss der Ausführung der Pipeline werden Ausgabedateien im Ordner WORK_DIRECTORY
Ihres Cloud Storage-Buckets erstellt und gespeichert.
Wenn Sie die Cloud Storage-Gebühren auf das aktuelleGoogle Cloud -Konto begrenzen möchten, können Sie den Ordner mit den Ausgabedateien der Pipeline über die Google Cloud -Console oder die Befehlszeile löschen.
Console
So löschen Sie den Ordner WORK_DIRECTORY
und alle Ausgabedateien aus Ihrem Cloud Storage-Bucket über dieGoogle Cloud -Console:
Rufen Sie in der Google Cloud -Konsole die Seite Buckets auf.
Klicken Sie in der Spalte Name auf den Namen des Buckets, den Sie in den vorherigen Schritten erstellt haben.
Wählen Sie auf der Seite Bucket-Details die Zeile mit dem Ordner
WORK_DIRECTORY
aus und gehen Sie dann so vor:Klicken Sie auf Löschen.
Geben Sie zur Bestätigung
DELETE
ein und klicken Sie dann auf Löschen.
gcloud
Wenn Sie den Ordner WORK_DIRECTORY
und alle Ausgabedateien mit der gcloud CLI aus Ihrem Cloud Storage-Bucket löschen möchten, verwenden Sie den Befehl gcloud storage rm
mit dem Flag --recursive
.
gcloud storage rm gs://BUCKET_NAME/WORK_DIRECTORY \
--recursive
Ersetzen Sie Folgendes:
BUCKET_NAME
: Der Name des Buckets, den Sie in den vorherigen Schritten angegeben haben.WORK_DIRECTORY
: Das Verzeichnis, in dem die in den vorherigen Schritten angegebenen Pipeline-Ausgabedateien gespeichert werden sollen.
Nächste Schritte
Weitere Informationen zum Bereitstellen von Nextflow-Workflows finden Sie im Nextflow-GitHub-Repository.
Weitere Informationen zu Nextflow-Prozessen, Scripting und Konfigurationsoptionen finden Sie in der Nextflow-Dokumentation.