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 e. DSL1 DSL2 Per informazioni dettagliate, vedi Supporto per la versione Nextflow.
Nextflow si DSL2 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-schema
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 versioni successive, preinstalla il plugin nf-schema @2 .3.0. HealthOmics
-
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 l'archiviazione URIs
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 Amazon S3. URIs Per alcuni esempi, consulta Formati dei parametri di input di Amazon S3.
HealthOmics supporta l'uso di modelli glob in Amazon URIs S3 HealthOmics o Storage. URIs Usa i pattern Glob nella definizione del flusso di lavoro per la creazione dei path nostri canali. file
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.
-
Selettori specifici dell'attività nel file di configurazione.
Argomenti
Strategia di ripetizione 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 l'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 l'attività utilizzando maxRetries
Per impostazione predefinita, HealthOmics non tenta di ripetere un'operazione non riuscita o tenta un solo 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 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 omicsRetryOn5xx
Per Nextflow v23 e v24, HealthOmics supporta nuovi tentativi di attività se l'operazione non è riuscita a causa di errori di servizio (5XX codici di stato HTTP). 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 } }
timeDurata dell'attività utilizzando la direttiva
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 v24, 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' } }
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 """ }