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à.
File modello di parametri per i flussi HealthOmics di lavoro
I modelli di parametri definiscono i parametri di input per un flusso di lavoro. È possibile definire i parametri di input per rendere il flusso di lavoro più flessibile e versatile. Ad esempio, puoi definire un parametro per la posizione in Amazon S3 dei file del genoma di riferimento. I modelli di parametri possono essere forniti tramite un servizio di repository basato su Git o l'unità locale. Gli utenti possono quindi eseguire il flusso di lavoro utilizzando vari set di dati.
È possibile creare il modello di parametri per il flusso di lavoro HealthOmics oppure generare il modello di parametri automaticamente.
Il modello di parametro è un file JSON. Nel file, ogni parametro di input è un oggetto denominato che deve corrispondere al nome dell'input del flusso di lavoro. Quando si avvia un'esecuzione, se non si forniscono valori per tutti i parametri richiesti, l'esecuzione ha esito negativo.
L'oggetto del parametro di input include i seguenti attributi:
description— Questo attributo obbligatorio è una stringa che la console visualizza nella pagina Start run. Questa descrizione viene conservata anche come metadati di esecuzione.
optional— Questo attributo opzionale indica se il parametro di input è facoltativo. Se non si specifica il optional campo, il parametro di input è obbligatorio.
Il seguente modello di parametri di esempio mostra come specificare i parametri di input.
{ "myRequiredParameter1": { "description": "this parameter is required", }, "myRequiredParameter2": { "description": "this parameter is also required", "optional": false }, "myOptionalParameter": { "description": "this parameter is optional", "optional": true } }
Generazione di modelli di parametri
HealthOmics genera il modello di parametri analizzando la definizione del flusso di lavoro per rilevare i parametri di input. Se fornite un file modello di parametri per un flusso di lavoro, i parametri del file sostituiscono i parametri rilevati nella definizione del flusso di lavoro.
Esistono lievi differenze tra la logica di analisi dei motori CWL, WDL e Nextflow, come descritto nelle sezioni seguenti.
Argomenti
Rilevamento dei parametri per CWL
Nel motore di workflow CWL, la logica di analisi si basa sui seguenti presupposti:
-
Tutti i tipi nullable supportati sono contrassegnati come parametri di input opzionali.
-
Tutti i tipi supportati non nulli sono contrassegnati come parametri di input obbligatori.
-
Tutti i parametri con valori predefiniti sono contrassegnati come parametri di input opzionali.
-
Le descrizioni vengono estratte dalla
label
sezione della definizione delmain
flusso di lavoro. Se nonlabel
è specificato, la descrizione sarà vuota (una stringa vuota).
Le tabelle seguenti mostrano esempi di interpolazione CWL. Per ogni esempio, il nome del parametro è. x
Se il parametro è obbligatorio, è necessario fornire un valore per il parametro. Se il parametro è facoltativo, non è necessario fornire un valore.
Questa tabella mostra esempi di interpolazione CWL per tipi primitivi.
Input | Esempio di input/output | Richiesto |
---|---|---|
|
1 o 2 o... | Sì |
|
Il valore predefinito è 2. L'input valido è 1 o 2 o... | No |
|
L'input valido è Nessuno o 1 o 2 o... | No |
|
Il valore predefinito è 2. L'input valido è Nessuno o 1 o 2 o... | No |
La tabella seguente mostra esempi di interpolazione CWL per tipi complessi. Un tipo complesso è una raccolta di tipi primitivi.
Input | Esempio di input/output | Richiesto |
---|---|---|
|
[] o [1,2,3] | Sì |
|
Nessuno oppure [] o [1,2,3] | No |
|
[] o [Nessuno, 3, Nessuno] |
Sì |
|
[Nessuno] o Nessuno o [1,2,3] o [Nessuno, 3] ma non [] |
No |
Rilevamento dei parametri per WDL
Nel motore di workflow WDL, la logica di analisi si basa sui seguenti presupposti:
-
Tutti i tipi nullable supportati sono contrassegnati come parametri di input opzionali.
-
Per i tipi supportati che non possono essere annullati:
-
Qualsiasi variabile di input con assegnazione di valori letterali o espressioni è contrassegnata come parametri opzionali. Per esempio:
Int x = 2 Float f0 = 1.0 + f1
-
Se non sono stati assegnati valori o espressioni ai parametri di input, questi verranno contrassegnati come parametri obbligatori.
-
-
Le descrizioni vengono estratte dalla definizione
parameter_meta
delmain
flusso di lavoro. Se nonparameter_meta
è specificato, la descrizione sarà vuota (una stringa vuota). Per ulteriori informazioni, vedete la specifica WDL per i metadati dei parametri.
Le tabelle seguenti mostrano esempi di interpolazione WDL. Per ogni esempio, il nome del parametro è. x
Se il parametro è obbligatorio, è necessario fornire un valore per il parametro. Se il parametro è facoltativo, non è necessario fornire un valore.
Questa tabella mostra esempi di interpolazione WDL per tipi primitivi.
Input | Esempio di input/output | Richiesto |
---|---|---|
Int x | 1 o 2 o... | Sì |
Int x = 2 | 2 | No |
Intx = 1+2 | 3 | No |
Int x = y+z | y+z | No |
Int? x | Nessuno o 1 o 2 o... | Sì |
Int? x = 2 | Nessuno o 2 | No |
Int? x = 1+2 | Nessuno o 3 | No |
Int? x = y+z | Nessuno o y+z | No |
La tabella seguente mostra esempi di interpolazione WDL per tipi complessi. Un tipo complesso è una raccolta di tipi primitivi.
Input | Esempio di input/output | Richiesto |
---|---|---|
Array [Int] x | [1,2,3] o [] | Sì |
Matrice [Int] + x | [1], ma non [] | Sì |
Array [Int]? x | Nessuno o [] o [1,2,3] | No |
Array [Int?] x | [] o [Nessuno, 3, Nessuno] | Sì |
Array [Int?] =? x | [Nessuno] o Nessuno o [1,2,3] o [Nessuno, 3] ma non [] | No |
Esempio di struttura {String a, Int y} più avanti negli input: Sample MySample |
|
Sì |
Esempio di struttura {String a, Int y} più avanti negli input: Sample? MySample |
|
No |
Rilevamento dei parametri per Nextflow
Per Nextflow, HealthOmics genera il modello di parametro analizzando il file. nextflow_schema.json
Se la definizione del flusso di lavoro non include un file di schema, HealthOmics analizza il file di definizione del flusso di lavoro principale.
Argomenti
Analisi del file di schema
Affinché l'analisi funzioni correttamente, assicurati che il file di schema soddisfi i seguenti requisiti:
-
Il file di schema è denominato
nextflow_schema.json
e si trova nella stessa directory del file di workflow principale. -
Il file di schema è JSON valido come definito in uno dei seguenti schemi:
HealthOmics analizza il nextflow_schema.json
file per generare il modello di parametro:
-
Estrae tutto ciò properties che è definito nello schema.
-
Include la proprietà description se disponibile per la proprietà.
-
Identifica se ogni parametro è facoltativo o obbligatorio, in base al required campo della proprietà.
L'esempio seguente mostra un file di definizione e il file dei parametri generato.
{ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "$defs": { "input_options": { "title": "Input options", "type": "object", "required": ["input_file"], "properties": { "input_file": { "type": "string", "format": "file-path", "pattern": "^s3://[a-z0-9.-]{3,63}(?:/\\S*)?$", "description": "description for input_file" }, "input_num": { "type": "integer", "default": 42, "description": "description for input_num" } } }, "output_options": { "title": "Output options", "type": "object", "required": ["output_dir"], "properties": { "output_dir": { "type": "string", "format": "file-path", "description": "description for output_dir", } } } }, "properties": { "ungrouped_input_bool": { "type": "boolean", "default": true } }, "required": ["ungrouped_input_bool"], "allOf": [ { "$ref": "#/$defs/input_options" }, { "$ref": "#/$defs/output_options" } ] }
Il modello di parametro generato:
{ "input_file": { "description": "description for input_file", "optional": False }, "input_num": { "description": "description for input_num", "optional": True }, "output_dir": { "description": "description for output_dir", "optional": False }, "ungrouped_input_bool": { "description": None, "optional": False } }
Analisi del file principale
Se la definizione del flusso di lavoro non include un nextflow_schema.json
file, HealthOmics analizza il file di definizione del flusso di lavoro principale.
HealthOmics analizza le params
espressioni presenti nel file di definizione del flusso di lavoro principale e nel nextflow.config
file. Tutte le params
versioni con valori predefiniti sono contrassegnate come opzionali.
Affinché l'analisi funzioni correttamente, tieni presente i seguenti requisiti:
-
HealthOmics analizza solo il file di definizione del flusso di lavoro principale. Per garantire che tutti i parametri vengano acquisiti, ti consigliamo di collegarlo a tutti params i sottomoduli e ai flussi di lavoro importati.
-
Il file di configurazione è facoltativo. Se ne definite uno, assegnategli un nome
nextflow.config
e inseritelo nella stessa directory del file di definizione del flusso di lavoro principale.
L'esempio seguente mostra un file di definizione e il modello di parametri generato.
params.input_file = "default.txt" params.threads = 4 params.memory = "8GB" workflow { if (params.version) { println "Using version: ${params.version}" } }
Il modello di parametro generato:
{ "input_file": { "description": None, "optional": True }, "threads": { "description": None, "optional": True }, "memory": { "description": None, "optional": True }, "version": { "description": None, "optional": False } }
Per i valori predefiniti definiti in nextflow.config, HealthOmics raccoglie le params
assegnazioni e i parametri dichiarati all'internoparams {}
, come illustrato nell'esempio seguente. Nelle istruzioni di assegnazione, params
deve apparire nella parte sinistra dell'istruzione.
params.alpha = "alpha" params.beta = "beta" params { gamma = "gamma" delta = "delta" } env { // ignored, as this assignment isn't in the params block VERSION = "TEST" } // ignored, as params is not on the left side interpolated_image = "${params.cli_image}"
Il modello di parametro generato:
{ // other params in your main workflow defintion "alpha": { "description": None, "optional": True }, "beta": { "description": None, "optional": True }, "gamma": { "description": None, "optional": True }, "delta": { "description": None, "optional": True } }
Parametri annidati
Entrambi nextflow.config
consentono nextflow_schema.json
parametri annidati. Tuttavia, il modello di HealthOmics parametri richiede solo i parametri di primo livello. Se il flusso di lavoro utilizza un parametro annidato, è necessario fornire un oggetto JSON come input per quel parametro.
Parametri annidati nei file di schema
HealthOmics salti annidati params durante l'analisi di un file. nextflow_schema.json
Ad esempio, se si definisce il seguente file: nextflow_schema.json
{ "properties": { "input": { "properties": { "input_file": { ... }, "input_num": { ... } } }, "input_bool": { ... } } }
HealthOmics ignora input_file
e input_num
quando genera il modello di parametro:
{ "input": { "description": None, "optional": True }, "input_bool": { "description": None, "optional": True } }
Quando si esegue questo flusso di lavoro, HealthOmics si aspetta un input.json
file simile al seguente:
{ "input": { "input_file": "s3://bucket/obj", "input_num": 2 }, "input_bool": false }
Parametri annidati nei file di configurazione
HealthOmics non raccoglie i dati annidati params in un nextflow.config
file e li salta durante l'analisi. Ad esempio, se definisci il seguente file: nextflow.config
params.alpha = "alpha" params.nested.beta = "beta" params { gamma = "gamma" group { delta = "delta" } }
HealthOmics ignora params.nested.beta
e params.group.delta
quando genera il modello di parametro:
{ "alpha": { "description": None, "optional": True }, "gamma": { "description": None, "optional": True } }
Esempi di interpolazione Nextflow
La tabella seguente mostra esempi di interpolazione Nextflow per i parametri nel file principale.
Parametri | Richiesto |
---|---|
params.input_file | Sì |
params.input_file = "s3://bucket/data.json» | No |
params.nested.input_file | N/D |
params.nested.input_file = "s3://bucket/data.json» | N/D |
La tabella seguente mostra esempi di interpolazione Nextflow per i parametri nel file. nextflow.config
Parametri | Richiesto |
---|---|
|
No |
|
No |
|
N/D |
|
N/D |