R画韦恩图

作者: Stone_Stan4d | 来源:发表于2018-05-05 09:58 被阅读32次

    承接上一篇的数据,画一个韦恩图,出来的是在三个GEO数据集中均上调或均下调的基因的交集图。
    代码如下:

    #########################2.获得我们需要的GEO分析结果########################################
    #一般用0表示正常,1表示病变(癌旁),x表示舍弃的样本
    
    
    gse31056 <- GEOAnaly('GSE31056', 'GPL10526', paste0("XXXXXXXXXXXXXXXXXXXX01XX01XXXXXXXX",
    "01XXXXXXX01XXX01X1X0XXX0XXXXXXXXXXX10X10X01XXX01XX01X0XXX1XXXX"))
    
    gse78060 <- GEOAnaly('GSE78060', 'GPL570', '101011111111111111111111110101')
    
    # gse19089 <- GEOAnaly('GSE19089', 'GPL6947', '000111')
    
    gse13601 <- GEOAnaly('GSE13601', 'GPL8300', 
                         '1010101011010101100101X01011001110011010101110010101101010')
    

    首先我们用上一篇花式分析GEO数据集的函数构建的函数,分析了三个数据集,然后返回了一个含探针ID、P值、logFC、基因名等的列表:

    image.png

    接下来我们构建了分别可以提取上调基因和下调基因的函数upGene(), dnGene()。通过这两个函数,获取三个列表的差异基因,然后画韦恩图:

    #构建两个函数,分别提取上调基因和下调基因
    upGene <- function(gse){
      gsel = gse[gse$adj.P.Val < 0.05 & gse$logFC > 1, ]
      gsel = gsel[!(grepl('/', gsel$Gene.symbol) | gsel$Gene.symbol == ''), ]
      upgene = gsel$Gene.symbol
      return(upgene)
    }
    dnGene <- function(gse){
      gsel = gse[gse$adj.P.Val < 0.05 & gse$logFC < -1, ]
      gsel = gsel[!(grepl('/', gsel$Gene.symbol) | gsel$Gene.symbol == ''), ]
      dngene = gsel$Gene.symbol
      return(dngene)
    }
    #######################3.获取一个交集,画韦恩图###########################################
    library(VennDiagram)
    grid.draw(venn.diagram(list(GSE13601 = upGene(gse13601), GSE31056 = upGene(gse31056),
                      GSE78060 = upGene(gse78060)), fill = c('red', 'green', 'blue'),lwd = 1,
                      lty = 2,cat.col=c('red','green','blue'),col=c('red','green','blue'),
                 alpha = c(0.5, 0.5, 0.5), cex = 2, filename = NULL, reverse = T))
    

    结果如下图:


    image.png

    是不是觉得很丑!!!

    相关文章

      网友评论

        本文标题:R画韦恩图

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