Docker containers for Bioconductor를 만져 보았습니다.

R로 패키지 개발을 하는 경우, 다른 패키지와의 의존관계의 문제로부터, 개발 버전 R개발 버전 종속 패키지 를 인스톨 할 필요가 있다.

이 환경 구축은 상당히 귀찮다.

XML , RCurl 와 같은 패키지는, 꽤 패키지가 의존하고 있는 것에 비해서는 , 인스톨 하는데 요령이 있다.

또한 리눅스에서 R을 설치하는 경우 컴파일 된 R은 배포되지 않으므로 일일 소스 버전의 R을 컴파일해야합니다.

패키지 개발자가 되면, 대략 한번 만들면 끝이라는 것은 없고, 오랫동안 번거로움을 볼 필요가 있다.

왜냐하면, 지금까지 움직이고 있던 패키지가, 다른 의존 패키지의 사양 변경으로부터, 어느 날 갑자기 움직이지 않게 될 가능성이 있기 때문.

구체적으로 말하면, 「Ha⚪︎ley-style로 개발하기 때문에 w」같은 무차고차하는 사람이 있거나 하고(참고 ), 「dbBeginTransaction 그만두고 dbBegin라고 이름으로 했으니까 www」 )) 같은 과격한 일을 하면, 지금까지 dbBeginTransaction을 사용하고 있던 패키지는, 일과 같이 움직이게 되어, 지금 나의 패키지는 죽고 있습니다.

참고



Bioconductor는 모든 패키지를 제대로 설치할 수 있는지 매일로 체크하고 있기 때문에, 자신의 패키지에 ERROR/WARNINGS 마크가 붙어 있어, 아무것도 대응하고 있지 않으면 Core Team으로부터 대응을 강요당한다(무엇 하지 않으면 어쩌면 그때 지워진다).

그래서 환경 구축은 패키지가 움직이지 않을 때마다 매회 할 필요가 있다.

이 번거로움을 없애는데, Docker를 괴롭혔지만(Daily Build System ), R이나 R의 패키지의 링크 끊김으로 빌드할 수 없게 될 가능성은 있으므로, 가끔은 메인테이션 해야 한다.

최근에는 Bioconductor가 개발자를 위해 Docker container에서 최신 환경을 배포하게 되었기 때문에 (Bioconductor 패키지 개발 환경을 만들기 위한 Dockerfile), 여기를 시험에 사용해 보았다.

docker 시작(Mac의 경우)


boot2docker start

devel_base 컨테이너 안에 bash로 들어가기


docker run -ti bioconductor/devel_base bash
R

sessionInfo() # ちゃんとRがDevel版になっている
# > sessionInfo()
# R Under development (unstable) (2015-03-03 r67931)
# Platform: x86_64-unknown-linux-gnu (64-bit)
# Running under: Ubuntu 14.04.1 LTS
#
# locale:
#  [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C
#  [3] LC_TIME=en_US.UTF-8        LC_COLLATE=en_US.UTF-8
#  [5] LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8
#  [7] LC_PAPER=en_US.UTF-8       LC_NAME=C
#  [9] LC_ADDRESS=C               LC_TELEPHONE=C
# [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
#
# attached base packages:
# [1] stats     graphics  grDevices utils     datasets  methods   base
#
# other attached packages:
# [1] MASS_7.3-39          BiocInstaller_1.17.5

library() # どんなパッケージがあるか確認
Packages in library /usr/local/lib/R/library:

# base                    The R Base Package
# BiocInstaller           Install/Update Bioconductor and CRAN Packages
# boot                    Bootstrap Functions (Originally by Angelo Canty
#                         for S)
# class                   Functions for Classification
# cluster                 Cluster Analysis Extended Rousseeuw et al.
# codetools               Code Analysis Tools for R
# compiler                The R Compiler Package
# datasets                The R Datasets Package
# foreign                 Read Data Stored by Minitab, S, SAS, SPSS,
#                         Stata, Systat, Weka, dBase, ...
# graphics                The R Graphics Package
# grDevices               The R Graphics Devices and Support for Colours
#                         and Fonts
# grid                    The Grid Graphics Package
# KernSmooth              Functions for Kernel Smoothing Supporting Wand
#                         & Jones (1995)
# lattice                 Lattice Graphics
# MASS                    Support Functions and Datasets for Venables and
#                         Ripley's MASS
# Matrix                  Sparse and Dense Matrix Classes and Methods
# methods                 Formal Methods and Classes
# mgcv                    Mixed GAM Computation Vehicle with GCV/AIC/REML
#                         Smoothness Estimation
# nlme                    Linear and Nonlinear Mixed Effects Models
# nnet                    Feed-Forward Neural Networks and Multinomial
#                         Log-Linear Models
# parallel                Support for Parallel computation in R
# rpart                   Recursive Partitioning and Regression Trees
# spatial                 Functions for Kriging and Point Pattern
#                         Analysis
# splines                 Regression Spline Functions and Classes
# stats                   The R Stats Package
# stats4                  Statistical Functions using S4 Classes
# survival                Survival Analysis
# tcltk                   Tcl/Tk Interface
# tools                   Tools for Package Development
# utils                   The R Utils Package

# (END)

BiocInstaller가 이미 있기 때문에 갑자기 biocLite를 사용할 수있는 것 같습니다.

그 외에도 microarray, proteomics, sequencing과 같은 데이터 해석에 필요한 패키지가 미리 들어 있는 패키지도 공개되고 있는 것 같다.

반드시 사용하는 패키지를 넣어두고 싶은 경우나, 설치 시간을 생략하거나, 완전히 같은 환경을 제공하고 싶은 상황(대학의 강의라든지)에 사용하는데 좋을 것 같다.

좋은 웹페이지 즐겨찾기