-
Notifications
You must be signed in to change notification settings - Fork 0
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
実際やっていること
-
解析ワークフロー
- ワークフロー記述方法、ワークフロー実行エンジン
- どれを使う?
- 記述方式: 書きやすさ、対応エンジンの豊富さ
- エンジン: クラウドサポート、再実行などの機能
- 利用方法
- 記述形式・実行エンジンの調査
- オレオレ実行エンジン開発
- どれを使う?
- ツール・ワークフローのパッケージング
- ツールのCWL化、コンテナリポジトリの活用 (biocontainers)
- RNA-seq など 2. 具体例はアプリケーションへ
- パッケージにするときの落とし穴
- ツールのCWL化、コンテナリポジトリの活用 (biocontainers)
- ワークフロー記述方法、ワークフロー実行エンジン
-
クラウド利活用
- 気軽なクラウド利用
- hotsub的なもの (これが研究系でのクラウド利用の一番の課題?)
- PaaS、FaaS の利用
- Azure Batch、Amazon Lambda
- バカパラに向いている環境を探す
- HPC(High Performance Computing)
- コンテナ
- Docker
- Singurality
- 契約ハック
- 論文のサプリ、データの置き場
- figshare
- データ
- figshare
- 気軽なクラウド利用
-
DevOps
- Continuous Integration
- ワークフローの再現性確認の自動化、リグレッションの検出
- 「バージョン上げたら動かなくなった」を滅ぼしたい
- 「昨日まで動いたが今日から動かなくなった」の理由をすぐ知りたい
- ワークフローの更新時
- 実行エンジンの更新時
- ツールの更新時
- 粒度を探っている
- ワークフローの再現性確認の自動化、リグレッションの検出
- ソフトウェアのパッケージング、配布方法
- PyPI や CRAN、bioconductor への登録など
- 論文に書きたいときに、ソフトウェアをパッケージングを求められることがある
- パッケージがよくできていれば、ワークフローの再現性も高まる
- ベストプラクティス
- アンチパターン
- https://reproducible-builds.org
- LC4RI(Literate Computing for Reproducible Infrastructure)
- https://www.slideshare.net/nobu758/jupyter-notebook-63167604
- 手順書だけの秘伝のタレは再現可能ではない。
- 暗黙の前提があるかも
- 実は途中に抜けがあるかも
- 周知したい
- LC4RIを知った上で議論をしたい
- 手順としてのJupyterと、作業ログとしてJupyterの利用
- バージョン管理
- 使うのは前提として
- セマンティックバージョニング
- UbuntuやDockerのようなリリースバージョニング命名法
- リリース年等がバージョンに含まれる
- ツール定義やワークフロー定義のバージョニング
- 使うのは前提として
- 引用情報マネージャー
- Zenodo
- この論文にのっているシステムは、このバージョンのソフトを使っている
- ソフトウェアリリースごとにバージョンをつける
- DOIをZenodoがふってくれる
- Zenodo
- Continuous Integration
-
Jupyter
- いろいろな分野で、デファクトになってきている
- Jupyter notebook と JupyterHub
- Jupyter-knimeとか
- JupyterでCWLとか
- LC4RI
-
オンプレ管理
- クラウドとの価格比較
- ストレージ
- マシン
- ネットワーク (通信費)
- 保守費
- ストレージシステム
- メインで使うもの
- バックアップシステム(オンライン含む)
- クラウドとの価格比較
-
- バイオインフォマティクス
- bioruby
- Cytoscape
- cytoscape-automationの利活用
- (Cytoscapeもappからworkflowに,の強い意向持ってます)
- RNA-seqのワークフロー
- やすみずさんのprojectへのlink
- バイオインフォマティクス
-
ハンズオン
- 開発したソフトを参加者全員で試すと、いろいろ知見やアイデアがたまりやすい
- kubernetes
- どんなことに向いているのか?
- 各自、自分たちのやりたいことに向いているのか?
- バカパラに向いているのか?
- 解析ワークフロー
- クラウド固有のバッチ処理システム
- AWS Lambda
- Azure Batch
- Google Colaboratory
- クラウド固有のバッチ処理システム
- JupyterでのCWL User Guideハンズオン
- 全部入りコンテナ
- いろいろ分野での利用方法の情報・知見交換
- 自然言語処理 http://redpen.cc/
- 画像処理
- 機械学習
- AI
- アノテーション