手把手教你一个不一样的通路富集分析工具—ActivePathways 2024-08-04 12:22:26 多组学通路富集分析工具:ActivePathwaysActivePathways是一种在分子通路、生物学过程和其他类型基因集的背景下分析多个组学数据集的方法。该软件包通过合并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 runread.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.htmlEnrichmentMap app of Cytoscape, see menu Apps>App manager or http://apps.cytoscape.org/apps/enrichmentmapEhancedGraphics 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-9https://cran.rproject.org/web/packages/ActivePathways/vignettes/ActivePathways-vignette.html 赞 (0) 相关推荐 ”基因集打分“GSEA算法详解 前两天介绍了一个开发中的单细胞数据分析相关R包,内置了,4(热图,气泡图,upset图,堆叠条形图)+4(密度散点图,半小提琴,山峦图,密度热图)美图,见 8种方法可视化你的单细胞基因集打分 ,蛮多小 ... 关闭 cytoscape的十大插件之之三--stringApp 五一劳动节,连续五天,在钉钉群直播互动授课带领大家系统性掌握cytoscape软件的使用方法和技巧!见:生信必备技能--Cytoscape 下面是cytoscape讲师的笔记 一.stringApp插 ... cytoscape的十大插件之二--MCODE插件 五一劳动节,连续五天,在钉钉群直播互动授课带领大家系统性掌握cytoscape软件的使用方法和技巧!见:生信必备技能--Cytoscape 下面是cytoscape讲师的笔记 一.MCODE插件 关于 ... cytoscape的十大插件之四--BiNGO插件 五一劳动节,连续五天,在钉钉群直播互动授课带领大家系统性掌握cytoscape软件的使用方法和技巧!见:生信必备技能--Cytoscape 下面是cytoscape讲师的笔记 BiNGO插件 基因富集 ... 同一科室一批数据一套分析发2遍? 最近,土笋冻在解读文献的时候发现一篇"超级有趣"的文献,同一个科室靠着同一套路发了2篇相似度很高的文章! 这不,美名其曰:数据集的多次利用! 作者在2020年七月发表在Medici ... cytoscape插件之Cluego&Cluepedia 五一劳动节,连续五天,在钉钉群直播互动授课带领大家系统性掌握cytoscape软件的使用方法和技巧,课程已经结束啦.文末有录播回放学习方式,以及配套授课资料! 下面是cytoscape讲师的笔记 一. ... 如何了解一个基因的功能 我们研究一个基因的时候,首先还是要知道这个基因的功能的.之前介绍很多数据库都可以用来查询基因的功能.比如最经典的genecards数据库介绍或者ncbi-gene数据库介绍在这两个基因综合信息查询数据 ... 手把手教你一个简单粗暴的赚钱方法,年入百... 手把手教你一个简单粗暴的赚钱方法,年入百万不是问题,没成本会聊天就可以做的生意.已经经过验证,实操性很强. 民宿大家都知道,对吧?有很多平台,一打开那个软件,上面可以说有成千上万的民宿个体,而且有很多 ... 领导教我一个方法,从此之后,分析问题就比较全面了 领导教我一个方法,从此之后,分析问题就比较全面了 最难写的字繁,老师教你一个方法,上下拆开来分析,就不怕了! 最难写的字繁,老师教你一个方法,上下拆开来分析,就不怕了! 手把手教你编写高概率上涨的选股指标——工具视频 手把手教你编写高概率上涨的选股指标——工具视频 「手把手教你」使用pyfinance进行证券收益分析 pyfinance简介 在查找如何使用Python实现滚动回归时,发现一个很有用的量化金融包--pyfinance.顾名思义,pyfinance是为投资管理和证券收益分析而构建的Python分析包,主 ... 手把手教你在Keil MDK中使用GCC编译器工具链 Keil MDK 是否支持编译器?有没有办法选择其他编译器? 可能你使用其他GUN工具链进行编译时,会出现类似如下错误: --- Error: can't execute 'as'--- Error: ... 微信7个不太正经的冷知识,每一个都很实用,手把手教你玩转微信 微信上好用的功能很多,经常会有意外的发现.今天就来给大家分享7个不太正经的微信冷技巧,每一个都很实用,手把手教你如何玩转微信. 1.微信视频剪辑 微信视频也是可以剪辑的,不过很少人知道. 平时在发布朋 ... 详细图解,手把手教你布置一个有美感的茶席! 何为"茶席"? "茶席"从狭义来说,是指"泡茶席",即是泡茶时,摆放茶具的桌面:从广义来说,泡茶席.茶室.茶屋等都包括在"茶席&q ... 手把手教你,微信里这个'十'号用途大,另一个功能也很牛。 手把手教你,微信里这个&#39;十&#39;号用途大,另一个功能也很牛。