首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >你不需要真的这个包,而仅仅是需要它里面的数据

你不需要真的这个包,而仅仅是需要它里面的数据

作者头像
生信技能树
发布2021-12-24 14:07:16
发布2021-12-24 14:07:16
1.7K0
举报
文章被收录于专栏:生信技能树生信技能树

很多人提问如何安装一个免疫治疗数据队列包, IMvigor210CoreBiologies ,因为它是一个100多M的压缩包文件,在 http://research-pub.gene.com/IMvigor210CoreBiologies/packageVersions/ 网页可以看到:

代码语言:javascript
复制
IMvigor210CoreBiologies_0.1.13.tar.gz 15-Feb-2018 10:56 116M  
IMvigor210CoreBiologies_1.0.0.tar.gz 11-Feb-2019 20:49 116M  

实际上,但凡学过一点点R语言的,都知道如何下载这样的R语言源代码压缩包文件来进行安装。实际上,这个包的 的官方说明书也写的很清楚:http://research-pub.gene.com/IMvigor210CoreBiologies/

因为这个包是旧版本的R和bioconductor时代创造的

所以它官方教程写的是下面的安装方法:

First load the utility:

代码语言:javascript
复制
source("http://bioconductor.org/biocLite.R")

Now copy the following into your R session to load mandatory dependencies:

代码语言:javascript
复制
pkg = c("biomaRt",
  "circlize",
  "ComplexHeatmap",
  "corrplot",
  "DESeq2",
  "dplyr",
  "DT",
  "edgeR",
  "ggplot2",
  "limma",
  "lsmeans",
  "reshape2",
  "spatstat",
  "survival",
  "plyr")
biocLite(pkg)

上面的代码是过时的哦!应该是我们周末班准备工作给的安装R包 http://www.bio-info-trainee.com/3727.html

最新的批量安装R包的方式

首先配置中国大陆特色镜像

代码语言:javascript
复制
options()$repos 
options()$BioC_mirror
options(BioC_mirror="https://mirrors.ustc.edu.cn/bioc/")
options("repos" = c(CRAN="https://mirrors.tuna.tsinghua.edu.cn/CRAN/"))
options()$repos 
options()$BioC_mirror

然后使用下面的代码,进行批量安装:

代码语言:javascript
复制
list.of.packages <- c("shiny",
                      "tidyr",
                      'tidyverse', 
                      "clusterProfiler",
                      "DT",
                      "ashr",
                      "enrichplot",
                      "plotly")

all_packages = rownames(installed.packages())
save(all_packages,file = 'all_packages.Rdata')

#checking missing packages from list
new.packages <- list.of.packages[!(list.of.packages %in% installed.packages()[,"Package"])]
new.packages 
packToInst <- setdiff(list.of.packages, installed.packages())
packToInst
if(T){
  lapply(packToInst, function(x){
    BiocManager::install(x,ask = F,update = F)
  })
}
lapply(intersect(packagesReq, installed.packages()),function(x){
  suppressPackageStartupMessages(library(x,character.only = T))
})

其实你有没有发现,代码反而是多了呢?

接下来看 IMvigor210CoreBiologies_1.0.0.tar.gz这个116M的文件

必须要有前面的依赖包,然后才能下载 IMvigor210CoreBiologies_1.0.0.tar.gz这个116M的文件,进行安装,代码如下所示:

Finally, install IMvigor210CoreBiologies itself. Assuming that you’re already running R in the directory containing the downloaded package file,

代码语言:javascript
复制
install.packages("IMvigor210CoreBiologies_1.0.0.tar.gz", 
  repos=NULL)

As usual, once the package is installed on your system, you also need to load it into your active R session:

代码语言:javascript
复制
library("IMvigor210CoreBiologies")

但是你仍然是发现缺失 DESeq这个包吗

而我们的 IMvigor210CoreBiologies 依赖于它DESeq这个包,所以仍然是失败的,只能是IMvigor210CoreBiologies这个包写的有点问题, 应该是它本来就并不是为了发布它,所以也无所谓,这样的粗制滥造的包本来就是不可能过审,没办法发布的。

实际上,对于这样的包,原则上我们首先应该是摒弃它。如果你一定要安装使用它,我们有两个解决方案,首先,你打开 IMvigor210CoreBiologies_1.0.0.tar.gz这个116M的文件 ,进去修改这个包的依赖情况。就是这个改 DESCRIPTION 文件里面的R版本依赖 ,可以看到里面有 DESeq, DESeq2,等包,其实没有必要依赖这些啊, 删除 DESeq即可,修改好文件后,重新安装这个包:

代码语言:javascript
复制
Depends: R (>= 3.3), Biobase
Imports: biomaRt, circlize, ComplexHeatmap, corrplot, DESeq, DESeq2,
        dplyr, DT, edgeR, ggplot2, graphics, limma, lsmeans, methods,
        reshape2, spatstat, stats, survival, plyr
Suggests: roxygen2
License: file LICENSE

超级简单!这样你可以很顺利的安装它,但是因为你强行修改了它的依赖,所以你安装的应该是一个残缺版本,如果后续它这个包确实是依赖于 DESeq 包里面的函数或者对象,就尴尬了。

另外一个选择是,你压根就没有必要去安装这个包,因为你仅仅是需要它里面的数据,你再仔细看教程,其实就是:To load a CountDataSet object called ‘cds’, type:

代码语言:javascript
复制
data(cds)

This CountDataSet object contains raw counts for all genes as well as basic feature and all sample annotations reported in the manuscript. These can be accessed like this:

代码语言:javascript
复制
head(counts(cds))
head(fData(cds))
head(pData(cds))

如果你是熟悉R包结构,就明白它自带的数据,其实就存储在 data 文件夹:

存储在 data 文件夹

你不需要安装这样的包,也不需要加载它,仅仅是load这个压缩包里面的文件夹里面的对应的R数据对象文件即可。

但是,尴尬的是它这个对应的R数据对象文件里面的 cds变量其实是一个 CountDataSet object ,这个对象来自于 DESeq 包,如果你没办法按照它这个DESeq包,就不可能使用它定义的CountDataSet对象,那么你就无法load对应的R数据对象文件成功,报错如下:

代码语言:javascript
复制
> cds
载入需要的程辑包:DESeq
Error in .requirePackage(package) : 
  unable to find required package ‘DESeq’
此外: Warning message:
In library(package, lib.loc = lib.loc, character.only = TRUE, logical.return = TRUE,  :
  不存在叫‘DESeq’这个名字的程辑包
载入需要的程辑包:DESeq
收捲时出错: unable to find required package ‘DESeq’
Error: no more error handlers available (recursive errors?); invoking 'abort' restart

这个问题就麻烦了,夜已深了,先暂停吧!

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

本文分享自 生信技能树 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 因为这个包是旧版本的R和bioconductor时代创造的
  • 最新的批量安装R包的方式
  • 接下来看 IMvigor210CoreBiologies_1.0.0.tar.gz这个116M的文件
  • 但是你仍然是发现缺失 DESeq这个包吗
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档