1.為什么寫?
網上教程一抓一大把,有的能重復,有的不能重復不了,很多原因。別人能做的不代表你能復制,實踐出真知。
不做搬運工,只寫有用的,防止以后忘記。每個人理解不同,記錄下來,供自己今后參考,順便分享他人。
2.GSEA基本概念
Gene Set Enrichment Analysis
思路:
使用預定義的基因集(通常來自功能注釋或先前實驗的結果),將基因按照在兩類樣本中的差異表達程度排序,然后檢驗預先設定的基因集合是否在這個排序表的頂端或者底端富集。
基因集富集分析檢測基因集合而不是單個基因的表達變化,因此可以包含這些細微的表達變化,預期得到更為理想的結果。
比較GO/KEGG等富集分析:
GO/KEGG差異基因的一刀切法——僅關注少數幾個顯著上調或下調的基因,容易遺漏部分差異表達不顯著卻有重要生物學意義的基因,忽略一些基因的生物特性、基因調控網絡之間的關系及基因功能和意義等有價值的信息。
GSEA不需要指定明確的差異基因閾值,算法根據實際整體趨勢分析。
3.MSigDB數據庫
http://software.broadinstitute.org/gsea/msigdb
定義了已知基因集,包括H和C1-C7八個系列(Collection/cluster),每個系列內容為:
H: hallmark gene sets (效應)特征基因集合,共50組;
C1: positional gene sets 位置基因集合,根據染色體位置,共326個;
C2: curated gene sets:(專家)共識基因集合,基于通路、文獻等(包括KEGG);
C3: motif gene sets:模式基因集合,主要包括microRNA和轉錄因子靶基因兩部分;
C4: computational gene sets:計算基因集合,通過挖掘癌癥相關芯片數據定義的基因集合;
C5: GO gene sets:Gene Ontology 基因本體論(包括BP/CC/MF);
C6: oncogenic signatures:癌癥特征基因集合,大部分來源于NCBI GEO 未發表芯片數據;
C7: immunologic signatures: 免疫相關基因集合。
后續做分析時需要從中選擇感興趣的基因集。
4.分析過程
1)軟件下載(需java環境)
http://software.broadinstitute.org/gsea/downloads.jsp
2)設置
a. 準備基因表達量矩陣文件:txt或gct(最好將基因名轉換為symbol,后續參數不用chip來轉化ID)
數據格式可參考:
http://www.broadinstitute.org/cancer/software/gsea/wiki/index.php/Data_formats
測試數據:
http://software.broadinstitute.org/gsea/datasets.jsp
b. 準備說明文件:cls
第一行:樣本數/分組數/always1
第二行:分組名
第三行:分組信息(我這里28個上部位,21個下部位)
load data,成功會顯示
c. 選擇已知基因集(即以上8個cluster)
run GSEA,設置參數
Gene sets database:8個cluster及其分支,可多選
我這里選擇kegg和all GO,若是想研究更多,可8個cluster全部選擇all。
d. 設置參數:
Required fields
expression dataset:選擇表達量文件
number of permutations:置換次數,越大越好,但對計算有要求,我選擇500
phenotype labels:選擇表型說明文件cls
collapse dataset to gene symbols:若是gene symbols編號,選擇false(我這里已經提前轉換),否則選擇true,即用chip來對ID轉換
permutation type:置換類型,#一般每組樣本數目大于7個時,建議選擇phenotype,否則選擇gene sets,官方文檔有說明#,我這里還是選擇gene_set
chip platform:和上面gene symbols參數對應,不需轉換不用選擇,否則選擇對應的芯片
Basic fields
analysis name:項目名
save results in this folder:結果保存路徑
其他我都設置為默認,沒有深加探索,可看官網,最后點run
GSEA運行的原理可分為三步:1) 計算富集分數(Enrichment Score,ES);2) 估計富集分數的顯著性水平;3) 矯正多重假設檢驗。
完成后顯示:
5.結果解讀
保存文件路徑中生成一堆文件:
最常看的是這種圖:
** 原理:**
根據所有基因在兩組樣本(case-control,我這里是upper-lower)的差異度量不同(共有六種差異度量,默認是signal 2 noise,GSEA官網有提供公式,也可以選擇大家熟悉的foldchange),根據差異度量大小排序,并且Z-score標準化。圖中間的豎杠,就是每個gene set里的基因在所有排序好基因的位置,如果gene set里的基因集中在所有基因的前部分,就是在case里面富集,如果集中在后面部分,就是在control里面富集著(結果中的熱圖就是豎杠的具象)。
我們一般關注ES值,峰出現在前端還是后端(ES值大于0在前端,小于0在后端)以及Leading-edge subset(即對富集貢獻最大的部分,領頭亞集);在ES圖中出現領頭亞集的形狀,表明這個功能基因集在某處理條件下具有更顯著的生物學意義。
ES算法:
每個基因在gene set里的ES score取決于這個基因是否屬于該gene set及其差異度量,上圖的差異度量就是FC(foldchange),將每個gene set里的所有基因的ES score一個個加起來,叫running ES score,直到ES score達到最大值,就是這個gene set最終的ES score。
可以一一查看每個圖,也可點擊上面的GSEA reports查看success的網頁報告:
gsea_report報告結果中會有一個類似下圖的表格,主要關注這三個部分:
標準化富集分數(NES);
標準化顯著性水平(NOM p-val);
矯正多重假設檢驗(FDR q-val);
一般認為NES絕對值≧ 1.0,NOM p-val ≦ 0.05,FDR q-val ≦ 0.25是有意義的基因集合,當然也要結合具體情況具體分析。
如果英語好,直接看官方文檔,很詳細:http://www.gsea-msigdb.org/gsea/doc/GSEAUserGuideFrame.html?_Interpreting_GSEA_Results
References:
https://mp.weixin.qq.com/s/NnRfeTLDb-42a8CV3kymZQ
http://www.bio-info-trainee.com/1282.html
http://www.bioinfo-scrounger.com/archives/557
ES算法:http://www.baderlab.org/CancerStemCellProject/VeroniqueVoisin/AdditionalResources/GSEA