不同于ORA富集分析(仅需要差异表达基因列表),GSEA富集分析需要基因排序列表(a ranked list of genes),一般根据logFC对基因排序。

1. 载入包,读入数据

rm(list=ls())
setwd("your_dir")# read the file
mydata <- read.csv("your_diff_expr_file",row.names=1)
head(mydata)# if (!requireNamespace("BiocManager", quietly = TRUE))
#   install.packages("BiocManager")
#
# BiocManager::install("msigdbr")library(clusterProfiler)
library(enrichplot)
library(msigdbr)  # Molecular Signatures Database
library(org.Hs.eg.db)  #人类GO注释数据

2.  准备基因排序列表

# SYMBOL,ENTREZID映射
map_df <- bitr(mydata$symbol,fromType="SYMBOL",toType=c("ENTREZID"),OrgDb = org.Hs.eg.db)
#head(map_df)
#head(mydata)
merged_df <- merge(mydata,map_df,by.x = "symbol", by.y = "SYMBOL")
#head(merged_df)FCgenelist <- merged_df$logFC
names(FCgenelist) <- merged_df$ENTREZID # named vector
FCgenelist <- sort(FCgenelist, decreasing = T)  # 按降序排序

3. MSigDb数据富集分析

msigdbr_species()
Hs_msigdbr <- msigdbr(species="Homo sapiens")
colnames(Hs_msigdbr)
Hs_df <- as.data.frame(Hs_msigdbr[,c('gs_name','entrez_gene','gene_symbol')])
head(Hs_df)# MSigDb数据富集分析
em_msig <- GSEA(FCgenelist,TERM2GENE=Hs_df[,c(1,2)])
#barplot(em_msig,showCategory=10)
head(em_msig,20)  # sorted by pvalue# enriched in high risk group: 5 gene sets
p1 <- gseaplot2(em_msig,1:5,base_size = 20,subplots = 1:2)
p2 <- gseaplot2(em_msig,c(6:7,11:13),base_size = 20,subplots = 1:2)p3 <- gseaplot2(em_msig,c(6:8,12:13),base_size = 1,color = "white",subplots = 1:2)
# Description,enrichmentScore,pvalue,p.adjust,qvalues,rank
#cowplot::plot_grid(p4, p5, p6, ncol=1, labels=LETTERS[1:3])

通用富集分析函数GSEA, 可以自定义ontologies/pathways。富集后结果已经按p值排序。

4.  gseGO 富集分析

#gseGO
egseGO <- gseGO(FCgenelist, OrgDb=org.Hs.eg.db)
class(egseGO)egseGO[1:5,c('Description','enrichmentScore')]
head(egseGO[,c('Description','enrichmentScore')])tail(egseGO[,c('Description','enrichmentScore')])
dim(egseGO)
#plotting the first five
gseaplot2(egseGO,1:5,subplots = 1:2, base_size = 20,pvalue_table = T)gseaplot2(egseGO,1:5)
dev.new()
gseaplot2(egseGO,1)gseaplot(egseGO,geneSetID=1,subplots = 2:3,title=egseGO$Description[1])
gseaplot(egseGO,geneSetID=1,subplots = 1:2,title=egseGO$Description[1])p1 <- gseaplot(egseGO,geneSetID=1,by="runningScore",title=egseGO$Description[1])
p2 <- gseaplot(egseGO,geneSetID=1,by="preranked",title=egseGO$Description[1])
p3 <- gseaplot(egseGO,geneSetID=4,title=egseGO$Description[4])
cowplot::plot_grid(p1, p2, p3, ncol=2, labels=LETTERS[1:3])

5.  gseKEGG 富集分析

#gseKEGG
egseKEGG <- gseKEGG(FCgenelist) # 默认organism="hsa"egseKEGG[,c('Description','enrichmentScore')]
egseKEGG[1:5,c('Description','enrichmentScore')]head(egseKEGG,20)
dim(egseKEGG)
#plotting the first five
gseaplot2(egseKEGG,1:5,subplots = 1:2, base_size = 20,pvalue_table = T)
dev.new()
gseaplot2(egseKEGG,1:5)

clusterProfiler进行GSEA富集分析相关推荐

  1. 使用clusterProfiler进行GO富集分析

    欢迎关注微信公众号<生信修炼手册>! clusterProfiler是一个功能强大的R包,同时支持GO和KEGG的富集分析,而且可视化功能非常的优秀,本章主要介绍利用这个R包来进行Gene ...

  2. clusterprolifer gsea 富集分析

    ** clusterprolifer gsea 富集分析 ** 一 准备数据1.1,加载R包,数据 library(org.Hs.eg.db) library(clusterProfiler) lib ...

  3. gsea富集分析结果怎么看_简单的GSEA分析

    对于差异表达基因,除了使用GO和KEGG进行富集分析外,还可以进行GSEA富集分析.在之前课程中:GSEA分析,有讲如何使用GSEA桌面化软件进行分析,操作十分简答,虽然偶尔会出现内存溢出或者数据格式 ...

  4. fgsea进行GSEA富集分析

    GSEA富集分析需要一个基因排序列表(a ranked list of genes),通常按logFC排序. 1.  导入包,读入差异表达数据 rm(list=ls()) setwd("wo ...

  5. GSEA富集分析:从概念理解到界面实操

    GSEA定义 Gene Set Enrichment Analysis (基因集富集分析)用来评估一个预先定义的基因集的基因在与表型相关度排序的基因表中的分布趋势,从而判断其对表型的贡献. 其输入数据 ...

  6. GSEA富集分析 - 界面操作

    欢迎关注微信公众号生信宝典:http://mp.weixin.qq.com/s/3Nd3urhfRGkw-F0LGZrlZQ GSEA定义 Gene Set Enrichment Analysis ( ...

  7. 使用R语言包clusterProfiler做KEGG富集分析时出现的错误及解决方法

    使用enrichKEGG做通路富集分析时,一直报错:显示No gene can be mapped.... k <- enrichKEGG(gene = gene, organism = &qu ...

  8. r语言进行go富集分析_R语言:clusterProfiler进行GO富集分析和Gene_ID转换

    一.读取文件,ID转换 1.读取文件 library(clusterProfiler) library(org.Hs.eg.db) #读取文件,原始文件中使用空格分割的 go_ythdf2 go_yt ...

  9. gsea富集分析结果怎么看_怎么看肝功能检验结果?

    口 腔 科 普 怎么看肝功能检验结果? 肝脏作为人体最大的消化腺,功能极其复杂,其主要的功能是物质代谢功能,它参与了包括糖.蛋白质.脂肪等三大营养物质及维生素等的代谢:同时,肝脏也是体内主要的解毒器官 ...

最新文章

  1. Python+OpenCV实现AI人脸识别身份认证系统(3)—训练人脸识别模型
  2. 网工必备的存储知识详解
  3. C++学习基础八——重载输入和输出操作符
  4. 这些有笑点的故事,只有程序员才能get
  5. 13 CO配置-控制-内部订单-定义定单类型
  6. Android下Cocos2d创建HelloWorld工程
  7. vue.js java php_听说Java程序员喜欢AngularJS,PHP程序员喜欢Vue.js
  8. 【大数据部落】R语言实现:混合正态分布EM最大期望估计法
  9. 如何查看excel中的vba代码
  10. 【测试】对手机拍照测试用例的设计
  11. cart决策树Matlab实现,CART决策树的理解及其实现
  12. 94 - 绘制谢尔宾斯基三角形
  13. 身体最佳排毒养生睡眠时间表
  14. Winform实现微信功能
  15. 网站被降权的6种处理方法
  16. apt dpkg 错误制造
  17. 活久见!西电毕设门处理结果:只让肇事者延毕一年、取消保研
  18. Revit二次开发:获取所有工作集、活动工作集、指定工作集下的 所有构件
  19. 初学python体验
  20. EAV/ESS 8.x 自定义服务器正确方法+更新服务器列表

热门文章

  1. 叶帆哥哥的第一个wince驱动——FakeGPS 驱动
  2. curl -v |jq .的意思
  3. 7-8 字符串替换 (15 分)
  4. 忘记WinXP系统登陆密码解决办法!
  5. 三菱fx3u+485ADP MB与4台欧姆龙E5CC温控器通讯案例程序
  6. C# txt文本文件导入到dataGridView1 索引超出数组限定
  7. PilotAILabs:零售分析
  8. 【旋转字符串的四种方法】
  9. Sentinel(一)Linux搭建Sentinel 控制台环境搭建及使用介绍
  10. Jsp查看编码进行转换