[ddbjing31] 軽量仮想環境を用いてngsデータの解析再現性を担保する

66
軽量仮想環境を用いてNGSデータの解析再現性を担保する Reproducibility as a Service: Virtual Appliance for NGS data analysis Tazro Ohta [email protected] Database Center for Life Science, Japan prepared for 31DDBJing 講習会 in 東京 12 Jun. 2015

Upload: dna-data-bank-of-japan-center

Post on 04-Aug-2015

78 views

Category:

Education


5 download

TRANSCRIPT

Page 1: [DDBJing31] 軽量仮想環境を用いてNGSデータの解析再現性を担保する

軽量仮想環境を用いてNGSデータの解析再現性を担保する

Reproducibility as a Service: Virtual Appliance for NGS data analysis

Tazro Ohta [email protected]

Database Center for Life Science, Japan prepared for 第31回 DDBJing 講習会 in 東京

12 Jun. 2015

Page 2: [DDBJing31] 軽量仮想環境を用いてNGSデータの解析再現性を担保する

Tazro Inutano Ohta DBCLS, ROIS twitter.com/inutano github.com/inutano speakerdeck.com/inutano

Page 3: [DDBJing31] 軽量仮想環境を用いてNGSデータの解析再現性を担保する

1. Challengesデータサイエンスでのインフラ的諸問題

2. Technologies新たな技術による問題解決

3. The futureさらなる課題と目指す先

Page 4: [DDBJing31] 軽量仮想環境を用いてNGSデータの解析再現性を担保する

データサイエンスでのインフラ的諸問題,遺伝研スパコンの場合Challenges

Page 5: [DDBJing31] 軽量仮想環境を用いてNGSデータの解析再現性を担保する

1. Computational Resource Management計算機リソースが足りない,どれだけあっても全然足りない

2. Sharing Analysis Protocols and History解析プロトコルの共有と再実行のコストが高い,自分も他人も再現できない

Challenges

Page 6: [DDBJing31] 軽量仮想環境を用いてNGSデータの解析再現性を担保する

Challenges #1Computational Resource Management

• かつて次世代と呼ばれたシーケンサによるデータの爆発的増加

• ゲノム科学は計算機と数学を駆使するデータ・サイエンスへ

• 遺伝研スパコンはゲノム解析向けにスパコンシステムを更新 (2012)

• !!! 完全無料 !!!

• ユーザが増え、ジョブが増え、データが増え、不満も増えた

• 遺伝研ユーザ会において利用者の要望をヒアリング

• リソースが足りない

• ジョブが実行できない

• ストレージが足りない

• SGEの限界

Page 7: [DDBJing31] 軽量仮想環境を用いてNGSデータの解析再現性を担保する

大学共同利用機関法人 情報・システム研究機構 国立遺伝学研究所

SuperComputer Facilities of National Institute of Genetics

photo from http://sc.ddbj.nig.ac.jp/index.php/ja-gallery

Page 8: [DDBJing31] 軽量仮想環境を用いてNGSデータの解析再現性を担保する

増え続けるユーザ数遺伝研DDBJ 小笠原さん発表資料より

Page 9: [DDBJing31] 軽量仮想環境を用いてNGSデータの解析再現性を担保する

過去一ヶ月のジョブ実行状況http://sc.ddbj.nig.ac.jp/util/wk2/wk2-sge_status_UGER_rb.html

Page 10: [DDBJing31] 軽量仮想環境を用いてNGSデータの解析再現性を担保する

逼迫するディスク領域http://sc.ddbj.nig.ac.jp/index.php/ja-nig-statistics

Page 11: [DDBJing31] 軽量仮想環境を用いてNGSデータの解析再現性を担保する

Challenges #1Computational Resource Management

• 遺伝研スパコンが要求されていること

• 計算機資源利用の効率が最大化されていること

• ソフトウェア開発者にとって自由度の高い環境であること

• 計算機の知識がなくても大規模なデータ解析が実行できること

• 扱うデータのセキュリティが担保されていること

• 主要なDBが使いやすい状態でアクセスできること

Page 12: [DDBJing31] 軽量仮想環境を用いてNGSデータの解析再現性を担保する

Sharing Analysis Protocols and HistoryChallenges #2

• 対話的にスパコンを利用したデータ解析を(自分で|他人が)再現できない

• 共用計算機ではデータ解析のための環境構築にかかるコストが高くなる

• 環境構築~実行までの解析の再現に人手を要する

• 解析の環境設定/実行履歴を共有、再実行するための方法が統一されていない

• GalaxyのHistoryのような機能はあらゆるデータ解析にとって必要

• 現状では自然言語を介した情報交換が行われている

• Materials and Methods

• Supplementary

Page 13: [DDBJing31] 軽量仮想環境を用いてNGSデータの解析再現性を担保する

共用スパコンで利用できるソフトウェアの種類とバージョンには限りがあるhttp://sc.ddbj.nig.ac.jp/index.php/ja-avail-oss or /usr/local/pkg/oss_info.tsv (DDBJ supercomputer)

Page 14: [DDBJing31] 軽量仮想環境を用いてNGSデータの解析再現性を担保する

root権限なしでソフトウェアをビルドするのはつらいhttp://qiita.com/inutano/items/990ba12eb4d8220977f2

Page 15: [DDBJing31] 軽量仮想環境を用いてNGSデータの解析再現性を担保する

東大先端研 笠原さんによるLPMはとても便利だが、できれば環境を丸ごと構築したいhttp://www.kasahara.ws/lpm/

Page 16: [DDBJing31] 軽量仮想環境を用いてNGSデータの解析再現性を担保する

再現するデータ解析の重要性は随分前から叫ばれているhttp://blogs.biomedcentral.com/gigablog/2012/12/16/gigascience-special-session-at-iscb-asia-on-workflows-cloud-for-reproducible-bioinformatics/

Page 17: [DDBJing31] 軽量仮想環境を用いてNGSデータの解析再現性を担保する

反復可能性と再現性,コンセプトについての指摘http://www.slideshare.net/sjcockell/reproducibility-the-myths-and-truths-of-pipeline-bioinformatics

Page 18: [DDBJing31] 軽量仮想環境を用いてNGSデータの解析再現性を担保する

大型プロジェクトでは詳細なプロトコルを公開することが当たり前にhttp://fantom.gsc.riken.jp/5/sstar/Protocols:HeliScopeCAGE_read_alignment

Page 19: [DDBJing31] 軽量仮想環境を用いてNGSデータの解析再現性を担保する

エンジニアリングで解決できる問題を ソーシャルに解決したら負け

Dr. Itoshi Nikaido

Page 20: [DDBJing31] 軽量仮想環境を用いてNGSデータの解析再現性を担保する

アプリケーションとインフラを繋ぐ,新しい技術による問題解決Technologies

Page 21: [DDBJing31] 軽量仮想環境を用いてNGSデータの解析再現性を担保する

1. Virtual Appliance: Linux Containersコンテナ型仮想と「実行可能な計算機環境」の記述

2. Apache Mesos: Abstract Computational Resources計算機資源の抽象化による「バーチャルな巨大データセンター」の実現

3. Data Handling and Workflow Execution巨大データとワークフロー実行,ゲノム科学の要求を満たす技術

Technologies

Page 22: [DDBJing31] 軽量仮想環境を用いてNGSデータの解析再現性を担保する

Technologies #1Virtual Appliance: Linux Containers

• Linux Containers (LXC)

• 複数の独立したLinuxシステム(コンテナ)を1つのLinuxホスト上で稼働させる

• ハイパーバイザを稼働させず、リソースをホストから独立させる

• cgroupによるCPU, memory, block I/O, network, namespaceの分離

• これまでのコンテナ型仮想の流れを汲む技術

• IBM Mainframes LPAR,Parallels Virtuozzo,Soralis Containers

• http://en.wikipedia.org/wiki/LXC

Page 23: [DDBJing31] 軽量仮想環境を用いてNGSデータの解析再現性を担保する

LinuxContainers.org: LXCとその周辺ツールを開発するOSSプロジェクトhttp://linuxcontainers.org/

Page 24: [DDBJing31] 軽量仮想環境を用いてNGSデータの解析再現性を担保する

Technologies #1Virtual Appliance: Linux Containers To Docker

• Docker

• コンテナ型仮想化の技術からプラットフォームへ

• LXCにAUFS (Another Unionfs) を組み合わせてコンテナイメージを制御する

• ファイルシステムに差分データを重ね透過的に扱う技術

• 現在のDocker (v0.9以降) は LXCではなくDocker 独自の libcontainer を採用

• Dockerによってコンテナ仮想がトレンドに

• www.docker.com

• 🐳

Page 25: [DDBJing31] 軽量仮想環境を用いてNGSデータの解析再現性を担保する

Docker

Page 26: [DDBJing31] 軽量仮想環境を用いてNGSデータの解析再現性を担保する

https://www.docker.com/whatisdocker/

Page 27: [DDBJing31] 軽量仮想環境を用いてNGSデータの解析再現性を担保する

Dockerfile: コンテナのビルド手順をコードで記述する (Infrastructure as Code)http://hub.docker.com/u/inutano/fastqc/

Page 28: [DDBJing31] 軽量仮想環境を用いてNGSデータの解析再現性を担保する

Dockerfile: コンテナのビルド手順をコードで記述する (Infrastructure as Code)http://hub.docker.com/u/inutano/fastqc/

$ nano Dockerfile # edit Dockerfile$ docker build -t inutano/fastqc .$ docker run -it inutano/fastqc fastqc sample.fastq

Page 29: [DDBJing31] 軽量仮想環境を用いてNGSデータの解析再現性を担保する

Technologies #2Apache Mesos: Abstract Computational Resources

• コンテナをスパコンで動かすためにはリソースマネージャとスケジューラが必要

• 従来型のジョブ分散実行エンジンであるSGEでは柔軟性にやや難あり

• やってるところもある: http://www.nextflow.io/

• 動的なスケールアウトやスナップショットに対応したい

• Apache Mesos http://mesos.apache.org/

• 複数のDC/計算ノードを束ねて1つのマシンのように見せる技術

• CPU, memory, storageなどを抽象化する

• 従来のMPIだけでなくHadoopやSparkなどの新しい分散処理にも対応

• 独自のスケジューラを持たずフレームワークに対しリソース配分のAPIを提供

Page 30: [DDBJing31] 軽量仮想環境を用いてNGSデータの解析再現性を担保する

Apache Mesos: 複数の計算ノード/データセンターを束ねて仮想的な1つの計算機にするhttps://mesosphere.com/learn/

Page 31: [DDBJing31] 軽量仮想環境を用いてNGSデータの解析再現性を担保する

Apache Mesos: UC Berkeley amplabで計算機クラスタのリソースシェアのために開発https://amplab.cs.berkeley.edu/projects/mesos-dynamic-resource-sharing-for-clusters/

Page 32: [DDBJing31] 軽量仮想環境を用いてNGSデータの解析再現性を担保する

Apache Mesos: 論文もオープンになっている (その後Apacheプロジェクトへ)http://mesos.berkeley.edu/mesos_tech_report.pdf

Page 33: [DDBJing31] 軽量仮想環境を用いてNGSデータの解析再現性を担保する

Apache Mesos: SlaveがMasterに利用可能リソースを知らせMasterがFWにOfferするhttp://mesos.apache.org/documentation/latest/mesos-architecture/

Page 34: [DDBJing31] 軽量仮想環境を用いてNGSデータの解析再現性を担保する

Technologies #2Apache Mesos: Various MiddleWares for Scheduling Containers

• Mesos上で動く汎用のスケジューラが複数開発されている

• Chronos

• MesosにおけるCronを実現するスケジューラ

• Marathon

• MesosにおけるLong-Runningなアプリケーションのためのスケジューラ

• Apache Aurora

• ChronosとMarathonの特徴を併せ持ちPythonベースのDSLを持つ

• Mesos schedularはサル🐒でも自作できる

• http://www.slideshare.net/wallyqs/mesos-scheduler

Page 35: [DDBJing31] 軽量仮想環境を用いてNGSデータの解析再現性を担保する

Chronos: Mesosで管理されたリソースの上でCronのように振る舞うフレームワークhttp://mesos.github.io/chronos/

Page 36: [DDBJing31] 軽量仮想環境を用いてNGSデータの解析再現性を担保する

Chronos: AirBnBが開発したMesos抽象化カーネルにおけるcron,REST APIでジョブ実行可http://mesos.github.io/chronos/

Page 37: [DDBJing31] 軽量仮想環境を用いてNGSデータの解析再現性を担保する

Marathon: Chronosを経由したタスクの永続化,Mesos上でRoRなどのWeb FWを稼働https://mesosphere.github.io/marathon/

Page 38: [DDBJing31] 軽量仮想環境を用いてNGSデータの解析再現性を担保する

Marathon: Mesos Masterなどと同様 init などで起動,GUIから簡単にappがスケールするhttps://mesosphere.github.io/marathon/

Page 39: [DDBJing31] 軽量仮想環境を用いてNGSデータの解析再現性を担保する

Apache Aurora: QuotaやMulti Userにも対応,実行命令を記述するDSLを持つhttp://aurora.apache.org

Page 40: [DDBJing31] 軽量仮想環境を用いてNGSデータの解析再現性を担保する

Apache Aurora: Job, Task, ProcessそれぞれについてpythonベースのDSLで記述するただしresource allocationはtaskごとなのでちょっと使いづらい?

Page 41: [DDBJing31] 軽量仮想環境を用いてNGSデータの解析再現性を担保する

Mesosphere: Apache Mesos関連のOSSにコミットしサービスを提供する企業https://mesosphere.com/about/

Page 42: [DDBJing31] 軽量仮想環境を用いてNGSデータの解析再現性を担保する

Mesosphere: DataCenter Operating System (DCOS)を開発https://mesosphere.com/learn/

Page 43: [DDBJing31] 軽量仮想環境を用いてNGSデータの解析再現性を担保する

Technologies #3Data Handling and Workflow Execution

• コンテナ実行による問題としてデータ永続性の問題がある

• ホストのファイルシステム上のディレクトリをマウントして書き込み

• 複数の遠隔DCをMesosで抽象化した時にデータをどのように扱うか?

• Cloud Burst Buffer by TITech

• MMCFTP by NII

• コンテナを組み合わせたワークフローをどのように実行するか?

• 解析ワークフロー記述の標準化

• Common Workflow Language

• https://github.com/common-workflow-language/common-workflow-language

Page 44: [DDBJing31] 軽量仮想環境を用いてNGSデータの解析再現性を担保する

MMCFTP: Massively MultiConnection FTP developed by NII モニタ参加中http://ci.nii.ac.jp/naid/110009886191

Page 45: [DDBJing31] 軽量仮想環境を用いてNGSデータの解析再現性を担保する

Cloud-based I/O Burst Buffer: クラウド上のデータにスパコンから高速にアクセスする統計数理研究所 公開講演会 2014 (http://www.ism.ac.jp/kouenkai/) 東工大松岡先生の講演スライドより引用

Page 46: [DDBJing31] 軽量仮想環境を用いてNGSデータの解析再現性を担保する

Common Workflow Language: OSSで開発される標準的なワークフロー記述のためのFWhttps://github.com/common-workflow-language/common-workflow-language

Page 47: [DDBJing31] 軽量仮想環境を用いてNGSデータの解析再現性を担保する

NIGスパコンの既存環境から切り離したノードでDocker Container on Mesosを実行するImplementation for proof-of-concept

Page 48: [DDBJing31] 軽量仮想環境を用いてNGSデータの解析再現性を担保する

📄📄

📄📄

Apache Mesos + Chronos

manager

Node Node Node Node Node

Public/Private Docker Registry

Dockerfiles

workflow.json

📦📦 📦

🔡Data

📦

Storage

post

post/get

transfer

push

pull

run

mount

📡

🔡

Userシステム概略

Page 49: [DDBJing31] 軽量仮想環境を用いてNGSデータの解析再現性を担保する

📄workflow.json

📄workflow.sh

PAST FUTURE

• Post to GridEngine • Run binary software • Pre-install/build required

• Post to workflow manager • Run docker container • Improved portability

Page 50: [DDBJing31] 軽量仮想環境を用いてNGSデータの解析再現性を担保する

📄workflow.json

• JSON format configuration file

• Describe a workflow contains multiple steps

• 1 container for 1 app

• Include directory to be mounted on containers

Page 51: [DDBJing31] 軽量仮想環境を用いてNGSデータの解析再現性を担保する
Page 52: [DDBJing31] 軽量仮想環境を用いてNGSデータの解析再現性を担保する

📄chronos dependent jobs

📄curl -X POST -d @workflow.json

• Repeat 1 • Shipped with suicide job

• containers should be finished in a week

📡 📄📄

Page 53: [DDBJing31] 軽量仮想環境を用いてNGSデータの解析再現性を担保する

Implementation for proof-of-conceptChallenges

• スケジューラの問題

• Chronosの限界,Auroraのタスクモデルのゲノムデータ解析との不整合

• !!! Scalaでスケジューラ書くしかない !!!

• ワークフロー記述の問題

• 人間が書きやすいこと vs 交換可能で再現性を保証してくれること

• DSLやalt-CWLに備えた交換フォーマット/ツールの必要性

• 特殊なアーキテクチャを利用するコンテナの問題

• MPI, GPGPUやFPGA

• UGEなどの既存のスケジューラやHadoopなどの分散処理フレームワークとの共存

• 動的なスケールアウトとチェックポイントの運用

Page 54: [DDBJing31] 軽量仮想環境を用いてNGSデータの解析再現性を担保する

さらなる課題と目指す先:再現性を担保するためのDBの在り方The future

Page 55: [DDBJing31] 軽量仮想環境を用いてNGSデータの解析再現性を担保する

1. Packaging Whole Research Activities研究の過程を全て機械可読な形式で記述しアーカイブする

2. Continuous Integration and Automated BuildDBは研究再現性を担保するためのプラットフォームへ

The future

Page 56: [DDBJing31] 軽量仮想環境を用いてNGSデータの解析再現性を担保する

The future #1Packaging Whole Research Activities

• 研究プロセスにおける全ての作業を機械可読な形式で記述する

• 記述されたものはその関係性を保ったままデータベースに格納する

• “Research Package Submission”

• 研究計画

• サンプリング・ウェット実験

• 一次データ

• データ処理・データ解析

• 二次データ

• 論文および論文のfig, plotやtableなどのデータ

Page 57: [DDBJing31] 軽量仮想環境を用いてNGSデータの解析再現性を担保する

The future #1Packaging Whole Research Activities

Research Activity Time Course

Details of Project Design

Sampling &Wet Experiments Primary Data Data Processing

& Analysis Secondary Data Publication Text, Figs

Page 58: [DDBJing31] 軽量仮想環境を用いてNGSデータの解析再現性を担保する

The future #1Packaging Whole Research Activities

Research Activity Time Course

Details of Project Design Sampling Primary Data Data Processing

& AnalysisPublication Text, FigsWet Experiments

BioProject BioSample Genbank, DRA

Page 59: [DDBJing31] 軽量仮想環境を用いてNGSデータの解析再現性を担保する

The future #1Packaging Whole Research Activities

Research Activity Time Course

Details of Project Design Sampling Primary Data Data Processing

& AnalysisPublication Text, FigsWet Experiments

Page 60: [DDBJing31] 軽量仮想環境を用いてNGSデータの解析再現性を担保する

SMART Protocols: 実験プロトコルを機械可読な形式で記述するhttp://ceur-ws.org/Vol-1282/lisc2014_submission_2.pdf

Page 61: [DDBJing31] 軽量仮想環境を用いてNGSデータの解析再現性を担保する

The future #1Packaging Whole Research Activities

Research Activity Time Course

Details of Project Design Sampling Primary Data Data Processing

& AnalysisPublication Text, FigsWet Experiments

Page 62: [DDBJing31] 軽量仮想環境を用いてNGSデータの解析再現性を担保する

Details of Project Design Sampling Primary Data Data Processing

& AnalysisPublicationText, FigsWet Experiments

📦

The future #1Packaging Whole Research Activities

Page 63: [DDBJing31] 軽量仮想環境を用いてNGSデータの解析再現性を担保する

The future #2Continuous Integration for the Research Process

• Archived Packagesに対するDBの ”Continuous Integration”

• データとプロトコルをビルドしてテスト、コミット

• 最終コミットがそのままDBに登録される

• パッケージはオブジェクトとしてモジュールごとにアクセス可能

• 「研究Aのデータに研究Bのデータ処理を適用する」をコマンド一発で

• レポジトリに登録される新規手法は既存のデータ全てに自動的に適用される

• DBが勝手に膨らんでいく

• DBGrowthRate/submission がIFに置き換わる

• 新しい仮説を証明するための新規な手法、新規なサンプルの価値が増大する

• DataCenter + Database = “Reproduciblity as a Service”

Page 64: [DDBJing31] 軽量仮想環境を用いてNGSデータの解析再現性を担保する

BioCI: 研究経過を常にパッケージングし、クラウドで自動ビルドとテストを回すfig: http://blog.jki.net/news/niweek-2012-fire-and-forget-bulletproof-builds-using-continuous-integration-with-labview-video-slides-now-available/ and togopic http://g86.dbcls.jp/~togoriv/

📦

Do Research

Package Hosting

Build and Test

Report / Current Result

Collect Dataand Packaging

Page 65: [DDBJing31] 軽量仮想環境を用いてNGSデータの解析再現性を担保する

1. Infrastructure needs to change for the Data Science 多くの問題を抱える現在の計算機インフラは大きく変わる必要がある

2. Virtualized Env Runs on Abstracted Computational Resources抽象化されたハードウェアで仮想化された環境を稼働する

3. DB Integrates Data and Processes for Reproducible Research データベースが研究を統合し再現性を担保する

Summary

Page 66: [DDBJing31] 軽量仮想環境を用いてNGSデータの解析再現性を担保する

• This work was supported by ROIS URA Grant “融合シーズ探索” 2014.

• The Institute of Statistical Mathematics • Dr. Yoshiyasu Tamura • Dr. Junji Nakano • Dr. Keisuke Honda

• National Institute of Informatics • Dr. Kenjiro Yamanaka • Dr. Kento Aida • Dr. Shigetoshi Yokoyama • Dr. Yoshinobu Masatani

• National Institute of Genetics • Dr. Osamu Ogasawara • Dr. Takeshi Tsurusawa • NIG SuperComputer Facilities SE team

• Information and Mathematical Science and Bioinformatics Co., Ltd. • Tatsuya Nishizawa

• Tokyo Institute of Technology • Dr. Shinichi Miura • Dr. Satoshi Matsuoka

• Colleagues and Members of DBCLS, DDBJ, Open-Bio and BioHackathon

Acknowledgement