---
# System prepended metadata

title: 第5回 Workflow Meetup まとめ

---

第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+モデルレポーター)の連携