Seurat V5升级:sketch-based分析后DotPlot图报错解决

最近在研究seurat v5的数据处理。测试的时候发现使用seurat v5包对大数据进行sketch-based抽样分析之后,后续使用DotPLit进行绘图的时候会报错:

DotPlot(object = obj, features = "Cd79a")
dev.off()
报错信息

通过查看源码发现是在这一步出现了问题:


DotPlot函数源码部分截图

具体出现的问题是由于抽平之后有很多cells的cluster名称由于没有参与聚类而变成了<NA>(可以通过Idents(obj)查看)。

存在<NA>

所以导致后面提取数据的时候出现了错乱,我们需要将NA变成字符串的“NA”。具体的做法如下:

idents <- Idents(object)  # 获取原始的idents,是按照0、1、2类似这样的
Idents(combined) <- as.factor(ifelse(is.na(Idents(combined)), "NA", as.character(Idents(combined)))) # 将<NA> => NA 字符串,这时候可以发现顺序乱了
Idents(combined) <- ordered(Idents(combined)  , levels = levels(idents))  # 重新按照原来的顺序排序
DotPlot(object = combined, features = "Cd79a", idents=idents)  # 需要在这里增加指定idents的参数
dev.off()

最后大功告成,可以顺利出图了。


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容