ggplot2一页多图Rmisc-multiplot功能新手排雷

哈,三月是适合写的月份~
这只是一篇短的心得,记录自己刚刚遇到的问题,供大家参考。

背景:

  1. 在用DESeq2做转录组差异基因,有几个关注的marker基因想要画图展示;
  2. 这种情况可以用DESeq2包自带的plotcounts功能,这里我利用这个功能输出数据,后面接ggplot2作图;
  3. 想要把关注的3个基因的表达情况展示在一张图上,尝试了layout( )不成功;
  4. 找教程,安装了Rmisc包,利用multiplot功能,但是操作时遇到了问题。

详细情况:

setwd('')
colData <- read.table('', sep="\t", header=TRUE, row.names=1)
readscount <- read.table('', sep="\t", header=TRUE, row.names=1)
condition <- factor(c( ))
batch <- factor(c())
library(DESeq2)
dds <- DESeqDataSetFromMatrix(readscount, colData, design =~ batch + condition)
dds <- DESeq(dds) #完成dds构建和数据标准化

library(ggplot2)
library(Rmisc) 
p1 <- plotCounts(dds,gene="ENSSSCG001",returnData=TRUE) #基因id不便透露,returndata是只返回数据不作图,将数据存储于p1
pp1 <- ggplot(p1,aes(x=condition,y=count))+ #这里不可直接输出ggplot图形,而是要存储于另一个变量,最后再用multiplot输出,否则就会出错!
  geom_boxplot(notch=F,aes(color=condition)) + 
  scale_y_log10() + ggtitle("GENE1") + xlab("") + ylab("") +
  theme(plot.title=element_text(face="italic"),legend.position="none")+
  theme(panel.grid.major=element_blank(),panel.grid.minor=element_blank())+
  theme(panel.background=element_blank()) +
  theme(axis.line=element_line(color = "black"))
p2 <- plotCounts(dds,gene="ENSSSCG002",returnData=TRUE) #这里只用两个基因举例
pp2 <- ggplot(p2,aes(x=condition,y=count))+
  geom_boxplot(notch=F,aes(color=condition)) + 
  scale_y_log10() + ggtitle("GENE2") + xlab("") + ylab("") + 
  theme(plot.title=element_text(face="italic"),legend.position="none")+
  theme(panel.grid.major=element_blank(),panel.grid.minor=element_blank())+
  theme(panel.background=element_blank()) +
  theme(axis.line=element_line(color = "black"))
multiplot(pp1,pp2,cols = 2) #输出两个图形在一个页面上,左右而不是上下形式。

所以最后我想说,一定要把ggplot图形存起来最后输出,否则会出错。
这是一个小白问题,但是本着“一定不止我一个人遇到这歌问题”的原则,写出来分享给大家,小白可参考,同时期待大佬的指点。
一个问题:这里用的dds按道理是标准化了的,但是实际看来并非如此。为什么?

你可能感兴趣的:(ggplot2一页多图Rmisc-multiplot功能新手排雷)