第5回 Workflow Meetup まとめ ========================== ## 2018-06-14 day1 ### 西田 - [SysMod meeting @ ISMB](https://sysmod.info/meetings/sysmod-2018/) の準備 - https://github.com/ecell/ecell4 のモデルをUniProtのウェブサービスから得た情報を元にJupyterで構築していくようなもの - 上記やりつつ conda package 作成方法調査 https://conda.io/docs/user-guide/tutorials/build-pkgs-skeleton.html ### 落合 - BOSCの準備 ### 大田 - https://github.com/pitagora-galaxy/cwl - `curl "https://raw.githubusercontent.com/pitagora-galaxy/cwl/master/test/bin/run-cwl" | bash -s "hisat2-cufflinks_wf_se"` - みたいな感じでテストが動くぞい - 動かん。こけた - これを残りのwf(10個くらい)全部動くようにリファレンスデータとセットアップスクリプトとドキュメントを書ききる - これで論文の図を作って目指せ月内サブミット ### 池田 - 環境設定 ### 石井 - [otiai10/yacle: Yet Another CWL Engine by Golang](https://github.com/otiai10/yacle) - 実装する - CWL conformance test で、 `outputs` の `type` が `Directory` のものの実装 ### 丹生 - [cwl-inspector](https://github.com/tom-tan/cwl-inspector) のコードがカオスでメンテ不能になりつつあるので書き直し中 - 現状は CWL を `YAML.load_file` で Ruby の Hash オブジェクト等に変換後、KIAI 駆動でなんとかしている - パーサ部分は完了 - 残作業 - ライブラリとしてのインターフェースの整備 - コマンドインターフェースの実装 - `$ ./cwl-inspector.rb echo.cwl .cwlVersion` (フィールド参照) - `$ ./cwl-inspector.rb echo.cwl .inputs.0.label` (インデックスを使用した参照: 候補1) - `$ ./cwl-inspector.rb echo.cwl .inputs[0].label` (インデックスを使用した参照: 候補2) - `$ ./cwl-inspector.rb echo.cwl .inputs.input.label` (`class` や `id` を使った参照) - `$ ./cwl-inspector.rb echo.cwl ls` (出力オブジェクトの参照) - `$ ./cwl-inspector.rb echo.cwl 'keys(.)'` (オブジェクトが持つフィールド一覧参照) - `$ ./cwl-inspector.rb echo.cwl commandline` (実行コマンド出力) - `$ ./cwl-inspector.rb echo.cwl commandline -- --input Hello!` (実行コマンド出力: 引数を個別に場合) - `$ ./cwl-inspector.rb echo.cwl commandline -i inputs.yml` (実行コマンド出力: 引数をファイルで指定する場合) - テストの再整備 ## 2018-06-15 day2 ### 落合 - awsubの紹介 - `awsub up` の提案をされた - BOSCのポスターのためのfigureをつくっている - gcd-client - MCF-7がbamでしか手に入らない - Picard使えるDockerfileの調整 ### 池田 - 環境設定 - Galaxy, planemo, cwltool, dockerが動作する環境の構築 - bgruening/planemoをベースとして利用 - [bgruening/planemo \- Docker Hub](https://hub.docker.com/r/bgruening/planemo/) - Docker imageの取得 ``` $ docker pull bgruening/planemo ``` - コンテナ起動 ``` $ docker run -d -p 8080:80 -p 8021:21 -p 8022:22 --privileged=true -e GALAXY_CONFIG_ENABLE_BETA_MULLED_CONTAINERS=True -e ENABLE_TTS_INSTALL=True --entrypoint '/usr/bin/startup' bgruening/planemo ``` - docker execでコンテナにアタッチ後 - pip のアップグレード及び、$GALAXY_USER として環境のアップデート ``` # su $GALAXY_USER $ source $GALAXY_VIRTUAL_ENV/bin/activate $ pip install --upgrade planemo $ pip install --upgrade cwltool ``` - 躓いた内容 planemo run を利用してcwlを実行 1. planemoが記述してくれるcwlの description: 記述がcwltool でエラーとなる - 消すしかない 2. rのスクリプトがコケる - cwlでr-baseのイメージを起動してRscriptをコールしている - rのスクリプト中でlibrary をインストールするものをサンプルとしてるが、libraryがインストールできない。 - docker 内のuser は non-root <= ライブラリが追記できない - さらにplanemoはdockerのコンテナをRead only で実行している - 必要なライブラリを予めインストールしたdocker のイメージが必要 r-baseをもとにしたイメージを目的に応じて作成する必要がある - Rのscript を cwlを利用して Galaxyで実行する手順(現状) - CWLからDocker の r-baseコンテナを利用してRのスクリプトの実行 - 現状GalaxyでそのままCWLは呼べないので、ツール定義のxml上でcwltoolをコール ### 大田 - cwl-metricsを紹介していただいた(石井記す) ### 後藤 - bioruby - https://github.com/bioruby/bioruby/pull/122 取り込んだ ### 石井 - 研究会関連作業 - 内部のサーバーのバックアップ - Galaxyのツール作成のための、`planemo` のdockerに関して - [galaxyproject/planemo\-machine: A packer\.io configuration for building out Galaxy \(http://galaxyproject\.org/\) tool development environments\.](https://github.com/galaxyproject/planemo-machine) - ### 丹生 - cwl-inspector の整備 - 以下を実装 - `$ ./cwl/inspector.rb echo.cwl .cwlVersion` - `walk('echo.cwl', '.cwlVersion')` - `$ ./cwl/inspector.rb echo.cwl .inputs[0].label` - `walk('echo.cwl', '.inputs[0].label')` - `$ ./cwl/inspector.rb echo.cwl .inputs.input.label` - `walk('echo.cwl', '.inputs.input.label')` - `$ ./cwl/inspector.rb echo.cwl 'keys(.)'` - `keys('echo.cwl', '.')` - 手動でしか動作確認していない - 実行コマンド生成はまだ ### 西田 - [E-Cell4](https://github.com/ecell/ecell4)の - [azure_batch module](https://github.com/ecell/ecell4/blob/master/python/lib/ecell4/extra/azure_batch.py) の動作確認・変更 - [database連携 module](https://github.com/ecell/ecell4/tree/master/python/lib/ecell4/datasource) (シミュレーションのモデル作成をサポートするもの)の動作確認・変更 - CytoscapeのREST endpointの紹介 - Cytoscapeのmenu bar > Help > Automation > CyREST API で Swagger UIのAPI documentationが見れます - [SYSMOD](https://sysmod.info/meetings/sysmod-2018/)のポスターのfigure作成 - E-Cell4におけるデータベース(UniProt)・シミュレーション実行環境(Azure)・モデリング環境(Jupyter+モデルレポーター)の連携