GSEA - Gene set enrichment analysis 基因集富集分析原理与应用

RNA-seq是利器,大部分做实验的老板手下都有大量转录组数据,所以RNA-seq的分析需求应该是很大的(大部分的生信从业人员应该都差不多要沾边吧)。

普通的转录组套路并不多,差异表达基因、富集分析、WGCNA network以及一些没卵用的花式分析。DEG分析是基础,up and down,做个富集,了解一下处理后到底是什么通路被改变了;WGCNA主要就是根据相关性来找出一些co-express的gene module。

单细胞的转录组的玩法就比较多了,可以理解为超多样本的普通转录组,普通转录组的分析基本都可以用,但单细胞更侧重于两个主题:clustering和pseudotime。

RNA-seq离不开富集分析的本质原因就是因为它是超高通量的,老板肯花钱做RNA-seq自然就是想做数据挖掘,而不是focus on one gene;3万个基因你怎么分析?就算你用WGCNA得到了很多in silico的gene module,so what?生物老板不懂计算机,你给他们一大堆冰冷的gene有什么用,所以一些超级经典的数据库就出现了,GO、KEGG等,3万多基因我都根据现有知识给你做了定义定位分类,这样老板就知道,原来我敲除了A gene会导致B通路下调啊,这样我就可以接着讲我的生物学故事了。真找到老板感兴趣的通路,老板故事讲好了,你就可以午饭多加个鸡腿了。

基因表达或者基因集富集通路的分析过程就是GSEA了。

GSEA是一个软件的名字,就是基因集富集分析的意思,但它其实是特指某一种基因集富集分析;在GSEA之前就已经有了普通的基因集富集分析方法;两者之间的目的是一样的,但是原理有天壤之别。

先列一个富集分析的常见工具表:

  • DAVID - 很多CNS里都会见到,后来被人发现它根本就不更新数据库
  • WEGO - 华大在用的,Y叔还和华大有口水战
  • clusterProfiler - Y叔精品
  • webgestalt - 网页版的,也有R包,之前我在用
  • ClueGO
  • goProfiles
  • MeV
  • TEASE

GSEA单独列出,GSEA - Broad Institute,broad出品必属精品。

一些常用的数据库:

  • GO
  • KEGG
  • DO - Disease Ontology
  • Molecular Signatures Database (MSigDB)
  • webgestalt里可以看到更多的数据库

普通富集分析的原理比较简单,可以直接看clusterprofiler的文章,一下是原文截取:

The clusterProfiler package depends on the Bioconductor annotation data GO.db and KEGG.db to obtain the maps of the entire GO and KEGG corpus. Bioconductor annotation packages org.Hs.eg.db, org.Mm.eg.db, and org.Sc.sgd.db were imported for genome-wide annotation of mapping Entrez gene identifiers or ORF identifiers for humans, mice, and yeast, respectively.

The clusterProfiler package offers a gene classification method, namely groupGO, to classify genes based on their projection at a specific level of the GO corpus, and provides functions, enrichGO and enrichKEGG, to calculate enrichment test for GO terms and KEGG pathways based on hypergeometric distribution. To prevent high false discovery rate (FDR) in multiple testing, q-values (Storey, 2002) are also estimated for FDR control. Furthermore, clusterProfiler supplies a function, compareCluster, to automatically calculate enriched functional categories of each gene clusters and provides several methods for visualization.

稍微梳理一下:首先该工具依赖一些数据库GO和KEGG,另外需要一些基因名转换的数据库;然后groupGO就是根据GO term来把我们的基因集分类,然后enrichGO就是来做统计检验(超几何分布),判断这个基因集是不是随机抽取的;然后就是一些统计的修正了,FDR和q-value。

以下列几个我经常会碰到的问题(大部分都被Y叔解决了):

  1. 数据库冗余,大部分条目都是重复的,解决:use simplify to remove redundancy of enriched GO terms
  2. 一些太general的条目出现了,需要过滤,解决:test GO at sepcific level
  3. 一些term的名字太长,解决:看最新的公众号,2019年02月13日
  4. 有些基因名字不匹配,我是直接用的基因symbol的


能做好普通富集分析已经不错了,但是你看高分paper,发现更多大佬都在用一个叫GSEA的分析方法来做富集分析。以下就是这种分析的典型结果图:

以前我死活看不懂这张图(因为大部分教程都不说人话),后来偶然看到一篇教程,真的是通俗易懂,对着上面的图一看,理解了就再也忘不了。

附教程链接:GSEA分析结果详细解读

普通富集分析的致命缺点:

  1. 已经选出了DEGs,需要主观的过滤
  2. 在统计检验的时候不考虑基因的表达情况
  3. 一些微弱的却具有效力的基因集被过滤掉了

这就是为什么有些老板结果看多了,就自然理解出了普通富集分析的缺点,我给的基因本来就是偏向于某些通路的(比如说大脑发育的样本),那我注释出来的结果自然就有很大一批大脑发育的通路,这是必然的confounder。这就极大地削弱了富集分析结果的准确性!!!在这里我敢大胆的说,大部分paper里的普通富集分析结果都是为赋新词强说愁,为了讲故事而讲故事,根本不具备任何的科学性

broad的人估计是灌水太多,不忍再残害科学界,才花了大力气打造了一个颇具科学性的基因富集分析工具GSEA。

待续~

原文地址:https://www.cnblogs.com/leezx/p/10369102.html

时间: 2024-08-29 09:18:13

GSEA - Gene set enrichment analysis 基因集富集分析原理与应用的相关文章

【R】clusterProfiler的GO/KEGG富集分析用法小结

前言 关于clusterProfiler这个R包就不介绍了,网红教授宣传得很成功,功能也比较强大,主要是做GO和KEGG的功能富集及其可视化.简单总结下用法,以后用时可直接找来用. 首先考虑一个问题:clusterProfiler做GO和KEGG富集分析的注释信息来自哪里? GO的注释信息来自Bioconductor,提供了19个物种的org类型的GO注释信息,如下表所示.Bioconductor中更多的注释包可参考http://www.bioconductor.org/packages/rel

R获取指定GO term和KEGG pathway的gene list基因集

clusterProfiler没有显性的接口,但是可以直接扣取clusterProfiler里的函数. 核心函数就是get_GO_data GO_DATA <- get_GO_data("org.Hs.eg.db", "BP", "SYMBOL") 可以看到输入的是GO数据库,选定类别,基因名字类型,输出的就是整个数据库. 但是想调用这个函数没那么简单,得导入一系列的基础函数. 一个常见的任务就是获取GO数据库里所有的cell cycle相

功能的显著性分析——GO Enrichment Analysis

  Gene Ontology(GO)是基因功能国际标准分类体系.GO富集分析是对差异基因等按GO分类,并对分类结果进行基于离散分布的显著性分析.错判率分析.富集度分析,得到与实验目的有显著联系的.低误判率的.靶向性的基因功能分类,该分类即导致样本性状差异的最重要的功能差别.在芯片的数据分析中,研究者可以找出哪些变化基因属于一个共同的GO功能分支,并用统计学方法检定结果是否具有统计学意义,从而得出变化基因主要参与了哪些生物功能. 1.      对mRNA进行显著性功能富集分析,得到具有显著性.

GO/KEGG功能富集分析及气泡图

何为功能富集分析? 功能富集分析是将基因或者蛋白列表分成多个部分,即将一堆基因进行分类,而这里的分类标准往往是按照基因的功能来限定的.换句话说,就是把一个基因列表中,具有相似功能的基因放到一起,并和生物学表型关联起来. 何为GO和KEGG? 为了解决将基因按照功能进行分类的问题,科学家们开发了很多基因功能注释数据库,.这其中比较有名的一个就是Gene Ontology(基因本体论,GO)和Kyoto Encyclopedia of Genes and Genomes(京都基因与基因组百科全书,K

HA下Spark集群工作原理(DT大数据梦工厂)

Spark高可用HA实战 Spark集群工作原理详解 资源主要指内存.CPU 如果是单点的话,Master如果出现故障,则集群不能对外工作 Spark通过Zookeeper做HA,一般做HA是一个active级别,standby active就是当前工作 standby是随时准备active的挂了之后会切换成为active级别 以前一般是2台机器,一个active,一个standby 现在一般是3台机器,一个active,两个standby,甚至3台以上 Zookeeper包含了哪些内容:所有的

分布式缓存技术redis学习系列(四)——redis高级应用(集群搭建、集群分区原理、集群操作)

本文是redis学习系列的第四篇,前面我们学习了redis的数据结构和一些高级特性,点击下面链接可回看 <详细讲解redis数据结构(内存模型)以及常用命令> <redis高级应用(主从.事务与锁.持久化)> 本文我们继续学习redis的高级特性--集群.本文主要内容包括集群搭建.集群分区原理和集群操作的学习. Redis集群简介 Redis 集群是3.0之后才引入的,在3.0之前,使用哨兵(sentinel)机制(本文将不做介绍,大家可另行查阅)来监控各个节点之间的状态.Redi

MongoDB副本集的工作原理

在MongoDB副本集中,主节点负责处理客户端的读写请求,备份节点则负责映射主节点的数据. 备份节点的工作原理过程可以大致描述为,备份节点定期轮询主节点上的数据操作,然后对自己的数据副本进行这些操作,从而保证跟主节点的数据同步. 至于主节点上的所有数据库状态改变的操作,都会存放在一张特定的系统表中.备份节点则是根据这些数据进行自己的数据更新. oplog 上面提到的数据库状态改变的操作,称为oplog(operation log,主节点操作记录).oplog存储在local数据库的"oplog.

大开测试:性能-如何在Analysis图表中添加分析注释(连载26)

7.26  如何在Analysis图表中添加分析注释 1.问题提出 Analysis提供了十分丰富的图表,我们可以借助这些图表分析系统的性能,为了使图表更加直观,方便专业及其非专业人事的阅读,提供分析注释是十分必要的,那么LoadRunner的Analysis提供这种功能了吗? 2.问题解答 LoadRunner提供了丰富的图表,通过这些图表可以供性能分析人员分析系统瓶颈,为了使自己和他人方便阅读分析结果,LoadRunner提供了在图表上添加注释信息的功能,下面以"Throughput - R

redis高级应用(集群搭建、集群分区原理、集群操作)

文章主目录 Redis集群简介 Redis集群搭建 Redis集群分区原理 集群操作 参考文档 本文是redis学习系列的第四篇,前面我们学习了redis的数据结构和一些高级特性,点击下面链接可回看 <详细讲解redis数据结构(内存模型)以及常用命令> <redis高级应用(主从.事务与锁.持久化)> 本文我们继续学习redis的高级特性--集群.本文主要内容包括集群搭建.集群分区原理和集群操作的学习. 回到顶部 Redis集群简介 Redis 集群是3.0之后才引入的,在3.0