将捐助者级别的元数据添加到集成的 Seurat 对象

问题描述 投票:0回答:1

我正在尝试将患者级别的元数据添加到现有的 Seurat 对象中。这包括每个参与者的生化信息,例如血糖、HsCRP、BMI 等。如何将此数据添加到我的 Seurat 对象,以便它与每个参与者 ID 正确对齐?我真的很感谢你的帮助。

我试过运行它,但它没有用(虽然我有点预料它不会)

#extract BMI into a numeric variable
BMI <- Donor_parameters$BMI
#add donor names to BMI
names(BMI) <- colnames(seurat_obj$Donor)

#Add metadata to existing object
seurat_obj <- AddMetaData(
object = seurat_obj,
metadata = BMI,
col.name = 'BMI')
r bioinformatics bioconductor seurat
1个回答
0
投票

Seurat 对象中的元数据的行数与数据的单元格数一样多。要查看它的外观,您可以使用

head(seurat_obj[[]])
。请注意,如果您对数据进行了过滤,则单元格数量可能与原始原始数据中的单元格数量不同,因此如果您为每个单元格添加了额外的注释数据,则可能与 Seurat 对象中的数据不匹配。

要添加的数据必须与修拉元数据具有相同的

row.names
,通常是单元格条形码。如果条形码是附加数据中的变量,您可以:

row.names(Donor_parameters) <- Donor_parameters$Barcode
seurat_obj <- AddMetaData(seurat_obj, metadata = Donor_parameters)

如果附加数据有一个识别变量(这里称为

Pat_id
)也存在于修拉元数据中,您可以这样做:

library(dplyr)
add_data <- left_join(seurat_obj[["Pat_id"]], Donor_parameters)
row.names(add_data) <- row.names(seurat_obj[[]])
seurat_obj <- AddMetaData(seurat_obj, metadata = add_data)

玩具示例:

library(dplyr)
library(Seurat)
# Data is from https://cf.10xgenomics.com/samples/cell/pbmc3k/pbmc3k_filtered_gene_bc_matrices.tar.gz 
pbmc.data <- Read10X(data.dir = "temp/filtered_gene_bc_matrices/hg19/")
pbmc <- CreateSeuratObject(counts = pbmc.data, project = "pbmc3k", min.cells = 3, min.features = 200)
# Create a grouping variable
pbmc <- AddMetaData(pbmc, metadata = sample(c("A", "B", "C"), size = ncol(pbmc), replace = TRUE), col.name = "Group")
# Metadata for the groups
meta <- data.frame(Group = c("B", "A", "C"), Desc = c("Second", "First", "Third"))
add_data <- left_join(pbmc[["Group"]], meta)
row.names(add_data) <- row.names(pbmc[[]])
pbmc <- AddMetaData(pbmc, metadata = add_data)
© www.soinside.com 2019 - 2024. All rights reserved.