大佬高分文章都在炫的新表达分布气泡图怎么画?四维度数据展示!

智能摘要
今天我们就跟着Fig2学习,复现一下这类多分组多形状的气泡图吧!长数据格式,排列顺序、两两对应关系和分组信息都在其中。
原文约 992 | 图片 19 | 建议阅读 2 分钟 | 评价反馈

大佬高分文章都在炫的新表达分布气泡图怎么画?四维度数据展示!

原创 喵酱 SCIPainter
丰度/表达量分布气泡图是我们生信常用图表之一,今天复现一类新型丰度气泡图,在Cell和Nature等高分期刊中都在使用!比如下面这俩例子:

Fig1(Cell, 2021)

Fig2(Nat Commun,2023)


原本我们使用的丰度气泡图一般是通过颜色和气泡大小的映射展示两个维度数据,而新型气泡图在原本的基础上可以增加到同时展示3-4个维度数据,如左侧分组颜色条区分RNA和蛋白,用不同形状的气泡区分不同的顺反式调控元件。

今天我们就跟着Fig2学习,复现一下这类多分组多形状的气泡图吧!

#相关R包载入:
library(ggplot2)
library(ggpubr)
library(patchwork)
#测试数据读入:



长数据格式,排列顺序、两两对应关系和分组信息都在其中。测试源数据来自Fig2文献提供,为了使绘图效果更加明显,我对部分数据进行了更改(无生物学意义)。该数据可通过点击文末“阅读原文”获得。

dt <- read.csv('testdt.csv',header = T)
#转换因子,指定绘图顺序:
dt$symbol_x <- factor(dt$symbol_x,levels = c(unique(dt$symbol_x)))


1.
表达分布气泡图绘制

#基础气泡图绘制:
show_point_shapes() #先查看可绘制的点类型



p <- ggplot(data = dt,
aes(x = symbol_x,
y = symbol_y,
size = -log(pvalue),
shape = group)) +
geom_point(aes(color = Correlation_coefficiency)) +
scale_shape_manual(values = c(16,15)) #这里选择填充型圆和矩形,仅描边需<15,同时描边和填充需>20
p



#气泡图美化:
p1 <- p +
scale_size_continuous(range = c(1,10)) + #气泡大小范围
scale_color_gradient2(low='navy',high='firebrick3', mid="white") + #渐变颜色更改
theme_bw() +
theme(axis.text.x = element_text(angle = 90, hjust = 1)) #90°显示x轴标签
p1



#自定义主题调整:
mytheme <- theme(
axis.text.y = element_blank(),
axis.line.y = element_blank(),
axis.title = element_blank(),
axis.text.x = element_text(size = 14),
legend.text = element_text(size = 14),
legend.title = element_text(size = 15),
plot.margin = margin(t = 5.5, # 顶部边缘距离
r = 5.5, # 右边边缘距离
b = 5.5, # 底部边缘距离
l = 0) #左边边缘距离,便于拼图显得紧凑
)
p2 <- p1 + mytheme
p2



2.
分组标签绘制

#绘制矩形:
pp <- ggplot(data = dt,
aes(x = 0.5, y = symbol_y)) +
geom_tile(aes(fill = type)) +
scale_fill_manual(values = c('#27527a','#8ac3d0'))
pp



#矩形长宽比调整:
pp <- pp +
scale_x_continuous(expand = c(0,0)) +
xlim(-8,1) + #先预留出标签位置
coord_fixed(ratio = 2) #比例
pp



#自定义主题调整:
mytheme2 <- theme(
axis.text = element_blank(),
axis.ticks = element_blank(),
axis.line = element_blank(),
axis.title = element_blank(),
panel.grid = element_blank(),
panel.border = element_blank(),
legend.text = element_text(size = 14),
legend.title = element_text(size = 15),
plot.margin = margin(t = 5.5,
r = 0, #便于拼图显得紧凑
b = 5.5,
l = 5.5))
pp1 <- pp + theme_bw() + mytheme2
pp1



#添加symbol标签:
pp2 <- pp1 +
geom_text(data = dt,
aes(x = -0.1,
y = symbol_y,
label = symbol_text),
size = 4.5,
hjust = 1) #右对齐
pp2



#3.拼图:
pp2 + p2 + plot_layout(guides = 'collect')



再换一个新衣裳(配色)试试:


当然,同一张图表展示数据维度过多,也会增加理解的难度,具体大家根据实际需求选择。


好啦,今天的分享就到这里!

参考文献

Cao L , Huang C , Zhou D C , et al. Proteogenomic characterization of pancreatic ductal adenocarcinoma[J]. Cell, 2021, 184(19):5031-5052.e26.

Wang, Y., Luo, R., Zhang, X. et al. Proteogenomics of diffuse gliomas reveal molecular subtypes associated with specific therapeutic targets and immune-evasion mechanisms. Nat Commun 14, 505 (2023).

*未经许可,不得以任何方式复制或抄袭本篇文章之部分或全部内容。版权所有,侵权必究。

# SCIPainter

基迪奥旗下绘图公众号

分享科研绘图技能与工具

欢迎关注与转发~


你的好友拍了拍你

并请你帮她点一下“分享”~



© 版权声明
THE END
喜欢就支持一下吧
点赞62 分享
相关推荐
评论 抢沙发

请登录后发表评论

    暂无评论内容