fabric
bioinformatics

CloudBioLinuxを用いてローカルサーバにNGS解析環境を構築する

More than 1 year has passed since last update.

予備知識

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/cloudbiolinuxgit cloneする。

とりあえず

prepare
export source=/path/to/cloudbiolinux

しておく。

基本的にはhostがCentOSかdebianなら

full_install
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:custominstall_custom:a_package_nameはそういったプログラムのインストールを簡便にするためにあるんだと思う。(多分)

$source/config/*.yamlの中に入れたいパッケージが存在しない場合は…よくわからない。
ここを参考にして作れるみたい。
その後プルリを送るとかすると喜ばれるかも

flavorの指定

行いたい解析に応じた必要なツール一式をinstallするためにflavorという仕組みが存在する。
例えば最小構成のインストールを行いたい場合は

install_minimum
fab -f $source/fabfile.py -H localhost install_biolinux:flavor=minimal

終わったら以下のコマンドでテストできるっぽい

test
$source/text/test_vagrant Minimal

minimal以外にもproteomicsとかphylogenyとかいろいろある。要チェック

デフォルトのflavor

$source/contrib/flavor内にデフォルトのflavorがある。
デフォルトのconfigディレクトリを上書きする。

オリジナルのflavor

自分用にカスタマイズしたflavorを使用したい場合は
/path/to/myproject/に設定ファイルmain.yamlを置いておき、

install_myflavor
fab - H target_hostname -c $source/contrib/flavor/minimal/fabricrc_debian.txt install_biolinux:flavor=/path/to/myproject

する。

biologicalデータのインストール

主要な生物種のゲノムやそのインデックス、dbsnp、トランスクリプトームなどのデータをamazon S3 bucketでホスティングしており、そこからインストールする。すべてのデータを入れたい場合は

install_all_biodata
fab -f $source/data_fabfile.py -H <Host名> install_data_s3

これでインストールされるデータのリストは$source/config/biodata.yamlにある。
一部のデータのみを入れたい場合は、これをmy_biodata.yamlとしてコピー、編集して以下のコマンド

install_custom_biodata
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などからダウンロード]

[ローカルでインデックスのビルド]
の順に行ってくれるので、すべてのデータが入る。


まだ模索中なので随時更新する予定


  1. こういったバイオインフォマティクス用のイメージはBioimg.orgでホスティングされている 

  2. 外部のデータ置き場とのインターフェイスになることを目指したツール…ちゃんと管理されてるのか不安