很高兴和你相遇
这里正在记录我的所思所学
订阅免费邮件通讯接收最新内容
首页 归档 想法 工具 通讯 播客 简历 主页

如何快速找到自己需要的 R 包

Bioconductor 的存在让只用 R 语言完成 (90% 的) 生物信息分析成为了一种可能,也在很大程度上推动了 R 在生物信息领域的应用和发展。目前 Bioconductor 配合 R 3.6 使用升级到了 3.9 版本。一共有 R 包 1741 个。学习生物信息和 R 语言,它是非常好的资源。

平常偶尔会有人问到我这样的问题:我目前正在做某某分析,你知道有什么 R 包可以用么?如果是不熟的人而且他做的分析我也不熟悉,一般我的回答直接就是不知道;如果是好朋友那我就得顺手帮他快速的找到想要的 Bioconductor R 包。看完今天的文章,这个操作对你来说以后也没有什么难度。

几步操作,快准狠,找到自己要想的 Bioconductor 工具。

入门玩家

在 Bing,Google 等搜索引擎搜索 Bioconductor + 关键词。如果稍微进阶一步,你可能会配合上一些简单的搜索语法,比如指定在它的官方网站搜索,甚至指定搜索一些文件类型。这不是本文的重点,暂时就不展开了。

普通玩家

如果你已经使用过一些 Bioconductor 包,那么肯定或多或少浏览过某一个具体 R 包的主页。你会发现在官网的上方有一个搜索框,只要在里面搜索自己能想到的关键词就会在整个网站内进行检索。不过由于索引内容的问题,你搜出来的链接一是不一定可以打的开,二是打开了不一定有你关心的东西。

这时候,你需要了解 Bioconductor 内一个特有的「分类器」biocViews

biocViews 对所有的 R 包按照四个维度进行了分类:

  • Software (1741)
  • AnnotationData (948)
  • ExperimentData (371)
  • Workflow (27)

其中每一个大类下面都有第二级或者第三极分类,如下为部分截图。每一个 R 包会根据自己的功能被打上若干个标签。

在这个页面,你就可以放心的根据自己需求的关键词进行检索了,因为是开发者给 R 包定义标签,所以找起来非常准确。而且这个页面的搜索框会根据你输入的内容进行自动提示,帮你找到自己关心的关键词。在搜索结果页,你可以看到最基本的 R 包信息。

进阶玩家

如果不甘心止步于普通玩家,现在有了一个进阶的机会。终于有一个 Bioconductor 的 R 包对 Bioconductor 自己动手了。

接下来要介绍的这个 Bioconductor R 包叫做 BiocPkgTools。简单的说,它其实是对所有的 Bioconductor R 进行了一次文本挖掘和整理。通过几个函数可以让我们快速的获得所有包的 metadata, 被下载情况和依赖关系等等,而所有的数据都会通过 tidy data 的形式呈现方便我们进一步操作。你可以通过 [主页](https://bioconductor.org/packages/BiocPkgTools](https://bioconductor.org/packages/BiocPkgTools) 进行深入了解,这里只介绍几个和文章相关的功能。

更易用的搜索

作者提取了所有的 biocViews 标签,制作了一个可以交互的可视化气泡图。

# if (!requireNamespace("BiocManager", quietly = TRUE))
#   install.packages("BiocManager")

# BiocManager::install("BiocPkgTools")

library(BiocPkgTools)
biocExplore()

如下图所示,首先在 filter 中进行筛选,然后就会出现带有相关标签的 R 包,颜色的大小表示了下载的相对次数或者说受欢迎程度。

点击自己感兴趣的一个包,就可以看到更加具体的介绍。包括描述,最近下载次数和主页地址等信息。

元数据探索

每一个 R 包都会有一个描述文件,其中记录了关于这个包最基本的信息,如下图所示。

因为这个文本是有固定字段可寻的,所以作者把所有的描述文件按照其内容进行整合后做成了一个 data.frame。


bpi <- biocPkgList()
colnames(bpi)

> colnames(bpi)
 [1] "Package"                   "Version"
 [3] "Depends"                   "Suggests"
 [5] "License"                   "MD5sum"
 [7] "NeedsCompilation"          "Title"
 [9] "Description"               "biocViews"
[11] "Author"                    "Maintainer"
[13] "git_url"                   "git_branch"
[15] "git_last_commit"           "git_last_commit_date"
[17] "Date/Publication"          "source.ver"
[19] "win.binary.ver"            "mac.binary.el-capitan.ver"
[21] "vignettes"                 "vignetteTitles"
[23] "hasREADME"                 "hasNEWS"
[25] "hasINSTALL"                "hasLICENSE"
[27] "Rfiles"                    "Enhances"
[29] "dependsOnMe"               "Imports"
[31] "importsMe"                 "suggestsMe"
[33] "LinkingTo"                 "Archs"
[35] "VignetteBuilder"           "URL"
[37] "SystemRequirements"        "BugReports"
[39] "Video"                     "linksToMe"
[41] "OS_type"                   "License_restricts_use"
[43] "PackageStatus"             "License_is_FOSS"
[45] "organism"

一旦变成了 data.frame 就可以进行各种操作了,比如看看那些包用到了 DESeq2。

library(dplyr)
bpi %>%
    filter(Package=="DESeq2") %>%
    pull(dependsOnMe) %>%
    unlist()
# [1] "DChIPRep" "DEXSeq"   "FourCSeq" "rgsepd"   "TCC"      "XBSeq"

查看一下感兴趣的包对应 URL 地址

bpi %>%
    filter(Package=="DESeq2") %>%
    pull(URL) %>%
    unlist()

#[1] "https://github.com/mikelove/DESeq2"

One more thing

如果想要的包不在 Bioconductor 而是 CRAN 中甚至是在 GitHub 上,又该怎么办呢?有一个 网站 自称可以「搜索 R 的一切」,推荐给你。


本文作者:思考问题的熊

版权声明:本博客所有文章除特别声明外,均采用 知识共享署名 - 非商业性使用 - 禁止演绎 4.0 国际许可协议 (CC BY-NC-ND 4.0) 进行许可。

如果你对这篇文章感兴趣,欢迎通过邮箱或者微信订阅我的 「熊言熊语」会员通讯,我将第一时间与你分享肿瘤生物医药领域最新行业研究进展和我的所思所学所想点此链接即可进行免费订阅。


· 分享链接 https://kaopubear.top/blog/2019-05-24-searchbiocinr/