生信相关R

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

2020-05-07  本文已影响0人  小明的数据分析笔记本

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

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

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

circ<-circle_dat(EC$david,EC$genelist)
chord<-chord_dat(circ,EC$genes,EC$process)

接下来就可以画图了

GOChord(chord,gene.order = 'logFC')
image.png

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

> 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值试一试。

chord_1<-chord[,c(1,2,8)]
chord_1
GOChord(chord_1,gene.order = 'logFC')

但是我遇到了报错

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
把数据集再改一下

chord_2<-chord_1[!(chord_1[,1] == 0 & chord_1[,2] == 0),]
GOChord(chord_2,gene.order = "logFC")

这样就没有问题了


image.png

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

构造一份数据

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()函数的输入格式我还得好好想想。

欢迎大家关注我的公众号
小明的数据分析笔记本

公众号二维码.jpg
上一篇 下一篇

猜你喜欢

热点阅读