首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >GO富集分析可视化:GOplot~准备自己的数据—2

GO富集分析可视化:GOplot~准备自己的数据—2

作者头像
用户7010445
发布2020-05-14 19:29:57
发布2020-05-14 19:29:57
1.7K0
举报

最近在学习使用GOplot这个包中的GOChord()函数可视化GO富集分析结果,又有了一点收获,记录在这里。

通过help(package="GOplot")查看帮助文档中的例子,这个例子中他准备了4数据

  • EC$david david的GO富集分析结果
  • EC$genelist 这个是R语言包limma做差异表达分析得到的结果,其中的t和B是什么意思我还没有搞明白
  • EC$genes 这个数据包含两列,一列是感兴趣的基因名,一列是logFC的值
  • EC$process 自己感兴趣的GO term

例子中通过两个函数将这些数据整合到一起

代码语言:javascript
复制
circ<-circle_dat(EC$david,EC$genelist)
chord<-chord_dat(circ,EC$genes,EC$process)

接下来就可以画图了

代码语言:javascript
复制
GOChord(chord,gene.order = 'logFC')

image.png

最终的输入数据chord,使用class()函数查看数据类型,发现其是一个矩阵,实际数据内容是

代码语言:javascript
复制
> head(chord)
      heart development phosphorylation vasculature development blood vessel development tissue morphogenesis
PTK2                  0               1                       1                        1                    0
GNA13                 0               0                       1                        1                    0
LEPR                  0               0                       1                        1                    0
APOE                  0               0                       1                        1                    0
CXCR4                 0               0                       1                        1                    0
RECK                  0               0                       1                        1                    0
      cell adhesion plasma membrane      logFC
PTK2              0               1 -0.6527904
GNA13             0               1  0.3711599
LEPR              0               1  2.6539788
APOE              0               1  0.8698346
CXCR4             0               1 -2.5647537
RECK              0               1  3.6926860

行是基因名,列是GO term,用0,或者1来表示基因是否属于某个GO term。最后一列是logFC的值。

明白了这个数据形式,那我们可以完全自己来构造数据了。

为了验证自己的想法,来吧chord这个数据改造一下,只取前两列加最后一列logFC值试一试。

代码语言:javascript
复制
chord_1<-chord[,c(1,2,8)]
chord_1
GOChord(chord_1,gene.order = 'logFC')

但是我遇到了报错

代码语言:javascript
复制
Error in data.frame(x.end = x.end, y.end = y.end, processID = processID) : 
  arguments imply differing number of rows: 101, 86

我猜是同一个基因不能在每个GOterm下都是0,至少得有一个1 把数据集再改一下

代码语言:javascript
复制
chord_2<-chord_1[!(chord_1[,1] == 0 & chord_1[,2] == 0),]
GOChord(chord_2,gene.order = "logFC")

这样就没有问题了

这样的话我们自己的数据如果想做弦图也完全可以用这个函数了

构造一份数据

代码语言:javascript
复制
df<-sample(c(0,1),24,replace = T)
df<-matrix(df,ncol=4,byrow = T)
rownames(df)<-paste("Gene",1:6,sep="_")
colnames(df)<-paste("GO_term",1:4,sep="_")
df<-as.data.frame(df)
df$logFC<-sample(c(-1,1),6,replace = T)
df
GOChord(df,gene.order = "logFC")

image.png

最后的结论就是只要有了GO或者KEGG富集分析的结果,都可以GOChord()这个函数来画图。

如何整理GO或者KEGG的富集分析结果为GOChord()函数的输入格式我还得好好想想。

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

本文分享自 小明的数据分析笔记本 微信公众号,前往查看

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

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

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