美文网首页生信相关R
GO富集分析可视化:GOplot~准备自己的数据—2

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

作者: 小明的数据分析笔记本 | 来源:发表于2020-05-07 13:16 被阅读0次

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

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

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

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

    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

    相关文章

      网友评论

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

        本文链接:https://www.haomeiwen.com/subject/dxooghtx.html