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 di definizione del flusso di lavoro Nextflow
HealthOmics supporta Nextflow DSL1 e DSL2. Per informazioni dettagliate, vedi Supporto per le versioni di Nextflow.
Nextflow DSL2 è basato sul linguaggio di programmazione Groovy, quindi i parametri sono dinamici e la coercizione del tipo è possibile utilizzando le stesse regole di Groovy. I parametri e i valori forniti dal JSON di input 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-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 tutte le altre versioni del plug-in specificate nel file.
nextflow.config -
Per Nextflow v24 e versioni successive,
nf-schemaè la nuova versione del plug-in obsoleto.nf-validationPer ulteriori informazioni, vedere nf-schema nel repository Nextflow. GitHub
Specifica gli URI di archiviazione
Quando un Amazon S3 o un HealthOmics URI viene utilizzato per creare un file Nextflow o un oggetto path, rende l'oggetto corrispondente disponibile per il flusso di lavoro, a condizione che venga 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 pattern glob negli URI di Amazon S3 o negli URI di storage. HealthOmics Utilizza i pattern Glob nella definizione del flusso di lavoro per la creazione di canali OR. path file Per il comportamento previsto e i casi esatti, vedereGestione 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 relativa alle attività della definizione del flusso di lavoro.
-
Task-specific selettori nel file di configurazione.
Argomenti
Strategia di riprova dell'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 impostato su errorStrategyretry, HealthOmics tenta un nuovo tentativo dell'operazione non riuscita. Per aumentare il numero di tentativi, vedere. Tentativi di ripetizione dell'attività utilizzando MaxRetries
process { label 'my_label' errorStrategy 'retry' script: """ your-command-here """ }
Per informazioni su come HealthOmics gestisce i tentativi delle attività durante un'esecuzione, vedere. Ritentativi di attività
Tentativi di ripetizione dell'attività utilizzando MaxRetries
Per impostazione predefinita, HealthOmics non tenta alcun nuovo tentativo di un'operazione fallita o tenta un nuovo tentativo se configurato. 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 nella sezione delle attività della definizione del flusso di lavoro.
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 Comics 5xx RetryOn
Per Nextflow v23 e versioni successive, HealthOmics supporta la ripetizione delle 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 tentativi di un'operazione non riuscita.
È possibile configurare in modo omicsRetryOn5xx da non consentire la ripetizione dell'operazione in caso di errori di servizio. Per ulteriori informazioni sulla ripetizione delle attività HealthOmics, vedere. Ritentativi di attività
L'esempio seguente configura, omicsRetryOn5xx nella configurazione globale, la disattivazione del ritentativo dell'attività.
process { omicsRetryOn5xx = false }
L'esempio seguente mostra come effettuare la configurazione omicsRetryOn5xx nella sezione relativa alle 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 di 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 un nuovo flusso di lavoro, l'impostazione della durata massima delle attività consente di individuare le attività indesiderate e le attività di lunga durata.
Per ulteriori informazioni sulla direttiva Nextflow time, consulta la direttiva time
HealthOmics fornisce il seguente supporto per la direttiva temporale Nextflow:
-
HealthOmics supporta una 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 i tentativi per un'attività, HealthOmics riprova l'operazione in caso di timeout.
-
Se un'attività scade (o scade l'ultimo tentativo), l'operazione viene HealthOmics annullata. Questa operazione può avere una durata da uno a due minuti.
-
Al termine del 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à in 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 stato di 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 errore.
Specifica 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 relativa alle 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 un'indicazione temporale specifica dell'attività per il 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 di 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 denominati set di impostazioni di configurazione che è possibile selezionare in fase di esecuzione. Definisci i profili nel profiles blocco del tuo nextflow.config file:
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 avvii una corsa, specifica uno o più profili utilizzando il engineSettings parametro. HealthOmics passa il -profile flag al motore Nextflow. Per ulteriori informazioni, consulta Specifica 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 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 dei manifesti (incluse).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 in profili nella definizione del flusso di lavoro. Altrimenti, l'esecuzione utilizza la configurazione predefinita (di primo livello). -
Quando si utilizzano i profili, si consiglia di inserire la versione Nextflow nella definizione del flusso di lavoro
manifest.nextflowVersionper garantire un comportamento coerente dell'applicazione del profilo tra le esecuzioni.
Esporta contenuti a livello di flusso di lavoro
Per Nextflow v25.10 e versioni successive, puoi esportare file prodotti al di fuori di singole attività, come report di provenienza o DAG di pipeline. Per esportare questi file, scrivili su. /mnt/workflow/output/ HealthOmics esporta i file inseriti in questa directory con il output/ prefisso nella posizione di output di Amazon S3 della corsa.
L'esempio seguente mostra come configurare il nf-prov plugin per 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 nel JSON di input della tua corsa. 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 bucket Amazon S3 di output. Come mostrato nell'esempio seguente, imposta il valore PublishDir su. /mnt/workflow/pubdir Per esportare i 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
Genera report di esecuzione di Nextflow
Nextflow può produrre quattro report integrati per ogni esecuzione: un report di esecuzione (report), una timeline (), un file di traccia (timeline) e un diagramma del flusso di lavoro (trace). dag Per HealthOmics esportare questi file nella posizione di output di Amazon S3 della tua corsa, configura ognuno di essi in /mnt/workflow/output/ modo che scriva il relativo output nel tuo file: nextflow.config
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 di 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 di Amazon S3 della corsa.
I contenitori di attività devono includere ps
Quando il trace report reporttimeline, o è abilitato, Nextflow raccoglie le metriche per attività richiamandole all'interno di ciascun contenitore di attività. ps L'immagine del contenitore specificata con la direttiva deve includere il comando. container ps Nella 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'operazione in un contenitore predefinito che già include. ps
Formato del diagramma del workflow
Il dag report supporta diversi formati di output, selezionati con l'estensione didag.file. I formati HTML, Mermaid e DOT vengono 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.
Specifica la versione della sintassi Nextflow
Nextflow v26.04.0 utilizza il parser di sintassi strict (v2) per impostazione predefinita. Si tratta di una modifica sostanziale 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, vedi Strict syntax nella documentazione di Seqera Nextflow. https://docs.seqera.io/nextflow/strict-syntax
Per eseguire un flusso di lavoro creato con il parser legacy (v1), imposta su nella richiesta: engineSettings.syntaxVersion v1 StartRun
{ "engineSettings": { "syntaxVersion": "v1" } }
Per Nextflow v25.10.0 e versioni precedenti, non supporta il parser v2. HealthOmics
Convalida automatica della sintassi durante la creazione del flusso di lavoro
HealthOmics esegue automaticamente il linter DSL2 rigoroso integrato in Nextflow (nf-lang/v2) quando si crea o si aggiorna un flusso di lavoro Nextflow DSL2. Questo CreateWorkflow linter viene eseguito durante e. CreateWorkflowVersion Si applica a tutte le versioni DSL2 supportate (v22.04, v23.10, v24.10, v25.10 e v26.04). I flussi di lavoro DSL1 non sono collegati.
Il linter funziona in modalità non bloccante. I risultati di Lint non impediscono al flusso di lavoro di diventare ATTIVO. I risultati vengono visualizzati come JSON strutturato nel statusMessage campo della GetWorkflow risposta.
Nota
Il linter integrato convalida la sintassi di definizione del flusso di lavoro al momento della creazione. È diverso dal rigoroso parser di sintassi disponibile per Nextflow v26.04, che è controllato e influisce sul comportamento di runtime. engineSettings.syntaxVersion Il linter verifica la sintassi in tutte le versioni DSL2 al momento della creazione, indipendentemente dal parser utilizzato dal flusso di lavoro in fase di esecuzione. Su Nextflow v22.04, v23.10 e v24.10 (grammatica precedente), i risultati sono indicativi. Su Nextflow v25.10 e v26.04, i risultati riflettono rigorosi requisiti di sintassi delle modalità.
Per ulteriori informazioni sul formato di output lint e su come gestire i risultati, vedere. Il flusso di lavoro si interrompe HealthOmics
Usare lo scratch storage in modo efficiente in Nextflow
La scratch direttiva di Nextflow controlla dove un processo scrive i suoi file di lavoro temporanei. Quando l'archiviazione temporanea è abilitata (scratchStorageMode: LOCAL), usa la scratch direttiva per indirizzare scratch al volume locale veloce I/O all'indirizzo. /tmp
La tabella seguente descrive i valori delle scratch direttive supportate e il loro comportamento in: HealthOmics
| Valore | Comportamento in HealthOmics | Raccomandazione |
|---|---|---|
scratch true |
Usi$TMPDIR. Scratch I/O viene indirizzato al volume temporaneo locale quando scratchStorageMode lo è. LOCAL |
Consigliato |
scratch '/some/path' |
Utilizza il percorso letterale specificato come directory scratch. Per utilizzare l'archiviazione 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 di memoria virtuale in. HealthOmics |
Non consigliato |
L'approccio consigliato è quello di impostare scratch true 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 sullo storage temporaneo e sulla disk direttiva, vedere. Archiviazione temporanea per le attività del flusso di lavoro HealthOmics
Note sulla versione di Nextflow v26.04
Le tabelle seguenti riassumono il HealthOmics supporto per le nuove funzionalità, i miglioramenti e le deprecazioni 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, consulta Records |
| Riepiloghi dei risultati del flusso di lavoro | 26.04 | Sì | Stampa un riepilogo dei risultati del flusso di lavoro al termine dell'esecuzione. Formato di output configurabile tramite le impostazioni outputFormat del motore. Per ulteriori informazioni, consulta Specifica le impostazioni del motore Nextflow. |
| Modalità di registrazione dell'agente | 26.04 | Sì | Configurabile tramite le impostazioni agentMode del motore. Per ulteriori informazioni, consulta Specifica le impostazioni del motore Nextflow. |
| Sistema modulare (Nextflow Registry) | 26.04 | No | HealthOmics i flussi di lavoro vengono eseguiti in una rete isolata senza accesso a Internet in uscita. È possibile 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 parametri di raccolta dai file | 26.04 | No | Richiede una digitazione statica (anteprima), che HealthOmics non supporta. |
| Multi-revision pagamento delle pipeline | 26.04 | N/A | Non applicabile HealthOmics non utilizza il Git-based pipeline checkout. |
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 Git-based pipeline checkout e non ha mai supportato questa opzione. |