clusterProfiler使用心得(1)
date: 2017.10.18
author: Jinwen
前言
大家都在诟病DAVID而推荐R包clusterProfiler,所以我也跟风……
clusterProfiler依赖于Bioconductor,如果没有安装过Bioconductor系列包,那么首次安装将会经历漫长的安装过程——还是由于网络墙太厚,本来仅仅几Mb的文件可能跟你耗着。所以安装失败的同学需要注意往前滚动查看文件是否完全下载~
关键参数
如果有兴趣可以好好研究研究clusterProfiler的实例介绍,内容非常详实。这里只是使用过程中的一点儿心得。
GO功能富集分析文中称为GO over-representation test,whatever~然后函数是enrichGO
,参数还是有点儿多的,看几个关键的吧:
- OrgDb
这个参数是关键,也就是物种相关的数据文件,以org.XX.eg.db形式呈现。通过Bioconductor进行下载,但是到底是哪些物种我从文档中没有看到查询方式~ - gene
默认是EntrezID。传入你的基因id,这个ID到底是什么呢,可以是Ensembl ID,也可以是Symbol,或者其他。请查看keytype
- universe
默认是EntrezID。传入进行统计计算的全局基因集合,当然可以使用默认的集合 - keytype
设置gene
以及universe
等参数传入的ID类型, 可以通过keytypes(org.XX.eg.db)
查看该物种包含了哪些关键字,例如Symbol或Ensembl ID; 另外对ID转换可以用函数bitr
- readable
该参数是将ID转化为Symbol,具体是怎么回事儿我也莫琢磨。但当你的输入本来就是Symbol,然后还是设置readable= TRUE
,那么将会报错'names' attribute [2] must be the same length as attribute [1]
dropGO
与gofilter
过滤,但这种过滤是以GO level来定义的,也就是只保留某一个level的。实际上level的划分是不太合理的,就如biostar所讨论的。我们都知道GO实际上是一个树形的结构(有向无环图),包含多个分支,每个分支的层数都不一样,每个GO term可能还被多个分支共享;所以每个GO term并不能简单地通过level(也就是层数)来定义。如果以level来过滤将会损失很多的信息~
所以,一干人等开发了各种衡量GO term相似性的方法,可以参考R包GOSemSim。
另外,clusterProfiler也提供了相应的函数
simplify
对GO term进行去冗余,输入就是enrichGO
的结果。尾声 【clusterProfiler使用心得(1)】虽然作者文档非常清晰,但是由于太懒太笨,还是花了不少时间去尝试~
推荐阅读
- 第326天
- 由浅入深理解AOP
- 【译】20个更有效地使用谷歌搜索的技巧
- mybatisplus如何在xml的连表查询中使用queryWrapper
- MybatisPlus|MybatisPlus LambdaQueryWrapper使用int默认值的坑及解决
- MybatisPlus使用queryWrapper如何实现复杂查询
- iOS中的Block
- Linux下面如何查看tomcat已经使用多少线程
- 使用composer自动加载类文件
- android|android studio中ndk的使用