clusterProfiler:基因功能富集分析的惊喜之作
转录组、蛋白组等测序结束后,筛选差异基因之后需要做的第一步工作可能就是需要功能富集,看基因的作用。做富集的工具也有很多,在线的工具也有大批,但是总体来说更新较慢,可视化操作不是很强。
R语言成了很多人的选择,在众多的包中,clusterProfiler无疑对我来说最具有亮点,可以结合可视化的包,做出好的结果。
(不教数据结构讲代码的都是耍流氓,我们公众号主力于初学者学习,手把手从第一步开始,保证清楚明白,不设坑)
首先,一般做完差异基因分析,我们会得到这样一个表格。
接下来设定阈值,筛选差异基因
p_val_adj = 0.03
avg_log2FC = 0.8
diff_signif = Ld[(Ld$p_val_adj< p_val_adj & abs(Ld$avg_log2FC)>avg_log2FC),]
diff_signif = diff_signif[order(diff_signif$avg_log2FC),]
UP <- diff_signif[diff_signif$avg_log2FC>0, ] #上调的基因,下调的同理,FC小于0
要做差异基因,需要讲genesymbol转为ID
library(org.Mm.eg.db)
Up <- bitr(row.names(UP), fromType="SYMBOL",
toType="ENTREZID",
OrgDb="org.Mm.eg.db")
转完后得到这样一个文件:
这样就可以进行富集分析,首次使用clusterProfiler需要安装,按照如下代码
install.packages("devtools")
devtools::install_github('GuangchuangYu/clusterProfiler')
library(clusterProfiler)
library(enrichplot)#用于可视化的包
富集分析很简单的一句代码
ego_up <- enrichGO(Up$ENTREZID, OrgDb = "org.Mm.eg.db", ont="BP", readable=TRUE)#只选择BP富集
富集得到的结果很多,一般见过的柱状图那样显示,可是有很多terms,我们不清楚他们之间的关系,看起来也乱糟糟的。所以需要去除冗余,而clusterProfiler也提供了此功能。
ego_up <- simplify(ego_up, cutoff=0.7, by="p.adjust", select_fun=min)
最后就是可视化了,结果如下
ego_up <- pairwise_termsim(ego_up)
emapplot(ego_up, cex_label_category=.6, cex_line=.5) +
scale_colour_continuous(low = "#e06663", high = "#327eba",
name = "p.adjust",
guide = guide_colorbar(reverse = TRUE, order=1),
trans='log10')
效果还不错,如果要显示哪些基因在这个通路中有贡献,可以运行下面的代码:
cnetplot(ego_up, categorySize="pvalue", avg_log2FC=geneList)
总之,告别了柱状图,得到好结果,也得到好图!
具体的参数功能还需自行探索,总能调整为自己喜欢的样子!
赞 (0)