# 使用 ggsc 绘制 Seurat 对象
Seurat 包自带了一些绘图函数,虽然也是基于 ggplot2 的,但是扩展性其实没那么强
正好 Y 叔写了个包 ggsc,虽然已经有基本的使用教程,但还是有些常用的应用场景需要自己探索一下:
# 基本绘图
对我个人而言,基本绘图可以这样写
Idents(seurat_object) <- "celltype" | |
p <- sc_dim(seurat_object, reduction = "umap") + | |
sc_dim_geom_label(geom = shadowtext::geom_shadowtext, color = '#5D478B', bg.color = 'white', check_overlap = TRUE) + | |
ggtitle("") + scale_color_viridis_d(option = "H") + guides(color = guide_legend(override.aes = list(size = 5))) | |
ggsave("UMAP_celltype.pdf", plot = p, height = 5, width = 8) | |
ggsave("UMAP_celltype.png", plot = p, height = 5, width = 8) |
以上代码用于绘制细胞注释后的 UMAP 图,思路是:
- 设置 Seurat 对象当前的 Ident,这样默认绘图就会按照设置的当前 Ident 来着色
sc_dim_geom_label
添加标签ggtitle
添加图像标题scale_color_viridis_d(option = "H")
使用 Viridis 颜色系统的离散调色板, H 调色板是测试下来最好看的一个颜色系列guides
参数用于调整图例,此处我修改了点的大小
其中 shadowtext
包也是 Y 叔写的,用于给文字添加阴影以使标签更美观,被用于范例
但当你的分群太过靠近时,如果不加 check_overlap = TRUE
参数,标签可能会重叠
但实际上,加上 check_overlap = TRUE
参数也并没有什么用......
这是 ggplot2 的一个参数,当加上时他会把重叠标签隐藏......(不是哥们
所以我们换用 ggrepel
这个简单又强势的包:
p <- sc_dim(seurat_object, reduction = "umap") + | |
sc_dim_geom_label(geom = ggrepel::geom_text_repel, color = '#5D478B', bg.color = 'white') + | |
ggtitle("") + scale_color_viridis_d(option = "H") + guides(color = guide_legend(override.aes = list(size = 5))) |
# mapping 参数的使用方法
教程中对于 mapping
参数并没有讲的很清楚。它需要的其实是一个 aes
aes
(aesthetic 的缩写)用于在 ggplot2 中定义美学映射。它将数据变量映射到图形的美学属性上。例如,你可以将数据框中的一个数值变量映射到图形的 x 轴位置、y 轴位置、颜色、大小、形状等美学元素。例如:
mapping <- aes(color = celltype) | |
p <- sc_dim(seurat_object, reduction = "umap", mapping = mapping) |
这段代码同样会按照细胞类型来着色,与以下代码其实效果上是一样的:
Idents(seurat_object) <- "celltype" | |
p <- sc_dim(seurat_object, reduction = "umap") |
如果不设置 mapping
参数,会使用默认的映射
# 分面