st.RNA@meta.data$seurat_clusters <- st.RNA@meta.data$SCT_snn_res.0.5
celltype <- c("0"="Tumor4",
"1"="Immune",
"2"="CAF",
"3"= "keratin pearl",
"4"= "Myofibroblasts",
"5"= "Tumor1",
"6"= "Normal",
"7"= "Tumor2",
"8"= "Tumor3" )
st.RNA[['celltype']] = base::unname(celltype[st.RNA@meta.data$seurat_clusters])
比一个一个命名要清晰很多
补充说明,这里的0123456的顺序一定不能变!变了全乱了
再补充一个类似的分类命名,利用RenameIdents函数
celltype <- c('T_cells',
'T_cells',
'T_cells',
'T_cells',
'B_cells',
'Plasma_cells',
'Epithelial_cells',
'Epithelial_cells',
'Epithelial_cells',
'NKs',
'Epithelial_cells',
'Macrophages',
'Epithelial_cells',
'Plasma_cells',
'Monocytes',
'Epithelial_cells',
'Fibroblasts',
'Epithelial_cells',
'Mast_cells',
'T_cells',
'Endothelial_cells',
'Smooth_muscle_cells',
'Fibroblasts'
)
Idents(scRNA) <- scRNA@meta.data$seurat_clusters
names(celltype) <- levels(scRNA)
scRNA<- RenameIdents(scRNA, celltype)
scRNA@meta.data$celltype <- Idents(scRNA)
# Idents十分重要
Idents(scRNA)=scRNA@meta.data$celltype
编辑补充2023.10.12
第三种方法用于第一步聚类分群,即分群很多,但大量的命名是一致的情况
celltype=data.frame(ClusterID=0:17,
celltype= 0:17)
#定义细胞亚群
celltype[celltype$ClusterID %in% c( 13 ),2]='Tcells'
celltype[celltype$ClusterID %in% c( 15),2]='Mac'
celltype[celltype$ClusterID %in% c( 7,14,17 ),2]='endo'
celltype[celltype$ClusterID %in% c( 0,16),2]='pericyte'
celltype[celltype$ClusterID %in% c( 8),2]='fibo1'
celltype[celltype$ClusterID %in% c( 1,9),2]='fibo2'
celltype[celltype$ClusterID %in% c( 6),2]='SMC'
celltype[celltype$ClusterID %in% c( 2:5,10:12),2]='epi'
head(celltype)
celltype
table(celltype$celltype)
sce.all@meta.data$celltype = "NA"
for(i in 1:nrow(celltype)){
sce.all@meta.data[which(sce.all@meta.data$RNA_snn_res.0.8 == celltype$ClusterID[i]),'celltype'] <- celltype$celltype[i]}
table(sce.all@meta.data$celltype)