单细胞之富集分析-5:一张图展示多组富集分析结果


单细胞富集分析系列:

  • 单细胞之富集分析-1:单细胞GSEA分析流程
  • 单细胞之富集分析-2:批量GSEA和GSVA分析
  • 单细胞之富集分析-3:GO和KEGG富集分析及绘图
  • 单细胞之富集分析-4:分组水平GSVA

文献里经常看到这样不同组的通路选择性的一起展示的点图,只要有不同分组的通路富集结果其实就可以画了。简单做一下复现吧~

还是使用我们熟悉的pbmc3k的数据做演示。因为这个数据集只有一个样品,所以展示的还是不同细胞群间的通路。多样本的数据集比较不同样本/分组间的差异只需要改一下Idents就可以了。

library(Seurat)
library(patchwork)
library(clusterProfiler)
library(org.Mm.eg.db) ##加载小鼠
library(org.Hs.eg.db) ##加载人类
library(tidyverse)
# 导入注释好的pbmc数据集
pbmc <- readRDS("pbmc.rds")

# 寻找每个群的marker基因
Idents(pbmc) <- 'cell_type'#因为这个是单样品数据集,在做多样品的时候,把Idents设置为不同样品即可计算不同样品的差异基因
table(pbmc$cell_type)
# Naive CD4 T Memory CD4 T   CD14+ Mono            B        CD8 T 
#         711          480          472          344          279 
# FCGR3A+ Mono           NK           DC     Platelet 
#          162          144           32           14 
markers <- FindAllMarkers(pbmc)
sig_dge.all <- subset(markers, p_val_adj<0.05&abs(avg_log2FC)>0.15) #所有差异基因
#saveRDS(sig_dge.all, file = "deg.rds")
View(sig_dge.all)
##CD4T的上调基因
sig_dge.CD4T_up <- subset(sig_dge.all, avg_log2FC>0.15&cluster=='Naive CD4 T') #CD4T细胞的上调差异基因
#富集分析
ego_CD4 <- enrichGO(gene          = row.names(sig_dge.CD4T_up),
                    #universe     = row.names(dge.celltype),
                    OrgDb         = 'org.Hs.eg.db',
                    keyType       = 'SYMBOL',
                    ont           = "ALL",  #设置为ALL时BP, CC, MF都计算
                    pAdjustMethod = "BH",
                    pvalueCutoff  = 0.01,
                    qvalueCutoff  = 0.05)
ego_cd4 <- data.frame(ego_CD4)
#write.csv(ego_CD4,'enrichGO_CD4.csv')
View(ego_cd4)
ego_cd4$Group='Naive CD4 T'

一样的方法计算其他细胞群的富集结果,可以写成循环

sig_dge.B_up <- subset(sig_dge.all, avg_log2FC>0.15&cluster=='B') #CD4T细胞的上调差异基因
#富集分析
ego_B <- enrichGO(gene          = row.names(sig_dge.B_up),
                    #universe     = row.names(dge.celltype),
                    OrgDb         = 'org.Hs.eg.db',
                    keyType       = 'SYMBOL',
                    ont           = "ALL",  #设置为ALL时BP, CC, MF都计算
                    pAdjustMethod = "BH",
                    pvalueCutoff  = 0.01,
                    qvalueCutoff  = 0.05)
ego_b <- data.frame(ego_B)
#write.csv(ego_B,'enrichGO_B.csv')
View(ego_b)
ego_b$Group='B'

sig_dge.MCD4T_up <- subset(sig_dge.all, avg_log2FC>0.15&cluster=='Memory CD4 T') #CD4T细胞的上调差异基因
#富集分析
ego_MCD4T <- enrichGO(gene          = row.names(sig_dge.MCD4T_up),
                    #universe     = row.names(dge.celltype),
                    OrgDb         = 'org.Hs.eg.db',
                    keyType       = 'SYMBOL',
                    ont           = "ALL",  #设置为ALL时BP, CC, MF都计算
                    pAdjustMethod = "BH",
                    pvalueCutoff  = 0.01,
                    qvalueCutoff  = 0.05)
ego_mcd4t <- data.frame(ego_MCD4T)
#write.csv(ego_MCD4T,'enrichGO_MCD4T.csv')
View(ego_mcd4t)
ego_mcd4t$Group='Memory CD4 T'

每个群选了前3个通路,这里的通路可以随便选

CD4T=ego_cd4[1:3,]
B=ego_b[1:3,]
MCD4T=ego_mcd4t[1:3,]
all <- rbind(CD4T,B,MCD4T)

上面我们得到了9个pathway,下面这一步的目的是看9个pathway在不同细胞群的表达(否则每组只有三个通路有结果,其他的没有)

a=all$Description
mcd4t=ego_mcd4t[ego_mcd4t$Description%in%a,]
b=ego_b[ego_b$Description%in%a,]
cd4t=ego_cd4[ego_cd4$Description%in%a,]
all <- all <- rbind(cd4t,b,mcd4t)
all$GeneRatio <- c(0.3798883,0.3798883,0.3854749,0.2105263,0.1184211,0.09210526,0.1502591,0.1450777,0.0880829)
library(forcats)
all$Description <- as.factor(all$Description)
all$Description <- fct_inorder(all$Description)

最终的目的是得到这样的表格,挑选想展示的通路,标记清楚分组即可

ggplot(all, aes(Group, Description)) +
    geom_point(aes(color=p.adjust, size=GeneRatio))+theme_bw()+
    theme(panel.grid = element_blank(),
          axis.text.x=element_text(angle=90,hjust = 1,vjust=0.5))+
    scale_color_gradient(low='#6699CC',high='#CC3333')+
    labs(x=NULL,y=NULL)+guides(size=guide_legend(order=1))

你可能感兴趣的:(单细胞之富集分析-5:一张图展示多组富集分析结果)