CWLで出力ファイル名を指定する
class: CommandLineTool
cwlVersion: v1.0
$namespaces:
edam: 'http://edamontology.org/'
baseCommand: fastqc
inputs:
- id: fastq
type: File
format: edam:format_1930
inputBinding:
position: 2
doc: FastQ file from next-generation sequencers
outputs:
- id: qc
type: File
outputBinding:
glob: $(inputs.fastq.nameroot)_fastqc.html
label: fastqc
arguments:
- position: 1
prefix: -o
valueFrom: .
hints:
- class: DockerRequirement
dockerPull: 'maxulysse/fastqc:latest'
こんな感じで指定できる。
CWLでは '*' を使って出力ファイルを指定できる
outputBinding:
glob: $(inputs.fastq.nameroot)_fastqc.html
この部分を、こう書くこともできる。
outputBinding:
glob: $(inputs.fastq.nameroot)*_fastqc.html
CWLで '*' を使って困ったこと
outputBinding:
glob: *_fastqc.html
こう書くと、怒られる。
../cwltool/cwltool.py 1.0.20181201184214
Resolved 'fastqc.cwl' to 'file:///Users/hachiya/Projects/cwl/test/fastqc.cwl'
I'm sorry, I couldn't load this CWL file, try again with --debug for more information.
The error was: found undefined alias '_fastqc.html'
in "file:///Users/hachiya/Projects/cwl/test/fastqc.cwl", line 17, column 13
先頭で '*' を使う場合は、ダブルクォーテーションで挟むとよい。
outputBinding:
glob: "*_fastqc.html"
これで動いた!