Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
Galaxy Workshop Tokyo 20163
Galaxy Tool とは
■管理者権限があれば新しいツールを追加できます
■Public サーバは自分で好きにツールをインストールできません
■Community Galaxy VM なら可能です
Galaxy Workshop Tokyo 20164
Galaxy Tool とは
■どうやって追加する?
■Tool Shed からインストール
■手動でインストール
▪ sudo yum install package_name
▪ ./configure && make && sudo make install
Galaxy Workshop Tokyo 20165
Galaxy Tool の問題点
■Galaxy が動いているコンピュータにツールを 簡単にインストールできるとは限らない
■Tool dependencies の問題
■インストール時にツール間の依存関係を解決する仕組みがある が、モノによっては別途パッケージ・ライブラリ等を セットアップしておく必要あり
■ 特定のOSバージョンやディストリビューションでしか動かなかったり、依存するパッケージ名が異なるなど…
■コンパイルの問題
■モノによっては、コンパイル手順が複雑でスキルが求められます
Galaxy Workshop Tokyo 20166
解決策: ツールをGalaxy環境から隔離する
■ツールを実行するために必要なもの一式をパッケージング
■Docker による仮想化
■実行時に自動的に Docker イメージリポジトリからダウンロード ⇒ ツール本体はGalaxy環境にインストール不要
■2014/08 リリース版からGalaxy ToolとしてDockerコンテナ形式を すでにサポートしています https://wiki.galaxyproject.org/Admin/Tools/Docker
Computer
OS
Galaxy
FastQC TopHat Cufflinks
Computer
OS
Galaxy
FastQC TopHat Cufflinks
独立に呼び出す
Galaxy Workshop Tokyo 20167
Dockerとは
■必要なプログラムをパッケージングすることで、様々な環境に持ち運んで
ソフトウェアを動かすことができます
■VMに比べてサイズが小さく、起動が高速なのでプロセス単位の仮想化に便利
■ホスト環境を汚さずに必要なプログラムを簡単に導入できます
(=完全にキレイにアンインストール)
Linuxカーネルの機能を使って、ユーザプロセスの実行環境 (ユーザ空間)を独立した「コンテナ」として分離。
(参考) Dockerを支える技術 @enakai00さんhttp://www.slideshare.net/enakai/docker-34668707
コンテナ
https://www.docker.com/what-docker
Galaxy Workshop Tokyo 20168
Dockerを自分のコンピュータで使ってみる
■Docker をインストール
(Linux) curl -sSL https://get.docker.com | sh
(OS X) これまではVirtualBox等を利用してLinux VMへインストール
⇒「Docker for Mac」でVM環境が不要に!(OS標準の仮想化機能を利用)
※ ただし、プライベートベータテスト中。
■docker rundocker run -ti --name test ubuntu:14.04 bash ~# apt-get -q update && apt-get -y install tophat ~# tophat -v ~# exitdocker commit test tophat-dockerdocker run -ti tophat-docker tophat -v
Galaxy Workshop Tokyo 20169
Tool を Docker でパッケージングしてみる
■Dockerfileを書いて Docker Hub に登録するだけ
■既に Docker 化されているものもたくさんあります
FastQC の例
土台を選ぶ
FastQCインストールの
手順を書く
(オマケ) 標準コマンド
Galaxy Workshop Tokyo 201610
Docker化したToolをGalaxyで動かしてみる■job_conf.xml を編集
■ツール定義ファイル(XML形式)を作成
通常の wrapper xml から <requirements> タグの部分を変更
<tool id="tophat2_docker" name="Tophat Docker" version="0.7"> ... <requirements> <container type="docker">nasuno/tophat2:2.0.9</container> <!-- <requirement type="package" version="0.1.18">samtools</requirement> <requirement type="package" version="2.1.0">bowtie2</requirement> <requirement type="package" version="2.0.9">tophat2</requirement> -->
</requirements>
<destinations default="local"> <destination id="local" runner="local"/>
<destination id="docker_local" runner="local"> <param id="docker_enabled">true</param>
</destination></destinations>
<tools> <tool id="tophat2_docker" destination="docker_local" /></tools>