前两天遇到了一个小问题:初步注释细胞发现,使用RenameIdents后细胞类型的levels与我想要的排序不符。例如,我实际得到的level为: cancer_cell1 T_cells cancer_cell2 cancer_cell3 B_cells.但是我想要把cancer_cell cluster与免疫细胞的排列成:cancer_cell1 cancer_cell2 cancer_cell3 T_cells B_cells。搜所了一下,结果方法很简单。
# Reorder identity classes
levels(x = pbmc_small)
#> [1] "B" "A" "C"
levels(x = pbmc_small) <- c('C', 'A', 'B')
levels(x = pbmc_small)
#> [1] "C" "A" "B"
seurat处理identity的函数有
Idents(object, ...)
Idents(object, ...) <- value
RenameIdents(object, ...)
ReorderIdent(object, var, ...)
SetIdent(object, ...)
StashIdent(object, save.name, ...)
# S3 method for Seurat
Idents(object, ...)
# S3 method for Seurat
Idents(object, cells = NULL, drop = FALSE, ...) <- value
# S3 method for Seurat
ReorderIdent(
object,
var,
reverse = FALSE,
afxn = mean,
reorder.numeric = FALSE,
...
)
# S3 method for Seurat
RenameIdents(object, ...)
# S3 method for Seurat
SetIdent(object, cells = NULL, value, ...)
# S3 method for Seurat
StashIdent(object, save.name = "orig.ident", ...)
# S3 method for Seurat
droplevels(x, ...)
# S3 method for Seurat
levels(x)
# S3 method for Seurat
levels(x) <- value
# 获取细胞identy
Idents(pbmc_small)
# 设置细胞identy
# 可以用来指定某些细胞为新的名称
#例如将前4个细胞的identity修改为a,其余不变
Idents(pbmc_small, cells = 1:4) <- 'a'
head(Idents(pbmc_small))
# 使用matadata来设置identity
colnames(pbmc_small[[]])
Idents(pbmc_small) <- 'RNA_snn_res.1'
levels(pbmc_small)
# 修改细胞identity的名字
# 可以提供任意数量,例如,原始的level有20,修改2个,剩余的18个保持不变
levels(pbmc_small)
pbmc_small <- RenameIdents(pbmc_small, '0' = 'A', '2' = 'C')
levels(pbmc_small)
# 这里也可以写成
identityMapping <- c('0' = 'A', '2' = 'C')
pbmc_small <- RenameIdents(pbmc_small, identityMapping )
# 使用SetIdent设置细胞的identity
cells.use <- WhichCells(pbmc_small, idents = '1')
pbmc_small <- SetIdent(pbmc_small, cells = cells.use, value = 'B')
#将细胞的identity加到matadata上
head(pbmc_small[[]])
pbmc_small <- StashIdent(pbmc_small, save.name = 'idents')
head(pbmc_small[[]])
# 获取seurat对象的细胞identity的水平
levels(x = pbmc_small)
# 调整细胞identity的水平
levels(x = pbmc_small)
levels(x = pbmc_small) <- c('C', 'A', 'B')
levels(x = pbmc_small)
感觉上面的函数基本上涵盖了操纵identity的所有需求。
如有错误,可以在评论初指正。
参考
网友评论