1

如果有人在 R 中使用 monocle 包有任何经验:

我正在尝试根据样本名称向量对我的数据进行子集化,但我无法完成它。

我努力了:

x@phenoData$sampleNames <- example.cells

但我收到此错误:

替换有661行,数据有5809

我试图子集的对象是由 importCDS 函数从 Seurat 对象创建的单元数据集 (CDS)。

我还为每个名为“CellType”的样本分配了一个 Cell Type,它是 Seurat 对象的 meta.data 的一部分,在转换为 CDS 后列在 phenoData 的 varLabels 插槽下。

我想根据这些变量中的任何一个来帮助子集,谢谢。

4

2 回答 2

2

根据单片机教程,使用此代码过滤低质量细胞(HSSM是单片机对象):

valid_cells <- row.names(subset(pData(HSMM),
            Cells.in.Well == 1 &
            Control == FALSE &
            Clump == FALSE &
            Debris == FALSE &
            Mapped.Fragments > 1000000))
HSMM <- HSMM[,valid_cells]

因此,对于您的示例,这应该有效:

x = x[,example.cells]

或(直接来自修拉):

x = x[,rownames(data.seurat@meta.data[data.seurat@meta.data$CellType == "interesting_cell",])]
于 2019-03-17T00:57:39.810 回答
0

这:x@phenoData$sampleNames <- example.cells将新数据添加到代表您的样本处理的数据框中,而不是子集。

尝试使用x@phenoData$sampleNames %in% example.cells检索布尔向量(真,假)并使用以下过滤器:

x@phenoData[x@phenoData$sampleNames %in% example.cells,]

一个小的编辑,这可能会弄乱你的 CDS 数据结构,所以要小心。在生成 CDS 或从旧数据生成新 CDS 之前进行过滤可能会更好。

于 2017-11-27T16:07:39.950 回答