View a markdown version of this page

Specifiche della definizione del flusso di lavoro Nextflow - AWS HealthOmics

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Specifiche della definizione del flusso di lavoro Nextflow

HealthOmics supporta Nextflow DSL1 e DSL2. Per informazioni dettagliate, vedi Supporto per la versione Nextflow.

Nextflow DSL2 si basa sul linguaggio di programmazione Groovy, quindi i parametri sono dinamici e la coercizione dei tipi è possibile utilizzando le stesse regole di Groovy. I parametri e i valori forniti dall'input JSON sono disponibili nella mappa parameters () del flusso di lavoro. params

Usa i plugin nf-schema e nf-validation

Nota

Riepilogo del supporto per i plugin: HealthOmics

  • v22.04 — nessun supporto per i plugin

  • v23.10 — supporta e nf-schema nf-validation

  • v24.10 — supporta nf-schema

  • v25.10, v26.04 — supporta,, e nf-schema nf-core-utils nf-fgbio nf-prov

HealthOmics fornisce il seguente supporto per i plugin Nextflow:

  • Per Nextflow v23.10, preinstalla il plugin nf-validation @1 .1.1 HealthOmics .

  • Per Nextflow v23.10 e v24.10, preinstalla il plugin nf-schema @2 .3.0. HealthOmics

  • Per Nextflow v25.10, HealthOmics preinstalla i plugin nf-schema @2 .6.1, nf-core-utils @0 .4.0, nf-prov @1 .7.0 e nf-fgbio @1 .0.1.

  • Per Nextflow v26.04, HealthOmics preinstalla i plugin nf-schema @2 .7.2, nf-core-utils @0 .4.0, nf-prov @1 .7.0 e nf-fgbio @1 .0.1.

  • Non è possibile recuperare plug-in aggiuntivi durante l'esecuzione di un flusso di lavoro. HealthOmics ignora qualsiasi altra versione del plugin specificata nel file. nextflow.config

  • Per Nextflow v24 e versioni successive, nf-schema è la nuova versione del plugin obsoleto. nf-validation Per ulteriori informazioni, consulta nf-schema nel repository Nextflow. GitHub

Specificare gli URI di archiviazione

Quando un Amazon S3 o un HealthOmics URI viene utilizzato per costruire un file o un oggetto di percorso Nextflow, rende l'oggetto corrispondente disponibile per il flusso di lavoro, purché sia concesso l'accesso in lettura. L'uso di prefissi o directory è consentito per gli URI di Amazon S3. Per alcuni esempi, consulta Formati dei parametri di input di Amazon S3.

HealthOmics supporta parzialmente l'uso di modelli di glob negli URI di Amazon S3 o negli URI HealthOmics di storage. Usa i pattern Glob nella definizione del flusso di lavoro per la creazione dei nostri canali. path file Per il comportamento previsto e i casi esatti, vediGestione Nextflow del pattern Glob negli input di Amazon S3.

Direttive Nextflow

Le direttive Nextflow vengono configurate nel file di configurazione di Nextflow o nella definizione del flusso di lavoro. L'elenco seguente mostra l'ordine di precedenza HealthOmics utilizzato per applicare le impostazioni di configurazione, dalla priorità più bassa a quella più alta:

  1. Configurazione globale nel file di configurazione.

  2. Sezione delle attività della definizione del flusso di lavoro.

  3. Task-specific selettori nel file di configurazione.

Strategia di riprova delle attività utilizzando ErrorStrategy

Usa la errorStrategy direttiva per definire la strategia per gli errori delle attività. Per impostazione predefinita, quando un'attività ritorna con un'indicazione di errore (uno stato di uscita diverso da zero), l'attività si interrompe e HealthOmics termina l'intera esecuzione. Se è impostata su errorStrategyretry, HealthOmics tenta un nuovo tentativo dell'operazione non riuscita. Per aumentare il numero di tentativi, vedere. Tentativi di ripetere l'operazione utilizzando MaxRetries

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

Per informazioni su come HealthOmics gestisce i nuovi tentativi di operazione durante un'esecuzione, vedere. Ritentativi di attività

Tentativi di ripetere l'operazione utilizzando MaxRetries

Per impostazione predefinita, HealthOmics non tenta di ripetere un'operazione non riuscita o tenta un solo tentativo se si configura. errorStrategy Per aumentare il numero massimo di tentativi, imposta errorStrategy retry e configura il numero massimo di tentativi utilizzando la direttiva. maxRetries

L'esempio seguente imposta il numero massimo di tentativi su 3 nella configurazione globale.

process { errorStrategy = 'retry' maxRetries = 3 }

L'esempio seguente mostra come impostare maxRetries la definizione del flusso di lavoro nella sezione delle attività.

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

L'esempio seguente mostra come specificare la configurazione specifica dell'attività nel file di configurazione di Nextflow, in base ai selettori di nome o etichetta.

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

Disattiva la ripetizione dell'attività utilizzando omics 5xx RetryOn

Per Nextflow v23 e versioni successive, HealthOmics supporta i nuovi tentativi di attività se l'operazione non è riuscita a causa di errori di servizio (codici di stato HTTP 5XX). Per impostazione predefinita, HealthOmics tenta fino a due nuovi tentativi di un'operazione non riuscita.

È possibile omicsRetryOn5xx configurare la disattivazione del nuovo tentativo di operazione per errori di servizio. Per ulteriori informazioni su come riprovare l'attività HealthOmics, vedere. Ritentativi di attività

L'esempio seguente configura omicsRetryOn5xx la configurazione globale per disattivare il nuovo tentativo di operazione.

process { omicsRetryOn5xx = false }

L'esempio seguente mostra come eseguire la configurazione omicsRetryOn5xx nella sezione delle attività della definizione del flusso di lavoro.

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

L'esempio seguente mostra omicsRetryOn5xx come impostare una configurazione specifica per l'attività nel file di configurazione Nextflow, in base ai selettori di nome o etichetta.

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

Durata dell'attività utilizzando la direttiva time

HealthOmics fornisce una quota regolabile (vediHealthOmics quote di servizio) per specificare la durata massima di un'esecuzione. Per i flussi di lavoro Nextflow v23 e versioni successive, puoi anche specificare la durata massima delle attività utilizzando la direttiva Nextflow. time

Durante lo sviluppo di nuovi flussi di lavoro, l'impostazione della durata massima delle attività consente di catturare attività inutili e attività di lunga durata.

Per ulteriori informazioni sulla direttiva time di Nextflow, consulta la direttiva time nel riferimento di Nextflow.

HealthOmics fornisce il seguente supporto per la direttiva time Nextflow:

  1. HealthOmics supporta la granularità di 1 minuto per la direttiva time. È possibile specificare un valore compreso tra 60 secondi e il valore massimo della durata dell'esecuzione.

  2. Se si immette un valore inferiore a 60, lo HealthOmics arrotonda a 60 secondi. Per valori superiori a 60, HealthOmics arrotonda per difetto al minuto più vicino.

  3. Se il flusso di lavoro supporta nuovi tentativi per un'operazione, HealthOmics riprova l'operazione in caso di timeout.

  4. Se un'attività scade (o scade l'ultimo tentativo), HealthOmics annulla l'attività. Questa operazione può avere una durata da uno a due minuti.

  5. In caso di timeout dell'attività, HealthOmics imposta l'esecuzione e lo stato dell'attività su Non riuscita e annulla le altre attività in esecuzione (per le attività con stato Avvio, In sospeso o In esecuzione). HealthOmics esporta gli output delle attività completate prima del timeout nella posizione di output S3 designata.

  6. Il tempo trascorso da un'attività in sospeso non viene conteggiato ai fini della durata dell'attività.

  7. Se l'esecuzione fa parte di un gruppo di esecuzione e il gruppo di esecuzione scade prima del timer dell'attività, l'esecuzione e l'attività passano allo stato di esecuzione non riuscita.

Specificate la durata del timeout utilizzando una o più delle seguenti unità:ms,, s mh, o. d

L'esempio seguente mostra come specificare la configurazione globale nel file di configurazione Nextflow. Imposta un timeout globale di 1 ora e 30 minuti.

process { time = '1h30m' }

L'esempio seguente mostra come specificare una direttiva temporale nella sezione delle attività della definizione del flusso di lavoro. Questo esempio imposta un timeout di 3 giorni, 5 ore e 4 minuti. Questo valore ha la precedenza sul valore globale nel file di configurazione, ma non ha la precedenza su una direttiva temporale specifica per l'attività nel file di configurazione. my_label

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

L'esempio seguente mostra come specificare le direttive temporali specifiche dell'attività nel file di configurazione Nextflow, in base ai selettori di nome o etichetta. Questo esempio imposta un valore di timeout globale dell'attività di 30 minuti. Imposta un valore di 2 ore per l'attività myTask e imposta un valore di 3 ore per le attività con etichettamy_label. Per le attività che corrispondono al selettore, questi valori hanno la precedenza sul valore globale e sul valore nella definizione del flusso di lavoro.

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

Usa i profili Nextflow

I profili Nextflow sono set denominati di impostazioni di configurazione che è possibile selezionare in fase di esecuzione. Definisci i profili nel profiles blocco del filenextflow.config:

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

Quando inizi una corsa, specifica uno o più profili utilizzando il engineSettings parametro. HealthOmics passa il -profile flag al motore Nextflow. Per ulteriori informazioni, consulta Specificate le impostazioni del motore.

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

Quando vengono specificati più profili (ad esempio,"test,docker"), Nextflow li applica nell'ordine in cui sono specificati nella riga di comando. I profili successivi sostituiscono quelli precedenti per le impostazioni in conflitto. Per le versioni di Nextflow precedenti alla 26, i profili vengono applicati nell'ordine in cui sono definiti nel file di configurazione anziché nell'ordine della riga di comando.

Tenere presente quanto segue:

  • Il supporto dei profili è disponibile per tutte le versioni di HealthOmics Nextflow supportate.

  • I profili possono contenere parametri, direttive di processo, includeConfig istruzioni e sostituzioni del manifesto (inclusi). manifest.nextflowVersion

  • I parametri di esecuzione espliciti hanno la precedenza sui valori dei parametri definiti dal profilo.

  • Se si specifica un profilo inesistente, restituisce un errore di convalida. HealthOmics

  • I profili devono essere definiti nel file zip di definizione del flusso di lavoro. HealthOmics non supporta il recupero delle definizioni dei profili da fonti esterne.

  • Se non si specifica un profilo, l'esecuzione utilizza il standard profilo se è definito nei profili nella definizione del flusso di lavoro. Altrimenti, l'esecuzione utilizza la configurazione predefinita (di primo livello).

  • Quando usi i profili, ti consigliamo di aggiungere la versione di Nextflow nella definizione del flusso di lavoro manifest.nextflowVersion per garantire un comportamento coerente dell'applicazione del profilo durante le esecuzioni.

Esporta contenuti a livello di flusso di lavoro

Per Nextflow v25.10 e versioni successive, puoi esportare file prodotti al di fuori delle singole attività, come report di provenienza o DAG della pipeline. Per esportare questi file, scrivili su. /mnt/workflow/output/ HealthOmics esporta i file inseriti in questa directory nel output/ prefisso nella posizione di output Amazon S3 della tua corsa.

L'esempio seguente mostra come configurare il nf-prov plug-in su cui scrivere un rapporto di provenienza. /mnt/workflow/output/

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

Puoi anche passare questo percorso come parametro nell'input JSON della tua esecuzione. Questo approccio è comune ai flussi di lavoro nf-core che utilizzano. params.outdir

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

Esporta il contenuto delle attività

Per i flussi di lavoro scritti in Nextflow, definisci una direttiva PublishDir per esportare il contenuto delle attività nel tuo bucket Amazon S3 di output. Come mostrato nell'esempio seguente, imposta il valore PublishDir su. /mnt/workflow/pubdir Per esportare file in Amazon S3, i file devono trovarsi in questa directory.

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 """ }

Per Nextflow v25.10 e versioni successive, in alternativapublishDir, puoi utilizzare gli output del flusso di lavoro per esportare il contenuto delle attività. L'esempio seguente mostra come definire un output blocco di flusso di lavoro che esporta i risultati delle attività in Amazon S3.

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 '.' } }

Per ulteriori informazioni sugli output del flusso di lavoro, consulta Output del flusso di lavoro nella documentazione di Nextflow.

Specificare la versione della sintassi di Nextflow

Nextflow v26.04.0 utilizza il parser di sintassi strict (v2) per impostazione predefinita. Si tratta di una modifica fondamentale per i flussi di lavoro scritti utilizzando la sintassi legacy (v1), che è l'impostazione predefinita in Nextflow v25.10.0 e versioni precedenti. Per informazioni sulla sintassi v2, vedere Sintassi rigorosa nella documentazione di Seqera Nextflow.

Per eseguire un flusso di lavoro creato con il parser legacy (v1), imposta nella richiesta: engineSettings.syntaxVersion v1 StartRun

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

Per Nextflow v25.10.0 e versioni precedenti, non supporta il parser v2. HealthOmics

Note di rilascio di Nextflow v26.04

Le tabelle seguenti riassumono il HealthOmics supporto per nuove funzionalità, miglioramenti e versioni obsolete rilasciate nella versione 26.04 di Nextflow.

Nuove funzionalità e miglioramenti

Funzionalità Dalla versione HealthOmics supporto Note
Parser di sintassi rigoroso (predefinito) 26.04 Abilitato per impostazione predefinita dalla v26.04. Parser legacy disponibile tramite syntaxVersion: "v1" le impostazioni del motore.
Tipi di record 26.04 Per ulteriori informazioni, vedere Record nella documentazione di Seqera Nextflow.
Riepiloghi dell'output del flusso di lavoro 26.04 Stampa un riepilogo degli output del flusso di lavoro al termine dell'esecuzione. Formato di output configurabile tramite le impostazioni outputFormat del motore. Per ulteriori informazioni, consulta Specificate le impostazioni del motore.
Modalità di registrazione dell'agente 26.04 Configurabile tramite le impostazioni agentMode del motore. Per ulteriori informazioni, consulta Specificate le impostazioni del motore.
Sistema di moduli (registro Nextflow) 26.04 No HealthOmics i flussi di lavoro vengono eseguiti in una rete isolata senza accesso a Internet in uscita. Puoi includere i moduli direttamente nel file zip del flusso di lavoro.
Digitazione statica (anteprima) 26.04 No HealthOmics non supporta le funzionalità di anteprima.
Auto-load raccolta di parametri dai file 26.04 No Richiede la digitazione statica (anteprima), che HealthOmics non supporta.
Multi-revision checkout delle pipeline 26.04 N/A Non applicabile HealthOmics non utilizza il checkout Git-based della pipeline.

Raggiunta obsolescenza

Articolo obsoleto Dalla versione Impatto Azione consigliata
Metodo listFiles() 26.04 Avviso di deprecazione Sostituisci con. listDirectory()
Flag nextflow.enable.strict 26,04 Non è più necessario Rimuovi dalla configurazione. La modalità rigorosa è ora l'impostazione predefinita.
manifest.defaultBranch 26.04 Non è più necessario Rimuovi dalla configurazione. HealthOmics non utilizza il checkout Git-based della pipeline e non ha mai supportato questa opzione.