单细胞数据挖掘实战:文献复现(九)基因GO分析及cnetplot
2022-08-19 本文已影响0人
生信开荒牛
单细胞数据挖掘实战:文献复现(二)批量创建Seurat对象及质控
单细胞数据挖掘实战:文献复现(七)MG 和 Mo/MΦ 评分
单细胞数据挖掘实战:文献复现(八)marker基因在Hom-MG、 Act-MG 和 Mo/MΦ 细胞中的表达情况
前面展示了marker基因在Hom-MG、 Act-MG 和 Mo/MΦ 细胞中的表达情况,现在还需要对这些基因进行GO分析,也就是文献中的Fig. 4(d-e)
一、数据处理
library(clusterProfiler)
#BiocManager::install("org.Mm.eg.db")
library(org.Mm.eg.db)
pvalue_threshold <- 0.05
object_tmp <- list(markers_ActMG_vs_HomMG, markers_MoM_vs_ActMG)
names(object_tmp) <- c("ActMG_vs_HomMG", "MoM_vs_ActMG")
GO_markers_ActMG_MoM <- lapply(seq_along(object_tmp), function(i) {
markers <- object_tmp[[i]]
markers_to_GO <- markers
markers_GO_NCBI <- markers_to_GO[markers_to_GO$p_val_adj < pvalue_threshold, ]
g <- as.character(unique(unlist(markers_GO_NCBI)))
g <- g[!is.na(g)]
#GO分析
if((length(g) > 0)) {
GO_upregulated <- enrichGO(gene = g[!is.na(g)],keyType = "SYMBOL", pvalueCutoff = pvalue_threshold, OrgDb = org.Mm.eg.db, ont = "BP")
} else {
GO_upregulated <- NULL
}
GO_upregulated
})
names(GO_markers_ActMG_MoM) <- names(object_tmp)
#对GO结果筛选
GO_markers_ActMG_MoM_simplify <- lapply(GO_markers_ActMG_MoM, function(GO_results) {
GO_results@result <- GO_results@result[GO_results@result$p.adjust <= 0.05, ]
simplify(GO_results, cutoff=0.7, by="p.adjust", select_fun=min)
})
#准备cnetplot另一个参数foldChange
gene_lists <- lapply(object_tmp, function(x) {
result <- exp(1)^x$avg_log2FC
names(result) <- x$gene
result <- sort(result, decreasing = TRUE)
})
names(gene_lists) <- names(object_tmp)
二、画图
Figure 4d
#BiocManager::install("ggnewscale")
library(ggnewscale)
p_4d <- cnetplot(GO_markers_ActMG_MoM_simplify$ActMG_vs_HomMG, foldChange=gene_lists$ActMG_vs_HomMG)
1.png
Figure 4e
p_4e <- cnetplot(GO_markers_ActMG_MoM_simplify$MoM_vs_ActMG, foldChange=gene_lists$MoM_vs_ActMG)
2.png
3.png
GO结果与文章中结果基本一致。
往期单细胞数据挖掘实战:
单细胞数据挖掘实战:文献复现(二)批量创建Seurat对象及质控