clusterProfiler|GSEA富集分析及可视化

简介: clusterProfiler|GSEA富集分析及可视化



GSEA(Gene Set EnrichmentAnalysis),即基因集富集分析,无需设定阈值来区分上调下调基因,使用所有的基因进行分析。

GO 和 KEGG 可参考:R|clusterProfiler-富集分析


一 准备数据

1.1,加载R包,数据

library(org.Hs.eg.db)
library(clusterProfiler)
library(pathview)
library(enrichplot)
data <- read.csv("limmaOut.csv",header=TRUE)
head(data)


GSEA分析只需要两列信息,基因列和logFC(不同软件的差异分析这一列的名字会有差别)。


1.2 ID转化

基因名是symbol,将之转换为entrezid格式

gene <- data$SYMBOL
#开始ID转换,会有丢失
gene=bitr(gene,fromType="SYMBOL",toType="ENTREZID",OrgDb="org.Hs.eg.db")
#去重
gene <- dplyr::distinct(gene,SYMBOL,.keep_all=TRUE)
#合并data 和 entrezid
data_all <- data %>%
 inner_join(gene,by="SYMBOL")
dim(data_all)
head(data_all)

1.3 基因列表排序

将基因按照logFC进行从高到低排序,只需要基因列和logFC即可

data_all_sort <- data_all %>%
 arrange(desc(logFC))
head(data_all_sort)
geneList = data_all_sort$logFC #把foldchange按照从大到小提取出来
names(geneList) <- data_all_sort$ENTREZID #给上面提取的foldchange加上对应上ENTREZID
head(geneList)

#结果为排序的logGC,names为ENTREZID

345557     1308    55220     8788     6770     8745 2.425345 1.938050 1.831625 1.825617 1.786812 1.767371


二 GSEA分析

2.1 GSEA分析

需要gmt文件,http://www.gsea-msigdb.org/gsea/downloads.jsp路径下载,选择合适的

kegg_gmt <- read.gmt("c2.cp.biocarta.v7.4.entrez.gmt") #读gmt文件
gsea <- GSEA(geneList,
            TERM2GENE = kegg_gmt) #GSEA分析
head(gsea)

其中:

  • ID :信号通路
  • Description :信号通路的描述
  • setSize :富集到该信号通路的基因个数
  • enrichmentScore :富集分数,也就是ES
  • NES :标准化以后的ES,全称normalized enrichment score
  • pvalue:富集的P值
  • p.adjust :校正后的P值
  • qvalues :FDR (false discovery rate)错误发现率
  • rank :排名
  • core_enrichment:富集到该通路的基因列表。


可视化-点图

dotplot(gsea)

2.2 GSEA-GO分析

gse.GO <- gseGO(
 geneList, #geneList
 ont = "BP",  # 可选"BP"、"MF"和"CC"或"ALL"
 OrgDb = org.Hs.eg.db, #人 注释基因
 keyType = "ENTREZID",
 pvalueCutoff = 0.05,
 pAdjustMethod = "BH",#p值校正方法
)
head(gse.GO,2)

2.3 GSEA-KEGG分析

gse.KEGG <- gseKEGG(geneList,
                   organism = "hsa", # 人 hsa
                   pvalueCutoff = 1,
                   pAdjustMethod = "BH",) #具体参数在下面
head(gse.KEGG)
#为方便展示,最后一列暂不展示
head(gse.KEGG)[1:10]


三 GSEA可视化

使用gseaplot2函数进行可视化

3.1 简单可视化

gseaplot2(gse.KEGG,
         1) #展示第一个通路

可以进行一些调整以接近文献

1)修改GSEA线条颜色

2)添加P值的table

3)展示指定的通路

4)展示多个通路

5)只展示上两部分

3.2 展示指定通路

gseaplot2(gse.KEGG,
         title = "Olfactory transduction",  #设置title
         "hsa04740", #绘制hsa04740通路的结果
         color="red", #线条颜色
         base_size = 20, #基础字体的大小
         subplots = 1:2, #展示上2部分
         pvalue_table = T) # 显示p值

3.3 展示多个GSEA结果

A:使用数字的方式

gseaplot2(gse.KEGG,
         1:3, #绘制前3个
         pvalue_table = T) # 显示p值

B:使用向量指定通路

gseaplot2(gse.KEGG,
         c("hsa04740","hsa05310"), #指定通路向量
         pvalue_table = T) # 显示p值

C:点 形式
gseaplot2(gse.KEGG,
          1:5, #按照第一个作图
          ES_geom = "dot",
          base_size = 20,
          pvalue_table = T)

应该和文献中的图很接近了,剩下的就是用自己的数据去尝试了。


相关文章
|
人工智能 数据可视化 Go
R绘图实战|GSEA富集分析图
GSEA(Gene Set EnrichmentAnalysis),即基因集富集分析,它的基本思想是使用预定义的基因,将基因按照在两类样本中的差异表达程度排序,然后检验预先设定的基因集合是否在这个排序表的顶端或者底端富集。
3523 0
R绘图实战|GSEA富集分析图
|
存储 数据可视化 Python
单细胞RNA速率分析: scVelo入门教程
单细胞RNA速率分析: scVelo入门教程
单细胞RNA速率分析: scVelo入门教程
|
数据可视化 数据处理
CUT&Tag 数据处理和分析教程(8)
CUT&Tag 数据处理和分析教程(8)
1234 12
|
数据可视化 数据库
scRNA分析|使用CellChat完成细胞通讯分析-简单且可视化出众,代码自取
scRNA分析|使用CellChat完成细胞通讯分析-简单且可视化出众,代码自取
3800 1
|
数据采集 数据挖掘 数据库
单细胞分析 | 使用 Monocle 3 进行发育轨迹分析
单细胞分析 | 使用 Monocle 3 进行发育轨迹分析
1640 0
单细胞分析 | 使用 Monocle 3 进行发育轨迹分析
|
机器学习/深度学习 人工智能 安全
【大语言模型-论文精读】用于医疗领域摘要任务的大型语言模型评估综述(下)
【大语言模型-论文精读】用于医疗领域摘要任务的大型语言模型评估综述(下)
|
搜索推荐 Docker 容器
生信分析代码之前还好好的,怎么就报错了 Error in Ops. data. frame(guide_loc, panel_loc) :'==' only defined for equally-sized data frames
执行 `DimPlot` 函数时遇到错误 `;Error in Ops. data. frame(g guides_loc, panel_loc) : &#39;==&#39; only defined for equally-sized data frames`。解决方案和办法
3053 0
生信分析代码之前还好好的,怎么就报错了 Error in Ops. data. frame(guide_loc, panel_loc) :'==' only defined for equally-sized data frames
分享一些在 1688 上找一件代发商品的技巧
在1688上找一件代发商品需明确自身需求与定位,筛选可靠供应商,研究商品信息,利用精准搜索和平台推荐,关注活动,并与供应商充分沟通,确保合作顺畅。
|
数据可视化 数据挖掘 Go
GOplot|宝藏R包,拯救你的GO富集结果,杜绝平庸的条形图
`GOplot`是R中的一个宝藏包,用于GO富集分析的创新可视化。它提供多种图表类型,如GOBar、GOBubble、GOCircle、GOChord、GOHeat和GOCluster,以及GOVenn。通过调整参数,用户可自定义颜色、大小和排序。例如,GOBar和GOBubble展示富集条形和气泡,GOCircle以环形图表示,GOChord描绘基因和过程间关系,而GOHeat和GOCluster提供热图和聚类视图。此外,还有GOVenn用于绘制Venn图。包简化了数据准备和绘图过程,适合快速高效地展示复杂分析结果。别忘了引用创始人Walter等人的工作。
2176 1
|
存储 Go
速绘丨GO富集气泡图绘制方法,利用R语言ggplot2包快速绘制,完整脚本可重复绘图
速绘丨GO富集气泡图绘制方法,利用R语言ggplot2包快速绘制,完整脚本可重复绘图