2.9. Expression Tool#
ExpressionToolは、それ自体またはワークフローのステップとして実行することができるProcessの一種です。純粋な JavaScript 式を実行します。入力データを操作し、出力として結果を生成する必要がある複雑な JavaScript 式を分離する方法として使用されることを意図しています。
CommandLinetToolと同様に、inputs
とoutputs
が必要です。しかし、baseCommand
の代わりに、expression
属性を必要とします。
CWL expression tool.#
uppercase.cwl
#cwlVersion: v1.2
class: ExpressionTool
requirements:
InlineJavascriptRequirement: {}
inputs:
message: string
outputs:
uppercase_message: string
expression: |
${ return {"uppercase_message": inputs.message.toUpperCase()}; }
注釈
この式には.toUpperCase()
で JavaScript の呼び出しが含まれているため、 InlineJavascriptRequirement
を使用する必要があります。これは、ExpressionToolを使用するツールにとって、JavaScriptが必要であることを意味します。