🐓
CWL の requirements 一巡り: ScatterFeatureRequirement
この記事は CWL Advent Calendar 2020 の19日目の記事です。
Common Workflow Language (CWL) では、ワークフロー実行処理系が満たさなければならない機能以外にも、Process requirements と呼ばれる optional features についても標準化が行われています[1]。
今回は CWL v1.2 で定義されている ScatterFeatureRequirement
について簡単な解説を行います。また、各サンプルは可能な限り公式の準拠度テストで用いられているファイルを引用します。
対象読者
- CWL をかじったことがあるけど
requirements
はよくわからない人- つまり中級者以上が対象です。
- 初心者は CWL Advent Calendar 2020 の初日の記事へ Go!
例
Conformance test #26: tests/count-lines3-wf.cwl:
#!/usr/bin/env cwl-runner
class: Workflow
cwlVersion: v1.2
inputs:
file1:
type: File[]
outputs:
count_output:
type: int[]
outputSource: step1/output
requirements:
ScatterFeatureRequirement: {}
steps:
step1:
run: wc2-tool.cwl
scatter: file1
in:
file1: file1
out: [output]
ScatterFeatureRequirement
を指定することで、いわゆる Parametric study (あるいは Parameter survey) を行うワークフローを定義することが可能になります。
上の例では、ワークフローの入力パラメータ file1: File[]
の各要素を入力パラメータとして wc2-tool.cwl
を実行し、それぞれの実行結果を集計したものを step1
の出力 step1/output
として利用しています。
Discussion