我有一个通过苏拉特运行的doubletFinder对象。我试图根据在seurat_object@meta.data[["DF.classifications_0.25_0.03_252"]]
下被归类为“单体”的单元格对对象进行子集,并可以通过执行以下操作来实现这一点:
seurat_object <- subset(seurat_object, subset = DF.classifications_0.25_0.03_252 == 'Singlet') #this approach works
我想自动化这个过程,但是_0.25_0.03_252
of DF.classifications_0.25_0.03_252
是基于计算的值,并且不会事先知道。我可以通过做以下几件事来弄清楚这是什么:
meta_data = colnames(seurat_object@meta.data)[grepl("DF.classification", colnames(seurat_object@meta.data))]
其中meta_data = 'DF.classifications_0.25_0.03_252'
和是一个字符类。
但是,当我尝试执行以下任何一项操作时:
seurat_object <- subset(seurat_object, subset = meta_data == 'Singlet') #this approach does not recognize meta_data
seurat_object <- subset(seurat_object, subset = seurat_object@meta.data$meta_data == 'Singlet') #this approach does not work
seurat_object <- subset(seurat_object, subset = seurat_object@meta.data[[meta_data]] == 'Singlet') #this approach does not work
我收到一个错误声明:
Error in FetchData(object = object, vars = unique(x = expr.char[vars.use]), :
None of the requested variables were found:
Calls: remove_doublets ... subset.Seurat -> WhichCells -> WhichCells.Seurat -> FetchData
Execution halted
对于如何使用meta_data
变量执行条件匹配,我感到困惑。有人知道我如何使子集过程自动化吗?在此之前,非常感谢您。
发布于 2022-07-06 18:03:54
@cer:
但我特别不明白为什么这个不起作用:
seurat_object <- subset(seurat_object, subset = seurat_object@meta.data[[meta_data]] == 'Singlet')
双括号中的名称应该是引号["meta_data"],在meta.data data.frame中应该以列名的形式存在(至少我在自己的seurat obj中看到了这一点)。
谢谢你的回复!
https://stackoverflow.com/questions/71542822
复制相似问题