[R包分享]aPEAR优雅绘制富集分析网络图

2023-11-20 16:33:31 浏览数 (2)

官方文档

❝https://academic.oup.com/bioinformatics/article/39/11/btad672/7342237?login=false https://gitlab.com/vugene/aPEAR/-/blob/main/vignettes/aPEAR-vignette.Rmd?ref_type=heads ❞

加载R包

代码语言:javascript复制
install.packages("aPEAR") 
library(data.table)
library(tidyverse) 
library(clusterProfiler) 
library(DOSE) 
library(org.Hs.eg.db)
library(aPEAR)
data(geneList)

富集分析

代码语言:javascript复制
# 设置随机数种子,确保结果的可重复性
set.seed(42)
# 使用gseGO函数进行基因本体论(GO)的富集分析
# geneList是待分析的基因列表,OrgDb指定了基因的注释数据库,ont指定了本体论类型(这里是'CC',即细胞组分)
enrich <- gseGO(geneList, OrgDb = org.Hs.eg.db, ont = 'CC')

富集分析网络图

代码语言:javascript复制
# 设置另一个随机数种子,用于后续的可视化过程
set.seed(654824)
# 创建富集分析的网络图,这里使用enrich@result作为输入数据
enrichmentNetwork(enrich@result)

提取富集分析结果

代码语言:javascript复制
# 提取富集分析的结果,并进行数据处理
# 这里首先将结果转换为data.table格式,然后选取前5行,提取特定的列,并对core_enrichment列的内容进行截断处理
enrichmentData <- enrich@result %>%
  as.data.table() %>%
  .[ 1:5 ] %>%
  .[ , list(Description, pathwayGenes = core_enrichment, NES, Size = setSize) ] %>%
  .[ , pathwayGenes := str_trunc(pathwayGenes, 20) ]
代码语言:javascript复制
# 提取富集分析的完整结果,不进行截断处理
enrichmentData <- enrich@result %>%
  as.data.table() %>%
  .[ , list(Description, pathwayGenes = core_enrichment, NES, Size = setSize) ]

NES富集网络图

代码语言:javascript复制
# 创建基于NES(归一化富集得分)和Size(路径大小)的富集网络图
# colorBy参数指定了节点颜色的依据,nodeSize指定了节点大小的依据,verbose = TRUE表示打印详细信息
p <- enrichmentNetwork(enrichmentData, colorBy = 'NES', nodeSize = 'Size', verbose = TRUE)

基于p值的富集网络图

代码语言:javascript复制
# 设置随机数种子,用于可视化的稳定性
set.seed(348934)
# 创建基于p值的富集网络图,这里指定了颜色类型为p值,pCutoff为p值的截断阈值
enrichmentNetwork(enrich@result, colorBy = 'pvalue', colorType = 'pval', pCutoff = -5)

聚类网络图

代码语言:javascript复制
# 找出富集分析结果中的路径聚类
# cluster参数指定了聚类方法,这里使用层次聚类,minClusterSize指定了最小聚类大小
clusters <- findPathClusters(enrich@result, cluster = 'hier', minClusterSize = 6)
代码语言:javascript复制
# 显示前5个聚类的信息
clusters$clusters[ 1:5 ]

# 提取并显示特定聚类的路径
# 这里首先提取前5个聚类的路径,然后计算这些路径之间的相似度
pathways <- clusters$clusters[ 1:5, Pathway ]
clusters$similarity[ pathways, pathways ]

# 设置随机数种子,用于图形的稳定性
set.seed(238923)
# 绘制路径聚类的图形
# 这里指定了富集结果、相似度矩阵、聚类信息以及其他绘图参数
plotPathClusters(
  enrichment = enrich@result,
  sim = clusters$similarity,
  clusters = clusters$clusters,
  fontSize = 4,
  outerCutoff = 0.01, 
  drawEllipses = TRUE
)

0 人点赞