R
Bioconductor
docker
bioinformatics

R/Bioconductor開発者のための開発環境の構築

ここらへんの記事は多少古くなってしまったので、知識をアップデート
https://qiita.com/antiplastics/items/33410a168a2fe7aad82f
https://qiita.com/antiplastics/items/fb13f8c9cde61f3f9bd1

R/Bioconductorパッケージを開発するためには、開発者版のRとBioconductorパッケージを使って、自分のパッケージがうまく動作するかテストする必要がある(R CMD build/check/BiocCheck)

しかし、開発者版のRを入れることで、普段使いのRが使えなくなってしまうため、環境を棲み分けたい

そのため、Dockerのコンテナの中だけで、開発者版のRを使うことをここでは考える

Dockerなので、OSはあまり関係ないが、ここでは手元のMacのマシンで行った作業をメモ

Step.1 : Dockerをインストール

まず、dockerコマンドをインストール

brew install docker

すでに入っている場合は、アップグレード

brew upgrade docker

Step.2 : Docker Community Edition for Macをインストール

Macでdockerを動かすための作業

boot2dockerはもう使われてなさそうなので( https://qiita.com/umechiki/items/426b5a202425aca75927 )、Docker Community Edition for Macに移行した

インストーラーがあるので、クリックしてインストールするだけ

インストール後に、dockerコマンドが動くか確認

docker version

ここで、30秒ぐらいかたまる場合は、https://qiita.com/umechiki/items/426b5a202425aca75927
のように、以前にboot2dockerを使用していたせいで、bash_profileにDocker関連の環境変数を書いている可能性大なので、削除してから、bashを再起動(地味にハマった)

exec $SHELL -l

Step.3 : Dockerfileを作成

以降、手元のLRBaseDbiというパッケージに、開発者版のRで、R CMD build/check/BiocCheckを実行することを考える

LRBaseDbiとは今投稿中の、BiocCheckのところでてこづっている自分のパッケージです...
https://github.com/Bioconductor/Contributions/issues/787

Dockerfileはbioconductor/devel_base2をベースに作る

以前の記事のbioconductor/devel_baseはメンテナンスされていないらしく、R Under development (unstable) (2016-06-29 r70854)とBioconductor 3.4の組み合わせとかなり古い

bioconductor/devel_base2のほうは継続的にメンテナンスしているらしい

(Docker使ってても、結局こういう依存するツールが古いと動かないパターンありますね、全てのツールをバージョン指定でインストールできるといいですが)

以下のようにDockerfileを書いてから、

FROM bioconductor/devel_base2

RUN R -e "biocLite('AnnotationDbi'); \
biocLite('Biobase'); \
install.packages('RSQLite')"

docker buildで自分用の環境を構築する

docker build -t koki/devel .

これで、自分の依存パッケージがインストールされた開発版Rの環境ができたので、コンテナの中にログインしてみる

docker run -v YOUR_WORKING_DIR/Devel:/Devel -ti koki/devel bash

-vのところは、自分のローカル環境のDevelというディレクトリと、コンテナ内に新たに作成されたDevelというディレクトリを同期するオプション

これにより、手元でパッケージに修正を加えると、コンテナ内部にも反映されるため、あとは、コンテナの中で、R CMD build/check/BiocCheckを実行すれば良いだけ

cd NTF
R CMD build --keep-empty-dirs --no-resave-data LRBaseDbi
R CMD check --no-vignettes --timings --no-multiarch LRBaseDbi_0.99.8.tar.gz
R CMD BiocCheck --build-output-file=R.out --new-package LRBaseDbi_0.99.8.tar.gz

引き続きパッケージング頑張ります...