以下是视频的word版本
目录
编译安装survival
Windows编译安装
macOS编译安装
二进制安装survival
Windows二进制安装
macOS二进制安装
R包安装的终极办法
Anaconda安装clusterProfiler
R包的安装 一直是R开发人员的心中的痛。因为安装很有可能失败,所以每次安装R包时候 都是胆战心惊。为什么R包的安装总是那么容易出错呢?
因为很多R包是用C/C++语言写的。
因为是C/C++语言写的就涉及到编译的问题,编译又涉及到安装编译器、系统库文件的问题, 所以R包的安装比其他语言安装失败的风险要大一点(当然其他语言也有用C/C++语言写的包, 但是没有R语言比例这么高)。下面我们用一个例子来说明一下。
注解
Windows编译安装需要安装配置Rtools
虽然Windows默认是使用二进制方式进行安装,但是为了说明问题,我们先测试 survival 的源码安装。
install.packages("survival", type = "source")
安装过程中有输出:
c:/Rtools/mingw_64/bin/gcc -I"E:/Program Files/R/R-3.6.1/include" -DNDEBUG -O2 -Wall -std=gnu99 -mtune=generic -c survdiff2.c -o survdiff2.o c:/Rtools/mingw_64/bin/gcc -I"E:/Program Files/R/R-3.6.1/include" -DNDEBUG -O2 -Wall -std=gnu99 -mtune=generic -c survfit4.c -o survfit4.o c:/Rtools/mingw_64/bin/gcc -I"E:/Program Files/R/R-3.6.1/include" -DNDEBUG -O2 -Wall -std=gnu99 -mtune=generic -c survfitci.c -o survfitci.o c:/Rtools/mingw_64/bin/gcc -I"E:/Program Files/R/R-3.6.1/include" -DNDEBUG -O2 -Wall -std=gnu99 -mtune=generic -c survfitkm.c -o survfitkm.o c:/Rtools/mingw_64/bin/gcc -I"E:/Program Files/R/R-3.6.1/include" -DNDEBUG -O2 -Wall -std=gnu99 -mtune=generic -c survpenal.c -o survpenal.o
可见在调用Rtools带的gcc编译器编译。
macOS和Linux使用网络安装的话是强制使用源码安装的,所以直接使用 install.packages 安装就行了:
install.packages("survival")
安装过程中有输出:
x86_64-apple-darwin13.4.0-clang -dynamiclib -Wl,-headerpad_max_install_names -undefined dynamic_lookup -single_module -multiply_defined suppress -L/opt/anaconda3/envs/t/lib/R/lib -Wl,-dead_strip_dylibs -Wl,-rpath,/opt/anaconda3/envs/t/lib -L/opt/anaconda3/envs/t/lib -o survival.dylib agexact.o agfit4.o agfit5.o agmart.o agmart3.o agscore2.o agsurv3.o agsurv4.o agsurv5.o chinv2.o chinv3.o cholesky2.o cholesky3.o cholesky5.o chsolve2.o chsolve3.o chsolve5.o concordance1.o concordance3.o cox_Rcallback.o coxcount1.o coxdetail.o coxexact.o coxfit5.o coxfit6.o coxmart.o coxmart2.o coxph_wtest.o coxsafe.o coxscho.o coxscore2.o coxsurv1.o coxsurv2.o dmatrix.o doloop.o finegray.o gchol.o init.o multicheck.o norisk.o pyears1.o pyears2.o pyears3b.o pystep.o survConcordance.o survdiff2.o survfit4.o survfitci.o survfitkm.o survpenal.o survreg6.o survreg7.o survregc1.o survregc2.o survsplit.o tmerge.o zph1.o zph2.o -L/opt/anaconda3/envs/t/lib/R/lib -lR -Wl,-framework -Wl,CoreFoundation
可见在调用系统编译器编译。
不管是Windows的编译安装还是macOS的编译安装都有一步编译的过程,增加了失败的风险。那么能否使用别人已经编译好的二进制进行安装呢?
Windows平台默认使用二进制方式安装,直接使用 install.packages 安装即可:
install.packages("survival")
省去的编译步骤,整个过程变得极其简单:
trying URL 'https://cran.rstudio.com/bin/windows/contrib/3.6/survival_3.1-8.zip' Content type 'application/zip' length 7726272 bytes (7.4 MB) downloaded 7.4 MB
package ‘survival’ successfully unpacked and MD5 sums checked
The downloaded binary packages are in
C:UsersSXR009AppDataLocalTempRtmpk3HKS4downloaded_packages
macOS使用 install.packages 安装比较复杂,需要访问 survival 的 CRAN主页 ,找到 OS X binary (下载链接: https://cran.r-project.org/bin/macosx/el-capitan/contrib/3.6/survival_3.1-8.tgz )下载到/Users/dev/Downloads/survival_3.1-8.tgz 。
install.packages("/Users/dev/Downloads/survival_3.1-8.tgz")
由此可见,使用二进制安装优势明显,可以大大降低安装失败的风险。
体验了 install.packages 源码安装和二进制安装,我又有了一个疑问:
为什么Windows默认使用二进制安装的为什么还是老是安装失败呢 (以我的经验来讲,Windows是各个平台最容易安装失败的)?
我猜测是这样的:
我安装A包虽然是使用二进制安装的,但是A包依赖B包,B包却没提供二进制安装包 (不是所有的包都提供了编译好的二进制安装包)。想要安装B包,这个时候只能去 编译,由于Windows环境的复杂性导致容易编译失败。
那有没有一种组织把所有的R包都编译好,依赖关系都整理好,所有的包都可以通过二进制 的方法来安装呢?答案是还真有,这就是大名鼎鼎的 Anaconda 。刚开始我还以为 Anaconda 只能用来管理 Python环境 ,后来我发现Anaconda 的野心远远 不只于此:
Anaconda目前不只能管理 Python环境 ,还能安装系统软件、 R环境 , 甚至还能安装大部分的生物信息软件(例如: bowtie 、 blast 等等)。
这就意味着 Anaconda 是一个能够创建多个环境的 yum 或 apt-get 等, 最可贵的是它还支持 Windows 。
废话不多说,我们看看 Anaconda 怎么安装 R包 吧。
注解
运行此步骤命令需要安装并配置 Anaconda 。
clusterProfiler 是做富集分析使用非常广泛的一个R包,功能丰富、接口简单,但是 clusterProfiler 有一个缺点就是 依赖非常多,导致安装困难, clusterProfiler 的依赖:
Depends:
R (>= 3.4.0)
Imports:
AnnotationDbi,
downloader,
DOSE (>= 3.13.1),
enrichplot (>= 1.7.1),
GO.db,
GOSemSim,
magrittr,
methods,
plyr,
qvalue,
rvcheck,
stats,
tidyr,
utils
Suggests:
AnnotationHub,
dplyr,
knitr,
org.Hs.eg.db,
prettydoc,
rlang,
ReactomePA,
testthat
虽然 clusterProfiler 不是用C编写的,但是它的依赖(或者依赖的依赖)却是一堆C编写的包,这 导致了clusterProfiler 非常难安装(我使用 install.packages 从来没有安装成功过)。
我使用 Anaconda 安装一个R包一般分为以下步骤:
访问 https://anaconda.org/ ,搜索 clusterProfiler
点击进入搜索结果
复制安装命令,本例中为: conda install -c bioconda bioconductor-clusterprofiler
打开终端运行安装命令
如此这般方法安装R包能解决大部分安装失败的问题。
欢迎关注生信人
TCGA | 小工具 | 数据库 |组装| 注释 | 基因家族 | Pvalue
基因预测 |bestorf | sci | NAR | 在线工具 | 生存分析 | 热图
生信不死 | 初学者 | circRNA | 一箭画心| 十二生肖 | circos
舞台|基因组 | 黄金测序 | 套路 | 杂谈组装 | 进化 | 测序简史