配对箱线图,常见于配对样本的数据分析中。
例如下图示例,为了研究某些基因在肿瘤组织和正常组织中是否具有表达量的显著不同,在取样时,往往会在同一患者个体中同时获取肿瘤和临近正常组织,两个组织样本就是配对关系。当然在这类研究中,往往需要调查很多的患者,因此会获得大量的配对样本。随后,通过qPCR或RNA-seq等方法定量基因表达后,以箱线图呈现特定基因在肿瘤组织和正常组织中的整体表达水平,并在箱线图中以散点表示具体的样本,此时对于具有配对关系的肿瘤组织和正常组织样本,就可以通过连线连接起来。
这种配对箱线图的好处是,除了能够表现两组的整体差异,还能够清晰地呈现单个样本的前后改变。
本篇教程,就让我们带大家学习如何使用R语言绘制这种配对箱线图。
准备作图文件
类似地,假设我们也期望查看某基因(例如MAP2)在肿瘤组织和正常组织中的表达改变情况,在收集了配对样本并检测了这些样本中基因表达水平后,配置这样一张表。
samples是样本名称;MAP2是基因MAP2在各样本中的表达值;group1是样本分组,告知它们来源于肿瘤组织还是正常组织;group2是配对样本信息,配对的两样本设置为同一亚组。
R语言绘制配对样品箱线图
随后,将上述示例数据导入R中。
绘制箱线图表示两组基因的整体表达水平,并以散点表示样本,配对样本间以连线连接。
#读取上述示例数据
dat <- read.delim('MAP2.txt')
#表达值可选是否要对数转化一下
dat$MAP2 <- log(dat$MAP2, 2)
#使用 ggplot2 包绘制箱线图
library(ggplot2)
p <- ggplot(dat, aes(x = group1, y = MAP2)) +
geom_boxplot(aes(fill = group1), show.legend = FALSE, width = 0.6) + #绘制箱线图
scale_fill_manual(values = c('#FE7280', '#AC88FF')) + #箱线图的填充色
geom_point(size = 2) + #绘制样本点
geom_line(aes(group = group2), color = 'gray', lwd = 0.5) + #绘制配对样本间连线
##以下是ggplot2的主题设置,修改边框、背景、标题、字体等
theme(panel.grid = element_blank(), axis.line = element_line(colour = 'black', size = 1), panel.background = element_blank(),
plot.title = element_text(size = 20, hjust = 0.5), plot.subtitle = element_text(size = 15, hjust = 0.5),
axis.text = element_text(size = 20, color = 'black'), axis.title = element_text(size = 20, color = 'black')) +
labs(x = '', y = 'expression of MAP2', title = 'MAP2', subtitle = 'Tumor vs Normal')
p
这样,配对箱线图就获得了。
箱线图描述了组间基因表达水平改变的趋势,在该图中可以看到MAP2基因的表达在肿瘤组织和正常组织中是不一致的。后续如有需要,不妨执行配对样本的t检验等,计算显著性p值,作为评判基因表达显著差异的指标。