GSEA分析结果详细解读

欢迎关注微信公众号《生信修炼手册》!

在解读传统的富集分析结果时,经常会有这样的疑问,一个富集到的通路下,既有上调差异基因,也有下调差异基因,那么这条通路总体的表现形式究竟是怎样呢,是被抑制还是激活?或者更直观点说,这条通路下的基因表达水平在实验处理后是上升了呢,还是下降了呢?

在这里我说下自己的观点,在传统的富集分析时,我们只需要一个差异基因的列表,根本不关心这个差异基因究竟是上调还是下调。这是因为,传统的富集分析根本不需要考虑基因表达量的变化趋势,其算法的核心只关注这些差异基因的分布是否和随机抽样得到的分布一致,即使后期在可视化时,我们在通路图上用不同颜色标记了上下调的基因,但是由于没有采用有效的统计学手段去分析这条通路下所有差异基因的总体变化趋势,这使得传统的富集分析结果无法回答上述的问题。

当然也有人灵光一闪,想出一个解决方案,在进行传统的富集分析时,每次只提取上调或者下调的差异基因来进行分析,由于事先根据表达量变化趋势对差异基因进行了筛选,从而回避了上面的问题。在我个人看来,这样的做法有失偏颇,因为费舍尔精确检验就是想要证明我这个差异基因列表不是随机抽样得到的,而我们事先对差异基因列表的过滤已经对结果的随机性造成了干扰,最后得出的结论其准确性也大大降低。

想象一下,上调基因和下调基因分开富集,然后富集到了同一条通路,这怎么解释?所以在我看来,传统的富集分析只能定位到功能,这些差异基因与哪些功能相关,而不能回答一开始的这个问题。想要回答一开始的这个问题,我们需要GSEA富集方法的结果。

在这里插入图片描述
还是这张原理图,GSEA的输入是一个基因表达量矩阵,其中的样本分成了A和B两组,首先对所有基因进行排序,在之前的文章中也有提到排序的标准,这里简单理解就是foldchange, 用来表示基因在两组间表达量的变化趋势。排序之后的基因列表其顶部可以看做是上调的差异基因,其底部是下调的差异基因。

GSEA分析的是一个基因集下的所有基因是否在这个排序列表的顶部或者底部富集,如果在顶部富集,我们可以说,从总体上看,该基因集是上调趋势,反之,如果在底部富集,则是下调趋势。

理解这个观点之后,在来看GSEA富集分析的结果。由于结果很多,所以给出了一个汇总的html页面。

对于富集结果,根据上调还是下调分成了两个部分,对应两个分组,示例如下

在这里插入图片描述
在每个组别下富集到的基因集,从总体上看,其表达量在该组中高表达。点击enrichment results in html,可以在网页查看富集的结果,示例如下
在这里插入图片描述
GS为基因集的名字,SIZE代表该基因集下的基因总数,ES代表Enrichment score, NES代表归一化后的Enrichment score, NOM p-val代表pvalue,表征富集结果的可信度,FDR q-val代表qvalue, 是多重假设检验矫正后的p值,注意GSEA采用pvalue < 5%, qvalue < 25% 对结果进行过滤。

点击GS DESC可以跳转到每个基因集详细结果页面,示例如下
在这里插入图片描述
首先是一个汇总的结果,Upregulated in class说明该基因集在MUT这组中高表达,其他信息和之前介绍的一样,除此之外,还有一个详细的表格,示例如下
在这里插入图片描述
对于该基因集下的每个基因给出了详细的统计信息,RANK IN GENE LIST代表该基因在排序号的列表中的位置, RANK METRIC SCORE代表该基因排序量的值,比如foldchange值,RUNNIG ES代表累计的Enrichment score, CORE ENRICHMENT代表是否属于核心基因,即对该基因集的Enerchment score做出了主要贡献的基因。

这个表格中的数据对应下面这张图
在这里插入图片描述
分成3个部分,第一部分为基因Enrichment Score的折线图,横轴为该基因下的每个基因,纵轴为对应的Running ES, 在折线图中有个峰值,该峰值就是这个基因集的Enrichemnt score,峰值之前的基因就是该基因集下的核心基因。

第二部分为hit,用线条标记位于该基因集下的基因,第三部分为所有基因的rank值分布图, 默认采用Signal2Noise算法,对应了纵轴的标题。

从该图中可以看出,这个基因集是在MUT这一组高表达的,下面是一个在另一组组中高表达的示例
在这里插入图片描述

可以看到,其Enrichment score值全部为负数,对应的在其峰值右侧的基因为该基因集下的核心基因。

除此之外,还有一种热图,示例如下
在这里插入图片描述
这张热图展示的是位于该基因集下的基因在所有样本中表达量的分布,其中每一列代表一个样本。每一行代表一个基因,基因表达量从低到高,颜色从蓝色过渡到红色。

在总的html页面中,还给出了如下信息

在这里插入图片描述
Dataset details给出了基因总数,Gene Set details给出了基因集的信息,注意软件默认根据基因集包含的基因个数是先对基因集进行过滤,最小15个,最大500个基因,过滤掉了158个基因集,剩余的168个基因集用于分析。

Gene markers给出了排序之后的基因列表和对应的统计量rank ordered gene list,根据排序的统计量,将基因分成了两部分,对应在每一组中高表达。heatmap and gene list包含了所有基因表达量的热图和排序值的分布图,示意如下

在这里插入图片描述
在这里插入图片描述
热图由于基因太多,截取了部分,排序值的分布图其实就是每个基因集的Enrichment plot中的第三部分。更多的细节请查阅官方文档。

扫描关注微信号,更多精彩内容等着你!
在这里插入图片描述

  • 33
    点赞
  • 203
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
GSEA富集分析,1、准备三个文件第一行:#1.2,表示版本号,自己准备文件时照抄就行; 第二行:两个数分别表示gene NAME的数量和样本数量(矩阵列数-2); 矩阵:第一列是NAME;第二列Description,没有的话可以全用na或任意字符串填充;后面的就是基因在不同样本中标准化后的表达数据了 (部分统计量metrics for ranking genes计算需要log转换后的数据,后面会有提及。其它情况是否为log转换的数据都可用,GSEA关注的是差异,只要可比即可)。 #其次是样品分组信息(通常用.gmt作为后缀) 第一行:三个数分别表示:34个样品,2个分组,最后一个数字1是固定的; 第二行:以#开始,tab键分割,分组信息(有几个分组便写几个,多个分组在比较分析时,后面需要选择待比较的任意2组);(样品分组中NGT表示正常耐糖者,DMT表示糖尿病患者,自己使用时替换为自己的分组名字) 第三行:样本对应的组名。样本分组信息的第三行,同一组内的不同重复一定要命名为相同的名字,可以是分组的名字。例如相同处理的不同重复在自己试验记录里一般是Treat6h_1、Treat6h_2、Treat6h_3,但是在这里一定都要写成一样的值Treat6h。与表达矩阵的样品列按位置一一对应,名字相同的代表样品属于同一组。如果是样本分组信息,上中的0和1也可以对应的写成NGT和DMT,更直观。但是,如果想把分组信息作为连续表型值对待,这里就只能提供数字。 3. 预定义基因(gmx or gmt)——非必需文件(需要注意第一列的基因名称必须是唯一的) 通常用.gmt作为后缀。若采用GSEA预定义的MSigDB数据库中的功能基因分析,则无需自己定义该文件。每一行为一个功能基因,第一列为基因的名称,第二列为简单描述,第三列及以后列为该功能基因所包含的基因symbol。基因包含多少个基因,就列出多少个基因。文件以tab作为分隔符。
### 回答1: GSEA基因富集分析)是一种常用的生物信息学分析方法,用于研究基因基因表达谱中的富集情况。下面是使用R语言进行GSEA生信分析的代码示例: 1. 首先,需要安装和加载必要的R包,例如GSEA包和其他必要的依赖包。 ```R install.packages("GSEA") library(GSEA) ``` 2. 加载基因表达数据,通常是一个包含基因表达矩阵的数据文件。假设文件名为"expression_data.txt",其中包含基因表达矩阵和对应的样本信息。 ```R expression_matrix <- read.table("expression_data.txt", header = TRUE) ``` 3. 定义基因,可以是预定义的基因数据库(例如MSigDB)中的基因,也可以是自定义的基因。 ```R gene_sets <- c("GO_Biological_Process", "KEGG_Pathways", "Custom_Gene_Set") ``` 4. 进行GSEA分析,使用`gsea()`函数。其中,`gene_expr_matrix`参数为基因表达矩阵,`gene_sets`参数为基因,`class_vector`参数为样本类别信息向量。 ```R gsea_results <- gsea(gene_expr_matrix = expression_matrix, gene_sets = gene_sets, class_vector = sample_classes) ``` 5. 分析结果包括富集分数(Enrichment Score)、正负富集基因富集谱等。可以通过可视化方法进一步探索和解释这些结果。 ```R enrichment_score <- gsea_results$es positive_sets <- gsea_results$pos_sets negative_sets <- gsea_results$neg_sets gene_set_plot <- plot(gsea_results) ``` 以上是使用R语言进行GSEA生信分析的基本代码示例。根据具体的研究问题和分析目标,还可以进行更多的数据预处理和可视化分析。 ### 回答2: GSEA(Gene Set Enrichment Analysis)是一种生物信息学分析工具,可用于确定基因在给定基因表达数据中的富集程度。下面是R语言中实现GSEA分析的示例代码。 首先,需要安装并加载GSEABase、clusterProfiler和enrichplot等相关的R包。 ```R install.packages("GSEABase") install.packages("clusterProfiler") install.packages("enrichplot") library(GSEABase) library(clusterProfiler) library(enrichplot) ``` 接下来,准备基因表达数据和基因数据。假设基因表达数据保存在一个矩阵中,行表示基因,列表示样本;基因数据保存在GMT格式文件中,每行包含一个基因的名称、描述和基因列表。 ```R expression_data <- read.table("expression_data.txt", header = TRUE, row.names = 1) gmt_file <- system.file("extdata", "c2.cp.kegg.v7.4.symbols.gmt", package = "DOSE") gene_sets <- readGMT(gmt_file) ``` 然后,进行GSEA分析。可以选择使用差异表达基因列表作为输入,或者将基因表达数据与基因数据一起传递。以下是基于基因表达数据进行GSEA分析的示例。 ```R gene_rank <- computeGeneRank(expression_data, method = "t.test") result <- enrichGSEA(gene_sets, gene_rank) ``` 最后,可以使用enrichplot包中的函数绘制GSEA结果的可视化,例如绘制富集基因。 ```R dotplot(result, showCategory = 20) gene_heatmap(result, top = 10) ``` 通过这些代码,我们可以使用R语言实现GSEA生信分析,从而确定基因在给定基因表达数据中的富集程度,并可视化展示分析结果。 ### 回答3: GSEA (基因富集分析) 是一种用于分析生物学实验数据的生物信息学工具,它可以确定在给定条件下,特定基因中的基因与实验结果相关性的显著性。下面是一个用R语言进行GSEA生信分析的代码示例: 1. 导入所需的R包。 ```R library(clusterProfiler) ``` 2. 导入基因表达数据。 ```R expression_data <- read.table("expression_data.txt", header = TRUE, sep = "\t") ``` 3. 根据实验分组信息创建一个分组向量。 ```R group <- c(rep("Group A", 3), rep("Group B", 3)) ``` 4. 根据基因的符号名称创建一个基因符号向量。 ```R gene_symbols <- c("Gene1", "Gene2", "Gene3", "Gene4", "Gene5", "Gene6") ``` 5. 创建一个基因对象。 ```R gene_set <- list( GroupA_genes = c("Gene1", "Gene2", "Gene3"), GroupB_genes = c("Gene4", "Gene5", "Gene6") ) ``` 6. 运行GSEA分析。 ```R gsea_result <- gseGO(expression_data, geneSet = gene_set, nPerm = 1000, minGSSize = 3, maxGSSize = 500, pvalueCutoff = 0.05) ``` 7. 查看GSEA结果。 ```R print(gsea_result) ``` 这段代码中,首先导入了clusterProfiler包,它包含了进行GSEA分析所需的函数。然后,基因表达数据被读入到一个名为expression_data的数据框中。接下来创建了一个分组向量,它指定了每个样品所属的实验组。然后,基因符号向量被创建,其中包含了基因的符号名称。根据实验组信息和基因符号,一个基因对象被创建。最后,调用gseGO函数运行GSEA分析,其中包括参数,如基因、置换次数、最小/最大基因大小和显著性阈值。最后,打印GSEA分析的结果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值