前言
最近想研究一下IMvigor210 cohort,生信技能树已经把指南写得很清楚了IMvigor210CoreBiologies包安装指北,但是今天发现了一个bug,花了我几个小时时间,总算找出答案~~~~我把整个过程写下来,研究之后发现,R包的安装有时候真是一把辛酸泪。
首先我们按照流程来
我的R版本是4.1
代码语言:javascript复制version
#platform x86_64-w64-mingw32
#arch x86_64
#os mingw32
#system x86_64, mingw32
#status
#major 4
#minor 1.0
#year 2021
#month 05
#day 18
#svn rev 80317
#language R
#version.string R version 4.1.0 (2021-05-18)
#nickname Camp Pontanezen
我们直接先本地安装,先按照生信技能树教程的指引,去网站下载IMvigor210CoreBiologies_1.0.0.tar.gz和DESeq_1.38.0.tar.gz两个文件,然后本地安装,接着就报错了。
代码语言:javascript复制install.packages("IMvigor210CoreBiologies_1.0.0.tar.gz",repos=NULL)
#这个是可以安装成功的
load("cds.RData")
#Warning: namespace ‘DESeq’ is not available and has been replaced
#by .GlobalEnv when processing object ‘cds’. 载入需要的程辑包:DESeq
#Failed with error: ‘程辑包‘DESeq’是在R版本3.0.0之前建的:你得重新安装’
#Error in .requirePackage(package) : unable to find required package ‘DESeq’.
install.packages('DESeq')
#Warning in install.packages :package ‘DESeq’ is not available for this version of R
#A version of this package for your version of R might be available elsewhere,
#see the ideas at https://cran.r-project.org/doc/manuals/r-patched/R-admin.html#Installing-packages
可以看到有2个报错,一个是当我load数据集cds.RData的时候,提示了DESeq包得重新安装,第二个是无法安装DESeq包,也就是说关键在于DESeq包是否成功安装。
那么有没有可能是devtool包的问题,我接着操作了一下,发现devtools是没问题的,我之前有安装过了。
代码语言:javascript复制library(devtools)
#载入需要的程辑包:usethis
#Warning messages:
#1: 程辑包‘devtools’是用R版本4.1.2 来建造的
#2: 程辑包‘usethis’是用R版本4.1.2 来建造的
# devtools::find_rtools()
[1] TRUE
那么我们重新找安装DESep包的办法,采用最官方的语句安装
代码语言:javascript复制if (!requireNamespace("BiocManager", quietly = TRUE))
install.packages("BiocManager")
BiocManager::install("DESeq")
#Warning message:
#package(s) not installed when version(s) same as current; use `force = TRUE` to
#re-install: 'DESeq'
load("cds.RData")
#Warning: namespace ‘DESeq’ is not available and has been replaced
#by .GlobalEnv when processing object ‘cds’
#载入需要的程辑包:DESeq
#Failed with error: ‘程辑包‘DESeq’是在R版本4.0.0之前建的:你得重新安装’
#Error in .requirePackage(package) :
#unable to find required package ‘DESeq’
#按照它的要求,加上force=TRUE
if (!requireNamespace("BiocManager", force=TRUE)
install.packages("BiocManager")
BiocManager::install("DESeq")
#Warning message:
#package(s) not installed when version(s) same as current; use `force = TRUE` to
#re-install: 'DESeq'
load("cds.RData")
#Warning: namespace ‘DESeq’ is not available and has been replaced
#by .GlobalEnv when processing object ‘cds’
#载入需要的程辑包:DESeq
#Failed with error: ‘程辑包‘DESeq’是在R版本4.0.0之前建的:你得重新安装’
#Error in .requirePackage(package) :
#unable to find required package ‘DESeq’
可以看到,这两次安装都有warning,但是没报错,不过仍然无法顺利的load("cds.RData"),所以DESeq仍没有被正确安装。我去看了一下bioconductor对这个包的注释,发现这个包还有一个本地的安装包可以用,就是红色线上的“DESeq_1.38.0.zip”,我下载下来,本地安装一下,发现成功安装了,但是仍然没作用~~
代码语言:javascript复制install.packages("DESeq_1.38.0.zip", repos = NULL, type = "win.binary")
#package ‘DESeq’ successfully unpacked and MD5 sums checked
load("cds.RData")
#Warning: namespace ‘DESeq’ is not available and has been replaced
#by .GlobalEnv when processing object ‘cds’
#载入需要的程辑包:DESeq
#Failed with error: ‘程辑包‘DESeq’是在R版本4.0.0之前建的:你得重新安装’
#Error in .requirePackage(package) :
#unable to find required package ‘DESeq’
我回头去看了一下原文的代码,发现作者竟然是没有安装DESeq这个包的[TGF-b attenuates tumor response to PD-L1 blockade by contributing to exclusion of T cells (gene.com)(http://research-pub.gene.com/IMvigor210CoreBiologies/#raw-image-data)],跟他很像的是DESeq2,但是不是这个啊,这个我有library之后,仍然无效。
我们不要灰心,把各种报错信息放到网上找一下答案。试一下这个,不行~~
也有人说现在建议使用DESeq2代替DESeq,但是我已经试过了,没效果
太难了~,该怎么办?
仔细看提示信息
我回头再去细看一下waring,我总感觉肯定忽略了什么东西,可以看到warning其中比较重要的1句话是
代码语言:javascript复制#Failed with error: ‘程辑包‘DESeq’是在R版本4.0.0之前建的:你得重新安装
这提示着这个包或许还没有及时更新,因此用R version 4.1是没法运作的,这时候我们就得回去bioconductor看一下这个包的历史了,我们可以看到蓝色字体部分,这个包对应的R版本是3.6,那么是不是换成3.6版本就行了吗?还有其他原因吗?再仔细看一下,上面说的这句“This package is for version 3.10 of Bioconductor; for the stable, up-to-date release version, see DESeq",让我恍然大悟!
我们点开黄色线上DESeq进去看看,总算发现原因了,可以看到,在Bioconductor version 3.13 ,DESeq就已经被removed,取而代之的是DESeq2,但是IMvigor210CoreBiologies仍然需要的依赖包是DESeq!真是泪目......
成功解决
那么接下来就简单了,我把R version改成3.6,然后将Bioconductor version改为3.10
代码语言:javascript复制if (!require("BiocManager", quietly = TRUE))
install.packages("BiocManager")
BiocManager::install(version = "3.10")
install.packages("DESeq_1.38.0.tar.gz",repos=NULL)
install.packages("IMvigor210CoreBiologies_1.0.0.tar.gz",repos=NULL)
#因为换版本了,所以依赖包都要重新安装一下,这里我不展示了
library(IMvigor210CoreBiologies)
load("cds.RData")
cds
#CountDataSet (storageMode: environment)
#assayData: 31286 features, 348 samples
#element names: counts
#protocolData: none
#phenoData
#sampleNames: SAMf2ce197162ce SAM698d8d76b934 ... SAM2de7cffb5f72 (348
# total)
#varLabels: Best Confirmed Overall Response binaryResponse ... TCGA
#Subtype (25 total)
#varMetadata: labelDescription
#featureData
# featureNames: 1 10 ... 9997 (31286 total)
#fvarLabels: entrez_id symbol ... Symbol (6 total)
# fvarMetadata: labelDescription
#experimentData: use 'experimentData(object)'
#Annotation:
漂亮!没报错了,有了这个文件,下面的表达矩阵,临床信息就都可以提取啦。总之包的安装很费劲,死活安装不成功的时候,不妨仔细看一看waring,然后到bioconductor仔细看一下,有时候或许是Rversion,bioconductor version在搞事情.....这些都是实战经验啊~