如何从UMAP聚类子集创建新Seurat对象?PBMC T细胞提取报错求助
解决Seurat提取指定聚类时的FetchData()错误
方法1:使用subset函数的idents参数
这是Seurat官方推荐的提取指定聚类的方式,语法明确,可避免类型不匹配问题:
clusters <- c(0, 2, 4, 6) tcells <- subset(pbmc, idents = clusters)
方法2:转换聚类标识类型后再筛选
Seurat默认将聚类结果存为因子类型,直接用数值向量匹配易出现类型兼容问题,可先转换类型再筛选:
clusters <- c(0, 2, 4, 6) tcells <- pbmc %>% subset(as.numeric(Idents(.)) %in% clusters)
方法3:直接通过细胞元数据筛选
从Seurat对象的元数据中筛选目标聚类,也是可靠的实现方式:
clusters <- c(0, 2, 4, 6) tcells <- pbmc[, pbmc$seurat_clusters %in% clusters]
错误原因说明
你之前的代码报错大概率是聚类标识类型不匹配导致:Seurat默认将聚类结果存储为因子类型,而你用数值向量c(0,2,4,6)匹配因子时,会引发subset调用FetchData()时的类型冲突,上述方法均可解决该问题。
内容的提问来源于stack exchange,提问作者Karol Wyrębkiewicz
相关产品推荐
相关产品推荐

