GSEA - Gene set enrichment analysis 基因集富集 | ORA - Over-Representation Analysis 分析原理與應用


R批量做GSEA分析還沒有官方的包,但是clusterprofiler可以做,它調用了最新的gfsea包。Gene Set Testing for RNA-seq - fgsea教程

 

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的
library(stringr)
library(ggplot2)
library(clusterProfiler)
data(geneList)
de <- names(geneList)[1:100]
x <- enrichKEGG(de)
p <- barplot(x) 
p + scale_x_discrete(labels=function(x) str_wrap(x, width=10))

 


 

能做好普通富集分析已經不錯了,但是你看高分paper,發現更多大佬都在用一個叫GSEA的分析方法來做富集分析。以下就是這種分析的典型結果圖:

 

以前我死活看不懂這張圖(因為大部分教程都不說人話),后來偶然看到一篇教程,真的是通俗易懂,對着上面的圖一看,理解了就再也忘不了。

附教程鏈接:GSEA分析結果詳細解讀

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

  1. 已經選出了DEGs,需要主觀的過濾
  2. 在統計檢驗的時候不考慮基因的表達情況
  3. 一些微弱的卻具有效力的基因集被過濾掉了

這就是為什么有些老板結果看多了,就自然理解出了普通富集分析的缺點,我給的基因本來就是偏向於某些通路的(比如說大腦發育的樣本),那我注釋出來的結果自然就有很大一批大腦發育的通路,這是必然的confounder。這就極大地削弱了富集分析結果的准確性!!!在這里我敢大膽的說,大部分paper里的普通富集分析結果都是為賦新詞強說愁,為了講故事而講故事,根本不具備任何的科學性

broad的人估計是灌水太多,不忍再殘害科學界,才花了大力氣打造了一個頗具科學性的基因富集分析工具GSEA。

 

補充:普通富集分析的正式英文是Over-Representation Analysis;GSEA則稱為Gene Set Enrichment Analysis。

 

Enrichment map是一個不錯的結果展現方式。

 

 

 

待續~

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM