View a markdown version of this page

Einzelheiten der Nextflow-Workflow-Definition - AWS HealthOmics

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Einzelheiten der Nextflow-Workflow-Definition

HealthOmics unterstützt Nextflow DSL1 und DSL2. Details hierzu finden Sie unter Unterstützung der Nextflow-Version.

Nextflow DSL2 basiert auf der Programmiersprache Groovy, sodass Parameter dynamisch sind und Typzwang nach den gleichen Regeln wie Groovy möglich ist. Die vom Eingabe-JSON bereitgestellten Parameter und Werte sind in der Parameters () -Map des Workflows verfügbar. params

Verwenden Sie die Plugins nf-schema und nf-validation

Anmerkung

Zusammenfassung der Unterstützung für Plugins HealthOmics :

  • v22.04 — keine Unterstützung für Plugins

  • v23.10 — unterstützt und nf-schema nf-validation

  • v24.10 — unterstützt nf-schema

  • v25.10, v26.04 — unterstützt,, und nf-schema nf-core-utils nf-fgbio nf-prov

HealthOmics bietet die folgende Unterstützung für Nextflow-Plugins:

  • Für Nextflow v23.10 ist das Plugin nf-validation @1 HealthOmics .1.1 vorinstalliert.

  • Für Nextflow v23.10 und v24.10 ist das Plugin nf-schema @2 .3.0 vorinstalliert. HealthOmics

  • Für Nextflow v25.10 werden die Plugins nf-schema @2 .6.1, nf-core-utils @0 .4.0, nf-prov @1 .7.0 und nf-fgbio @1 .0.1 HealthOmics vorinstalliert.

  • Für Nextflow v26.04 werden die Plugins nf-schema @2 .7.2, nf-core-utils @0 .4.0, nf-prov @1 .7.0 und nf-fgbio @1 .0.1 vorinstalliert. HealthOmics

  • Sie können während einer Workflow-Ausführung keine zusätzlichen Plugins abrufen. HealthOmics ignoriert alle anderen Plugin-Versionen, die Sie in der nextflow.config Datei angeben.

  • Für Nextflow v24 und höher nf-schema ist dies die neue Version des veralteten Plugins. nf-validation Weitere Informationen finden Sie unter nf-schema im Nextflow-Repository. GitHub

Geben Sie Speicher-URIs an

Wenn ein Amazon S3 oder HealthOmics URI verwendet wird, um eine Nextflow-Datei oder ein Nextflow-Pfadobjekt zu erstellen, stellt es das entsprechende Objekt für den Workflow zur Verfügung, sofern Lesezugriff gewährt wird. Die Verwendung von Präfixen oder Verzeichnissen ist für Amazon S3 S3-URIs zulässig. Beispiele finden Sie unter Amazon S3 S3-Eingabeparameterformate.

HealthOmics unterstützt teilweise die Verwendung von Glob-Mustern in Amazon S3 S3-URIs oder HealthOmics Speicher-URIs. Verwenden Sie Glob-Muster in der Workflow-Definition für die Erstellung von Or-Kanälen. path file Informationen zum erwarteten Verhalten und zu genauen Fällen finden Sie unterNextflow-Behandlung von Glob-Mustern in Amazon S3 S3-Eingaben.

Nextflow-Direktiven

Sie konfigurieren Nextflow-Direktiven in der Nextflow-Konfigurationsdatei oder Workflow-Definition. Die folgende Liste zeigt die Rangfolge, in der die HealthOmics Konfigurationseinstellungen angewendet werden, von der niedrigsten zur höchsten Priorität:

  1. Globale Konfiguration in der Konfigurationsdatei.

  2. Aufgabenbereich der Workflow-Definition.

  3. Task-specific Selektoren in der Konfigurationsdatei.

Strategie zur Wiederholung von Aufgaben mithilfe von ErrorStrategy

Verwenden Sie die errorStrategy Direktive, um die Strategie für Aufgabenfehler zu definieren. Wenn eine Aufgabe mit einer Fehleranzeige (einem Exit-Status ungleich Null) zurückkehrt, wird die Aufgabe standardmäßig gestoppt und die gesamte HealthOmics Ausführung beendet. Wenn Sie errorStrategy auf festlegen, wird HealthOmics versuchtretry, die fehlgeschlagene Aufgabe erneut zu versuchen. Informationen zur Erhöhung der Anzahl der Wiederholungen finden Sie unter. Wiederholungsversuche von Aufgaben mithilfe von MaxRetries

process { label 'my_label' errorStrategy 'retry' script: """ your-command-here """ }

Informationen darüber, wie mit Wiederholungsversuchen HealthOmics von Aufgaben während einer Ausführung umgegangen wird, finden Sie unter. Die Aufgabe wird erneut versucht

Wiederholungsversuche von Aufgaben mithilfe von MaxRetries

Führt standardmäßig HealthOmics keine Wiederholungsversuche für eine fehlgeschlagene Aufgabe durch, oder versucht einen erneuten Versuch, wenn Sie dies konfigurieren. errorStrategy Um die maximale Anzahl von Wiederholungen zu erhöhen, legen errorStrategy Sie die maximale Anzahl von Wiederholungen fest retry und konfigurieren Sie sie mithilfe der Direktive. maxRetries

Im folgenden Beispiel wird die maximale Anzahl von Wiederholungen in der globalen Konfiguration auf 3 festgelegt.

process { errorStrategy = 'retry' maxRetries = 3 }

Das folgende Beispiel zeigt, wie maxRetries im Aufgabenbereich der Workflow-Definition festgelegt wird.

process myTask { label 'my_label' errorStrategy 'retry' maxRetries 3 script: """ your-command-here """ }

Das folgende Beispiel zeigt, wie eine aufgabenspezifische Konfiguration in der Nextflow-Konfigurationsdatei auf der Grundlage der Namens- oder Labelselektoren angegeben wird.

process { withLabel: 'my_label' { errorStrategy = 'retry' maxRetries = 3 } withName: 'myTask' { errorStrategy = 'retry' maxRetries = 3 } }

Deaktivieren Sie die Aufgabenwiederholung mit Omics 5.xx RetryOn

HealthOmics Unterstützt für Nextflow v23 und höher Aufgabenwiederholungen, wenn die Aufgabe aufgrund von Dienstfehlern fehlgeschlagen ist (5XX-HTTP-Statuscodes). Standardmäßig werden bis zu zwei HealthOmics Wiederholungen einer fehlgeschlagenen Aufgabe versucht.

Sie können so konfigurierenomicsRetryOn5xx, dass die Wiederholung von Aufgaben bei Dienstfehlern deaktiviert wird. Weitere Informationen zur Wiederholung von Aufgaben finden Sie unter HealthOmics. Die Aufgabe wird erneut versucht

Im folgenden Beispiel wird die globale Konfiguration so konfiguriertomicsRetryOn5xx, dass die Aufgabenwiederholung deaktiviert wird.

process { omicsRetryOn5xx = false }

Das folgende Beispiel zeigt, wie die Konfiguration omicsRetryOn5xx im Aufgabenbereich der Workflow-Definition erfolgt.

process myTask { label 'my_label' omicsRetryOn5xx = false script: """ your-command-here """ }

Das folgende Beispiel zeigt, wie eine aufgabenspezifische Konfiguration in der Nextflow-Konfigurationsdatei auf der Grundlage der Namens- oder Labelauswahl festgelegt omicsRetryOn5xx wird.

process { withLabel: 'my_label' { omicsRetryOn5xx = false } withName: 'myTask' { omicsRetryOn5xx = false } }

Aufgabendauer unter Verwendung der Zeitdirektive

HealthOmics stellt ein einstellbares Kontingent bereit (sieheHealthOmics Servicekontingenten), um die maximale Dauer einer Ausführung anzugeben. Für Workflows mit Nextflow Version 23 und höher können Sie mithilfe der Nextflow-Direktive auch die maximale Aufgabendauer angeben. time

Bei der Entwicklung neuer Workflows hilft Ihnen die Festlegung der maximalen Aufgabendauer dabei, außer catch geratene Aufgaben und lang andauernde Aufgaben zu erkennen.

Weitere Informationen zur Nextflow-Zeitdirektive finden Sie unter Zeitdirektive in der Nextflow-Referenz.

HealthOmics bietet die folgende Unterstützung für die Nextflow-Zeitdirektive:

  1. HealthOmics unterstützt eine Granularität von 1 Minute für die Zeitdirektive. Sie können einen Wert zwischen 60 Sekunden und dem Wert für die maximale Laufzeit angeben.

  2. Wenn Sie einen Wert unter 60 eingeben, wird HealthOmics dieser auf 60 Sekunden aufgerundet. Bei Werten über 60 wird auf die nächste Minute HealthOmics abgerundet.

  3. Wenn der Workflow Wiederholungsversuche für eine Aufgabe unterstützt, versucht er die Aufgabe HealthOmics erneut, wenn das Timeout überschritten wird.

  4. Wenn bei einer Aufgabe das Timeout überschritten wird (oder bei der letzten Wiederholung), wird die Aufgabe HealthOmics abgebrochen. Dieser Vorgang kann eine Dauer von ein bis zwei Minuten haben.

  5. Bei Zeitüberschreitung der Aufgabe werden die Ausführung und der Aufgabenstatus auf Fehlgeschlagen gesetzt und die anderen Aufgaben in der Ausführung abgebrochen (für Aufgaben mit dem Status „Gestartet“, „Ausstehend“ oder „Wird ausgeführt“). HealthOmics HealthOmics exportiert die Ausgaben von Aufgaben, die vor dem Timeout abgeschlossen wurden, an den von Ihnen angegebenen S3-Ausgabespeicherort.

  6. Die Zeit, die eine Aufgabe im Status „Ausstehend“ verbringt, wird nicht auf die Dauer der Aufgabe angerechnet.

  7. Wenn die Ausführung Teil einer Ausführungsgruppe ist und das Timeout der Ausführungsgruppe vor Ablauf des Task-Timers abläuft, gehen Ausführung und Task in den Status Fehlgeschlagen über.

Geben Sie die Timeoutdauer mit einer oder mehreren der folgenden Einheiten an:ms,s, mh, oderd.

Das folgende Beispiel zeigt, wie die globale Konfiguration in der Nextflow-Konfigurationsdatei angegeben wird. Es legt ein globales Timeout von 1 Stunde und 30 Minuten fest.

process { time = '1h30m' }

Das folgende Beispiel zeigt, wie eine Zeitanweisung im Aufgabenbereich der Workflow-Definition angegeben wird. In diesem Beispiel wird ein Timeout von 3 Tagen, 5 Stunden und 4 Minuten festgelegt. Dieser Wert hat Vorrang vor dem globalen Wert in der Konfigurationsdatei, hat jedoch keinen Vorrang vor einer aufgabenspezifischen Zeitanweisung für my_label in der Konfigurationsdatei.

process myTask { label 'my_label' time '3d5h4m' script: """ your-command-here """ }

Das folgende Beispiel zeigt, wie aufgabenspezifische Zeitdirektiven in der Nextflow-Konfigurationsdatei auf der Grundlage der Namens- oder Labelselektoren angegeben werden. In diesem Beispiel wird ein globaler Task-Timeout-Wert von 30 Minuten festgelegt. Es legt einen Wert von 2 Stunden für eine Aufgabe myTask und einen Wert von 3 Stunden für Aufgaben mit Bezeichnung my_label fest. Bei Aufgaben, die dem Selektor entsprechen, haben diese Werte Vorrang vor dem globalen Wert und dem Wert in der Workflow-Definition.

process { time = '30m' withLabel: 'my_label' { time = '3h' } withName: 'myTask' { time = '2h' } }

Verwenden Sie Nextflow-Profile

Nextflow-Profile sind benannte Sätze von Konfigurationseinstellungen, die Sie zur Laufzeit auswählen können. Definieren Sie Profile im profiles Block Ihrer nextflow.config Datei:

profiles { standard { process.cpus = 2 process.memory = '4 GB' } production { process.cpus = 16 process.memory = '64 GB' params.input = 's3://bucket/production-data.bam' } }

Wenn Sie einen Lauf starten, geben Sie mit dem engineSettings Parameter ein oder mehrere Profile an. HealthOmics übergibt das -profile Flag an die Nextflow-Engine. Weitere Informationen finden Sie unter Geben Sie die Engine-Einstellungen an.

aws omics start-run \ --workflow-id workflow-id \ --role-arn role-arn \ --output-uri s3://bucket/prefix/ \ --engine-settings '{"profile": "production"}'

Wenn mehrere Profile angegeben werden (zum Beispiel"test,docker"), wendet Nextflow sie in der Reihenfolge an, in der sie in der Befehlszeile angegeben sind. Spätere Profile überschreiben frühere Profile bei widersprüchlichen Einstellungen. Bei Nextflow-Versionen unter 26 werden Profile in der Reihenfolge angewendet, in der sie in der Konfigurationsdatei definiert sind, und nicht in der Befehlszeilenreihenfolge.

Beachten Sie Folgendes:

  • Profilunterstützung ist für alle HealthOmics unterstützten Nextflow-Versionen verfügbar.

  • Profile können Parameter, Prozessdirektiven, includeConfig Anweisungen und Manifestüberschreibungen (einschließlichmanifest.nextflowVersion) enthalten.

  • Explizite Ausführungsparameter haben Vorrang vor profildefinierten Parameterwerten.

  • Wenn Sie ein nicht vorhandenes Profil angeben, wird ein Überprüfungsfehler HealthOmics zurückgegeben.

  • Profile müssen in der Zip-Datei mit der Workflow-Definition definiert werden. HealthOmics unterstützt das Abrufen von Profildefinitionen aus externen Quellen nicht.

  • Wenn Sie kein Profil angeben, verwendet der Lauf das standard Profil, sofern es in der Workflow-Definition unter Profile definiert ist. Andernfalls verwendet der Lauf die Standardkonfiguration (oberste Ebene).

  • Wenn Sie Profile verwenden, empfehlen wir, die Nextflow-Version in Ihre Workflow-Definition aufzunehmen, manifest.nextflowVersion um ein konsistentes Verhalten der Profilanwendung bei allen Läufen sicherzustellen.

Exportieren Sie Inhalte auf Workflow-Ebene

Für Nextflow v25.10 und höher können Sie Dateien exportieren, die außerhalb einzelner Aufgaben erstellt wurden, z. B. Herkunftsberichte oder Pipeline-DAGs. Um diese Dateien zu exportieren, schreiben Sie sie in. /mnt/workflow/output/ HealthOmics exportiert Dateien, die sich in diesem Verzeichnis befinden, an das output/ Präfix im Amazon S3 S3-Ausgabespeicherort Ihres Laufs.

Das folgende Beispiel zeigt, wie Sie das nf-prov Plugin konfigurieren, für das ein Herkunftsbericht geschrieben wird. /mnt/workflow/output/

prov { formats { bco { file = "/mnt/workflow/output/pipeline_info/manifest.bco.json" } } }

Sie können diesen Pfad auch als Parameter in der Eingabe-JSON Ihres Laufs übergeben. Dieser Ansatz ist bei NF-Core-Workflows üblich, die verwenden. params.outdir

{ "outdir": "/mnt/workflow/output/" }

Aufgabeninhalt exportieren

Definieren Sie für in Nextflow geschriebene Workflows eine PublishDir-Direktive, um Aufgabeninhalte in Ihren Amazon S3 S3-Ausgabe-Bucket zu exportieren. Wie im folgenden Beispiel gezeigt, setzen Sie den Wert publishDir auf. /mnt/workflow/pubdir Um Dateien nach Amazon S3 zu exportieren, müssen sich die Dateien in diesem Verzeichnis befinden.

nextflow.enable.dsl=2 workflow { CramToBamTask(params.ref_fasta, params.ref_fasta_index, params.ref_dict, params.input_cram, params.sample_name) ValidateSamFile(CramToBamTask.out.outputBam) } process CramToBamTask { container "<account>.dkr.ecr.us-west-2.amazonaws.com/genomes-in-the-cloud" publishDir "/mnt/workflow/pubdir" input: path ref_fasta path ref_fasta_index path ref_dict path input_cram val sample_name output: path "${sample_name}.bam", emit: outputBam path "${sample_name}.bai", emit: outputBai script: """ set -eo pipefail samtools view -h -T $ref_fasta $input_cram | samtools view -b -o ${sample_name}.bam - samtools index -b ${sample_name}.bam mv ${sample_name}.bam.bai ${sample_name}.bai """ } process ValidateSamFile { container "<account>.dkr.ecr.us-west-2.amazonaws.com/genomes-in-the-cloud" publishDir "/mnt/workflow/pubdir" input: file input_bam output: path "validation_report" script: """ java -Xmx3G -jar /usr/gitc/picard.jar \ ValidateSamFile \ INPUT=${input_bam} \ OUTPUT=validation_report \ MODE=SUMMARY \ IS_BISULFITE_SEQUENCED=false """ }

Für Nextflow v25.10 und höher können Sie alternativ Workflow-Ausgaben verwendenpublishDir, um Aufgabeninhalte zu exportieren. Das folgende Beispiel zeigt, wie ein output Workflow-Block definiert wird, der Aufgabenergebnisse nach Amazon S3 exportiert.

process myTask { input: val data output: path 'result.txt' script: """ echo ${data} > result.txt """ } workflow { main: output_file = myTask('hello') publish: results = output_file } output { results { path '.' } }

Weitere Informationen zu Workflow-Ausgaben finden Sie unter Workflow-Ausgaben in der Nextflow-Dokumentation.

Geben Sie die Nextflow-Syntaxversion an

Nextflow v26.04.0 verwendet standardmäßig den strengen Syntaxparser (v2). Dies ist eine bahnbrechende Änderung für Workflows, die mit der Legacy-Syntax (v1) geschrieben wurden, die in Nextflow v25.10.0 und früher der Standard ist. Informationen zur v2-Syntax finden Sie unter Strikte Syntax in der Seqera Nextflow-Dokumentation.

Um einen Workflow auszuführen, der für den Legacy-Parser (v1) erstellt wurde, setzen Sie in der Anfrage auf: engineSettings.syntaxVersion v1 StartRun

{ "engineSettings": { "syntaxVersion": "v1" } }

Für Nextflow v25.10.0 und früher wird der v2-Parser HealthOmics nicht unterstützt.

Versionshinweise zu Nextflow v26.04

In den folgenden Tabellen wird die HealthOmics Unterstützung für neue Funktionen, Verbesserungen und veraltete Versionen zusammengefasst, die in Nextflow Version 26.04 veröffentlicht wurden.

Neue Features und Verbesserungen

Feature Von Version HealthOmics Unterstützung Hinweise
Strikter Syntaxparser (Standard) 26.04 Ja Ab v26.04 standardmäßig aktiviert. Legacy-Parser syntaxVersion: "v1" in den Engine-Einstellungen verfügbar.
Datensatztypen 26.04 Ja Weitere Informationen finden Sie unter Records in der Seqera Nextflow-Dokumentation.
Zusammenfassungen der Workflow-Ausgaben 26.04 Ja Druckt nach Abschluss des Laufs eine Zusammenfassung der Workflow-Ausgaben. Das Ausgabeformat kann über outputFormat die Engine-Einstellungen konfiguriert werden. Weitere Informationen finden Sie unter Geben Sie die Engine-Einstellungen an.
Agenten-Protokollierungsmodus 26.04 Ja Konfigurierbar über agentMode die Motoreinstellungen. Weitere Informationen finden Sie unter Geben Sie die Engine-Einstellungen an.
Modulsystem (Nextflow Registry) 26.04 Nein HealthOmics Workflows werden in einem isolierten Netzwerk ohne ausgehenden Internetzugang ausgeführt. Sie können Module direkt in Ihre Workflow-ZIP-Datei aufnehmen.
Statische Typisierung (Vorschau) 26.04 Nein HealthOmics unterstützt keine Vorschaufunktionen.
Auto-load Sammlungsparameter aus Dateien 26.04 Nein Erfordert statische Typisierung (Vorschau), die HealthOmics nicht unterstützt wird.
Multi-revision Pipelines auschecken 26.04 N/A Nicht zutreffend. HealthOmics verwendet kein Git-based Pipeline-Checkout.

Veraltungen

Veralteter Artikel Von Version Auswirkung Empfohlene Aktion
listFiles()-Methode 26.04 Warnung vor veralteter Version Ersetze durch. listDirectory()
nextflow.enable.strict-Flag 26.04 Wird nicht mehr benötigt Aus der Konfiguration entfernen. Der strikte Modus ist jetzt die Standardeinstellung.
manifest.defaultBranch 26.04 Wird nicht mehr benötigt Aus der Konfiguration entfernen. HealthOmics verwendet kein Git-based Pipeline-Checkout und hat diese Option nie unterstützt.