• ggplot2 GO富集分析条形图


    参考博客

    http://blog.sciencenet.cn/blog-3406804-1166293.html

    四个参数用于控制坐标轴与作图区域的位置

    • scale_x_discrete(expand = c(0, 0))
    • scale_y_discrete(expand = c(0, 0))
    • scale_x_continuous(expand = c(0, 0))
    • scale_y_continuous(expand = c(0, 0))

    数据格式

    自己作图代码如下

    setwd("E:\IMA\R\GO_draw")
    
    library(ggplot2)
    
    file="NJFvsLBF_up.DEG_GO_enrichment_result.xls"
    outfile="NJFvsLBF_up.DEG_GO_enrichment_result.v2.pdf"
    
    data <- read.table(file,sep="	",header=T)
    
    data = data[data$Over_represented_pValue <= 0.05,]
    data  =  data[data$DEG_item >1,]
    #head(data)
    
    shorten_names <- function(x, n_word=4, n_char=30){
      shortname = x["Description"]
      if (length(strsplit(shortname, " ")[[1]]) > n_word || (nchar(shortname) > n_char))
      {
        if (nchar(shortname) > n_char) shortname <- substr(shortname, 1, n_char)
        y <- paste(paste(strsplit(shortname, " ")[[1]][1:min(length(strsplit(shortname," ")[[1]]), n_word)],
                         collapse=" "), "...", sep="")
        return(y)
      } 
      else
      {
        return (shortname)
      }
    }
    
    data$pretty_varname = apply(data,1,shorten_names)
    
    draw_data = subset(data,select =c("pretty_varname","Term_type","DEG_item"))
    
    colnames(draw_data) = c("GO_term","GO_category","Num_of_symbols_in_list_in_GO")
    
    draw_data = draw_data[order(draw_data[,2]),]
    
    GO_term_order=factor(draw_data$GO_term,levels=draw_data$GO_term)
    COLS=c("red","blue","green")
    
    p <- ggplot(data=draw_data, aes(x=GO_term_order,y=Num_of_symbols_in_list_in_GO, fill=GO_category)) + 
      geom_bar(stat="identity", width=0.8,position=position_dodge(1.0),colour='black',size=0.5) + scale_fill_manual(values=COLS,name="GO Terms",labels=c("BP","CC","MF")) +
      ylab("Number of Genes") + xlab("")+
      labs(title="Enriched GO Terms
    (NJFvsLBF_up)",size=6,face="plain",colour="black")+
      theme_bw()+
      theme(axis.text.x = element_text(color="black",angle=70,hjust = 1,size = 6),
            title =element_text(size=6,face="plain",colour="black"),
            axis.title = element_text(size=6,face="plain",colour="black"),
            panel.grid=element_blank(),
            panel.border = element_blank(),
            axis.line = element_line(size=0.2,colour = "black"),
            axis.text = element_text(color = "black",size = 6,face="plain"),
            plot.title = element_text(hjust = 0.5),
            legend.title = element_text(face="plain",size=6,colour = "black"),
            legend.text = element_text(face="plain",size=6,colour = "black"),
            legend.key.size = unit(0.4,"cm")
            )+scale_x_discrete(expand = c(0, 2))+
      scale_y_discrete(expand = c(0, 0),limits = c(0,5,10,15,20,25,30,35)
                         )
      #guides(fill=FALSE)
    
    ggsave(outfile,p,width=10,height=6)
    
    

  • 相关阅读:
    使用Jenkins自动编译 .net 项目
    Windows平台下Git服务器搭建
    在MAC上搭建cordova3.4.0的IOS和android开发环境
    检索 COM 类工厂中 CLSID 为 {820280E0-8ADA-4582-A1D9-960A83CE8BB5} 的组件失败,原因是出现以下错误: 80040154 没有注册类 (异常来自 HRESULT:0x80040154 (REGDB_E_CLASSNOTREG))。
    IIS7 404 模块 IIS Web Core 通知 MapRequestHandler 处理程序 StaticFile 错误代码 0x80070002
    mac 端口被占用及kill端口
    查询数据库表大小sql
    开启关闭keditor 过滤
    sql修改字段名称
    Android客户端性能优化
  • 原文地址:https://www.cnblogs.com/raisok/p/12221194.html
Copyright © 2020-2023  润新知