手把手教你用R做GSEA分析

GSEA是非常常见的富集分析方式,以前我们做GSEA需要用依赖java的GSEA软件,那个时候准备分析的文件可能要花上很长时间,报错还不知道如何处理。现在我们来学习一下R语言进行GSEA分析。

加载R包

rm(list = ls())library(ReactomePA)library(tidyverse)library(data.table)library(org.Hs.eg.db)library(clusterProfiler)library(biomaRt)library(enrichplot)

导入文件

导入的文件是两组间差异分析的结果,有基因名和logFC

genelist_input <- fread(file="GENE.txt", header = T, sep='\t', data.table = F)genename <- as.character(genelist_input[,1]) #提取第一列基因名

基因名转换

将基因名转换成ENTREZID

gene_map <- select(org.Hs.eg.db, keys=genename, keytype="SYMBOL", columns=c("ENTREZID"))colnames(gene_map)[1]<-"Gene"write.csv(as.data.frame(gene_map),"基因转换.csv",row.names =F)#导出结果至默认路径下

将ENTREZID与logFC结合,并根据logFC的值降序排列

aaa<-inner_join(gene_map,genelist_input,by = "Gene")aaa<-aaa[,-1]aaa<-na.omit(aaa)aaa$logFC<-sort(aaa$logFC,decreasing = T)

GSEA文件准备

整理成GSEA分析的格式

geneList = aaa[,2]names(geneList) = as.character(aaa[,1])geneList

开始分析

接下来可以进行富集分析了,并保存结果文件

#GSEA分析——GOGo_gseresult <- gseGO(geneList, 'org.Hs.eg.db', keyType = "ENTREZID", ont="all", nPerm = 1000, minGSSize = 10, maxGSSize = 1000, pvalueCutoff=1)#GSEA分析——KEGGKEGG_gseresult <- gseKEGG(geneList, nPerm = 1000, minGSSize = 10, maxGSSize = 1000, pvalueCutoff=1)#GSEA分析——ReactomeGo_Reactomeresult <- gsePathway(geneList, nPerm = 1000, minGSSize = 10, maxGSSize = 1000, pvalueCutoff=1)#保存文件write.table (Go_gseresult, file ="Go_gseresult.csv", sep =",", row.names =TRUE)write.table (KEGG_gseresult, file ="KEGG_gseresult.csv", sep =",", row.names =TRUE)write.table (Go_Reactomeresult, file ="Go_Reactomeresult.csv", sep =",", row.names =TRUE)

可视化

用波浪图展示GO的前10个结果

#波浪图ridgeplot(Go_gseresult,10) #输出前十个结果

单个GSEA结果的展示

方法1

#富集曲线图类型1:gseaplot(Go_Reactomeresult,1,pvalue_table = TRUE) #输出第1个结果

方法2

#富集曲线图类型2:gseaplot2(Go_Reactomeresult,212,pvalue_table = TRUE)#输出第212个结果

方法3 同时展示多个结果

#gseaplot2还可以同时显示复数个功能组的富集曲线,并标记P值:gseaplot2(Go_Reactomeresult, 1:4, pvalue_table = TRUE)

本文的示例文件及全部代码

(0)

相关推荐

  • ”基因集打分“GSEA算法详解

    前两天介绍了一个开发中的单细胞数据分析相关R包,内置了,4(热图,气泡图,upset图,堆叠条形图)+4(密度散点图,半小提琴,山峦图,密度热图)美图,见 8种方法可视化你的单细胞基因集打分 ,蛮多小 ...

  • 极具性价比!这个套路承包了80%以上生信SCI,心动了…

    解螺旋公众号·陪伴你科研的第2604天 黑色素瘤 大家好,今天给大家带来一篇比较特殊的肿瘤复现文章,那本文特殊在哪里呢? 首先,这是一篇研究黑色素瘤的文章,相比与乳腺癌,肝癌,肺癌,黑色素瘤的研究人数 ...

  • 单细胞功能注释和富集分析(GO、KEGG、GSEA)(2021公开课配套笔记)

    新课发布在B站了,马上有热心的粉丝看完后写了配套笔记: 下面是粉丝linbo的笔记投稿 多个亚群各自merker基因联合进行GO以及KEGG分析 在前面几节我们已经知道各个细胞亚群的maerker基因 ...

  • 转录组学习八(功能富集分析)

    任务 选择p<0.05而且abs(log2FC)大于1的基因为显著差异表达基因集,对这个基因集用R包做KEGG/GO超几何分布检验分析. 把表达矩阵和分组信息分别作出cls和gct文件,导入到G ...

  • R语言GSEA分析(三)

    GAEA df_all_sort <- df_all[order(df_all$logFC, decreasing = T),]#先按照logFC降序排序 gene_fc = df_all_so ...

  • clusterProfiler|GSEA富集分析及可视化

    GSEA(Gene Set EnrichmentAnalysis),即基因集富集分析,无需设定阈值来区分上调下调基因,使用所有的基因进行分析. GO 和 KEGG 可参考:R|clusterProfi ...

  • 火山图|给你geneList,帮我标到火山图上

    火山图(Volcano Plot)常用于展示基因表达差异的分布,横坐标常为Fold change(倍数),越偏离中心差异倍数越大:纵坐标为P value(P值),值越大差异越显著.得名原因也许是因为结 ...

  • 三阴性乳腺癌表达矩阵探索笔记之GSEA

    学徒和学员已经陆续出师,是时候把生信技能树的舞台交给后辈了! 下面是学徒写的<GEO数据挖掘课程>的配套笔记(第6篇) 文献解读 数据下载及理解 差异性分析 差异基因的富集分析 TNBC定 ...

  • 博士师兄手把手教你用R语言做PCA分析,不存在学不会!

    手把手教你用R语言做PCA主成分分析,不存在学不会 作者简介 本文作者Trigo Hoang,作者目前在香港攻读博士学位,硕士期间发表了多篇生信相关的SCI,累计影响因子35+,公众号简书会记录作者学 ...

  • 复旦老师手把手教你用SWOT做分析!

    复旦老师手把手教你用SWOT做分析!

  • BMJ子刊:手把手教你用R语言实现meta分析~

    Meta分析是循证医学中非常重要的工具,如果配上一个好的科学问题,它可以整合当前已有的证据,以量化的方式给出相对公正的结论,临床价值也可以非常巨大! 那如何使用R做Meta分析? 是不是觉得无从下手? ...

  • 「2019年度合辑」手把手教你用Python做股票量化分析

    https://mp.weixin.qq.com/s/VXhDd8QrQqUw9ZNtlOP5XA 引言 不知不觉,2019年已接近尾声,Python金融量化公众号也有一年零两个月.公众号自设立以来, ...

  • 手把手教你使用R语言绘制交互效应的森林图

    交互效应分析在SCI中是一个重要的组成,可以表示特殊的人群(也就是亚组)中自变量和因变量的结果关系,可以说是高分SCI必做的项目,在SCI中,这一部分结果很多都是以森林图来展示,这样结果又直观有方便分 ...

  • 【手把手教你】量价关系分析与Python实现

    如果操作过量,即使对市场判断正确,仍会一败涂地.--索罗斯 引言 成交量是股票市场的温度计,许多股票的疯狂上涨并非基本面发生了实质性的变化,而是短期筹码和资金供求关系造成的.量价关系分析法是一种将价格 ...

  • 【友谊科普】“手把手”教您均衡饮食 做自己的私人营养师

    俗话说,民以食为天,"吃"是"干饭人"们最关心的头等大事.说起"吃"的话题来,不少人头头是道:"三餐要按时吃.食物的种类要多样.营 ...

  • R语言GSEA分析(一)

    安装并导入要用到的R包 BiocManager::install("clusterProfiler") #感谢Y叔的clusterprofiler包 BiocManager::in ...

  • R语言GSEA分析(二)

    转换基因ID 如基因名是symbol,需要将基因ID转换为Entrez ID格式.Entrez ID实际上是指的Entrez gene ID,是对应于染色体上一个gene location的.每一个发 ...