6
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

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

Last updated at Posted at 2018-07-09

ここらへんの記事は多少古くなってしまったので、知識をアップデート
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

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

なお新規ではないパッケージの場合は BiocCheck--new-package が、いらないです。
BiocCheck Version Check

R CMD BiocCheck --build-output-file=R.out LRBaseDbi_1.2.0.tar.gz
6
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?