zoukankan      html  css  js  c++  java
  • batch gene expression plot

    library(tidyverse)
    library(ggpubr)
    #load data
    data = readxl::read_xlsx("gene_id.xlsx",sheet = 2)
    data1 = pivot_longer(data,cols = c(2,3,4,5,6,7),names_to = "condition",values_to = "expression")
    #split data
    data_1 = data1 %>% filter(condition==c("6C6","6C24")) %>% mutate(condition=factor(condition,levels = c("6C6","6C24")))
    data_2 = data1 %>% filter(condition==c("12C6","12C24"))  %>% mutate(condition=factor(condition,levels = c("12C6","12C24")))
    data_3 = data1 %>% filter(condition==c("12C24","12C24+6C6","12C24+6C24"))  %>% mutate(condition=factor(condition,levels = c("12C24","12C24+6C6","12C24+6C24")))
    #def function
    gene_plot = function(i,df1=data_1,df2=data_2,df3=data_3){
      fig1 = df1 %>% filter(ID==i) %>% 
        ggplot()+geom_bar(aes(x=condition,y=expression),stat = "identity",fill="grey60")+
        labs(x="",y="Expression",title = "")+
        theme_bw() + theme(panel.grid=element_blank())+
        theme(axis.text.x = element_text(size=12,family = "serif"))+
        theme(axis.text.y = element_text(size = 12,family = "serif"))+
        theme(axis.line = element_line(colour = "black"))+
        theme(axis.title.x = element_text(size = 14,family = "serif"))+
        theme(axis.title.y = element_text(size = 14,family = "serif"))+
        theme(panel.border = element_blank())
      fig2 = df2 %>% filter(ID==i) %>% 
        ggplot()+geom_bar(aes(x=condition,y=expression),stat = "identity",fill="grey60")+
        labs(x="",y="Expression",title = i)+
        theme_bw() + theme(panel.grid=element_blank())+
        theme(axis.text.x = element_text(size=12,family = "serif"))+
        theme(axis.text.y = element_text(size = 12,family = "serif"))+
        theme(axis.line = element_line(colour = "black"))+
        theme(axis.title.x = element_text(size = 14,family = "serif"))+
        theme(axis.title.y = element_text(size = 14,family = "serif"))+
        theme(panel.border = element_blank())
      fig3 = df3 %>% filter(ID==i) %>% 
        ggplot()+geom_bar(aes(x=condition,y=expression),stat = "identity",fill="grey60")+
        labs(x="",y="Expression",title = "")+
        theme_bw() + theme(panel.grid=element_blank())+
        theme(axis.text.x = element_text(size=12,family = "serif",angle=30, hjust=1, vjust=1))+
        theme(axis.text.y = element_text(size = 12,family = "serif"))+
        theme(axis.line = element_line(colour = "black"))+
        theme(axis.title.x = element_text(size = 14,family = "serif"))+
        theme(axis.title.y = element_text(size = 14,family = "serif"))+
        theme(panel.border = element_blank())
      png<-ggarrange(fig1,fig2,fig3,align="hv",ncol = 3,nrow = 1)
      return(png)
      ggsave(png,paste0(i,"png"))
    }
    gene_plot("LOC_Os01g10340")
    
    for ( i in id){
      gene_plot(i)
      print(i)
    }
  • 相关阅读:
    python打包成exe可执行文件(pyinstaller)
    pandas入门:pandas的数据结构介绍
    NumPy基础:范例-随机漫步
    NumPy基础:随机数生成
    NumPy基础:线性代数
    NOIP2018总结
    luogu P2327 [SCOI2005]扫雷
    luogu P3197 [HNOI2008]越狱
    luogu P1578 奶牛浴场
    luogu P1003 铺地毯
  • 原文地址:https://www.cnblogs.com/xiaosagege/p/15596146.html
Copyright © 2011-2022 走看看