bioinformatics
cwl
CWLDay 4

CWL User Guide 4: Returning Output Files をやってみた

More than 1 year has passed since last update.

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'

今回使ったファイル

以下の場所においておきました。