翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
HealthOmics ワークフローのパラメータテンプレートファイル
パラメータテンプレートは、ワークフローの入力パラメータを定義します。入力パラメータを定義して、ワークフローの柔軟性と汎用性を高めることができます。たとえば、参照ゲノムファイルの Amazon S3 の場所のパラメータを定義できます。パラメータテンプレートは、Git ベースのリポジトリサービスまたはローカルドライブを通じて提供できます。その後、ユーザーはさまざまなデータセットを使用してワークフローを実行できます。
ワークフローのパラメータテンプレートを作成するか、HealthOmics がパラメータテンプレートを自動的に生成できます。
パラメータテンプレートは JSON ファイルです。ファイルでは、各入力パラメータは、ワークフロー入力の名前と一致する名前付きオブジェクトです。実行を開始するときに、すべての必須パラメータの値を指定しない場合、実行は失敗します。
入力パラメータオブジェクトには、次の属性が含まれます。
description – この必須属性は、コンソールが実行開始ページに表示する文字列です。この説明は実行メタデータとしても保持されます。
optional – このオプション属性は、入力パラメータがオプションかどうかを示します。optional フィールドを指定しない場合、入力パラメータは必須です。
次のパラメータテンプレートの例は、入力パラメータを指定する方法を示しています。
{ "myRequiredParameter1": { "description": "this parameter is required", }, "myRequiredParameter2": { "description": "this parameter is also required", "optional": false }, "myOptionalParameter": { "description": "this parameter is optional", "optional": true } }
パラメータテンプレートの生成
HealthOmics は、ワークフロー定義を解析して入力パラメータを検出することでパラメータテンプレートを生成します。ワークフローのパラメータテンプレートファイルを指定すると、ファイルのパラメータによって、ワークフロー定義で検出されたパラメータが上書きされます。
以下のセクションで説明するように、CWL、WDL、Nextflow エンジンの解析ロジックには若干の違いがあります。
CWL のパラメータ検出
CWL ワークフローエンジンでは、解析ロジックは次の仮定を行います。
-
NULL 対応タイプは、オプションの入力パラメータとしてマークされます。
-
NULL でサポートされていないタイプは、必須の入力パラメータとしてマークされます。
-
デフォルト値を持つパラメータは、オプションの入力パラメータとしてマークされます。
-
説明は、
main
ワークフロー定義のlabel
セクションから抽出されます。を指定label
しない場合、説明は空白になります (空の文字列)。
次の表は、CWL 補間の例を示しています。各例のパラメータ名は ですx
。パラメータが必要な場合は、 パラメータの値を指定する必要があります。パラメータがオプションの場合、値を指定する必要はありません。
この表は、プリミティブ型の CWL 補間の例を示しています。
Input | 入出力の例 | 必須 |
---|---|---|
|
1 または 2 または ... | あり |
|
デフォルト値は 2 です。有効な入力は 1 または 2 または ... | なし |
|
有効な入力は None または 1 または 2 または ... です。 | なし |
|
デフォルト値は 2 です。有効な入力は None または 1 または 2 または ... です。 | なし |
次の表は、複雑なタイプの CWL 補間の例を示しています。複合型はプリミティブ型のコレクションです。
Input | 入出力の例 | 必須 |
---|---|---|
|
[] または [1,2,3] | あり |
|
なしまたは [] または [1,2,3] | なし |
|
[] または [なし、3、なし〕 |
あり |
|
[None] または None または [1,2,3] または [None, 3] ですが [] ではありません |
なし |
WDL のパラメータ検出
WDL ワークフローエンジンでは、解析ロジックは次の前提になります。
-
NULL 対応タイプは、オプションの入力パラメータとしてマークされます。
-
nullable 以外のサポート対象タイプの場合:
-
リテラルまたは式が割り当てられた入力変数は、オプションパラメータとしてマークされます。例:
Int x = 2 Float f0 = 1.0 + f1
-
入力パラメータに値または式が割り当てられていない場合は、必須パラメータとしてマークされます。
-
-
説明は、
main
ワークフロー定義parameter_meta
の から抽出されます。を指定parameter_meta
しない場合、説明は空白になります (空の文字列)。詳細については、パラメータメタデータの WDL 仕様を参照してください。
次の表は、WDL 補間の例を示しています。各例のパラメータ名は ですx
。パラメータが必要な場合は、 パラメータの値を指定する必要があります。パラメータがオプションの場合、値を指定する必要はありません。
この表は、プリミティブ型の WDL 補間の例を示しています。
Input | 入出力の例 | 必須 |
---|---|---|
Int x | 1 または 2 または ... | あり |
Int x = 2 | 2 | なし |
Int x = 1+2 | 3 | なし |
Int x = y+z | y+z | なし |
Int? x | なし、1 または 2 または ... | あり |
Int? x = 2 | なしまたは 2 | なし |
Int? x = 1+2 | なしまたは 3 | なし |
Int? x = y+z | なしまたは y+z | なし |
次の表は、複雑なタイプの WDL 補間の例を示しています。複合型はプリミティブ型のコレクションです。
Input | 入出力の例 | 必須 |
---|---|---|
配列[Int] x | [1,2,3] または [] | あり |
配列[Int]+ x | [1]、ただし [] ではない | あり |
Array[Int]? x | なしまたは [] または [1,2,3] | なし |
配列[Int?] x | [] または [なし、3、なし〕 | あり |
Array[Int?]=? x | [None] または None または [1,2,3] または [None, 3] ですが [] ではありません | なし |
構造体サンプル {文字列 a、Int y} 後続の入力: サンプル mySample |
|
あり |
構造体サンプル {文字列 a、Int y} 後の入力: Sample? mySample |
|
なし |
Nextflow のパラメータ検出
Nextflow の場合、HealthOmics はnextflow_schema.json
ファイルを解析してパラメータテンプレートを生成します。ワークフロー定義にスキーマファイルが含まれていない場合、HealthOmics はメインワークフロー定義ファイルを解析します。
スキーマファイルの解析
解析を正しく機能させるには、スキーマファイルが次の要件を満たしていることを確認してください。
-
スキーマファイルは という名前
nextflow_schema.json
で、メインワークフローファイルと同じディレクトリにあります。 -
スキーマファイルは、次のいずれかのスキーマで定義されている有効な JSON です。
HealthOmics はnextflow_schema.json
ファイルを解析してパラメータテンプレートを生成します。
-
スキーマで定義されているすべての properties を抽出します。
-
プロパティで使用可能なdescription場合は、 プロパティを含めます。
-
プロパティの requiredフィールドに基づいて、各パラメータがオプションか必須かを識別します。
次の例は、定義ファイルと生成されたパラメータファイルを示しています。
{ "$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" } ] }
生成されたパラメータテンプレート:
{ "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 } }
メインファイルの解析
ワークフロー定義に nextflow_schema.json
ファイルが含まれていない場合、HealthOmics はメインワークフロー定義ファイルを解析します。
HealthOmics は、メインワークフロー定義ファイルと nextflow.config
ファイルにあるparams
式を分析します。デフォルト値params
を持つすべての はオプションとしてマークされます。
解析を正しく機能させるには、次の要件に注意してください。
-
HealthOmics は、メインワークフロー定義ファイルのみを解析します。すべてのパラメータを確実にキャプチャするには、すべてのサブモジュールとインポートされたワークフローにparamsワイヤスルーすることをお勧めします。
-
設定ファイルはオプションです。定義する場合は、名前を付け
nextflow.config
、メインワークフロー定義ファイルと同じディレクトリに配置します。
次の例は、定義ファイルと生成されたパラメータテンプレートを示しています。
params.input_file = "default.txt" params.threads = 4 params.memory = "8GB" workflow { if (params.version) { println "Using version: ${params.version}" } }
生成されたパラメータテンプレート:
{ "input_file": { "description": None, "optional": True }, "threads": { "description": None, "optional": True }, "memory": { "description": None, "optional": True }, "version": { "description": None, "optional": False } }
nextflow.config で定義されているデフォルト値の場合、HealthOmics は、次の例に示すようにparams {}
、 内で宣言されたparams
割り当てとパラメータを収集します。割り当てステートメントでは、 はステートメントの左側に表示されるparams
必要があります。
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}"
生成されたパラメータテンプレート:
{ // 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 } }
ネストされたパラメータ
nextflow_schema.json
と の両方がネストされたパラメータnextflow.config
を許可します。ただし、HealthOmics パラメータテンプレートでは、最上位のパラメータのみが必要です。ワークフローでネストされたパラメータを使用する場合は、そのパラメータの入力として JSON オブジェクトを指定する必要があります。
スキーマファイルにネストされたパラメータ
HealthOmics は、nextflow_schema.json
ファイルの解析params時にネストされた をスキップします。たとえば、次のnextflow_schema.json
ファイルを定義します。
{ "properties": { "input": { "properties": { "input_file": { ... }, "input_num": { ... } } }, "input_bool": { ... } } }
HealthOmics は、パラメータテンプレートを生成するinput_num
ときに input_file
と を無視します。
{ "input": { "description": None, "optional": True }, "input_bool": { "description": None, "optional": True } }
このワークフローを実行すると、HealthOmics は次のような input.json
ファイルを想定します。
{ "input": { "input_file": "s3://bucket/obj", "input_num": 2 }, "input_bool": false }
設定ファイルにネストされたパラメータ
HealthOmics は、nextflow.config
ファイルにネストされた params を収集せず、解析中にスキップします。たとえば、次のnextflow.config
ファイルを定義します。
params.alpha = "alpha" params.nested.beta = "beta" params { gamma = "gamma" group { delta = "delta" } }
HealthOmics は、パラメータテンプレートを生成するparams.group.delta
ときに params.nested.beta
と を無視します。
{ "alpha": { "description": None, "optional": True }, "gamma": { "description": None, "optional": True } }
Nextflow 補間の例
次の表は、メインファイル内のパラメータの Nextflow 補間の例を示しています。
パラメータ | 必須 |
---|---|
params.input_file | あり |
params.input_file = "s3://bucket/data.json" | なし |
params.nested.input_file | 該当なし |
params.nested.input_file = "s3://bucket/data.json" | 該当なし |
次の表は、 nextflow.config
ファイル内のパラメータの Nextflow 補間の例を示しています。
パラメータ | 必須 |
---|---|
|
なし |
|
いいえ |
|
該当なし |
|
該当なし |