cover_image

R小技巧-R包的多版本控制

豆豆花花 生信星球
2019年10月16日 08:54


图片图片 今天是生信星球陪你的第470天图片


   大神一句话,菜鸟跑半年。我不是大神,但我可以缩短你走弯路的半年~

   就像歌儿唱的那样,如果你不知道该往哪儿走,就留在这学点生信好不好~

   这里有豆豆和花花的学习历程,从新手到进阶,生信路上有你有我!

豆豆写于19.10.16

遇到的问题

分析单细胞数据时,需要同时检查Seurat2和Seurat3两种版本的结果差异,而且生成的文件很大(几个G的RData),因此用两台电脑分别分析再将结果放到一起的办法行不通。

常用的解决方案

第一种:一次一个版本,使用R包降级

比如我现在的版本是3.1.0,想换成2.3.4再分析

remove.packages('Seurat')
pkgs = c( 'mixtools''lars''dtw''doSNOW''hdf5r' ) 
BiocManager::install(pkgs,ask = F,update = F)
# 以后只需要修改这个版本号即可
packageurl <- "https://cran.r-project.org/src/contrib/Archive/Seurat/Seurat_2.3.4.tar.gz"
install.packages(packageurl, repos=NULL, type="source")

这样的优点是便于操作,对于版本切换不频繁的使用者来说,用一两次还是可以的。不过要做好切换一次再次切换回来的时间准备,另外其中的hdf5r包安装有时会出问题

第二种:同时安装多个版本,再切换

首先新建一个安装路径
mkdir ~/R/3.6.0/library

然后将这个路径加到默认的搜索路径中

# 先看看当前有什么路径
.libPaths()
# 然后加入新路径
myPaths <- .libPaths()  
new <- c('~/R/3.6.0/library')
myPaths <- c(myPaths, new) 
.libPaths(myPaths) 

如果说原来的路径中安装了Seurat的3.1.0版本,现在想在新的~/R/3.6.0/library中安装一个2.3.4版本,可以先将默认搜索路径切换到新的

# 切换路径也很简单[假如目前只有两个路径,把新路径提到优先搜索的位置]
myPaths <- .libPaths()   
myPaths <- c(myPaths[2], myPaths[1])  
.libPaths(myPaths) 
然后再新路径中安装2.3.4版本
packageurl <- "https://cran.r-project.org/src/contrib/Archive/Seurat/Seurat_2.3.4.tar.gz"
install.packages(packageurl, repos=NULL, type="source")

注意!如果之前运行过Seurat,要将原来已经加载的版本先卸载掉,然后才能加载新的版本

# 先把原来的版本移除
detach("package:Seurat", unload=TRUE)
# 再重新加载新版本[使用一个参数指定我们要加载哪个库中的包]
library(Seurat, lib.loc="~/R/3.6.0/library"

这样的好处就是:以后再安装存在多个版本的R包的时候,就可以使用detach() + library(name, lib.loc=) 的方法。不过自己就要记好哪个版本在哪个路径中


点击底部的“阅读原文”,获得更好的阅读体验哦😻

初学生信,很荣幸带你迈出第一步

🤓生信星球 🌎一个不拽术语、通俗易懂的生信知识平台

继续滑动看下一个
生信星球
向上滑动看下一个