予備知識
CloudBioLinuxはAWS上で動くBioLinuxライクなイメージを提供しようというコンセプトのプロジェクト。1
だが、実際には所属機関の意向でクラウドは使えない場合も多いかと思われる。
しかしローカルサーバを用いる場合でも、公式がGithub上で提供しているプロヴィジョニングツール(fabricを利用している)が便利そうなので使ってみる。ほとんどREADME.mdのまる写しだけど気にしない。
- DockerFileを使わずに小さいDocker Imageを作りたい
- ソフトウェアのビルドめんどくさい
- 何らかの理由でBioLinuxをフルインストールできない
みたいなときに役立つかも?
仮想マシンに対して行う場合
Vagrantで仮想マシンを立てる場合は
vagrant ssh-config –host <host名> >> ~/.ssh/config
をしておくことで、ssh <host名>
でログインできるようになり、リモートサーバと同じように扱える。
同様にDockerに対して使用する場合はこちらを参考に
インストール
フルインストール
公式サイトをpath/to/cloudbiolinux
にgit clone
する。
とりあえず
export source=/path/to/cloudbiolinux
しておく。
基本的にはhostがCentOSかdebianなら
fab -f $source/fabfile.py -H <host名> isntall_biolinux
で、ソフトウェア類やBiologicalデータをフルインストールできる。
ホストがコンテナとかではなく、容量を気にする必要がないならこれだけでもいいかも
-u my_username
の形でhostの実行ユーザ名も指定できる。デフォルトはローカルマシンのユーザ名になる。
他のディストリビューションにインストールしたい場合は$source/config/fabricrc.txt
をコピー、変更して-c
オプションで指定する。
cp $source/config/fabricrc.txt ~/hoge/my_fabricrc.txt
vi ~/hoge/my_fabricrc.txt #適当に編集
fab -f $source/fabrile.py -H <HOST名> -c ~/hoge/my_fabricrc.txt install_biolinux
カスタムインストール
をしたい場合は、上記のinstall_biolinux
の部分を下記のコマンドに変更する。
よさそうなflavorを探し、なければ自分で作るという流れがよさそう。
-
install_biolinux:flavor=hoge
#flavorの使用。後述 -
install_biolinux:packages
#hostosのパッケージマネージャで入れられるパッケージをすべて入れる。$source/config/packages-<ディストリビューション名>
を参照 -
install_biolinux:libraries
#言語別のパッケージをすべて入れる。./config/<言語名>-libs.yaml
を参照 -
install_biolinux:brew
#homebrewで入れられるパッケージのみをすべて入れる -
install_libraries:language
#特定の言語のパッケージをすべて入れる。 -
install_data_s3
#biologicalデータのインストールを行う。後述
以下はより細かいセッティング
-
install_biolinux:custom
#cloudbillinuxがサポートしているすべてのカスタムプログラムを入れる。
サポートしているパッケージは./config/packages.yaml
を参考 -
install_brew:a_package_name
#指定した名前のパッケージをbrewで入れる。 -
install_custom:a_package_name
#cloudbiolinuxがサポートしている特定のカスタムプログラムを入れる。例
fab -f $source/fabfile.py -H <Host名> install_biolinux:bedtools
バイオインフォマティクスでよく使われるプログラムにはパッケージマネージャで入れることのできないものが多くある。
install_biolinux:custom
やinstall_custom:a_package_name
はそういったプログラムのインストールを簡便にするためにあるんだと思う。(多分)
$source/config/*.yaml
の中に入れたいパッケージが存在しない場合は…よくわからない。
ここを参考にして作れるみたい。
その後プルリを送るとかすると喜ばれるかも
flavorの指定
行いたい解析に応じた必要なツール一式をinstallするためにflavorという仕組みが存在する。
例えば最小構成のインストールを行いたい場合は
fab -f $source/fabfile.py -H localhost install_biolinux:flavor=minimal
終わったら以下のコマンドでテストできるっぽい
$source/text/test_vagrant Minimal
minimal
以外にもproteomics
とかphylogeny
とかいろいろある。要チェック
デフォルトのflavor
$source/contrib/flavor
内にデフォルトのflavorがある。
デフォルトのconfig
ディレクトリを上書きする。
オリジナルのflavor
自分用にカスタマイズしたflavorを使用したい場合は
/path/to/myproject/
に設定ファイルmain.yaml
を置いておき、
fab - H target_hostname -c $source/contrib/flavor/minimal/fabricrc_debian.txt install_biolinux:flavor=/path/to/myproject
する。
biologicalデータのインストール
主要な生物種のゲノムやそのインデックス、dbsnp、トランスクリプトームなどのデータをamazon S3 bucketでホスティングしており、そこからインストールする。すべてのデータを入れたい場合は
fab -f $source/data_fabfile.py -H <Host名> install_data_s3
これでインストールされるデータのリストは$source/config/biodata.yaml
にある。
一部のデータのみを入れたい場合は、これをmy_biodata.yaml
としてコピー、編集して以下のコマンド
fab -f $source/data_fabfile.py -H <Host名> install_data_S3:my_biodata.yaml
ダウンロードするディレクトリは$source/config/fabricrc.txt
内に書かれている。デフォルトは/mnt/biodata
追記
[2015/09/09]
簡単に作れるインデックスなどはAmazon S3でホスティングしているわけではないため、install_data_S3
よりも、単にinstall_data
にした方が良い。例
fab -f $source/data_fabfile.py -H <host名> install_data
こうすると、
[Amazon S3からダウンロード]
↓
[GGD2を用いてEnsemblなどからダウンロード]
↓
[ローカルでインデックスのビルド]
の順に行ってくれるので、すべてのデータが入る。
まだ模索中なので随時更新する予定
-
こういったバイオインフォマティクス用のイメージはBioimg.orgでホスティングされている ↩
-
外部のデータ置き場とのインターフェイスになることを目指したツール…ちゃんと管理されてるのか不安 ↩