专栏名称: Freescience联盟
Freescience联盟是由高校、医院FS公众号和科研技能公众号等百家单位联合创建的科研交流分享平台;联盟的宗旨:“公正至上,自由分享,平等共赢”。欢迎您的关注,让我们共同学习进步!
目录
相关文章推荐
最爱大北京  ·  紧急提醒!打过这个疫苗的人,速看! ·  10 小时前  
北京本地宝  ·  异地就医,享受哪里的医保待遇? ·  4 天前  
中国交建  ·  “疏通”居民烦心事 ·  3 天前  
北京吃货小分队  ·  限时6折!又一个老牌大秀来北京了 ·  4 天前  
文旅北京  ·  今日最高17℃!本周末降雨+降温—— ·  4 天前  
51好读  ›  专栏  ›  Freescience联盟

跟着Nature Methods学画图:R语言ggplot2+ggtree+aplot画气泡图组合聚类树图

Freescience联盟  · 公众号  ·  · 2021-11-16 00:01

正文

今天继续昨天推文的内容 跟着Nature Methods学画图:R语言ggplot2画气泡图(dotplot)展示基因表达量 ,今天的内容介绍如何在气泡图和左侧和上方添加聚类树图,今天的内容主要参考 aplot包:让你画出更复杂的图

这篇论文是在简书 土豆学生信 分享的内容看到的。简书的链接是 https://www.jianshu.com/p/bbf9cb13b41a

论文是

论文对应的代码是公开的 https://github.com/ajwilk/2020_Wilk_COVID

image.png

今天重复的内容是论文中的figure2f

image.png

按照论文提供的代码得到了画图用到的数据,部分数据如下

image.png

但是用他提供的画图代码没有能够画出图来。因为他用到了一个 dot_plot() 函数,没有找到这个函数是怎么来的。既然已经拿到了数据,就用ggplot2自己来画吧

读入数据做气泡图,
data.final<-read.csv("NM/figure2f.csv",header=T,check.names=F)
head(data.final)

library(ggplot2)
ggplot(data.final,aes(x=features.plot,y=id))+
  geom_point(aes(size=`Percent expressed`,
                 color=`Average expression`))+
  theme_bw()+
  theme(panel.grid = element_blank(),
        axis.text.x=element_text(angle=90,hjust = 1,vjust=0.5))+
  scale_color_gradient(low="lightgrey",high="blue")+
  labs(x=NULL,y=NULL)+
  guides(size=guide_legend(order=3))
image.png

以y轴为变量,做层次聚类,并使用ggtree展示层次聚类结果

聚类用到的是平均表达量那一列
df<-data.final[,c(1,2,4)]
首先是长格式数据转换为宽格式
df1<-reshape2::dcast(df,id~features.plot,value.var = "Average expression")
rownames(df1)<-df1$id
df1.1<-df1[,2:22]
image.png
层次聚类,ggtree展示结果
df1.1.clust<-hclust(dist(df1.1))
df2.1.clust<-hclust(dist(df2.1))
library(ggtree)
p2<-ggtree(df1.1.clust)
p2+
  geom_tiplab()+
  xlim(NA,7)
image.png
使用aplot包拼图
library(ggplot2)
p1<-ggplot(data.final,aes(x=features.plot,y=id))+
  geom_point(aes(size=`Percent expressed`,
                 color=`Average expression`))+
  theme_bw()+
  theme(panel.grid = element_blank(),
        axis.text.x=element_text(angle=90,hjust = 1,vjust=0.5))+
  scale_color_gradient(low="lightgrey",high="blue")+
  labs(x=NULL,y=NULL)+
  guides(size=guide_legend(order=3))

library(aplot)
p1%>%
  insert_left(p2,width = 0.2)
image.png






请到「今天看啥」查看全文


推荐文章
最爱大北京  ·  紧急提醒!打过这个疫苗的人,速看!
10 小时前
北京本地宝  ·  异地就医,享受哪里的医保待遇?
4 天前
中国交建  ·  “疏通”居民烦心事
3 天前
北京吃货小分队  ·  限时6折!又一个老牌大秀来北京了
4 天前
张佳玮写字的地方  ·  冬天若不吃宵夜,一天总像没过完
8 年前
跟大厨学做菜  ·  ✅用饺子皮做小笼包,懒货必学!
8 年前
Python程序员  ·  看NASA的编码哲学
7 年前