三個月前R 4.0版本就已經(jīng)正式上線了,之前怕麻煩就一直沒更新山叮,而現(xiàn)在由于要用到新版本的R包也颤,才想起順便一起更新了R尊惰。
目前在官網(wǎng)上的最新版R是2020-06-22的4.0.2版本柬姚。我直接把原來的R 3.6整個卸載了拟杉,再下載了新版本來安裝(https://mirrors.#edu.cn/CRAN/src/base/R-4/R-4.0.2.tar.gz)。
新版本的R已經(jīng)不能夠使用以前安裝的R包了量承,全部都要重新安裝捣域。就算是把之前R 3.6里面的library文件夾整個復(fù)制到4.0里面,也會提示這些包太舊了宴合,需要更新。干脆全部都升級一遍吧迹鹅。
options("repos" = c(CRAN="https://mirrors.#edu.cn/CRAN/"))
options(BioC_mirror="http://mirrors.tuna.tsinghua.edu.cn/bioconductor")
update.packages() #更新已經(jīng)安裝的包
然后發(fā)現(xiàn)安裝Bioconductor包時報錯了卦洽,去官網(wǎng)看看,原來是需要安裝3.11版本了斜棚。
if (!requireNamespace("BiocManager", quietly = TRUE))
install.packages("BiocManager")
BiocManager::install(version = "3.11")
然后直接更新所有的Bioconductor包阀蒂。然而又報錯了该窗,還是因為有些包太舊了,需要重新安裝蚤霞,不是更新酗失,是re-install。尤其是TxDb昧绣、org.db這種规肴,本身體積就很大,好不容易下載完了夜畴,安裝一半告訴我缺了啥其它的包拖刃,等我裝好了它說的那個包,回來再安裝它贪绘,又重新下載一遍兑牡,而且常常反復(fù)好幾次,使人崩潰税灌。我就在不斷報錯和安裝中耗費了一個下午均函。
弄完之后才去網(wǎng)上查了查有沒有更新R和全部R包的捷徑,竟然真的有菱涤。Y叔有一個R包叫做rvcheck苞也,據(jù)說可以一鍵更新所有R包。
install.packages("rvcheck")
library(rvcheck)
check_r()
check_bioc('ggtree')
check_cran('emojifont')
check_github("GuangchuangYu/clusterProfiler")
update_all() #更新所有的CRAN狸窘、Bioconductor墩朦、Github R包
下次可以試一試這個方法。此外還知道了翻擒,R每年發(fā)行一次氓涣,Bioconductor每年發(fā)行兩次,最好是每個月都要更新一次所有的R包陋气。
然后就是隨便看一看劳吠。org.Dm.eg.db的版本是3.11.4,包含了GO數(shù)據(jù)巩趁,All mappings were based on data provided by: Gene Ontology http://current.geneontology.org/ontology/go-basic.obo With a date stamp from the source of: 2020-05-02痒玩。也是有KEGG pathway的,Mappings were based on data provided by: KEGG GENOME ftp://ftp.genome.jp/pub/kegg/genomes With a date stamp from the source of: 2011-Mar15议慰。但是KEGG的版本很舊了蠢古。所以我們還是使用自制的KEGG.db,當天的最新版本别凹。
remotes::install_github("YuLab-SMU/createKEGGdb")
library(createKEGGdb)
create_kegg_db("dme")
install.packages("KEGG.db_1.0.tar.gz",repos=NULL,type="source")
library(KEGG.db)
另外想起以前遇到的的一個問題草讶,從自己篩選的基因的symbol轉(zhuǎn)換到KEGG ID,大部分基因就丟失了炉菲,經(jīng)常會找不到富集的通路《檎剑現(xiàn)在可以看一看這個KEGG.db坤溃。
> frame1 = toTable(KEGGPATHID2EXTID)
> frame2 <- toTable(KEGGPATHID2NAME)
> head(frame1)
pathway_id gene_or_orf_id
1 dme00010 Dmel_CG10160
2 dme00010 Dmel_CG10202
3 dme00010 Dmel_CG10467
> head(frame2)
path_id path_name
1 00010 Glycolysis / Gluconeogenesis
2 00020 Citrate cycle (TCA cycle)
3 00030 Pentose phosphate pathway
> length(unique(frame1$pathway_id))
[1] 136
> length(unique(frame1$gene_or_orf_id))
[1] 3238
實際上只有136條通路和3238個相關(guān)基因,比我想象的要少嘱丢。再看看org.Dm.eg.db里面的2011年的PATH薪介,就更少了≡阶ぃ可能確實就是這么少了汁政。
> length(keys(Dm,"PATH"))
[1] 127
> gene.df <- bitr(keys(Dm,"ENTREZID"),fromType="ENTREZID",
+ toType="PATH",OrgDb = org.Dm.eg.db)
'select()' returned 1:many mapping between keys and columns
Warning message:
In bitr(keys(Dm, "ENTREZID"), fromType = "ENTREZID", toType = "PATH", :
90.96% of input gene IDs are fail to map...
> head(gene.df)
ENTREZID PATH
2 30971 00310
16 30986 00903
17 30986 01100
> length(unique(gene.df$ENTREZID))
[1] 2261