In dieser Anleitung erfahren Sie, wie Sie ein Nextflow-Pipeline für Batch. Insbesondere wird in dieser Anleitung ein Beispiel Pipeline für Biowissenschaften quantifiziert genomische Merkmale aus kurzen Lesedaten mithilfe von RNA-Seq.
Diese Anleitung richtet sich an Batch-Nutzer, Nextflow mit Batch.
Nextflow ist eine Open-Source-Software zur Orchestrierung von Bioinformatik-Workflows.
Lernziele
In dieser Anleitung erfahren Sie, wie Sie:
- Installieren Sie Nextflow in Cloud Shell.
- Cloud Storage-Bucket erstellen
- Nextflow-Pipeline konfigurieren.
- Führen Sie mit Nextflow für Batch eine Beispielpipeline aus.
- Sehen Sie sich die Ausgaben der Pipeline an.
- Führen Sie eine der folgenden Aktionen aus, um eine Bereinigung zu vermeiden, um zusätzliche Gebühren zu vermeiden:
<ph type="x-smartling-placeholder">
- </ph>
- Projekt löschen
- 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. Wenn Sie alle Schritte – einschließlich der Bereinigung – in einem rechtzeitig informiert sind.
Hinweise
- Melden Sie sich bei Ihrem Google Cloud-Konto an. Wenn Sie mit Google Cloud noch nicht vertraut sind, erstellen Sie ein Konto, um die Leistungsfähigkeit unserer Produkte in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
- 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.
-
-
Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein.
-
Aktivieren Sie die 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.
-
-
Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein.
-
Aktivieren Sie die Batch, Cloud Storage, Compute Engine, and Logging APIs:
gcloud services enable batch.googleapis.com
compute.googleapis.com logging.googleapis.com storage.googleapis.com -
Stellen Sie sicher, dass Ihr Projekt mindestens ein Dienstkonto mit dem Berechtigungen, die für diese Anleitung erforderlich sind.
<ph type="x-smartling-placeholder">Für jeden Job ist ein Dienstkonto erforderlich, Batch-Dienst-Agent zum Erstellen und Aufrufen der Ressourcen die zum Ausführen des Jobs erforderlich sind. In dieser Anleitung ist das Dienstkonto des Jobs ist der Standardmäßiges Compute Engine-Dienstkonto
Damit das Compute Engine-Standarddienstkonto über die erforderlichen Berechtigungen, damit der Batch-Dienst-Agent Ressourcen für Batchjobs erstellen und darauf zugreifen kann, bitten Sie Ihren Administrator, dem Compute Engine-Standarddienstkonto die folgenden IAM-Rollen:
-
Batch-Agent-Melder (
roles/batch.agentReporter
) für das Projekt -
Storage-Administrator (
roles/storage.admin
) für das Projekt -
(Empfohlen) Lassen Sie Jobs Logs in Cloud Logging erstellen:
Logautor (
roles/logging.logWriter
) für das Projekt
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff verwalten.
Ihr Administrator kann möglicherweise auch dem Compute Engine-Standarddienstkonto die erforderlichen Berechtigungen durch benutzerdefinierte Rollen oder andere vordefinierte Rollen
-
Batch-Agent-Melder (
-
Prüfen Sie, ob Sie die für diese Anleitung erforderlichen Berechtigungen haben.
<ph type="x-smartling-placeholder">Um die Berechtigungen zu erhalten, die Sie für diese Anleitung benötigen, bitten Sie Ihren Administrator, Ihnen folgenden IAM-Rollen:
-
Batch-Job-Editor (
roles/batch.jobsEditor
) für das Projekt -
Dienstkontonutzer (
roles/iam.serviceAccountUser
) für das Dienstkonto des Jobs. In dieser Anleitung ist dies das Compute Engine-Standarddienstkonto. -
Storage-Objekt-Administrator (
roles/storage.objectAdmin
) für das Projekt
-
Batch-Job-Editor (
-
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
Cloud Storage-Bucket zum Speichern temporärer Aufgaben und Ausgaben erstellen aus der Nextflow-Pipeline beziehen, können Sie die Google Cloud Console oder die Befehlszeile verwenden.
Console
So erstellen Sie einen Cloud Storage-Bucket mit der Google Cloud Console: führen Sie folgende Schritte aus:
Rufen Sie in der Google Cloud Console die Seite Buckets auf.
Klicken Sie auf
Erstellen.Geben Sie auf der Seite Bucket erstellen Folgendes ein: global eindeutigen Namen für den Bucket.
Klicken Sie auf Erstellen.
Klicken Sie im Fenster Öffentlicher Zugriff wird verhindert auf Bestätigen.
gcloud
So erstellen Sie einen Cloud Storage-Bucket mit der Google Cloud CLI:
verwenden Sie die
gcloud storage buckets create
-Befehl
gcloud storage buckets create gs://BUCKET_NAME
Ersetzen Sie BUCKET_NAME
durch einen
global eindeutiger Name für den Bucket.
Wenn die Anfrage erfolgreich ist, sollte die Ausgabe in etwa so aussehen: Folgendes:
Creating gs://BUCKET_NAME/...
```
Nextflow konfigurieren
So konfigurieren Sie die Nextflow-Pipeline für die Ausführung in Batch: folgende Schritte in der Befehlszeile:
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 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 = 'us-central1' } ...
Führen Sie im Abschnitt
gcb
die folgenden 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 einer neuen Ordner, in dem die Pipeline Logs und Ausgaben speichern kann.Geben Sie beispielsweise
workDir
ein.Fügen Sie nach dem Feld
google.region
den Zeilegoogle.project = 'PROJECT_ID'
, wobeiPROJECT_ID
ist die Projekt-ID des aktuellen Google Cloud-Projekt
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 Nextflow-Beispielpipeline mit der Befehlszeile aus:
../nextflow run nextflow-io/rnaseq-nf -profile gcb
Die Pipeline führt ein kleines Dataset mit den Einstellungen aus, die Sie in der vorherigen Schritten. Dieser Vorgang kann bis zu 10 Minuten dauern.
Nachdem die Pipeline ausgeführt wurde, sollte die Ausgabe in etwa so aussehen: Folgendes:
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
Nachdem die Pipeline ausgeführt wurde, speichert sie Ausgabedateien, Logs, Fehler oder
temporäre Dateien in der Datei results/qc_report.html
im
WORK_DIRECTORY
Ordner von Cloud Storage
Bucket.
Um die Ausgabedateien der Pipeline in der
WORK_DIRECTORY
-Ordner von Cloud Storage
Bucket verwenden, können Sie die Google Cloud Console oder die Befehlszeile verwenden.
Console
So prüfen Sie die Ausgabedateien der Pipeline in der Google Cloud Console: diese Schritte:
Rufen Sie in der Google Cloud Console die Seite Buckets auf.
Klicken Sie in der Spalte Name auf den Namen des Buckets, den Sie im vorherigen Schritten.
Öffnen Sie auf der Seite Bucket-Details das
WORK_DIRECTORY
-Ordner.
Für jede einzelne Aufgabe, die der Workflow ausführt, gibt es einen Ordner. Jeder Ordner enthält die ausgeführten Befehle, Ausgabedateien und temporären Dateien. die von der Pipeline erstellt wurden.
gcloud
Um die Ausgabedateien der Pipeline mit der gcloud CLI zu prüfen, verwenden Sie
die
gcloud storage ls
-Befehl
gcloud storage ls gs://BUCKET_NAME/WORK_DIRECTORY
Ersetzen Sie Folgendes:
BUCKET_NAME
: der Name des Buckets, den Sie die in den vorherigen Schritten erstellt wurden.WORK_DIRECTORY
: das Verzeichnis, das Sie in angegeben haben die Dateinextflow.config
.
In der Ausgabe wird für jede einzelne Aufgabe, die von der Pipeline ausgeführt wird, ein Ordner aufgelistet. Jeder Ordner enthält die ausgeführten Befehle, Ausgabedateien und temporäre 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 zum Löschen des aktuellen Projekts die Google Cloud Console oder den gcloud CLI verwenden können.
Console
- Wechseln Sie in der Google Cloud Console zur Seite Ressourcen verwalten.
- Wählen Sie in der Projektliste das Projekt aus, das Sie löschen möchten, und klicken Sie dann auf Löschen.
- Geben Sie im Dialogfeld die Projekt-ID ein und klicken Sie auf Shut down (Beenden), um das Projekt zu löschen.
gcloud
Google Cloud-Projekt löschen:
gcloud projects delete PROJECT_ID
Einzelne Ressourcen löschen
Wenn Sie das aktuelle Projekt weiter verwenden möchten, löschen Sie das einzelne Projekt Ressourcen, die in dieser Anleitung verwendet werden.
Bucket löschen
Wenn Sie den Bucket, den Sie in dieser Anleitung verwendet haben, nicht mehr benötigen, Löschen Sie den Bucket.
Löschen Sie die Ausgabedateien im Bucket.
Wenn die Ausführung der Pipeline abgeschlossen ist, erstellt und speichert sie Ausgabedateien im
WORK_DIRECTORY
-Ordner von Cloud Storage
Bucket.
Um Cloud Storage-Gebühren auf den aktuellen Betrag zu senken Google Cloud-Konto haben, können Sie den Ordner mit den Ausgabedateien über die Google Cloud Console oder die Befehlszeile
Console
Um den Ordner WORK_DIRECTORY
und alle
mithilfe der Methode
Google Cloud Console führen Sie die folgenden Schritte aus:
Rufen Sie in der Google Cloud Console die Seite Buckets auf.
Klicken Sie in der Spalte Name auf den Namen des Buckets, den Sie im vorherigen Schritten.
Wählen Sie auf der Seite Bucket-Details die Zeile mit den
WORK_DIRECTORY
und gehen Sie dann so vor:Klicken Sie auf Löschen.
Geben Sie zur Bestätigung
DELETE
ein und klicken Sie auf Löschen.
gcloud
Um den Ordner WORK_DIRECTORY
und alle
mithilfe der Methode
gcloud CLI verwenden, verwenden Sie die
Befehl gcloud storage rm
mit dem Parameter
--recursive
.
gcloud storage rm gs://BUCKET_NAME/WORK_DIRECTORY \
--recursive
Ersetzen Sie Folgendes:
BUCKET_NAME
: der Name des Buckets, den Sie die in den vorherigen Schritten angegeben wurden.WORK_DIRECTORY
: das Verzeichnis zum Speichern der Pipeline-Ausgabedateien, die Sie in den vorherigen Schritten angegeben haben.
Nächste Schritte
Weitere Informationen zum Bereitstellen von Nextflow-Workflows finden Sie unter Nextflow GitHub-Repository.
Weitere Informationen zu den Prozessen, Scripting und Konfigurationsoptionen von Nextflow Siehe Nextflow-Dokumentation.