Skip to content

Workflow Meeup概要

Manabu ISHII edited this page Feb 22, 2019 · 2 revisions

ゴール (大きな目的)

インフラ環境の構築では構築された環境の再現性、 データ解析では解析結果の再現性が重要ですが、 データサイズの巨大化や多様化・解析フローの複雑化に伴い、 手動での作業が現実的ではなくなってきています。

ワークフローミートアップでは、上記を解決するために、環境構築や 解析処理の自動化を目指し、知識共有の促進、人材の交流を行っています。

ワークフローとは

ワークフローミートアップでは、データ解析やシミュレーション、DevOps などの自動化や再現性に関わる処理をワークフローと呼んでいます。以下の具体例にあるように、一般的にいわれているワークフローよりも、広くとらえています。

具体例:

  • 解析ワークフロー
    • Common Workflow Language, Nextflow, スクリプト言語 (シェルスクリプト, Python, Ruby), Galaxy...
    • 解析の前処理
      • アノテーション
      • クリーニング
    • 解析の後処理
      • 可視化
  • システム管理・運営の自動化(DevOps)
    • CI/CD
    • Docker や singularity などのコンテナ技術
    • 処理の見える化
      • luigi
      • どの処理がうまくいって、どの処理が失敗しているか
  • 再現性(Reproducibility)
    • 解析結果の再現性
    • 解析環境の再現性
    • ソフトウェアパッケージの再現性
  • クラウド計算資源の利活用
    • 解析環境構築
    • オンプレ環境との組み合わせ (インタークラウド、ハイブリッドクラウド)
    • 事務手続き
  • Jupyter notebook
    • 解析ワークフローとしての Jupyter
    • ドキュメント(手順書)としての Jupyter (文芸的プログラミング)
      • Literate Computing for Reproducible Infrastructure (LC4RI)
    • IDE としての Jupyter

ワーキンググループ

実際やっていること

  1. 解析ワークフロー

    1. ワークフロー記述方法、ワークフロー実行エンジン
      1. どれを使う?
        1. 記述方式: 書きやすさ、対応エンジンの豊富さ
        2. エンジン: クラウドサポート、再実行などの機能
      2. 利用方法
      3. 記述形式・実行エンジンの調査
      4. オレオレ実行エンジン開発
    2. ツール・ワークフローのパッケージング
      1. ツールのCWL化、コンテナリポジトリの活用 (biocontainers)
        1. RNA-seq など 2. 具体例はアプリケーション
      2. パッケージにするときの落とし穴
  2. クラウド利活用

    1. 気軽なクラウド利用
      1. hotsub的なもの (これが研究系でのクラウド利用の一番の課題?)
    2. PaaS、FaaS の利用
      1. Azure Batch、Amazon Lambda
      2. バカパラに向いている環境を探す
    3. HPC(High Performance Computing)
    4. コンテナ
      1. Docker
      2. Singurality
    5. 契約ハック
    6. 論文のサプリ、データの置き場
      1. figshare
        1. データ
  3. DevOps

    1. Continuous Integration
      1. ワークフローの再現性確認の自動化、リグレッションの検出
        1. 「バージョン上げたら動かなくなった」を滅ぼしたい
        2. 「昨日まで動いたが今日から動かなくなった」の理由をすぐ知りたい
          1. ワークフローの更新時
          2. 実行エンジンの更新時
          3. ツールの更新時
        3. 粒度を探っている
    2. ソフトウェアのパッケージング、配布方法
      1. PyPI や CRAN、bioconductor への登録など
      2. 論文に書きたいときに、ソフトウェアをパッケージングを求められることがある
      3. パッケージがよくできていれば、ワークフローの再現性も高まる
      4. ベストプラクティス
      5. アンチパターン
      6. https://reproducible-builds.org
    3. LC4RI(Literate Computing for Reproducible Infrastructure)
      1. https://www.slideshare.net/nobu758/jupyter-notebook-63167604
      2. 手順書だけの秘伝のタレは再現可能ではない。
        1. 暗黙の前提があるかも
        2. 実は途中に抜けがあるかも
      3. 周知したい
        1. LC4RIを知った上で議論をしたい
      4. 手順としてのJupyterと、作業ログとしてJupyterの利用
    4. バージョン管理
      1. 使うのは前提として
        1. セマンティックバージョニング
        2. UbuntuやDockerのようなリリースバージョニング命名法
          1. リリース年等がバージョンに含まれる
      2. ツール定義やワークフロー定義のバージョニング
    5. 引用情報マネージャー
      1. Zenodo
        1. この論文にのっているシステムは、このバージョンのソフトを使っている
        2. ソフトウェアリリースごとにバージョンをつける
        3. DOIをZenodoがふってくれる
  4. Jupyter

    1. いろいろな分野で、デファクトになってきている
    2. Jupyter notebook と JupyterHub
    3. Jupyter-knimeとか
    4. JupyterでCWLとか
    5. LC4RI
  5. オンプレ管理

    1. クラウドとの価格比較
      1. ストレージ
      2. マシン
      3. ネットワーク (通信費)
      4. 保守費
    2. ストレージシステム
      1. メインで使うもの
      2. バックアップシステム(オンライン含む)
  6. アプリケーション

    1. バイオインフォマティクス
      1. bioruby
      2. Cytoscape
        1. cytoscape-automationの利活用
        2. (Cytoscapeもappからworkflowに,の強い意向持ってます)
      3. RNA-seqのワークフロー
        1. やすみずさんのprojectへのlink
  7. ハンズオン

    1. 開発したソフトを参加者全員で試すと、いろいろ知見やアイデアがたまりやすい

関心のある分野

  1. kubernetes
    1. どんなことに向いているのか?
    2. 各自、自分たちのやりたいことに向いているのか?
    3. バカパラに向いているのか?
  2. 解析ワークフロー
    1. クラウド固有のバッチ処理システム
      1. AWS Lambda
      2. Azure Batch
    2. Google Colaboratory
  3. JupyterでのCWL User Guideハンズオン
    1. 全部入りコンテナ
  4. いろいろ分野での利用方法の情報・知見交換
    1. 自然言語処理 http://redpen.cc/
    2. 画像処理
    3. 機械学習
    4. AI
    5. アノテーション
Clone this wiki locally