R studio 修改镜像

如果你是通过R studio 使用R,是可以直接通过偏好中的设置去修改镜像:

06. 设置R 的镜像和R包安装技巧 - 图1

06. 设置R 的镜像和R包安装技巧 - 图2

R 默认提供了非常多的镜像来源:

06. 设置R 的镜像和R包安装技巧 - 图3

但有时候,我们可能需要通过biocmanager 安装包,就无法通过R studio 来修改了。

修改biocmanager 镜像

我们可以通过函数选择一下想要修改的镜像;

  1. > chooseBioCmirror()
  2. Secure BioC mirrors
  3. 1: 0-Bioconductor (World-wide) [https]
  4. 2: Japan (Tachikawa) [https]
  5. 3: Japan (Wako) [https]
  6. 4: China (Peking) [https]
  7. 5: Germany2 (Gottingen) [https]
  8. 6: Germany2 (Gottingen)
  9. 7: China2 (Nanjing) [https]
  10. 8: China2 (Nanjing)
  11. 9: (other mirrors)
  12. Selection:

选中需要的内容就可以直接修改了。

直接option 里修改

我们可以直接通过代码对options 中的镜像进行配置:

这里提供的是清华源的代码

  1. local({
  2. r <- getOption( "repos" );# set CRAN mirror for users in China
  3. r[ "CRAN" ] <- "https://mirrors.tuna.tsinghua.edu.cn/CRAN/"; # CRAN的镜像地址
  4. options( repos = r )
  5. BioC <- getOption( "BioC_mirror" ); # set bioconductor mirror for users in China
  6. BioC[ "BioC_mirror" ] <- "https://mirrors.ustc.edu.cn/bioc/"; # bioconductor的镜像地址
  7. options( BioC_mirror = BioC )
  8. })
  9. # 检查一下修改情况
  10. getOption("BioC_mirror")
  11. getOption("CRAN")

local 函数可以让我们的配置只在当前project 环境生效。

安装包技巧

判断式安装

我们可以利用requireNamespace 函数判断包是否安装在R 中,如果有则返回T,利用判断,看是否执行安装命令:

  1. # 安装biocmanager(bioconductor)
  2. if (!requireNamespace("BiocManager", quietly = TRUE)) install.packages("BiocManager")
  3. # 安装devtools管理github上的软件包
  4. if (!requireNamespace("devtools", quietly = TRUE)) install.packages("devtools")

向量保存包名再安装

首先将需要的包保存在一个向量中:

  1. bioPackages <-c(
  2. "corrplot","ggrepel", #绘制相关性图形
  3. "stringr", #处理字符串的包
  4. "readr","tximport","dplyr", #处理salmon表达量的扩展包
  5. "FactoMineR","factoextra", #PCA分析软件
  6. "limma","edgeR","DESeq2", #差异分析的三个软件包
  7. "clusterProfiler", "org.Hs.eg.db", #安装进行GO和Kegg分析的扩展包
  8. "GSEABase","GSVA", #安装进行GSEA分析的扩展包
  9. "airway" # 包含数据集的bioconductor软件包

接着,通过apply 函数读取向量中的包名,并进行判断,如果在installed.packages() 不存在,则在available.packages() 的已知CRAN 的包中安装;如果不在CRAN 中,则从BiocManager 上下载:

  1. lapply( bioPackages,
  2. function( bioPackage ){
  3. if(!bioPackage %in% rownames(installed.packages())){
  4. CRANpackages <- available.packages()
  5. if(bioPackage %in% rownames(CRANpackages)){
  6. install.packages( bioPackage)
  7. }else{
  8. BiocManager::install(bioPackage,suppressUpdates=F,ask=F)
  9. }
  10. }
  11. })

你可以在安装完成后通过library 验证一下是否安装成功,如果还没有,可能你的网络环境出了问题,或者这个包需要通过源文件安装,或是在github 上,需要使用devtools 安装。

你也可以不输出信息到屏幕进行加载:

  1. suppressMessages(library(limma))