前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >为什么要用conda来安装一个R包

为什么要用conda来安装一个R包

作者头像
生信菜鸟团
发布2022-05-23 14:11:50
8820
发布2022-05-23 14:11:50
举报
文章被收录于专栏:生信菜鸟团

正常情况下,我们的R包都是依附于R语言环境,常见的情况是在个人电脑的Rstudio这样的界面软件安装的。但是单细胞数据处理相关R包有一点点特殊, 它首先依赖的包特别多,其次很有可能是并不会在个人电脑里面安装,也就是说不一定有Rstudio这样的界面软件给你。

比如最近有小伙伴问到了popsicleR这个包,它还在GitHub上面,官网是:https://github.com/bicciatolab/popsicleR

它也有很多依赖包,而且官网文档写的很清楚,关于它的安装方式,就是下面的一句话即可:

代码语言:javascript
复制
devtools::install_github("bicciatolab/popsicleR")

在GitHub的包,都是使用 install_github 函数,不过少部分小伙伴可能会失败,因为他们访问GitHub会失败。

另外就是,大家在安装它的时候,它没办法很好的自动解决它自己的依赖问题,所以官网给了其系列依赖包的独立安装方式。

首先是在cran的

代码如下所示:

代码语言:javascript
复制
CRANdep <- c("Seurat","reticulate","R.utils","dplyr","ggplot2","clustree","ape","gtools",
"future","grid","gridExtra","magrittr","limma","patchwork",
"crayon","ggExtra","RColorBrewer","ggplotify","RANN","umap",
"celldex","curl","httr","lattice","session","shinythemes","usethis","rcmdcheck",
"roxygen2","rversions","devtools","pheatmap","BiocManager","corrplot")
newPackages <- CRANdep[!(CRANdep %in% installed.packages()[,"Package"])]
newPackages
if(length(newPackages)){install.packages(newPackages)}

一般来说,大家的电脑里面应该是有绝大部分依赖包了,所以可以自己看看 newPackages 里面是哪些包缺乏。

其次是cran 的Archive

cran 的Archive有历史版本,如果你的包的依赖包有版本要求,就可以额外指定,代码如下所示:

代码语言:javascript
复制
CRANarcdep <- c("Matrix","optimbase","optimsimplex","neldermead")
newPackages <- CRANarcdep[!(CRANarcdep %in% installed.packages()[,"Package"])]
if(length(newPackages)){
 packagesurl <- c("https://cran.r-project.org/src/contrib/Archive/Matrix/Matrix_1.3-2.tar.gz",
 "https://cran.r-project.org/src/contrib/Archive/optimbase/optimbase_1.0-9.tar.gz",
 "https://cran.r-project.org/src/contrib/Archive/optimsimplex/optimsimplex_1.0-7.tar.gz",
 "https://cran.r-project.org/src/contrib/Archive/neldermead/neldermead_1.0-11.tar.gz")
 for (i in 1:length(newPackages)){
  source_repo <- packagesurl[grep(newPackages[i], packagesurl)]
  install.packages(source_repo, repos=NULL, type="source")
 } 
}

接下来是bioconductor的

专门存放生物信息学相关的包,代码如下所示:

代码语言:javascript
复制
BioCdep <- c("SingleR","limma","BiocFileCache","AnnotationHub",
"ExperimentHub","celldex","scDblFinder")
newPackages <- BioCdep[!(BioCdep %in% installed.packages()[,"Package"])]
if(length(newPackages)){BiocManager::install(newPackages)}

还有GitHub包

如果你需要安装包依赖了一个仍然是在GitHub的包,就只能说自己独立安装依赖了。代码如下所示:

代码语言:javascript
复制

if(!"scMCA"%in% installed.packages()[,"Package"]){devtools::install_github("ggjlab/scMCA")}

如果你觉得上面的代码很麻烦

而且你是在Linux环境下面,黑白命令行运行你的代码,其实有一个很简单的解决方案,就是使用conda,一句话安装它。官网文档给了一个 https://github.com/bicciatolab/popsicleR/blob/main/docs/popsicleR.yml, 可以看到内容如下所示:

yaml格式的文件

所以,使用下面的3句话代码即可;

代码语言:javascript
复制
wget https://raw.githubusercontent.com/bicciatolab/popsicleR/main/docs/popsicleR.yml 
 conda env create -n popsicleR -f popsicleR.yml 
conda activate popsicleR

不过,如果你不会conda,就有点麻烦了。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-04-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生信菜鸟团 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 首先是在cran的
  • 其次是cran 的Archive
  • 接下来是bioconductor的
  • 还有GitHub包
  • 如果你觉得上面的代码很麻烦
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档