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
Argomenti
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-schemanf-validationv24.10 — supporta
nf-schemav25.10, v26.04 — supporta,, e
nf-schemanf-core-utilsnf-fgbionf-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-validationPer 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:
-
Configurazione globale nel file di configurazione.
-
Sezione delle attività della definizione del flusso di lavoro.
-
Task-specific selettori nel file di configurazione.
Argomenti
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 riprovare le attività 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 riprovare le attività 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.
HealthOmics fornisce il seguente supporto per la direttiva time Nextflow:
-
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.
-
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.
-
Se il flusso di lavoro supporta nuovi tentativi per un'operazione, HealthOmics riprova l'operazione in caso di timeout.
-
Se un'attività scade (o scade l'ultimo tentativo), HealthOmics annulla l'attività. Questa operazione può avere una durata da uno a due minuti.
-
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.
-
Il tempo trascorso da un'attività in sospeso non viene conteggiato ai fini della durata dell'attività.
-
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 Specificare le impostazioni del motore Nextflow.
aws omics start-run \ --workflow-idworkflow-id\ --role-arnrole-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 quanto riguarda 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,
includeConfigistruzioni 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
standardprofilo se è definito nei profili nella definizione del flusso di lavoro. In caso contrario, 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.nextflowVersionper 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 dell'esecuzione.
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
Genera report sull'esecuzione di Nextflow
Nextflow può produrre quattro report integrati per ogni esecuzione: un rapporto di esecuzione (), una sequenza temporale (report), un file di traccia (timeline) e un diagramma del flusso di lavoro (trace). dag Per HealthOmics esportare questi file nella posizione di output Amazon S3 della tua corsa, configura ognuno di essi in modo che scriva il relativo output /mnt/workflow/output/ nel tuo nextflow.config file:
report { enabled = true file = '/mnt/workflow/output/report.html' overwrite = true } timeline { enabled = true file = '/mnt/workflow/output/timeline.html' overwrite = true } trace { enabled = true file = '/mnt/workflow/output/trace.txt' overwrite = true } dag { enabled = true file = '/mnt/workflow/output/dag.html' overwrite = true }
HealthOmics esporta i file scritti con /mnt/workflow/output/ il output/ prefisso nella posizione di output Amazon S3 della tua corsa. Per ulteriori informazioni su questo percorso di esportazione, consulta. Esporta contenuti a livello di flusso di lavoro I report scritti all'esterno non /mnt/workflow/output/ vengono esportati nella posizione di output Amazon S3 della tua corsa.
I contenitori delle attività devono includere ps
Quando il trace report reporttimeline, o è abilitato, Nextflow raccoglie le metriche per attività richiamandole all'interno di ogni contenitore di attività. ps L'immagine del contenitore che specifichi con la direttiva deve includere il comando. container ps Sulla maggior parte delle distribuzioni Linux, installalo con il pacchetto procps (Debian/Ubuntu) o procps-ng (Amazon Linux, Red Hat, Fedora). Se un processo non dichiara una container direttiva, HealthOmics esegue l'attività in un contenitore predefinito che già include. ps
Formato del diagramma del flusso di lavoro
Il dag rapporto supporta diversi formati di output, selezionati con l'estensione didag.file. I formati HTML, Mermaid e DOT sono renderizzati direttamente da Nextflow e non richiedono strumenti aggiuntivi. I formati PDF, PNG e SVG richiedono Graphviz, che non è incluso nel motore Nextflow. HealthOmics Se dag.file è impostato su un percorso PDF, PNG o SVG, Nextflow registra un avviso e scrive il diagramma del flusso di lavoro come file .dot sorgente al suo posto; l'esecuzione viene comunque completata correttamente. Si consiglia di dag.file impostare un .dot percorso .html.mmd, o per evitare l'avviso e produrre il formato richiesto.
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
Utilizzo efficiente dello storage Scratch in Nextflow
La scratch direttiva di Nextflow controlla dove un processo scrive i suoi file di lavoro temporanei. Quando l'archiviazione effimera è abilitata (scratchStorageMode: LOCAL), usa la scratch direttiva per indirizzare scratch I/O al volume locale veloce in. /tmp
La tabella seguente descrive i valori delle scratch direttive supportati e il loro comportamento in: HealthOmics
| Valore | Comportamento in HealthOmics | Raccomandazione |
|---|---|---|
scratch true |
Usi$TMPDIR. Scratch I/O viene indirizzato al volume effimero locale quando è. scratchStorageMode LOCAL |
Consigliato |
scratch '/some/path' |
Utilizza il percorso letterale specificato come directory scratch. Per utilizzare la memorizzazione temporanea, imposta il percorso /tmp o una sottodirectory di. /tmp Il percorso deve esistere nel contenitore ed essere scrivibile. |
Funziona quando il percorso è sotto /tmp |
scratch 'ram-disk' |
Tentativi di utilizzo /dev/shm (tmpfs nella RAM). Questa operazione non è consigliata per l'archiviazione locale in. HealthOmics |
Non consigliato |
L'approccio consigliato consiste scratch true nell'impostare nella definizione del processo, che utilizza automaticamente $TMPDIR e non richiede alcuna configurazione del percorso:
process my_process { scratch true disk '200 GB' script: """ my-tool --input ${input} --output ${output} """ }
Per ulteriori informazioni sull'archiviazione effimera e sulla disk direttiva, vedere. Archiviazione temporanea per le attività del flusso di lavoro 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 | Sì | Abilitato per impostazione predefinita dalla v26.04. Parser legacy disponibile tramite syntaxVersion: "v1" le impostazioni del motore. |
| Tipi di record | 26.04 | Sì | Per ulteriori informazioni, vedere Record nella documentazione |
| Riepiloghi dell'output del flusso di lavoro | 26.04 | Sì | 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 Specificare le impostazioni del motore Nextflow. |
| Modalità di registrazione dell'agente | 26.04 | Sì | Configurabile tramite le impostazioni agentMode del motore. Per ulteriori informazioni, consulta Specificare le impostazioni del motore Nextflow. |
| 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. |