有一些软件做了检验之后,是不告诉你那些基因在某个富集的通路中,显然做为生物学家,是对此有兴趣的。clusterProfiler系列,全部函数都会输出,但看基因ID,比如ENTREZID或ENSEMBLE,这些都对人类不友好,看了你也不知道是什么,为了让大家看结果的时候,还能有点感觉,我们需要把基因翻译成symbol,有那么一批函数比如DO、GO、Reactome的分析都是有readable参数的,但有一些是没有这个参数的,我被问得最多的是KEGG的分析为什么没有!

首先GO为什么有?因为enrichGOgseGO都是使用OrgDb,而OrgDb本身带有ID转换的注释,而KEGG是在线去检索KEGG数据库的,KEGG并没有提供这些信息,当然对于少量大家比较熟悉的模式生物,要支持还是很容易的,然而有些物种支持,有些不支持,大家又会问了,凭什么我做的物种被BS了。所以啊,大家都不支持,挺公平。其实KEGG数据库里那么多的生物,很多物种是没有基因名的,有很多生物的注释还停留在基因座,你让我帮你转ID,臣妾做不到啊。

但起码对能支持的物种支持一下呗,以我一贯的作风,能帮小白解决的小问题,我都会去解决。于是我们有setReadable函数。但凡你能找到一个OrgDb,你就能用来转ID,就这样。

Continue reading

生信界的网红Stephen Turner在github上有个msigdf的包,我在他写这个包的时候,就写了个gist,连接clusterProfiler,我写gist的时候是2016年的8月,很高兴网红还惦记着我的gist

msigdf这个包把著名的Broad Institute著名的Molecular Signatures Database (MSigDB)数据以data frame的形式打包成R包,这样子非常方便使用,当然他后来没有更新,而一个fork的版本,ToledoEM/msigdf把数据更新为最新版本v6.2,发布于2018年7月。

Continue reading

做学术终究是看脸...

做科研我们不爽的是没有结果,比结果更不爽的是结果不符合预期,故事不知道该怎么编,然而戏真的不要太多,学术不是以预期来驱动的,请尊重一下事实,还有你的小鼠。

we had a quick email exchange about this and I would like to report this. (I appologise for contacting you directly, rather than following the submission guideline). I have a dataset with 6166 proteins of which 201 proteins are upregulated. The problem is that specifying the background proteins using universe argument in clusterProfiler, decreases the number of significant GO categories (28 significant categories without the universe argument and 5 with this argument). At the same time when I use online GORILLA tool I get a lot of categories, with the background:

http://cbl-gorilla.cs.technion.ac.il/GOrilla/kwpgie9l/GOResults.html

and not categories without the background:

http://cbl-gorilla.cs.technion.ac.il/GOrilla/5y4n3hn1/GOResults.html

I am not sure whether this is a bug or not, so I decided to report it here

The dataset is presented below …

> allProtUGO <- enrichGO(gene = upRegProt, OrgDb = org.Hs.eg.db,  keyType = "UNIPROT",  ont='ALL', pool = TRUE, 
                       qvalueCutoff = 0.05)

>identifiedProtUGO <- enrichGO(gene = upRegProt, OrgDb = org.Hs.eg.db,  keyType = "UNIPROT",  ont='ALL', pool = TRUE, 
                             qvalueCutoff = 0.05,  universe = backgroundProt)

>dim (allProtUGO@result)
>dim (identifiedProtUGO@result)
>

要看数据集地请点击此处直达github issue

Continue reading

拟南芥的富集分析

「知识星球」里的问题,https://t.zsxq.com/aEyneA2,拟南芥的ID怎么搞,这个内置是支持的。

比如我随便搞几个ID来演示一下:

> require(clusterProfiler)
Loading required package: clusterProfiler

clusterProfiler v3.9.0  For help: https://guangchuangyu.github.io/software/clusterProfiler

If you use clusterProfiler in published research, please cite:
Guangchuang Yu, Li-Gen Wang, Yanyan Han, Qing-Yu He. clusterProfiler: an R package for 
comparing biological themes among gene clusters. OMICS: A Journal of Integrative Biology. 2012, 16(5):284-287.

g <- c("AT5G61600", "AT2G44230", "AT1G49130", "AT1G30310", "AT3G18560",
"AT2G15960", "AT2G29290", "AT1G08930", "AT2G44460", "AT3G46600",
"AT5G24380", "AT3G59270", "AT5G55780", "AT2G45090", "AT5G38430",
"AT2G17040", "AT4G35770", "AT5G30341", "AT1G56320", "AT2G16367")

Continue reading

使用barplot来展示富集分析结果是很常用的,而dotplot比较barplot来说,多了一个点大小的信息,可以比barplot展示多一个信息,所以是比较推荐的,我之前已经写了《dotplot展示富集分析结果》和《dotplot for GSEA》两篇文章,dotplot虽然简单,很多人会觉得会容易用ggplot2画出来,但其实有些细节,比如《为什么画出来的点比指定的数目要多?》,有些技巧,比如《搞大你的点,让我们画真正的气泡图》,是很多新手所不具备的,图虽然简单,但老司机的飚车技能也不可小看哦,所以我在《听说你也在画dotplot,但是我不服!》的文后就说了一句话:

clusterProfiler之所以好,因为真的考虑了很多细节!请放开那图,让clusterProfiler来画!

Continue reading

使用新姿势玩KEGG

有小伙伴说他要用gage这个包,因为可以选择sigmet这个index,然后得到的结果只有signaling and metabolic pathways,而不会有他不关心的disease pathways。然而也有各种不爽,他最喜欢的还是clusterProfiler,但没办法只做某些pathways。

我发现大家对clusterProfiler有各种误解,各种觉得没办法,我也很无语啊,明明我写了大量的文档,你们偏不看。clusterProfiler啥都可以做,你想做COG,domain这些没有内置支持的富集分析都可以的,因为clusterProfiler是通用的分析工具,啥都能做。

说到gage的pathway index,这其实是他们对pathway有个分类,这个数据就在https://pathview.uncc.edu/data/khier.tsv可以下载到,要支持他还不容易,但我不喜欢把别人的东西打包在自己的包里,所谓走别人的路,让别人无路可走,这可不是什么好主意。所以呢,我不会内置支持的,你们自己玩。

Continue reading

掐架的额外收获

你昨天才做的分析,可能是几年前的结果!》这篇文章给大家敲了警钟,各种各样的web-server,要小心看有没有维护更新,有些是五年十年都不更新的,十分可怕。文章虽然讲的是富集分析,但其它分析工具你同样需要小心。

当然并不是说独立的软件/软件包就一定靠谱,如果软件自己打包了数据,同样要注意数据是否有更新,而如果数据不打包在软件里,而是在线获取,你同样也该留一下心。这也是clusterProfiler做富集分析的优势所在,KEGG数据是在线的,永远是最新的,而GO的数据不在软件包里,而依赖于别的数据包,而这些数据包是社区维护的(相对而言,个人的维护比较难以为继),就确保了数据一直在有更新维护的。

Bioconductor每半年发行一次,注释包同样每半年更新一次,所以你用clusterProfiler做GO分析,你用的GO数据库不会说超过半年没更新,而不像有些公司给出的结果,落后于这个世界不是一年两年这么简单。

Continue reading

Author's picture

Guangchuang Yu

a senior-in-age-but-not-senior-in-knowledge bioinformatician

Postdoc researcher

Hong Kong