1. 兩種基因功能富集方法介紹
名詞解釋:
1. 基因功能富集分析:包括過表達分析ORA、功能分類打分FCS、基于同路拓撲結構PT和基于網絡拓撲結構NT和基因富集分析GSEA。常用的是ORA
和GSEA
。
2. ORA(Over Representation Analysis):也就是我們熟知的傳統的基因富集方法,是一種超幾何分布檢驗方法(Fisher's Exact Test),也就是常見的2x2方法。ORA是一種廣泛使用的方法,用于確定已知的生物學功能或過程是否在實驗衍生的基因列表中被過度表達(豐富),例如,差異表達基因列表(DEGs)。
3. GSEA(Gene Set Enrichment Analysis):ORA方法只考慮顯著差異基因,這種策略會因過高的閾值而忽略變化較小的基因,GSEA直接解決了這一局限性。所有的基因均可用于GSEA,GSEA聚合了一個基因集內每個基因統計數據,因此能夠以一種小而協調的方式檢測預定義的基因集中所有基因的變化情況。
4. 基因功能注釋數據庫:收集了各種物種基因的功能注釋的數據庫,包括GO、KEGG、Reactome和MSigDB等常見功能注釋數據庫
1.1 傳統的功能富集方法:
N為所有基因中具有pathway/GO term注釋的基因數目
n為N中差異表達基因的數目
M為所有基因中注釋到某特定pathway/GO term條目的基因數目
m為注釋到某特定pathway/GO term條目的差異表達基因數目
超幾何分布(hypergeometric)是統計學上的一種離散概率分布。它描述了由有限物體中抽出n個物體,成功抽出制定種類的物件的個數(不歸還)。超幾何分布和Fisher's Exact Test是一摸一樣的原理,只是兩個不同的稱謂。
1.2 GSEA
傳統方法輸入的是顯著富集的差異基因list,需要經常嘗試不同的cutoff值,并將上調和下調基因分開富集。
而GSEA輸入的是所有的差異基因和對應的fold change值,基于fc去做統計學檢驗,計算p值。
1.2.1 GSEA介紹
GSEA是一種基于基因集(也可以理解為某個term)的富集分析方法。
基于基因表達數據與表型的關聯度(也可以理解為表達量的變化,比如log2FC)的大小進行排序。
判斷沒個基因集內的基因是否富集于表型相關度排序后的基因列表的上部或下部,從而判斷此基因集內基因的協調變化對表型變化的影響。
1.2.2GSEA原理和步驟
- 基因排序
如上圖左邊的熱圖所示,GSEA分析的第一步就是利用所有基因的表達數據,然后計算每個基因在兩個分組(或者表型)ClassA、ClassB中的差異度(GSEA提供了6種算法,默認方法是signal2 noise,GSEA官網有提供公式),然后按照在兩個表型中的差異度從大到小排序,形成一個排好序的基因列表。
- 分析基因集是否富集
這里的基因集,是事先根據功能或者其他的一些原理把很多的基因分類成不同的基因集合,具體一個基因集可以是某一個通路或者go term中的所有基因,也可以是一個miRNA靶標對應的多個基因等等。GSEA提供了多個分類基因集,在分析數據時,只需要選擇不同基因集就可以,當然也可以自己制作基因集。我們可以對每一個小的基因集(GeneSet )里面的基因對應一下上一步排序表里面的位置,例如上圖中的GeneSet1 (一個箭頭代表一個基因),看基因集里的成員在基因列表里面的分布情況是否均勻,例如GeneSet1就在基因列表中均勻分布,GeneSet2里面的成員主要分布在基因列表的頂部,GeneSet3里面的成員主要分布在基因列表的底部。如果基因集中的成員在基因列表中均勻分布,說明這個基因集不在這兩個表型中富集。如果基因集中的成員在基因列表的頂端例如圖中的GeneSet2,說明這個基因集在第一個表型ClassA中富集。如果基因集中的成員在基因列表的底部例如圖中GeneSet3,說明這個基因集在第二個表型ClassB中富集。
- 計算基因集的ES值
GSEA分析的第三步就是使用加權法計算基因集的ES值(enrichment score),對位于中部(與性狀相關性低)的部分采用較小的權值,所以越集中在兩端,與表型的相關性越高。ES曲線最大值為富集分數(Enrichment Score)。
- Permutation test
評估富集得分ES的顯著性,通過基于表型而不改變基因之間關系的排列檢驗Permutation test計算觀察到的富集得分ES出現的可能性,計算p值和FDR值。
Permutation test原理:
1)假設全部基因集L有10000個基因,包含某通路基因50個(目標基因集S),GSEA計算得到目標基因集富集分數ES=3。
2)采用隨機抽樣法,從10000個基因中抽取50個基因,構建虛擬目標基因集A,計算A的ES值。隨機抽樣10000次,從而得到虛擬ES值10000個。
3)根據真實ES值在10000個虛擬ES值中的位置,如果位于兩端極值位置(例如,前top1%或后top1%),則說明S所計算出的ES值不是隨機獲得,而是顯著偏大(說明基因集X基因的排位靠前)或顯著偏小(說明基因集X基因的排位靠后)。真實的ES值對應位置 ,例如屬于前第50名,p=50/10000
1.2.3 GSEA計算中幾個關鍵概念:
概念 | 含義 |
---|---|
計算富集得分 (ES, enrichment score) | ES反應基因集成員s在排序列表L的兩端富集的程度。計算方式是,從基因集L的第一個基因開始,計算一個累計統計值。當遇到一個落在s里面的基因,則增加統計值。遇到一個不在s里面的基因,則降低統計值。每一步統計值增加或減少的幅度與基因的表達變化程度(更嚴格的是與基因和表型的關聯度)是相關的。富集得分ES最后定義為最大的峰值。正值ES表示基因集在列表的頂部富集,負值ES表示基因集在列表的底部富集。 |
評估富集得分(ES)的顯著性 | 通過基于表型而不改變基因之間關系的排列檢驗 (permutation test)計算觀察到的富集得分(ES)出現的可能性。若樣品量少,也可基于基因集做排列檢驗 (permutation test),計算p-value。 |
多重假設檢驗矯正 | 首先對每個基因子集s計算得到的ES根據基因集的大小進行標準化得到Normalized Enrichment Score (NES)。隨后針對NES計算假陽性率。(計算NES也有另外一種方法,是計算出的ES除以排列檢驗得到的所有ES的平均值) |
Leading-edge subset | 對富集得分貢獻最大的基因成員。 |
false discovery rate | 錯誤發現率 |
1.3 GSEA和ORA方法的比較
GO富集分析是先篩選差異基因,再判斷差異基因在哪些注釋的通路存在富集,這就涉及到閾值的設定,存在一定主觀性并且只能用于表達變化較大的基因,即我們定義的顯著差異基因。
GSEA不局限于差異基因,而是從基因集的富集角度出發,理論上更容易囊括細微變化對生物通路的影響。另外,對于時間序列數據或樣品有定量屬性時,GSEA的優勢會更明顯,不需要每個分組分別進行富集,直接對整體進行處理(可以類比WGCNA分析)。
方法 | GSEA | ORA |
---|---|---|
原理 | 統一通路所有的基因是否在某些指標中靠前或靠后 | 差一基因集中某條通路所占比例是否與背景間存在顯著區別 |
特點 | 沒有固定閾值,不受限制;原理略復雜 | 篩選的閾值必須合適;原理簡單,適合大規模流程化分析 |
顯著性檢驗方法 | Premutation test(p值會有隨意性,可通過增加抽樣次數減少差異) | 超幾何分布檢驗(Fisher's Exact Test) |
??使用的基因 | 全部基因列表 | 差異基因集 |
分析是否依賴差異基因集的選取 | 不依賴 | 依賴 |
2. 多種基因注釋數據庫介紹
2.1 GO數據庫
網址:http://geneontology.org/
GO(Gene Ontology)數據庫由基因本體論聯合會建立,該數據庫將全世界所有與基因相關的研究結果進行分類匯總。對不同數據庫中關于基因和基因產物的生物學術語進行標準化,對基因和蛋白功能進行統一的限定和描述。基因本體論定義了用來描述基因功能的概念/類,以及這些概念之間的關系。GO術語組織在一個有向無環圖中,其中術語之間的邊表示父子關系。
它將功能分為三個方面:BP
(Biological Process,生物學過程)、CC
(Cellular Component,細胞元件)和MF
(Molecular Function,分子功能)。在這三個大分支下面又分很多小層級(level),level級別數字越大,功能描述越細致。通過GO注釋,可以大致了解 某個物種的全部基因產物的功能分類情況。
2.2 KEGG數據庫
網址:http://www.genome.jp/kegg
KEGG(Kyoto Encyclopedia of Genes and Genomes)是由日本京都大學和東京大學聯合開發的數據庫,是基因組測序和其他高通量實驗技術生成的大規模分子數據集的整合和解讀的參考知識庫,可以用來查詢代謝途徑、酶(或編碼酶的基因)、產物等,也可以通過BLAST比對查詢未知序列的代謝途徑信息。
KEGG是一組人工繪制的代表分子相互作用和反應網絡的通路圖。這些途徑涵蓋了廣泛的生化過程,可分為7大類:新陳代謝、遺傳和環境信息處理、細胞過程、機體系統、人類疾病和藥物開發。
2.3 Reactome數據庫
網址:https://reactome.org/
Reactome數據庫是一個免費開源的通路數據庫,提供直觀的生物信息學工具,用于可視化,解釋和分析途徑相關知識,以支持基礎研究,基因組分析,建模,系統生物學研究等。Reactome利用PSIQUIC Web服務來覆蓋Reactome功能交互網絡和外部交互數據庫(如IntAct,ChEMBL,BioGRID和Reflndex)的分子交互數據。Pathway注釋由生物學專家和Reactome編輯人員合作編寫,并交叉引用許多生物信息學數據庫。
該數據庫目前覆蓋19個物種的通路研究,包括經典的代謝通路、信號轉導、基因轉錄調控、細胞凋亡與疾病。數據庫引用了100多個不同的生物信息學資源庫,包括NCBI、Ensembl、UniProt、UCSC基因組瀏覽器、ChEBI小分子數據庫和PubMed文獻數據庫等。
2.4 MSigDB數據庫
MSigDB數據庫網址:https://www.gsea-msigdb.org/gsea/index.jsp
MSigDB數據庫是由Broad Institute研究所的科學家提出GSEA富集方法的同時提供的基因集數據庫。
該數據庫從位置、功能、代謝途徑和靶標結合等多種角度出發,構建出許多的基因集合。目前包括H和C1-C8這九個系列的基因及,可供下載以及R軟件包(msigdbr)載入,以用于富集分析。
msigdbr官網使用說明:https://cran.r-project.org/web/packages/msigdbr/vignettes/msigdbr-intro.html
基因集 | 說明 |
---|---|
H | 癌癥特征基因集合,共50 gene sets,最常用。 |
C1 | 染色體位置基因集合,共299 gene sets,用的很少。 |
C2 | 包含了已知數據庫,文獻和專家支持的基因集信息,包含5529 gene sets。 |
C3 | 調控靶基因集合,包括miRNA-target以及轉錄因子-target調控模式,3735 gene sets。 |
C4 | 計算機軟件預測出來的基因集合,主要是和癌癥相關的基因,858 gene sets。 |
C5 | Gene Ontology對應的基因集合,10192 gene sets。 |
C6 | 致癌基因集合,大部分來源于NCBI GEO發表芯片數據,189 gene sets。 |
C7 | 免疫相關基因集,4872 gene sets。 |
C8 | single cell identitiy gene sets, 302 gene sets |
msigdbr的使用:
# 1. 查看包含的物種(包含了11個物種)
library(msigdbr)
msigdbr_species()
# 2. 查看特定物種的基因集,比如小鼠
all_gene_sets = msigdbr(species = "Mus musculus")
head(all_gene_sets)
# 3. 檢索某個物種特定的基因集,如小鼠的hallmark基因集
h_gene_sets = msigdbr(species = "Mus musculus", category = "H")
head(h_gene_sets)
# 4. 檢索某個物種特定的基因集中的某個亞集,如檢索鼠類C2 (curated) CGP (chemical and genetic perturbations)基因集
cgp_gene_sets = msigdbr(species = "Mus musculus", category = "C2", subcategory = "CGP")
head(cgp_gene_sets)
# 5. 查看所有可以用的基因集
msigdbr_collections()
# 6. msigdbr()的輸出,常規的R數據框操作都可以進行
m_df = msigdbr(species = "Mus musculus") %>% dplyr::filter(gs_cat == "H")
head(m_df)
msigdbr通路富集分析
# clusterProfiler (for genes as Entrez Gene IDs).
m_t2g = m_df %>% dplyr::select(gs_name, entrez_gene) %>% as.data.frame()
enricher(gene = gene_ids_vector, TERM2GENE = m_t2g, ...)
# clusterProfiler (for genes as gene symbols).
m_t2g = m_df %>% dplyr::select(gs_name, gene_symbol) %>% as.data.frame()
enricher(gene = gene_symbols_vector, TERM2GENE = m_t2g, ...)
-# fgsea
m_list = m_df %>% split(x = .$gene_symbol, f = .$gs_name)
fgsea(pathways = m_list, ...)
注意:
msigdbr使用的是MSigDB v7.1 (released March 2020)。
可以從MSigDB 直接下載基因集,GSEABase包getGmt()函數導入數據;但是從MSigDB 的數據主要是人源的,其他物種少一些。
如果通過改變基因大小寫來進心人源和鼠的基因轉化,會有一小部分基因失敗。
不使用msigdbr包,biomaRt 可以進行物種間同源基因轉換;但是會面對一對多的情況。
Ge Lab Gene Set Files 也提供多個物種的GMT文件供下載; WEHI也提供人類和鼠類的MSigDB 基因集,但是數據只是 Entrez ID以及每個基因集是單獨的文件。 MSigDF 是基于WEHI 數據的。
2.5 數據庫總結
數據庫 | 適用范圍 | 特點 |
---|---|---|
GO | 幾乎所有物種 | 分為3個方面:BP(生物學過程)、CC(細胞元件)和MF(分子功能)。 |
KEGG | 幾乎所有物種 | 分為7大類:新陳代餓、遺傳和環境系信息處理、細胞過程、機體系統、人類疾病和藥物開發。 |
Reactome | 19個物種 | 包括經典的代謝通路、信號轉導、基因轉錄調控、細胞凋亡和疾病 |
MSigDB | 11個物種 | 包括H和C1-C8九個部分(Collection),可以直接使用,也可以用其中的一部分進行分析。 |