使用Seurat在UMAP坐标上绘制基因表达量图的时候,可能会遇到一个问题:由于单细胞的基因表达较为稀疏,而在细胞数量太多的情况下,可能会导致基因表达图几乎看不到趋势,这个时候可以考虑将表达量高的点优先绘制在上层以突出显示有表达量的细胞。
Seurat绘制基因表达量的函数是FeaturePlot,它有一个参数order,可以根据基因表达量排序,让表达量高的细胞展示在上层,如下图所示:
library(tidyverse)
library(Seurat)
all_data <- readRDS("PATH OF YOUR SINGLE CELL RDS")
p1 <- all_data %>%FeaturePlot(features ="JAG1")
p2 <- all_data %>%FeaturePlot(features ="JAG1", order = TRUE)
patchwork::wrap_plots(p1, p2)
可以看到右图在添加了order参数后,JAG1的表达量比左图明显。
除了在绘图的时候添加order = TRUE之外,由于FeaturePlot函数返回的是一个ggplot2对象,这种效果我们也可以通过修改ggplot2对象的data slot实现。
ggplot2对象的data slot是绘图时所使用的数据,由于ggplot2对象是在print的时候才会进行实际的图形绘制,因此在真正查看图形之前,都可以先改掉data的数据顺序,从而实现点排序的效果。
p3 <- p1
p3$data <- arrange(p3$data, JAG1)
patchwork::wrap_plots(p1, p3)
这个图的结果和上图是一样的。
这个思路其实也是可以拓展的,比如如果觉得点太多了,但是又不想直接subset原来的单细胞对象,则可以对这个data数据处理。
p3$data <- p3$data %>% slice_sample(prop = 0.3)
patchwork::wrap_plots(p1, p3)
在下采样了30%的点后,可以看到右图的点明显比左图稀疏了。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有