CWL User Guide 4: Returning Output Files
Common Workflow Language User Guide: Returning Output Files
出力ファイルについて書かれています
具体的なこととしては、
tar
コマンドを使ってhello.tar
から hello.txt
を取り出します。
このhello.txt
が出力ファイルにあたります。
この回にでてくる主なキーワード
- outputs
- id
- type
- outputBinding
- glob
CWLファイル、tar.cwl
tar.cwl
#!/usr/bin/env cwl-runner
cwlVersion: v1.0
class: CommandLineTool
baseCommand: [tar, xf]
inputs:
tarfile:
type: File
inputBinding:
position: 1
outputs:
example_out:
type: File
outputBinding:
glob: hello.txt
パラメータファイル、tar-job.yml
tarfile:
class: File
path: hello.tar
必要なファイル、hello.txt, hello.tar
空のファイル(hello.txt
)と、それをtarでまとめたファイル(hello.tar
)が必要です。
このコマンドで生成していました
touch hello.txt && tar -cvf hello.tar hello.txt
実行
実行方法
cwltool tar.cwl tar-job.yml
実行結果
cwltool tar.cwl tar-job.yml
/usr/local/bin/cwltool 1.0.20171107133715
Resolved 'tar.cwl' to 'file:///home/vagrant/cwl_user_guide_work/04-output/tar.cwl'
[job tar.cwl] /tmp/tmpwqAqkk$ tar \
xf \
/tmp/tmpirn_6n/stg38b98960-f441-49fd-8138-2ab607ac51e7/hello.tar
[job tar.cwl] completed success
{
"example_out": {
"checksum": "sha1$da39a3ee5e6b4b0d3255bfef95601890afd80709",
"basename": "hello.txt",
"location": "file:///home/vagrant/cwl_user_guide_work/04-output/hello.txt",
"path": "/home/vagrant/cwl_user_guide_work/04-output/hello.txt",
"class": "File",
"size": 0
}
}
Final process status is success
ちょっと試してみたい
一番最後に glob
についての説明があります。
前もってファイル名がわからないときはワイルドカードがつかえるとあるので試してみるとよいです。
glob: '*.txt'
また、間違えたファイルを書くとどうなるかを試してみるのも良いでしょう
glob: 'nosuchafile.txt'
今回使ったファイル
以下の場所においておきました。