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 的形式呈现方便我们进一步操作。你可以通过 主页 进行深入了解,这里只介绍几个和文章相关的功能。
更易用的搜索
作者提取了所有的 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) 进行许可。
网友评论