日常瞎掰
scRNA-seq数据聚类后会使用UMAP
或者TSNE
图来展示细胞分群结果。对于画这类降维图,Seuart
包就可以轻松实现。不过,好像大家并不满足于Seuart
包降维图的审美,越来越多的小坐标系降维图走进公众的视野。今天,我们就来说说如何轻轻松松用代码来画出小坐标系的UMAP
/TSNE
图。
先瞅一眼效果图
绘图
Seurat
降维聚类后,可以使用DimPlot
函数来画降维图,下面用UMAP
图来展示:
library(Seurat)
library(RColorBrewer)
p <- DimPlot(obj,reduction='umap',cols=brewer.pal(10,'Paired'))
p
结果如下:
可以看出Seurat
画出的图与我们的目标只差一个坐标系格式的距离。那么,如何用一行代码来填平这一点距离呢?答案很简单,可以借用tidydr
包的theme_dr
函数来帮助我们实现目标:
library(tidydr)
p <- p + theme_dr()
p
结果如下:
虽然theme_dr
只需额外多增行一行代码就可以达到修改坐标线的目的,但是背景却多了不想要的网格。喜悦中多了一抹忧伤,原因在于theme_dr
函数里面内置了ggplot2
的theme_minimal
主题模板。不过,好在想去除ggplot2
背景中的网格还是很省事的,只需再多填一句代码即可。既然这样,那咱们就用魔法来打败魔法:
library(ggplot2)
p <- p + theme(panel.grid=element_blank())
p
结果如下:
至此,前面展示的效果图就完完全全地呈现在我们面前了。另外,theme_dr
函数还有参数可以修改坐标轴的长短和箭头样式,这里没有展示,需要的话可以自行调整。
结束语
当然,得到这样小坐标系的降维图,也可以在Seurat
图的基础上利用AI或者PPT来修改,似乎也不怎么费事。不过,咱好像对代码有着偏爱的小执着,秉承着能用代码绝不动手的原则,好在可以使用别人造好的轮子,真的是省时省力!想想真不该有这样的小执着,解决问题才是关键,可是代码也确实是很好的工具,哎,放不下,根本放不下!当然,这么轻松可以绘出小坐标系的降维图,关键在于DimPlot
和theme_dr
都是基于ggplot2
的图层语法,才可以一两句代码搞定。ggplot2
的图层语法真的是绘图界神一样的存在!
往期回顾
rnanorm | 一行命令搞定RNA-seq标准化
rGREAT | 基因组区间功能富集
利用UCSC预测启动子序列可能结合的转录因子
Vision | scRNA细胞相似性 + 差异signature
HiC | contacts vs distance
网友评论