前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >rrvgo--基于语义相似度简化GO富集结果冗余

rrvgo--基于语义相似度简化GO富集结果冗余

作者头像
作图丫
发布于 2022-03-28 06:56:26
发布于 2022-03-28 06:56:26
2.4K00
代码可运行
举报
文章被收录于专栏:作图丫作图丫
运行总次数:0
代码可运行

导语

GUIDE ╲

Gene Ontology分为分子功能,生物过程和细胞组成三个部分。蛋白质或者基因可以通过ID对应或者序列注释的方法找到与之对应的GO号,而GO号可对应到Term,即功能类别或者细胞定位。这也是GO富集的一个基础。

背景介绍

基因本体论 (GO) 通常用于指导高通量组学实验,将差异调节基因列表汇总为具有共同功能表示的基因集合。由于 Gene Ontology 的分层性质,生成的丰富集列表通常是多余的并且难以解释。今天小编给大家介绍的是一个基于语义相似性识别冗余来减少和可视化GO结果列表的R包rrvgo。

R包安装

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
BiocManager::install("rrvgo")
library(rrvgo)

可视化介绍

01

计算相似度矩阵并减少GO terms

rrvgo不关心基因,而是关心 GO terms。输入是一个富集的 GO terms向量,以及分数向量。如果未提供分数,则 rrvgo 将 GO terms(集合)大小作为分数。

第一步是得到terms之间的相似度矩阵。函数calculateSimMatrix 获取要计算语义相似度的GO terms列表、OrgDb 对象、感兴趣的ontology和计算相似度分数的方法。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
go_analysis <- read.delim(system.file("extdata/example.txt", package="rrvgo"))
simMatrix <- calculateSimMatrix(go_analysis$ID,
                                orgdb="org.Hs.eg.db",
                                ont="BP",
                                method="Rel")

相似度矩阵中,可以根据相似度对terms进行分组。rrvgo 为此提供了 reduceSimMatrix 函数。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
scores <- setNames(-log10(go_analysis$qvalue), go_analysis$ID)
reducedTerms <- reduceSimMatrix(simMatrix,
                                scores,
                                threshold=0.7,
                                orgdb="org.Hs.eg.db")

02

绘图

rrvgo 提供了几种绘制和解释结果的方法。

相似度矩阵热图

将相似性矩阵绘制为热图,默认情况下启用行列聚类

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
heatmapPlot(simMatrix,
            reducedTerms,
            annotateParent=TRUE,
            annotationLabel="parentTerm",
            fontsize=6)

描述组和terms之间距离的散点图

将 GO terms绘制为散点,点之间的距离表示terms之间的相似性,点的大小代表提供的分数,或者在没有分数的情况下,GO terms包含的基因数量。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
scatterPlot(simMatrix, reducedTerms)

树状图

树状图是分层结构的空间填充可视化。terms根据其父项进行分组(着色),并且terms使用的空间与分数成正比。树状图可以帮助解释汇总结果并比较不同的 GO terms集。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
treemapPlot(reducedTerms)

词云

词云是再现文本的可视化,强调在文本中频繁出现的词。可以帮助识别在一组丰富的 GO terms中更常见的过程和功能,以及不同组之间的比较。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
wordcloudPlot(reducedTerms, min.freq=1, colors="black")

03

shiny app

为了让不熟悉编程的用户更容易使用该软件,rrvgo 打包了一个shiny app,可以从R中调用 Shiny_rrvgo() 函数来访问该应用程序。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
rrvgo::shiny_rrvgo()

小编总结

rrvgo的使用整体来说是非常简单的,只要我们输入GO terms矩阵,就可以一步步得到结果,将原本繁多的富集结果进行精简,得到其中更重要的功能!

END

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

本文分享自 作图丫 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文