更新R和R包

作者: 果蝇饲养员的生信笔记 | 来源:发表于2020-07-20 23:53 被阅读0次

    三个月前R 4.0版本就已经正式上线了,之前怕麻烦就一直没更新,而现在由于要用到新版本的R包,才想起顺便一起更新了R。

    目前在官网上的最新版R是2020-06-22的4.0.2版本。我直接把原来的R 3.6整个卸载了,再下载了新版本来安装(https://mirrors.tongji.edu.cn/CRAN/src/base/R-4/R-4.0.2.tar.gz)。

    新版本的R已经不能够使用以前安装的R包了,全部都要重新安装。就算是把之前R 3.6里面的library文件夹整个复制到4.0里面,也会提示这些包太旧了,需要更新。干脆全部都升级一遍吧。

    options("repos" = c(CRAN="https://mirrors.tongji.edu.cn/CRAN/"))
    options(BioC_mirror="http://mirrors.tuna.tsinghua.edu.cn/bioconductor")
    update.packages() #更新已经安装的包
    

    然后发现安装Bioconductor包时报错了,去官网看看,原来是需要安装3.11版本了。

    if (!requireNamespace("BiocManager", quietly = TRUE))
     install.packages("BiocManager")
    BiocManager::install(version = "3.11")
    

    然后直接更新所有的Bioconductor包。然而又报错了,还是因为有些包太旧了,需要重新安装,不是更新,是re-install。尤其是TxDb、org.db这种,本身体积就很大,好不容易下载完了,安装一半告诉我缺了啥其它的包,等我装好了它说的那个包,回来再安装它,又重新下载一遍,而且常常反复好几次,使人崩溃。我就在不断报错和安装中耗费了一个下午。

    弄完之后才去网上查了查有没有更新R和全部R包的捷径,竟然真的有。Y叔有一个R包叫做rvcheck,据说可以一键更新所有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每年发行一次,Bioconductor每年发行两次,最好是每个月都要更新一次所有的R包。

    然后就是随便看一看。org.Dm.eg.db的版本是3.11.4,包含了GO数据,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转换到KEGG ID,大部分基因就丢失了,经常会找不到富集的通路。现在可以看一看这个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个相关基因,比我想象的要少。再看看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
    

    相关文章

      网友评论

        本文标题:更新R和R包

        本文链接:https://www.haomeiwen.com/subject/dykpkktx.html