我把 h5ad文件导入R用来创建Seurat对象时,遇到了以下问题:
library(Seurat)
library(anndata)
ad <- read_h5ad("adata.h5ad")
de_count = t(as.matrix(ad$X))
meta <- ad$obs
de_cell_type = data.frame(Barcode = rownames(meta),Cluster = meta$cell_type)
seu_obj <- CreateSeuratObject(counts = de_count, meta.data = de_cell_type, assay = 'Spatial')
报错信息是:
Warning message:
In CreateSeuratObject.default(counts = de_count, meta.data = de_cell_type, :
Some cells in meta.data not present in provided counts matrix
这会导致有些细胞的注释是错误的,具体来说,在原始的注释矩阵中:
r$> de_cell_type$Cluster %>% as.character() %>% unique()
#[1] "CD8T" "Endothelial" "Malignant" "Fibroblasts" "SMC" "Endometrial stromal cells"
#[7] "Mono Macro"
可以看到一共有7个细胞类型。
但是在创建好的seurat对象中查看注释:
r$> seu_rat@meta.data$Cluster %>% as.character() %>% unique()
#[1] NA "Fibroblasts" "Malignant" "SMC" "Endothelial" "CD8T"
#[7] "Endometrial stromal cells" "Mono Macro"
可以看到多了一个NA,说明有些细胞注释失败了。
虽然不知道是为什么,但是可以用以下办法解决:
解决办法:
把输入进CreateSeuratObject函数的注释矩阵de_cell_type的行名设置成Barcode(与输入的counts矩阵的列名Barcode一致)
rownames(de_cell_type) <- de_cell_type$Barcode
如果我没解释清楚的请随时提问。