打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
复现nature medicine图表:pheatmap结合ggplot
userphoto

2023.04.05 广东

关注

3、付费文章集合有打包价哦!

详情请联系作者:

今天复现一篇Nature medicine文章的图表,图大家都很熟悉了,气泡图+聚类,这类图我们在ggplot做热图的时候我们以后实现过了:热图5:ggplot2画热图及个性化修饰但是为什么这里要复现,不是炒冷饭,肯定是有新东西嘛,不然怎么拿的出手呢

本文作者提供了部分数据和部分代码,他这个图是先用pheatmap做了一个聚类热图,然后利用热图的聚类使用ggplot做的气泡图,最后用AI或者PS修饰组合在一起。其实很多小伙伴觉得在ggplot做聚类不太顺手的话,可以借鉴这个思路,很不错。
(Longitudinal dynamics of clonal hematopoiesis identifies gene-specific fitness effects)

第一步,我们先做一个聚类热图:
setwd('D:/KS项目/公众号文章/pheatmap和ggplot的结合')
df <- read.csv('df.csv', header = T)
data <- df[df$PreferredSymbol %in% c("DNMT3A", "TET2", "NOTCH1", "JAK2", "U2AF2", "JAK3", "ASXL1"), ]
data1 <- data[, c("Participant_ID","Largest_VAF","wave","PreferredSymbol")]

#行注释
data.anno <- data1[ , colnames(data1) %in% c("wave", "Participant_ID")]
data.anno <- unique(data.anno)
rownames(data.anno) <- data.anno$Participant_ID


for_order <- reshape2::dcast(as.data.frame(data1),
PreferredSymbol~Participant_ID, value.var="Largest_VAF")
for_order[is.na(for_order)] = 0
rownames(for_order) <- for_order$PreferredSymbol
for_order <- for_order[ , !(colnames(for_order) %in% c("PreferredSymbol")) ]
cluster_order <- pheatmap(for_order, annotation_col = data.anno,
show_rownames = F, show_colnames = F,
annotation_names_col = F)

第二步,做一个气泡图,气泡图的行列排序和热图一样。
#气泡图
p <- ggplot(data, aes(Participant_ID, PreferredSymbol))+ geom_point(aes(size = Largest_VAF,colour = Variant_Classification), alpha=0.3)+ scale_size(range = c(0,15)) + xlab("") + ylab("")+theme_minimal() + theme(panel.background = element_blank(), axis.line = element_line(colour = "black"), legend.text=element_text(size=11), axis.text.x = element_blank(), axis.text.y = element_text(color="black", size=9), axis.text=element_text(size=16), axis.title=element_text(size=16, face = "bold"))+ scale_y_discrete(limits=rev(cluster_order$tree_row$labels[cluster_order$tree_row$order]))+ scale_x_discrete(limits=(cluster_order$tree_col$labels[cluster_order$tree_col$order]))+ guides(colour = guide_legend(override.aes = list(size=5), title = c("Variant Classification")), size = guide_legend(title = c("VAF")))+ scale_colour_manual(values=c(Frame_Shift_Del="#00BBDA", Frame_Shift_Ins="#E18A00", Missense_Mutation="#BE9C00", Nonsense_Mutation="#24B700", Splice_Region="#00C1AB", Splice_Site="#F8766D"))
然后两个修饰组合一下就可以了。觉得分享对你有用的点个赞再走呗!
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
干货|高逼格的sci图片手把手教学
R绘图基础(四)热图 heatmap ← 糗世界
R 语言的高颜值的配图法则 | 论文写作
ggheatmap复现CNS级美图
ggplot2绘制堆积柱形图
使用 aplot “拼”一个热图
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服