相信大家对富集分析都很熟悉,但是对富集分析结果的美化却永无止境。
今天我们介绍Y叔系列中enrichplot包的cnetplot函数。
Y叔为啥要开发cnetplot函数来画图呢,需要我们先理解一个概念:基因-概念网络 (Gene-Concept Network) GCN
library(DOSE)data(geneList);head(geneList)de <- names(geneList)[abs(geneList) > 2]edo <- enrichDGN(de);head(edo)
barplot,
此函数只能对接enrichResult
对象,所以GSEA
的结果它是画不出来的 ,barplot用于展示最重要的或者你感兴趣的条目的富集结果,比如富集到的基因个数、条目名字,P值等信息。
library(enrichplot)barplot(edo, showCategory=20) ;head(edo)
library(enrichplot)
p1 <- barplot(ora_res, showCategory=10 # 展示多少条目 ,x = "Count" # X轴展示那个变量,默认Count,也可以是GeneRatio ,label_format = 30 # 默认对名字超过30个字符的进行折叠 ,font.size = 12 # 字体大小 ,title = "Bar plot for ORA" )
p2 <- barplot(ora_res, showCategory=10 ,x = "GeneRatio" )
cowplot::plot_grid(p1,p2)barplot(ora_res, showCategory=10 ,split = "ONTOLOGY" # 分面,GO ORA特有 ) + facet_grid(ONTOLOGY~., scale="free") # ggplot2的分面语法
#3 readable-- edox <- setReadable(edo, 'org.Hs.eg.db', 'ENTREZID')
cnetplot(edox, foldChange=geneList) ## categorySize can be scaled by 'pvalue' or 'geneNum'
cnetplot(edox, categorySize="pvalue", foldChange=geneList)
cnetplot(edox, foldChange=geneList, circular = TRUE, colorEdge = TRUE)
p1 <- cnetplot(edox, node_label="category")
p2 <- cnetplot(edox, node_label="gene")
p3 <- cnetplot(edox, node_label="all")
p4 <- cnetplot(edox, node_label="none")
cowplot::plot_grid(p1, p2, p3, p4, ncol=2, labels=LETTERS[1:4])
heatplot(edox, foldChange=geneList)
下面这段代码有助于理解cnetplot画图原理
#8理解cnetplot画图原理 ------ set.seed(123) x <- list(A = letters[1:10], B=letters[5:12], C=letters[sample(1:26, 15)]);x p1 <- cnetplot(x) set.seed(123) d <- setNames(rnorm(26), letters);d p2 <- cnetplot(x, foldChange=d) + scale_color_gradient2(name='associated data', low='darkgreen', high='firebrick');p2 cowplot::plot_grid(p1, p2, ncol=2, labels=LETTERS[1:2])
library("pathview")
hsa04110 <- pathview(gene.data = geneList, pathway.id = "hsa04110",
species = "hsa",
limit = list(gene=max(abs(geneList)), cpd=1))
函数简介:
cnetplot 函数用于可视化基因与生物学概念之间关联的函数,它可以将基因和生物学概念(例如 Gene Ontology 条目或 KEGG 通路)之间的关联描绘成一个网络,从而直观地展示基因与功能术语之间的关系。
参数:
输出结果:
cnetplot 函数输出一个基因-概念网络,其中:
## convert gene ID to Symboledox <- setReadable(edo, 'org.Hs.eg.db', 'ENTREZID')
p1 <- cnetplot(edox, foldChange=geneList)## categorySize can be scaled by 'pvalue' or 'geneNum'
p2 <- cnetplot(edox, categorySize="pvalue", foldChange=geneList)
p3 <- cnetplot(edox, foldChange=geneList, circular = TRUE, colorEdge = TRUE)
cowplot::plot_grid(p1, p2, p3, ncol=3, labels=LETTERS[1:3], rel_widths=c(.8, .8, 1.2))
参考:https://yulab-smu.top/biomedical-knowledge-mining-book/index.html#可视化:https://yulab-smu.top/biomedical-knowledge-mining-book/enrichplot.html
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。