多組學通路富集分析工具—ActivePathways
ActivePathways是一種在分子通路、生物學過程和其他類型基因集的背景下分析多個組學數(shù)據(jù)集的方法。該軟件包通過合并p值來組合基因或蛋白質(zhì)水平的信號,然后進行rank超幾何檢驗以確定富集的途徑和過程。接下來小編詳細的向大家介紹該工具的原理,并細致的教大家如何使用R包,以及利用Cytoscape繪制富集網(wǎng)絡(luò)圖。只要你耐心的按照教程操作,就一定能輕松且徹底掌握這個工具。那接下來我們就開始吧!!
原理及分析流程:
一、ActivePathways需要兩個輸入數(shù)據(jù)集:(1)一個 p 值矩陣,行名為基因,列代表來自不同數(shù)據(jù)集的證據(jù)。這些列可以包括差異基因表達、基因重要性、突變或拷貝數(shù)改變負荷的 p 值,也可以是使用特定平臺的量化方法得出的許多其他值(說簡單點就是一個基因集根據(jù)不同的分析會獲得多組p值)。(2)一組基因集,代表通路的基因功能和相互作用的集體知識。最常見的分析是利用來自GO的生物過程和來自 Reactome 數(shù)據(jù)庫的分子途徑。根據(jù)假設(shè),這些數(shù)據(jù)還可能包括許多其他類型的基因集,例如轉(zhuǎn)錄因子或 microRNA 的靶點等。

二、如圖,(1) 使用 Brown方法合并基因P值并過濾以生成一個整合基因列表,通過降低重要性和寬松閾值對基因進行排序;(2) 使用rank超幾何檢驗對整合的基因列表進行通路富集分析;(3) 輸入整體中的單個基因列表,使用rank超幾何檢驗分析通路富集,看整體富集的這些通路哪個個體因素的貢獻最大。

三、ActivePathways最終得到綜合基因列表中的富集通路列表、具有顯著Brown p值的相關(guān)基因以及支持每個通路的證據(jù)注釋。 ActivePathways 的結(jié)果被可視化為富集圖,其中節(jié)點對應(yīng)通路,并且具有許多共享基因的通路連接到一起代表更廣泛的生物主題網(wǎng)絡(luò)。

R包的使用:
示例:對癌癥基因組的癌癥驅(qū)動基因進行分析預測。矩陣中每一列代表預測的p 值,對于每個基因,有幾個代表基因組元素的預測,例如編碼序列 (CDS)、非翻譯區(qū) (UTR) 和核心啟動子 (promCore)。為了使用現(xiàn)有的基因功能知識分析這些驅(qū)動基因,我們將使用與 Reactome 數(shù)據(jù)庫中已知分子途徑相對應(yīng)的基因集。這些基因集存儲在GMT格式的文本文件中。
#####加載R包
#install.packages("ActivePathways")
library(ActivePathways)
##輸入基因?qū)?yīng)的p值矩陣(示例文件):
##extdata:文件夾名; Adenocarcinoma_scores_subset.tsv:p值文件
scores <- read.table(system.file('extdata', 'Adenocarcinoma_scores_subset.tsv', package = 'ActivePathways'),
header = TRUE, sep = '\t', row.names = 'Gene')
輸入的必須是矩陣
scores <- as.matrix(scores)
scores

ActivePathways 不允許p值矩陣中有NA ,所以要么將所有缺失值重新分配為 1,要么刪除具有NA值的基因。
scores[is.na(scores)] <- 1

基礎(chǔ)應(yīng)用
###輸入基因集(示例文件):
##hsapiens_REAC_subset.gmt:Reactome的通路基因集
gmt.file <- system.file('extdata', 'hsapiens_REAC_subset.gmt', package = 'ActivePathways')
######通路分析
ActivePathways(scores, gmt.file, significant = 0.05,geneset.filter = c(10, 500))
參數(shù)簡介:
#####篩選通路
significant:富集通路對應(yīng)p值的閾值,只顯示校正后的p值<=0.05的通路
####篩選基因集
對于富集分析用到的GMT文件中的功能基因集,一般來說,太大的基因集可能不具有特異性,在解釋數(shù)據(jù)時不太有用,還可能導致分析中富集分數(shù)的統(tǒng)計膨脹。太小的基因集可能太特異,并且還會使多重檢驗校正更加嚴格,從而可能導致結(jié)果的緊縮,因此可以通過參數(shù)進行過濾。
geneset.filter:刪除GMT文件中少于 10 個或多于 500 個注釋基因的通路
####更改背景基因集
為了進行通路富集分析,需要將一組全局基因定義為統(tǒng)計背景集。默認情況下,此背景基因集包括在任何生物過程和途徑的GMT文件中找到的每個基因。
注:只有在背景中發(fā)現(xiàn)的基因才用于富集分析。輸入數(shù)據(jù)中任何不在背景集中的基因都將被ActivePathways自動刪除。
background:設(shè)置背景基因集
####將刪除掉TP53的基因作為背景基因
background <- makeBackground(gmt)
background <- background[background != 'TP53']
ActivePathways(scores, gmt.file, background = background)
###合并p值
合并p值的兩種主要方法是 Brown(默認)和 Fisher。在大多數(shù)情況下推薦使用 Brown方法。
merge_p_values:將p值按照Brown/Fisher方法進行合并
以下示例比較了兩種方法之間前幾個基因的合并p值。得分最高的基因是相同的,而第二種方法的p值稍微保守一些。
sort(merge_p_values(scores, 'Fisher'))[1:5]

sort(merge_p_values(scores, 'Brown'))[1:5]

merge_p_values可在分析之前組合一些數(shù)據(jù),以進行任何后續(xù)分析或可視化。
例如,我們可以將 X5UTR、X3UTR 和 promCore 列合并為一個非編碼列。這會將三個非編碼區(qū)域視為單個列,而不是將它們?nèi)抠x予 CDS 列相同的權(quán)重。
scores2 <- cbind(scores[, 'CDS'], merge_p_values(scores[, c('X3UTR', 'X5UTR', 'promCore')], 'Brown'))
colnames(scores2) <- c('CDS', 'non_coding')
##合并前
scores[c(2179, 1760),]

##合并后
scores2[c(2179, 1760),]

然后再進行通路富集分析
ActivePathways(scores2, gmt.file)
###篩選用于通路富集分析的排序基因列表的閾值
為了對合并p值的排序基因列表進行通路富集,ActivePathways 定義了一個 p 值閾值來過濾沒有意義的基因。小于該閾值的基因被視為感興趣基因。默認情況下閾值為 0.1,但可以使用閾值選項進行更改。
nrow(ActivePathways(scores, gmt.file, cutoff = 0.01))
cutoff:基因重要性的閾值,只用合并p值<0.01的基因進行通路分析
###使用多重檢驗校正調(diào)整 p 值
ActivePathways 在通路分析中使用多重檢驗校正對p值進行調(diào)整。該包使用基礎(chǔ) R 的 p.adjust 函數(shù)來運行多個檢驗校正,并且該函數(shù)中的所有方法都可用。 默認情況下,使用“holm”校正。
ActivePathways(scores, gmt.file, correction.method = 'none')
correct.method :p值檢驗校正的方法(同p.adjust),correct.method= 'none' 表示不對p值進行校正(在大多數(shù)情況下不推薦)。
ActivePathways的結(jié)果:



term.id、term.name 和 term.size 列提供了有關(guān)富集分析中檢測到的每個通路的信息(通路id,名稱及通路大小)。 adjusted.p.val列表示調(diào)整后的P值。overlap列表示給定基因集與輸入排序基因列表的交集。注:首先列出了多個數(shù)據(jù)集中得分最高的基因。evidence列表示矩陣中的哪一列有助于在集成富集分析中發(fā)現(xiàn)該途徑或過程(CDS)。最后,如果發(fā)現(xiàn)一條通路僅包含組合數(shù)據(jù)而不是任何單獨的列,則“組合”將被列為證據(jù)('X3UTR', 'promCore')。Genes_{column}顯示了識別到的通路與和單個輸入組學數(shù)據(jù)集中基因的交集。
將結(jié)果寫入 CSV 文件
由于需要一些額外的數(shù)據(jù)結(jié)構(gòu)來存儲基因ID列表和支持證據(jù),結(jié)果作為 data.table 對象返回。通常的 R 函數(shù) write.table 和 write.csv 將難以導出數(shù)據(jù),除非基因和證據(jù)列表手動轉(zhuǎn)換為字符串。幸運的是,data.table 的 fwrite 函數(shù)可用于直接寫入文件,或者ActivePathways 包中包含函數(shù) export_as_CSV 可作為使用豎線符號連接基因列表的快捷方式。
result.file <- paste('ActivePathways_results.csv', sep = '/')
export_as_CSV (res, result.file) # remove comment to run
read.csv(result.file, stringsAsFactors = F)[1:3,]
result.file <- paste('ActivePathways_results2.txt', sep = '/')
data.table::fwrite(res, result.file, sep = '\t', sep2 = c('', ',', ''))
cat(paste(readLines(result.file)[1:2], collapse = '\n'))
使用 Cytoscape 中的富集圖可視化通路富集結(jié)果
需要的文件
Cytoscape 軟件和 EnrichmentMap 應(yīng)用程序提供了強大的工具,可將來自 ActivePathways 的富集通路可視化為網(wǎng)絡(luò)(即富集圖)。 為了進行可視化步驟,ActivePathways 需要提供構(gòu)建富集圖所需的文件。要創(chuàng)建這些文件,必須使用參數(shù) cytoscape.file.tag 向 ActivePathways 提供文件前綴。
同樣地,首先我們需要有p值矩陣:scores;以及通路基因集文件:gmt.file;
其他需求可以通過更改上述參數(shù)執(zhí)行。最關(guān)鍵的是定義好當前工作路徑,設(shè)置cytoscape.file.tag參數(shù)后,四個文件會寫入到當前工作路徑中。
setwd(“E:/ActivePathways/”)
res <- ActivePathways(scores, gmt.file, cytoscape.file.tag = "enrichmentMap__")
執(zhí)行完上述命令后,會在E盤的ActivePathways文件夾中生成四個文件:

四個文件分別為:
enrichmentMap__pathways.txt : 重要術(shù)語列表(即分子途徑、生物過程、其他基因集)和相關(guān)的調(diào)整后 p 值。注:僅寫入了帶有 adjust.p.val <= significant的項。

enrichmentMap__subgroups.txt:一個矩陣,代表有助于發(fā)現(xiàn)相應(yīng)途徑的 p 值輸入矩陣的列。其中值為 1 表示使用特定的輸入組學數(shù)據(jù)集也可以檢測到該途徑。零值則相反。如果僅向 ActivePathways 提供對應(yīng)于一個組學數(shù)據(jù)集的單列分數(shù)矩陣,則不會生成此文件。

enrichmentMap__pathways.gmt:提供的 GMT 文件的縮短版本,該文件僅包含 ActivePathways 檢測到的重要途徑。

enrichmentMap__legend.pdf: 一個 pdf 文件,顯示富集圖中可視化的不同組學數(shù)據(jù)集的顏色圖例,可用作生成的富集圖的參考。

需要的軟件:
Cytoscape, see https://cytoscape.org/download.html
EnrichmentMap app of Cytoscape, see menu Apps>App manager or http://apps.cytoscape.org/apps/enrichmentmap
EhancedGraphics app of Cytoscape, see menu Apps>App manager or http://apps.cytoscape.org/apps/enhancedGraphics
首先去官網(wǎng)下載最新版本的Cytoscape,接下來打開Cytoscape界面的Apps>App manager,分別找到EnrichmentMap和EhancedGraphics插件,點擊右下角的Install。

加載之后插件名稱的后面會顯示加載完成。

創(chuàng)建富集圖
打開 Cytoscape 軟件。
單擊菜單Apps -> App Manager.
Select Apps -> EnrichmentMap.
在下面的對話框中,單擊對話框左上角的按鈕 “+”從文件添加數(shù)據(jù)集。
將分析類型更改為 Generic/gProfiler/Enrichr。
分別在 Enrichments 和 GMT 字段中上傳文件enchmentMap__pathways.txt 和enrichmentMap__pathways.gmt。
單擊復選框顯示高級選項并將Cutoff設(shè)置為 0.6。
然后單擊右下角的Build以創(chuàng)建富集圖。


為網(wǎng)絡(luò)節(jié)點著色以可視化支持組學數(shù)據(jù)集
要根據(jù)支持富集的組學數(shù)據(jù)集為網(wǎng)絡(luò)中的節(jié)點(即分子通路、生物過程)著色,需要將第三個文件enrichmentMap__subgroups.txt 直接導入到 Cytoscape:點擊菜單選項 File -> Import -> Table from File 并選擇文件enrichmentMap__subgroups.txt。在下面的對話框中,在下拉菜單中選擇“Where to Import Table data”中的“To a Network Collection ”。單擊“OK”繼續(xù)。

接下來,Cytoscape 需要利用導入的信息使用餅圖可視化為節(jié)點著色:單擊左側(cè)控制面板中的Style選項

接下來依次選擇Properties -> Paint -> Custom Paint 1 -> Image/Chart 1

Image/Chart 1屬性就會出現(xiàn)在Style控制面板中,單擊右側(cè)的三角形, 將Column 設(shè)置為 instruct ,將Mapping type設(shè)置為 Passthrough.

最終,根據(jù)最初在 ActivePathways 中分析的p值矩陣,根據(jù)支持的組學數(shù)據(jù)集對與富集通路對應(yīng)的節(jié)點進行著色。

圖例在enrichmentMap__legend.pdf文件中

這樣一個特別的富集分析圖就完成了。
參考文獻及網(wǎng)頁:
https://pubmed.ncbi.nlm.nih.gov/32024846/ https://doi.org/10.1038/s41467-019-13983-9
https://cran.r-project.org/web/packages/ActivePathways/vignettes/ActivePathways-vignette.html