统计作图作图生信分析

R语言练习:基于两组基因差异,循环绘制箱线图组合

2020-03-02  本文已影响0人  小贝学生信

这里分析小练习来自生信星球(一个很好的生信学习平台),有蛮多值得学习的知识点,一起来学习吧~

首先准备假设数据

exp=matrix(rnorm(60),nrow=10)
colnames(exp)=paste0("sample",1:6)
rownames(exp)=paste0("gene",1:10)
#一般分析得到的数据格式:样本为变量/列,基因表达为观测
dat=t(exp)
#因为要绘制基因量的箱线图,变量与观测要转置一下
group=rep(c("A","B"),each=3)
#设置分组标签
dat=cbind.data.frame(dat,group)

绘图方法1:patchwork包

p=list()
#list 列表将储存所有的循环绘图,以实现后面的多图组合
library(ggplot2)
for (i in 1:(ncol(dat)-1)){
#之所以减一,是因为最后一列是组类别
        p[[i]]=ggplot(data=dat,aes_string(x="group",y=colnames(dat)[i]))+
                geom_boxplot(aes(color=group)) + 
                geom_jitter(aes(color=group)) 
}
library(patchwork)
# 第一次使用需要安装
wrap_plots(p,nrow=2, guides="collect")

绘图方法2:ggplot2法

library(tidyr)
library(dplyr)
library(ggplot2)
dat2 = gather(dat,key = "gene",value = "expression",-group)
ggplot(data = dat2)+
  geom_boxplot(aes(x = group,y = expression,color = group))+
  theme_bw()+
  facet_wrap(~gene,nrow = 2)
dat2$gene=factor(dat2$gene,ordered = TRUE,levels = paste0("gene",1:10))
ggplot(data = dat2)+
  geom_boxplot(aes(x = group,y = expression,color = group))+
  theme_bw()+
  facet_wrap(~gene,nrow = 2)

简单一次小练习,还是涉及到很多知识点的。加油!

上一篇下一篇

猜你喜欢

热点阅读