前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >R语言利用GOplot实现功能分析可视化

R语言利用GOplot实现功能分析可视化

作者头像
一粒沙
发布2019-07-31 11:01:20
3.7K0
发布2019-07-31 11:01:20
举报
文章被收录于专栏:R语言交流中心R语言交流中心

生信中大家都不陌生GO分析,然而如何将分析结果进行可视化展示是我们苦恼的问题,大部分都是画个Bar图或者列个表格啥的。今天我们给大家介绍一个可以实现功能分析可视化的R包GOplot。

首先我们看下此包对于数据的输入的格式要求:

在这里我们介绍下其中的z-score它的求法和我们数据标准化的z-score不同这里反映的是功能的作用是下降还是上升。另一个上调或者下调基因的确定依据是logFC也就是对数标准化之后的倍数差。接下来我们看下z-score的求解公式:

当然,我们上面的数据格式不会直接得到,我们需要获得GO或DAVID提供的功能信息包括以下信息:

并通过和我们的分析结果合并获得我们输入的数据结构。数据的合并我们也可以利用此包提供的函数circle_dat()(eg: circ <-circle_dat(EC$david, EC$genelist))将功能信息和基因信息合并。具体的功能分析过程我们就不赘述了各种软件各种网站。

我们获得所需的数据结构后接下来就是可视化的展示:

1. Bar图的绘制,代码如下

首先我们可以只绘制其中一个大类中的bar图

GOBar(subset(circ, category == 'BP'))

然后为了显示所有的功能分类我们可以直接调用以下代码:

GOBar(circ, display = 'multiple')

当然我们也可对它的标题,颜色进行编辑自定义代码如下:

GOBar(circ, display = 'multiple', title ='Z-score coloured barplot', zsc.col = c('yellow', 'black', 'cyan'))

2. 气泡图是另一个可以更好展示分析结果,其函数是GOBubble()。

基础代码运行结果:

GOBubble(circ, labels = 3)#其中labels是显示GO ID 的阈值,其大小指的包含基因的个数,此处我们设置的是3,即将基因数大于3的ID显示.

在默认情况下table.legend = TRUE右边的注释信息会显示。也可以通过设置将其隐藏。

当然,我们也可以对功能进行分组显示:

GOBubble(circ, title = 'Bubble plot with backgroundcolour', display = 'multiple', bg.col = T, labels = 3)

其中bg.col参数设置是否显示背景颜色。

3. Circle图,可以更直观展示在每个ID中基因之间的上调或下调情况。

基础函数GOCircle(circ);

我们也可以设置我们想要显示的ID或者我们想显示的ID的数量,其相关的参数是nsub其为数值就是个数,如果为向量就是显示的ID。

IDs <- c('GO:0007507', 'GO:0001568', 'GO:0001944','GO:0048729', 'GO:0048514')

GOCircle(circ, nsub = IDs)

或者GOCircle(circ, nsub = 6)

4. 基因和功能相关性的图形绘制(即基因所在的功能ID分布)

我们利用此包提供的EC数据中的genes,process,和前面的circ数据。利用函数chord_dat()进行数据的合并(eg: chord <- chord_dat(circ, EC$genes, EC$process))。其数据结构如下:

GOChord 可以实现对数据的绘制,其中gene.space设置基因名字间的间距;gene.size主要是基因名称的字体大小;limit主要是确定基因最少在几个功能中;gene.order指的按那个排序。

GOChord(chord, space = 0.02, gene.order ='logFC', gene.space = 0.25, gene.size = 5)

限制ID个数的程序如下:

GOChord(chord, limit = c(4, 0), gene.order= 'logFC',gene.size=10)

5. GO热图的绘制,所使用的函数是GOHeat()。我们利用除去logFC列的chord数据作为输入数据:

GOHeat(chord[,-8], nlfc = 0)#nlfc=0指的热图绘图依据是数量不是logFC,如果nlfc=1则相反。

GOHeat(chord, nlfc = 1)

当然其中的填充颜色也是可以设置的,其参数是fill.col通过颜色向量赋值(eg:GOHeat(chord, nlfc = 1, fill.col =c('red', 'yellow', 'green')))。

对于接下来的聚类以及韦恩图我们不再作详细的介绍,因为在使用中出场率不是特别高。

首先是聚类图的绘制:

GOCluster(circ, EC$process, clust.by = 'logFC', term.width= 2)

GOCluster(circ, EC$process, clust.by = 'term', lfc.col =c('darkgoldenrod1', 'black', 'cyan1'))

接下来是韦恩图的绘制:

l1 <-subset(circ, term == 'heart development', c(genes,logFC))

l2 <-subset(circ, term == 'plasma membrane', c(genes,logFC))

l3 <-subset(circ, term == 'tissue morphogenesis', c(genes,logFC))

GOVenn(l1,l2,l3, label = c('heart development', 'plasmamembrane', 'tissue morphogenesis'))

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

本文分享自 R语言交流中心 微信公众号,前往查看

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

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

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