---
# System prepended metadata

title: 19th Workflow Meetup まとめ(8/16)

---

19th Workflow Meetup まとめ(8/16)
================================

次回は、９月３０日

2019-08-13(Tue) から 2019-08-16(Fri)
10:00 - 19:00 まで。
初日のみ、大阪は１２時から

# 全体

- 石井から質問
    - バイオインフォに限らず、良いツールの作り方について書いてあるページがあればおしえていただきたいです。(出力ファイルはここにおいてほしいとか、ツールのビルドするときはタイムスタンプをいれないとか)
        - 引き続き Slack の #random で募集しています。
            - 適切なチャンネルができたらアナウンスします。
        - https://reproducible-builds.org
        - UNIX的なツール
            - https://ja.wikipedia.org/wiki/UNIX哲学#ガンカーズ:_UNIXの哲学
        - CWL化しやすいツール(たぶん上と同義ではないか？)
            - CWL には引数に型があるため、全く同じではない
            - UNIX は思想として、全てをファイルとして扱うはず (型はツール側で仮定する必要がある)

- cwl-runner の背景に関して議論
    - cc をイメージするとよい、 `cc` を実行しても `gcc` と `clang` を意識しなくても良い
    - 本来であれば `update-alternatives` (Debian 系列) のようにシステム側がうまくやってくれるべき
        - java とうったら、 'oracle' 版なのか、 'openjdk' 版なのか、 'IBM' 版（もうどこかにマージされたかもしれないが）

- yaml で書くのが辛い
    - 文法がyamlではなく、プログラミング言語っぽくかけるやつ＞cwl-ex

        - https://github.com/common-workflow-language/cwl-ex
- イテレーション
    - そもそも、書くのが大変そうに見える
    - Rabix Composer に、たくさんファイルを入れたいケースと合わない
    - [この splitlines が解決策になるかもしれない](https://github.com/manabuishii/wgetkegg/blob/master/splitlines.cwl)


# 個別

## 石井(理研)

- 自分のアカウントで、 GitHub Actions が使えるようになっていることがわかった [このサンプルを実行する](https://github.com/manabuishii/wgetkegg)
    - たんじょうさんにてつだってもらって
- Rabix Composer で
- cwl-svg で表示()
    - [rabix/cwl\-svg: A library for generating an interactive SVG visualization of CWL workflows](https://github.com/rabix/cwl-svg)
- planemo で CWL の雛形を作る。昨日の池田さんのコマンドを実行してみただけ。テストもつくってくれるのはよさそうである。
    
```console
    - $ planemo tool_init --force                     --cwl                     --id 'seqtk_seq'                     --name 'Convert to FASTA (seqtk)'                     --example_command 'seqtk seq -A 2.fastq > 2.fasta'                     --example_input 2.fastq                     --example_output 2.fasta                     --requirement seqtk@1.2                     --container 'quay.io/biocontainers/seqtk:1.2--0'                     --test_case                     --help_from_command 'seqtk seq'
Tool written to seqtk_seq.cwl
Tool test written to seqtk_seq_tests.yml
Tool job written to seqtk_seq_job.yml
No test-data directory, creating one.
Copying test-file 2.fastq
Copy of 2.fastq failed: [Errno 2] No such file or directory: '2.fastq'
Copying test-file 2.fasta
Copy of 2.fasta failed: [Errno 2] No such file or directory: '2.fasta'
(planemoenv) wfuser@vultr:~/work/planemo20190816$ ls
seqtk_seq.cwl  seqtk_seq_job.yml  seqtk_seq_tests.yml  test-data
  ```
  (先にfastqファイルを準備してから実行してください。)
- Live Share で
    - co-authored-by がコメントに埋まる仕組みを知りたい
    - terminal の表示がおかしい件をなんとかしたい

## 西田

- 石井さんに教えてもらった内容 https://github.com/manabuishii/wgetkegg をvscodeで見ていた
    - 正直な印象「やっぱり面倒というかまわりくどいというかで"使いたい"とならない」

## 丹生
- [Conformance test #1](https://qiita.com/tm_tn/items/d49195d1c06143fee5c2)の経験が活きた
    - 実現手段が存在することは重要だが、人に書かせるものではない
    - Rabix composer の準拠度を上げる作業をすれば良さそうだが、electron でつらい
- Github Actions を試してみた
    - リポジトリによって、使えるところと使えないところがある
    - 環境構築時は当てずっぽうになりがち
    - そういう意味では Gitlab の CI がよい
        - コマンドを並べているだけなので、手元でも再現しやすい
- 逃げ道を塞ぐ作業
    - 勝率を上げたい

## 坊農（DBCLS）
- 8/16は、Rabix composer再び
- 昨日(8/15)に[襷リレーで作成](https://twitter.com/bonohu/status/1161983946483097602)した[kallisto tutorialのworkflow](https://github.com/manabuishii/kallisto-tutorial)を試した
    - outputs: の type に stdout が選べない ← [バグらしい from Michael](https://twitter.com/biocrusoe/status/1162243923445604353)
- [阪大医Python会のブログ](https://pythonoum.wordpress.com/2018/12/07/common-workflow-language入門/)に出てくる[kallisto](https://github.com/yyoshiaki/cwl_user_guide/tree/master/kallisto)を例に、Workflow作成の方式を検討
    - CommandLineToolは[「雑に始める」方式](https://qiita.com/tm_tn/items/4956f5ca523f7f49f386)でエディタで作成
    - それらのファイルを使って、WorkflowはRabixComposerで作成

## 那須野
- NII CREST 関係の仕事に専念
    - ありがとうございます！(丹生)
- Telegraf で取得したDockerメトリクスをFluentd経由でElasticsearchに流す目的で使用するコンテナ環境を整備
- Fluent Bitを試そうとしたが、普通にRubyGemsでインストールしたところ、AlpineのRuby関連のパッケージ構成が変わっていて苦労した。
    - 全部いりの alpineパッケージ ruby-full (石井)
    - bundler (石井)

## 小野（@自宅）
- シンプルなPythonコードをCWLで動かす件
    - Docker周りの調べごとをしつつ、DockerRequirementあたりを調整
    - 最終的にはalpineを使った
    - 試行錯誤に時間がかかったが経験値はあがったと思う・・・
    - Buildを忘れない（重要）
    - 次はテスト！
- 試行錯誤の結果の気づき（おまけ）
    - 今年の6月頃にcwltoolを入れた時にはなぜかpipでしか入らなかった
    - 今日試しにやってみたら`conda install -c bioconda cwltool`でも入れることができた
        - 原因は不明
- biocondaに古いパッケージしかないなら、以下のイベントで新しいのを作っても良いかも(石井)
    - [Next Bioconda Collaboration Fest 30\.09\.2019 and 01\.10\.2019 · Issue \#16858 · bioconda/bioconda\-recipes](https://github.com/bioconda/bioconda-recipes/issues/16858)

## 池田
- docker image planemo/interactive に関する問題
    - http://localhost:8010でGalaxyに接続できない
`/etc/nginx/nginx.conf`を下記の通りコメントアウト https://github.com/galaxyproject/planemo-machine/issues/87

```config:/etc/nginx/nginx.conf
#location /static/scripts {
#    alias /opt/galaxy/galaxy-app/static/scripts/packed;
#    gzip on;
#    gzip_types text/plain text/javascript application/x-javascript;
#    expires 24h;
#}
```
- planemo serve のデフォルトポート9090が　EXPOSE　になっていない
    - Dockerfileを書くしか無いよね...
    - nginx.conf を変更したものを準備して
```dockerfile=
FROM planemo/interactive

ADD nginx.conf /etc/nginx/nginx.conf
WORKDIR /home/ubuntu

EXPOSE 80
EXPOSE 9090
EXPOSE 9009

CMD GALAXY_LOGGING=notail /usr/bin/startup; su - ubuntu

```
- planemo serve --host=0.0.0.0 --cwl を実行してみるが....


## 角崎
- 目的のWorkFlowの作成を目指して、pythonを動かすCommandLine Toolを作成
    - 作成したWorkflow：「スクリーニングのフォーマット作成」、「回帰モデルの作成、適用」
    - InitialWorkDirRequirementを知ることができた。
- Rabix composerを使ったWorkflow を作成。
    - とても便利なので、実験する人も使える。僕はWorkFlowをRabixでしか書けない。。
    - stdoutのバグを踏んでいたので、知れてよかった。
- 疑問
    - Anacondaの環境をRabix上で指定できるか。
    - for文的な処理はシェル？


## 新海

- 完全に自分の仕事してました
- 周囲の雑談を聞いて世の中の流れを勉強してました
    - KNIMEって初耳でした…
        - なんか画面見て（全然分野違うけど）Labview連想した
    - 遥かなるCBRC
- VSCodeの使い方練習しときたい


## 八谷
- 完全に自分の仕事してまして
- iteration大変という話を聞いている間に、in-houseスクリプトをCWLワークフローに組み込むベストプラクティスを議論したいと思った
- ヒトゲノム解析ワークフロー（CWL実装）に構造多型のコール機能を追加したい
- 遺伝研個人ゲノム解析環境で、中〜大規模（1000 WGSくらい）に動かしたい

## 末竹

- 完全に自分の仕事してました
    - 来週の火曜に博士課程の試験なので焦ってます

## 大田

- 雑に始めるシリーズの流儀でmeta 16S seq Workflowの実装をしていた
  - DAT2の志波さんのやつ
  - stepと入出力依存と全体の出力だけ書いた段階で250行くらいになった
    - 19ツール、23ステップ
  - `cwltool --validate` をかけてはエラーを出して順番に潰すというやり方で仕上げに入っている

## 正村

- 研究のバックグラウンドインフォメーションを揃えてから大田さんと最終的なevidence集めをした
- リサーチターゲットのまとめ
    - どのような腸内細菌叢(のバランス)が適切なセロトニン合成ができるか。
    - 腸内のセロトニン合成に対して食べ物の影響があるのか？もし関係あるのであれば、それはトリプトファンの量の違いなのか？
- アイデアの整理をするためにdraw.ioでフォローチャートを作った
- 岩谷さんと今後のプラン立て

## 岩谷

- 完全に自分の仕事をしてました。
- 正村さんと面談をしました。