其他
做一个散点图的富集可视化
sharing my mind
1、富集分析
我们最常见的富集结果的图就是 条形图 和 点图 了,或者 网络图,我们也可以用类似于火山图的方式来展示富集结果。
富集分析:
# 加载R包
library(clusterProfiler)
library(DOSE)
library(ggplot2)
library(org.Hs.eg.db)
# 加载内置
data("geneList",package = 'DOSE')
# 选取上调基因
gene_up <- names(geneList)[abs(geneList) > 2]
# GO 富集分析
ego <- enrichGO(
gene = gene_up,
keyType = "ENTREZID",
OrgDb = org.Hs.eg.db,
ont = "BP",
pAdjustMethod = "BH",
pvalueCutoff = 0.05,
# qvalueCutoff = 0.05,
readable = TRUE)
# 提取富集结果
res <- ego@result
查看结果,注意这是 总的结果,包括 p 值大于 0.05 的 :
2、绘图
接下来拿上面提取的结果绘图:
# 添加列
res$x = res$Count/194
# 分类
res$type <- ifelse(-log10(res$pvalue) > -log10(0.05),'Sig','None')
# 绘图
ggplot(res,aes(x = x,y = -log10(pvalue),size = Count,color = type),
alpha = 0.8) +
geom_point() +
theme_classic(base_size = 18) +
theme(aspect.ratio = 6/6) +
geom_hline(yintercept = -log10(0.05),lty = 'dashed',size = 1) +
scale_color_manual(values = c('None' = 'grey','Sig' = '#F01A1A')) +
xlab('GeneRatio')
可以给我们想要的通路标上标签:
# 取前5个通路
top5 <- head(res,5)
# 绘图
ggplot(res) +
# 点图层
geom_point(aes(x = x,y = -log10(pvalue),size = Count,color = type),
alpha = 0.8) +
# 主题
theme_classic(base_size = 18) +
# 图比例
theme(aspect.ratio = 7/6) +
# 点范围
scale_size(range = c(1,8)) +
xlab('GeneRatio') +
# 水平线
geom_hline(yintercept = -log10(0.05),lty = 'dashed',size = 1) +
# 改颜色
scale_color_manual(values = c('None' = '#ECD662','Sig' = '#E40017')) +
# 添加标签
geom_text_repel(data = top5,
aes(x = x,y = -log10(pvalue),label = Description),
size = 5,
nudge_x = -0.2,nudge_y = -2,
segment.curvature = 0.5,
segment.ncp = 5,
segment.angle = 30)
经典图:
# 点图
dotplot(ego)
# 条形图
barplot(ego)
欢迎加入生信交流群。加我微信我也拉你进 微信群聊 老俊俊生信交流群
哦,代码已上传至QQ群文件夹,欢迎下载。
群二维码:
老俊俊微信:
知识星球:
所以今天你学习了吗?
欢迎小伙伴留言评论!
今天的分享就到这里了,敬请期待下一篇!
最后欢迎大家分享转发,您的点赞是对我的鼓励和肯定!
如果觉得对您帮助很大,赏杯快乐水喝喝吧!
往期回顾
◀circRNAs 定量之 CIRIquant 软件使用介绍
◀Ribo-seq 质控软件:ribosomeProfilingQC
◀...