听说你想把多个样本的 GSEA 画在一起?

1引言

有粉丝提问, 如何把多个组/实验的同一条 GSEA 结果画在一个图里,这样可以查看不同实验条件该通路的变化情况。本质上就是提取多个通路的富集结果,合并一下数据,然后绘图就好了,写了个简单的函数 GSEAmultiGP 来做这样的事情。

示例文献图,来自粉丝:

图片

文献题目:

p53 Mediates Vast Gene Expression Changes That Contribute to Poor Chemotherapeutic Response in a Mouse Model of Breast Cancer

2安装

重新安装获取新功能:

# install.packages("devtools")
devtools::install_github("junjunlab/GseaVis")

3使用示例

数据准备

先造三个不同的 genelist,代表三个条件下基因的变化:

library(clusterProfiler)
library(org.Hs.eg.db)
library(GseaVis)

data(geneList, package="DOSE")

geneList1 <- sort(sample(seq(-2,2,by = 0.01),12495,replace = T),decreasing = T)
names(geneList1) <- sample(names(geneList),12495,replace = F)

geneList2 <- sort(sample(seq(-2,2,by = 0.01),12495,replace = T),decreasing = T)
names(geneList2) <- sample(names(geneList),12495,replace = F)


all_glist <- list(geneList,geneList1,geneList2)

然后做 GSEA 富集分析,返回 list,这里设置 pvalueCutoff=1,保证在每个富集结果里都有共同的通路:

# loop to enrich
lapply(1:3, function(x){
  ego3 <- gseGO(geneList     = all_glist[[x]],
                OrgDb        = org.Hs.eg.db,
                ont          = "BP",
                minGSSize    = 100,
                maxGSSize    = 500,
                pvalueCutoff = 1,
                verbose      = FALSE)
}) -> m_gsea_list
图片

查看其中一个结果:

# check
df <- data.frame(m_gsea_list[[1]])
图片

绘图

默认绘图:

# plot
GSEAmultiGP(gsea_list = m_gsea_list,
            geneSetID = "GO:0002757",
            exp_name = c("group1","group2","group3"))
图片

修改颜色:

GSEAmultiGP(gsea_list = m_gsea_list,
            geneSetID = "GO:0002757",
            exp_name = c("group1","group2","group3"),
            curve.col = ggsci::pal_lancet()(3))
图片

添加 P 值:

GSEAmultiGP(gsea_list = m_gsea_list,
            geneSetID = "GO:0002757",
            exp_name = c("group1","group2","group3"),
            curve.col = ggsci::pal_d3()(3),
            addPval = T,
            pvalX = 0.99,pvalY = 0.99,
            legend.position = "right")
图片

修改底部标签:

GSEAmultiGP(gsea_list = m_gsea_list,
            geneSetID = "GO:0002757",
            exp_name = c("group1","group2","group3"),
            curve.col = ggsci::pal_d3()(3),
            addPval = T,
            pvalX = 0.99,pvalY = 0.99,
            legend.position = "right",
            rect.bm.label = c("DOX","DMSO"))
图片

这样就可以查看不同实验条件下通路的变化了。

4结尾

路漫漫其修远兮,吾将上下而求索。


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

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

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