一图胜千言:用ggridges画的山脊图,让你的数据说话

学术   2024-10-27 19:00   上海  

Hello,各位小伙伴大家好,几天果叔给大家介绍一种用于可视化数据分布的图表类型。它通常用于展示多个组或类别的数据在一个连续的轴上分布,并突显它们之间的相对密度。这种图表的名称源于其图形外观类似于山脊,除此之外,还被叫做也叫峰峦图和山峦图。
当然,正因为它能对多个数据进行统一展示,所以可以帮助大家进行相应生物信息学数据的展示。比如在描写基因表达分布时,山脊图可以用于显示不同基因或基因集的表达分布,也可用于可视化转录因子结合位点在基因组中的分布;在对蛋白质质谱数据进行可视化的时候,我们还可以利用山脊图表现不同实验条件下的蛋白质丰度。
拥有强大可视化功能的包叫做ggridges,没错,它也是ggplot2的拓展包,正因如此,才能增加对图形的可塑性而满足更多小伙伴的个性化要求。这里呢果叔还要说明一下,我们这次做的数据是果叔从大的数据中分出来的,原本的数据量是非常大的,我们操作占用内存比较大,所以建议各位小伙伴可以使用服务器去运行,如果没有自己的服务器也没有关系,可以欢迎联系我们使用服务器租赁哦~

跑代码时卡顿、电脑不给力让人抓狂!找果叔试用稳定高速的服务器,让分析顺畅无比!

代码学不会?bug 频繁出现,束手无策?实操生信分析课程赶快学起来!滴滴果叔领取体验课程哦~


线上课程教学

课题设计、定制生信分析

云服务器租赁

加微信备注99领取使用



那就开始我们今天的练习吧!
#安装与调用包install.packages('ggridges')library(ggridges)library(ggplot2)library(RColorBrewer)#读入数据data <- read.table('输入数据.txt',sep = '\t',header = 1)head(data)
   
#简单出图P1 <- ggplot(data, aes(x = value, y = location)) +   #对图形进行大致描绘  geom_density_ridges(aes(fill = location))   #调用ggridges,设置填充变量P1
#改变颜色,根据变量的数量添加颜色P2 <- ggplot(data, aes(x = value, y = location)) +   #对图形进行大致描绘  geom_density_ridges(aes(fill = location)) +   #调用ggridges,设置填充变量  scale_fill_manual(values = c("#00AFBB", "#E7B800", "#FC4E07",'black', 'red'))  #对每个变量进行颜色改变    P2
#根据R语言色板进行颜色改变P3 <- ggplot(data, aes(x = value, y = location)) +   #对图形进行大致描绘  geom_density_ridges(aes(fill = location)) +  #调用ggridges,设置填充变量  scale_fill_manual(values = c(brewer.pal(5,'Set3')))  #对每个变量进行颜色改变P3
   
#渐变颜色P4 <- ggplot(data,aes(x = value, y = location)) +   geom_density_ridges_gradient(aes(fill = ..x..),  #不需改变                               scale = 1.5,                               rel_min_height = 0.01) +  # 剪掉拖尾的尾巴,相对于任何密度曲线的最高点的百分比截止值  scale_fill_gradientn(    colours = c("#0D0887FF", "#CC4678FF", "#F0F921FF"),    name = "value"   #图例名称  )+  labs(title = 'Microbial populations in different locations')P4
   
#添加数据点P5 <- ggplot(data,aes(x = value, y = location)) +   geom_density_ridges_gradient(aes(fill = ..x..),  #不需改变                               scale = 1.5,  #山风的高度                               rel_min_height = 0.01,  #对拖尾的处理,相对于任何密度曲线的最高点的百分比截止值                               jittered_points = TRUE, #是否展示数据点                               alpha = 0.5, #点的透明度                               point_size = 1.3) +    scale_fill_gradientn(    colours = c("#0D0887FF", "#CC4678FF", "#F0F921FF"),    name = "value"   #图例名称  )+  labs(title = 'Microbial populations in different locations') +  theme_bw()    P5
以上就是今天的全部代练内容哦,是不是很简单呢,一些代码的注释,果叔都给出来了哦,赶快练习吧!其实不仅是以上提到的应用场景,果叔更喜欢在基因组突变和表观遗传学上面使用山脊图,因为染色体是有长度的,而因此突变的位点也是具有相应的定位的,再加上各真核物种的染色体数目较多,所以在这方面的应用往往会获得较好的出图效果,与此相同,在解释DNA甲基化数据上,山脊图也有得天独厚的应用场景。
那么果叔另一个使用的场景就是生存分析,在生存分析中,我们可以用山脊图显示不同生存组群中的生存曲线的密度分布,有助于观察生存时间的分布模式。总的来说,山脊图是一种有助于在多个条件或样本组之间比较连续型数据分布的可视化工具,可以提供更全面的了解和对比数据的方式。
看到这里,是不是觉得山脊图的应用范围、应用空间很大呢?其实就是因为山脊图的优势,才被多个研究者所喜爱,正如《Single-cell RNA sequencing identifies a population of human liver-type ILC1s》文章中的下图所示,不仅利用山脊图展现了实验组和对照组的结果比较,还展示出不同刺激条件下几种细胞的细胞因子的染色情况。其实不仅如此,本研究的数据量较大,如果想要使用正常的柱状图或折线图来展示的话肯定极为繁琐且不易读懂,但当我们改变可视化方法,不仅能使我们数据完美的展现出来,还能使我们的文章让人眼前一亮,抓住编辑和审稿人的心哦~而利用一张图展现多维数据,这正是我们利用山脊图想要达成的目的,各位小伙伴快来练习吧!    
但是,如果大家并不想在可视化上花费太多时间,可以来果叔自己的云生信平台哦,里面有多种图形可视化的成熟代码,数据直接上传后直接就会出图哦,快来加入吧~
http://www.biocloudservice.com/home.html

果叔还提供思路设计、定制生信分析、文献思路复现;有需要的小伙伴欢迎直接扫码咨询果叔,竭诚为您的科研助力!


定制生信分析

服务器租赁

扫码咨询果叔


往期回顾

01

“made in China”嘎嘎好用!中国人自己的数据库就是香!暨南大学:CHARLS+Cox回归分析,8.5分信手拈来超牛!

02

IF=11.4南京医科大“本科生一作”发中科院1区,后浪真的强啊!预后模型纯生信分析还能发11分,得好好看看怎么做的~

03

IF=58.7,这泼天的多组学富贵可得接住!系统生物学研究团队开挂思路,机器学习助力个性化医疗,你就学吧,一看一个不吱声!

04

水刊拒稿莫慌,也许是 “福” 从天降!Heliyon on hold不打紧,转投1区神刊,力挽狂澜斩获6分+!



生信果
生信入门、R语言、生信图解读与绘制、软件操作、代码复现、生信硬核知识技能、服务器等
 最新文章