首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >详解GO的层级关系在富集分析中的应用

详解GO的层级关系在富集分析中的应用

作者头像
生信修炼手册
发布2020-05-08 16:48:12
2.2K0
发布2020-05-08 16:48:12
举报
文章被收录于专栏:生信修炼手册生信修炼手册

欢迎关注”生信修炼手册”!

对于Gene ontology 而言,目前共有2万多个Go trems。 做完富集分析后,我们可能会得到几百甚至几千个富集到的GO terms, 这样的一个数据量对于人工一个个检索而言,仍然是一个艰巨的任务。为了有效的利用GO富集分析的结果,我们势必需要对结果再次进行过滤。

所有GO的层次结构关系如下图所示

这样的结构我们称之为有向无环图DAG, 虽然在图这种数据结构中,节点并没有严格的层级关系,但是由于在GO这张图中,存在了祖先节点,即最上层的3个节点,其他的节点都可以看做是其子节点,从而引用了树状结构中的level的概念,定义子节点到祖先节点的路径上包含的节点数即为该节点的level,祖先节点的level为1. 示意图如下

需要注意的是,由于子节点到祖先节点的路径不止一条,所以一个子节点可能拥有用多个level, 这意味着GO terms的level不是一个值,在使用level对GO Terms进行过滤时就需要注意。

想象一下,对于一个有多个level的GO term, 我们采用哪个值来表征其level, 是取最大值,还是最小值,或者是均值,由于不同取值算法带来的不确定性,所以采用level对GO过滤会存在一定风险,特别是level很大时。比如我们只选取level > 7的GO terms, 无论是用哪个值作为level, 其过滤的结果和我们预期的都是不符合的。

GO官网对于GO level也进行了说明,参考以下链接

http://www.geneontology.org/faq/how-can-i-calculate-level-go-term

传统的费舍尔精确检验也好,GSEA也罢,这些富集分析的算法都只是为单个GO term进行分析,不会考虑该GO term在整个网状结果中的层级关系。对于这些分析的结果,采用上述的GO level 进行过滤时,只能是采用较小的level, 在一下R包中,比如goprofiler, 推荐的最小层级是level为2。

采用level对结果过滤效果有限,为了有效筛选结果,出现了Gene Ontolgy network analysis,示意图如下

根据所有富集到的GO terms, 从整个GO Graph中取出一个子图subgraph, 图中有颜色的节点为富集到的GO, 颜色的深浅有P值决定, 节点的大小由degree决定。

根据这个network, 应用图论的算法可以挖掘出其中重要的GO term,从而实现对GO富集结果的过滤。

·end·

—如果喜欢,快分享给你的朋友们吧—

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-10-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生信修炼手册 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档