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

3个月前 (01-16) 0 点赞 0 收藏 0 评论 5 已阅读

最近在研究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()

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


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

本文收录在
0评论

登录

忘记密码 ?

切换登录

注册