前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >聚类分群如何在保持坐标轴和配色不变的情况下标定特定亚群

聚类分群如何在保持坐标轴和配色不变的情况下标定特定亚群

作者头像
生信技能树jimmy
发布2024-01-26 19:14:07
1660
发布2024-01-26 19:14:07
举报
文章被收录于专栏:单细胞天地单细胞天地

分享是一种态度

最近看到有这种只标定特定细胞群的聚类分群图,想想应该不是很难,应该可以用DimPlot来实现,下面就是具体的探索啦。

首先尝试只提取特定的细胞群的cell作为DimPlot的输入。但是发现只标定特定细胞群时,坐标轴和配色都发生了变化(下图中的第一和第二个子图):

代码语言:javascript
复制
kp1 = sce$celltype =='B'
kp2 = sce$celltype %in% c("Naive CD4 T",  "Memory CD4 T" )
DimPlot(sce[,kp1]) + DimPlot(sce[,kp2]) + DimPlot(sce,label = TRUE)

因为每次DimPlot()的坐标轴和配色配置是独立的,所以在所有聚类分群图上的坐标轴和颜色是不能自动和特定细胞群的聚类分群图统一的。那么我们需要修改代码来满足取子集的同时,让坐标轴不变化,配色也不变化。

在查看DimPlot()函数介绍的时候发现cells.highlight参数用来高亮显示在降维可视化图(比如UMAP)中特定的细胞。这个参数接受一个向量,包含要高亮的细胞的名称。只是高亮,不会影响坐标轴结构。

那么如何得到特定细胞群的颜色呢?我想到首先需要得到DimPlot默认所用的颜色,该函数与ggplot2类似,所以搜索发现hue_pal()函数可以得到默认的配色。然后找到特定细胞群名字在所有细胞群的位置,得到他的颜色。

整体的思路就是要找到特定细胞群的颜色和细胞名称。代码如下:

代码语言:javascript
复制
# 得到分组数目
tmp_length <- length(levels(sce$celltype))
# 获得默认的颜色
cell_type_cols <- hue_pal()(tmp_length)
# 找到B对应的颜色和细胞id
B_col<- cell_type_cols[levels(sce$celltype) == "B"]
B_highlight<- list(B=WhichCells(pbmc, idents="B"))
# 找到CD4对应的颜色和细胞id
CD4_col <- cell_type_cols[levels(sce$celltype) %in% c("Naive CD4 T",  "Memory CD4 T" )]
CD4_highlight<- list("Naive CD4 T"=WhichCells(pbmc, idents="Naive CD4 T"),"Memory CD4 T"=WhichCells(pbmc, idents="Memory CD4 T"))
# 画图
DimPlot(pbmc, cells.highlight=B_highlight,cols.highlight=B_col,label = TRUE)+
  DimPlot(pbmc, cells.highlight=CD4_highlight,cols.highlight=CD4_col,label = TRUE)+
  DimPlot(sce,label = TRUE,cols = cell_type_cols)

看来达到了我们的目的:只标定特定细胞群,保持坐标轴和配色不变化。感兴趣的你也可以试试哦。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2024-01-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 单细胞天地 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档