听说你想画个月亮富集图?

引言


尝试一下这个富集分析图形,由两种条件下的富集结果组成,由两个半圆形表示两组数据:

测试

先来个测试数据:
library(ggplot2)
library(org.Hs.eg.db)
library(gggibbous)
library(clusterProfiler)
library(dplyr)

load test data

data(geneList, package=”DOSE”)

check

head(geneList)

4312 8318 10874 55143 55388 991

4.572613 4.514594 4.418218 4.144075 3.876258 3.677857

然后两波富集分析,注意一定要同时设置 qvalueCutoff = 1 pvalueCutoff = 1 才能获取所有富集结果:

enrichment for control

ego1 <- enrichGO(gene = names(geneList)[1:500],
OrgDb = org.Hs.eg.db,
keyType = “ENTREZID”,
ont = “ALL”,
qvalueCutoff = 1,
pvalueCutoff = 1,
readable = T)

get top 6 terms for visualization

ego1_df <- data.frame(ego1) %>%
group_by(ONTOLOGY) %>%
arrange(pvalue) %>%
slice_head(n = 6) %>%
mutate(type = “control”)

enrichment for treat

ego2 <- enrichGO(gene = names(geneList)[501:1000],
OrgDb = org.Hs.eg.db,
keyType = “ENTREZID”,
ont = “ALL”,
qvalueCutoff = 1,
pvalueCutoff = 1,
readable = T)

ego2_df <- data.frame(ego2) %>%
filter(Description %in% ego1_df$Description) %>%
mutate(type = “treat”)
合并一下结果:

combine data

cb <- rbind(ego1_df,ego2_df) %>%
rowwise() %>%
mutate(fc = eval(parse(text = GeneRatio))/eval(parse(text = BgRatio)),
side = ifelse(type == “control”,TRUE,FALSE))
最后就是画图,学废了吗:

PLOT

ggplot(cb) +
geom_moon(aes(x = fc,y = Description,
ratio = 0.5,
right = side,
size = Count,
fill = type)) +
facet_wrap(~ONTOLOGY,ncol = 1,
strip.position = “right”) +
theme_bw() +
theme(panel.grid = element_blank(),
axis.text = element_text(color = “black”),
strip.text = element_text(face = “bold”,size = rel(1))) +
scale_fill_manual(values = c(“#FF0033″,”#0066CC”)) +
ylab(“”) + xlab(“Fold Enrichment”)

结尾


路漫漫其修远兮,吾将上下而求索。
欢迎加入生信交流群。加我微信我也拉你进 微信群聊 老俊俊生信交流群 (微信交流群需收取 20 元入群费用,一旦交费,拒不退还!(防止骗子和便于管理)) 。QQ 群可免费加入, 记得进群按格式修改备注哦。

声明:文中观点不代表本站立场。本文传送门:https://eyangzhen.com/419467.html

(0)
联系我们
联系我们
分享本页
返回顶部