手把手教你一个不一样的通路富集分析工具—ActivePathways

多组学通路富集分析工具:ActivePathways
ActivePathways是一种在分子通路、生物学过程和其他类型基因集的背景下分析多个组学数据集的方法。该软件包通过合并p值来组合基因或蛋白质水平的信号,然后进行rank超几何检验以确定富集的途径和过程。接下来小编详细的向大家介绍该工具的原理,并细致的教大家如何使用R包,以及利用Cytoscape绘制富集网络图。只要你耐心的按照教程操作,就一定能轻松且彻底掌握这个工具。那接下来我们就开始吧!!
原理及分析流程:
一、ActivePathways需要两个输入数据集:(1)一个 p 值矩阵,行名为基因,列代表来自不同数据集的证据。这些列可以包括差异基因表达、基因重要性、突变或拷贝数改变负荷的 p 值,也可以是使用特定平台的量化方法得出的许多其他值(说简单点就是一个基因集根据不同的分析会获得多组p值)。(2)一组基因集,代表通路的基因功能和相互作用的集体知识。最常见的分析是利用来自GO的生物过程和来自 Reactome 数据库的分子途径。根据假设,这些数据还可能包括许多其他类型的基因集,例如转录因子或 microRNA 的靶点等。
二、如图,(1) 使用 Brown方法合并基因P值并过滤以生成一个整合基因列表,通过降低重要性和宽松阈值对基因进行排序;(2) 使用rank超几何检验对整合的基因列表进行通路富集分析;(3) 输入整体中的单个基因列表,使用rank超几何检验分析通路富集,看整体富集的这些通路哪个个体因素的贡献最大。
三、ActivePathways最终得到综合基因列表中的富集通路列表、具有显著Brown p值的相关基因以及支持每个通路的证据注释。ActivePathways 的结果被可视化为富集图,其中节点对应通路,并且具有许多共享基因的通路连接到一起代表更广泛的生物主题网络。
R包的使用:
示例:对癌症基因组的癌症驱动基因进行分析预测。矩阵中每一列代表预测的p 值,对于每个基因,有几个代表基因组元素的预测,例如编码序列 (CDS)、非翻译区 (UTR) 和核心启动子 (promCore)。为了使用现有的基因功能知识分析这些驱动基因,我们将使用与 Reactome 数据库中已知分子途径相对应的基因集。这些基因集存储在GMT格式的文本文件中。
#####加载R包
#install.packages('ActivePathways')
library(ActivePathways)
##输入基因对应的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
基础应用
###输入基因集(示例文件):
##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))
参数简介:
#####筛选通路
significant:富集通路对应p值的阈值,只显示校正后的p值<=0.05的通路
####筛选基因集
对于富集分析用到的GMT文件中的功能基因集,一般来说,太大的基因集可能不具有特异性,在解释数据时不太有用,还可能导致分析中富集分数的统计膨胀。太小的基因集可能太特异,并且还会使多重检验校正更加严格,从而可能导致结果的紧缩,因此可以通过参数进行过滤。
geneset.filter:删除GMT文件中少于 10 个或多于 500 个注释基因的通路
####更改背景基因集
为了进行通路富集分析,需要将一组全局基因定义为统计背景集。默认情况下,此背景基因集包括在任何生物过程和途径的GMT文件中找到的每个基因。
注:只有在背景中发现的基因才用于富集分析。输入数据中任何不在背景集中的基因都将被ActivePathways自动删除。
background:设置背景基因集
####将删除掉TP53的基因作为背景基因
background <- makeBackground(gmt)
background <- background[background != 'TP53']
ActivePathways(scores, gmt.file, background = background)
###合并p值
合并p值的两种主要方法是 Brown(默认)和 Fisher。在大多数情况下推荐使用 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可在分析之前组合一些数据,以进行任何后续分析或可视化。
例如,我们可以将 X5UTR、X3UTR 和 promCore 列合并为一个非编码列。这会将三个非编码区域视为单个列,而不是将它们全部赋予 CDS 列相同的权重。
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的基因进行通路分析
###使用多重检验校正调整 p 值
ActivePathways 在通路分析中使用多重检验校正对p值进行调整。该包使用基础 R 的 p.adjust 函数来运行多个检验校正,并且该函数中的所有方法都可用。默认情况下,使用“holm”校正。
ActivePathways(scores, gmt.file, correction.method = 'none')
correct.method :p值检验校正的方法(同p.adjust),correct.method= 'none' 表示不对p值进行校正(在大多数情况下不推荐)。
ActivePathways的结果:
term.id、term.name 和 term.size 列提供了有关富集分析中检测到的每个通路的信息(通路id,名称及通路大小)。adjusted.p.val列表示调整后的P值。overlap列表示给定基因集与输入排序基因列表的交集。注:首先列出了多个数据集中得分最高的基因。evidence列表示矩阵中的哪一列有助于在集成富集分析中发现该途径或过程(CDS)。最后,如果发现一条通路仅包含组合数据而不是任何单独的列,则“组合”将被列为证据('X3UTR', 'promCore')。Genes_{column}显示了识别到的通路与和单个输入组学数据集中基因的交集。
将结果写入 CSV 文件
由于需要一些额外的数据结构来存储基因ID列表和支持证据,结果作为 data.table 对象返回。通常的 R 函数 write.table 和 write.csv 将难以导出数据,除非基因和证据列表手动转换为字符串。幸运的是,data.table 的 fwrite 函数可用于直接写入文件,或者ActivePathways 包中包含函数 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 中的富集图可视化通路富集结果
需要的文件
Cytoscape 软件和 EnrichmentMap 应用程序提供了强大的工具,可将来自 ActivePathways 的富集通路可视化为网络(即富集图)。为了进行可视化步骤,ActivePathways 需要提供构建富集图所需的文件。要创建这些文件,必须使用参数 cytoscape.file.tag 向 ActivePathways 提供文件前缀。
同样地,首先我们需要有p值矩阵:scores;以及通路基因集文件:gmt.file;
其他需求可以通过更改上述参数执行。最关键的是定义好当前工作路径,设置cytoscape.file.tag参数后,四个文件会写入到当前工作路径中。
setwd(“E:/ActivePathways/”)
res <- ActivePathways(scores, gmt.file, cytoscape.file.tag = 'enrichmentMap__')
执行完上述命令后,会在E盘的ActivePathways文件夹中生成四个文件:
四个文件分别为:
enrichmentMap__pathways.txt : 重要术语列表(即分子途径、生物过程、其他基因集)和相关的调整后 p 值。注:仅写入了带有 adjust.p.val <= significant的项。
enrichmentMap__subgroups.txt:一个矩阵,代表有助于发现相应途径的 p 值输入矩阵的列。其中值为 1 表示使用特定的输入组学数据集也可以检测到该途径。零值则相反。如果仅向 ActivePathways 提供对应于一个组学数据集的单列分数矩阵,则不会生成此文件。
enrichmentMap__pathways.gmt:提供的 GMT 文件的缩短版本,该文件仅包含 ActivePathways 检测到的重要途径。
enrichmentMap__legend.pdf: 一个 pdf 文件,显示富集图中可视化的不同组学数据集的颜色图例,可用作生成的富集图的参考。
需要的软件:
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
首先去官网下载最新版本的Cytoscape,接下来打开Cytoscape界面的Apps>App manager,分别找到EnrichmentMap和EhancedGraphics插件,点击右下角的Install。
加载之后插件名称的后面会显示加载完成。
创建富集图
打开 Cytoscape 软件。
单击菜单Apps -> App Manager.
Select Apps -> EnrichmentMap.
在下面的对话框中,单击对话框左上角的按钮 “+”从文件添加数据集。
将分析类型更改为 Generic/gProfiler/Enrichr。
分别在 Enrichments 和 GMT 字段中上传文件enchmentMap__pathways.txt 和enrichmentMap__pathways.gmt。
单击复选框显示高级选项并将Cutoff设置为 0.6。
然后单击右下角的Build以创建富集图。
为网络节点着色以可视化支持组学数据集
要根据支持富集的组学数据集为网络中的节点(即分子通路、生物过程)着色,需要将第三个文件enrichmentMap__subgroups.txt 直接导入到 Cytoscape:点击菜单选项 File -> Import -> Table from File 并选择文件enrichmentMap__subgroups.txt。在下面的对话框中,在下拉菜单中选择“Where to Import Table data”中的“To a Network Collection ”。单击“OK”继续。
接下来,Cytoscape 需要利用导入的信息使用饼图可视化为节点着色:单击左侧控制面板中的Style选项
接下来依次选择Properties -> Paint -> Custom Paint 1 -> Image/Chart 1
Image/Chart 1属性就会出现在Style控制面板中,单击右侧的三角形, 将Column 设置为 instruct ,将Mapping type设置为 Passthrough.
最终,根据最初在 ActivePathways 中分析的p值矩阵,根据支持的组学数据集对与富集通路对应的节点进行着色。
图例在enrichmentMap__legend.pdf文件中
这样一个特别的富集分析图就完成了。
参考文献及网页:
https://pubmed.ncbi.nlm.nih.gov/32024846/ https://doi.org/10.1038/s41467-019-13983-9
https://cran.rproject.org/web/packages/ActivePathways/vignettes/ActivePathways-vignette.html
(0)

相关推荐