我正在使用 Seurat 包分析六个单细胞 RNA-seq 数据集。
这 6 个数据集是通过每个不同的 10X 运行获得的,然后通过 Seurat 函数“FindIntegrationAnchors”与批效应校正相结合。同时,在这6个数据集中,数据1、2、3和4是“未处理”组,而数据5和6属于“处理”组。我将所有 6 个数据集与批量校正合并在一起,但我还需要比较“未处理”与“处理”的特征。
如何将数据1、2、3和4分组为“未处理组”,将数据5和6分组为“处理组”,然后进行下游分析?
谢谢。
一种快速而肮脏的方法是在合并Seurat 对象之前添加信息:
...
so_samples[[1]]@meta.data$treatment <- "control"
so_samples[[2]]@meta.data$treatment <- "control"
so_samples[[3]]@meta.data$treatment <- "control"
so_samples[[4]]@meta.data$treatment <- "control"
so_samples[[5]]@meta.data$treatment <- "treated"
so_samples[[6]]@meta.data$treatment <- "treated"
...
anchors <- FindIntegrationAnchors(object.list = so_samples, dims = 1:20)
so_all_samples <- IntegrateData(anchorset = anchors, dims = 1:20)
通常,最好从文件中加载此类元数据并将其连接到 seurat 对象,而无需此类容易出错的复制粘贴代码。另请注意,像这样修改 R S4 对象(可以使用 访问元素的对象)通常是一个坏主意@,但是 Seurat 包提供的用于修改 Seurat 对象的函数使用起来非常麻烦,我怀疑它们会永远改变底层的数据结构。