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
Utilizzo dei 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
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-validation
Per ulteriori informazioni, consulta nf-schema nel repository Nextflow.GitHub
Specificare lo storage 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
Impostazione della durata massima delle attività utilizzando le direttive temporali
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 le direttive temporali di Nextflow.
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 le direttive temporali di 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 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 non riuscito.
Specificate la durata del timeout utilizzando una o più delle seguenti unità:ms
,, s
m
h
, o. d
È possibile specificare le direttive temporali nel file di configurazione di Nextflow e nella definizione del flusso di lavoro. L'elenco seguente mostra l'ordine di precedenza, 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.
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' } }
Esportazione del 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 """ }