分享

单细胞亚群合并和拆分都是一句代码的事情

 健明 2023-02-03 发布于广东

有粉丝来信说按照我们的单细胞转录组数据处理教程完成了基本的降维聚类分群,然后也对每个亚群都进行了细分亚群,但是想把细分后的亚群名字重新给回去,然后可视化。比如下面的肺癌单细胞数据,细分后stromal可以成为内皮和成纤维, 其它都可以细分 :

 

前面我给大家准备的基因列表主要是针对肿瘤单细胞的第一层次降维聚类分群 , 是:

  • immune (CD45+,PTPRC),
  • epithelial/cancer (EpCAM+,EPCAM),
  • stromal (CD10+,MME,fibo or CD31+,PECAM1,endo)

参考我前面介绍过 CNS图表复现08—肿瘤单细胞数据第一次分群通用规则,这3大单细胞亚群构成了肿瘤免疫微环境的复杂。

从代码上来说,其实非常简单,这里我们以PBMC3K数据集为例子来演示:

首先说合并分群

# devtools::install_github('satijalab/seurat-data')
library(SeuratData) #加载seurat数据集  
getOption('timeout')
options(timeout=10000)
# InstallData("pbmc3k")  
data("pbmc3k")  
library(Seurat) 
sce <- pbmc3k.final  
# 需要合并一些单细胞亚群:
levels(Idents(sce))
p1 = DimPlot(sce, reduction = "umap", label = TRUE, repel = T,pt.size = 0.5) + NoLegend() 

这个数据集自己给的单细胞亚群名字:

[1] "Naive CD4 T"  "Memory CD4 T" "CD14+ Mono"   "B"            "CD8 T"       
[6] "FCGR3A+ Mono" "NK"           "DC"           "Platelet"    

假如我们想把"Naive CD4 T"  "Memory CD4 T"合并为CD4,另外"CD14+ Mono"  和"FCGR3A+ Mono" 也可以合并成为单核免疫细胞,就可以使用下面的代码:

## Assigning cell type identity to clusters
new.cluster.ids <- c("CD4 T","CD4 T""Mono",  "B""CD8 T",
                     "Mono""NK""DC""Platelet")
names(new.cluster.ids) <- levels(sce)
sce <- RenameIdents(sce, new.cluster.ids)
p2 = DimPlot(sce, reduction = "umap", label = TRUE, repel = T,pt.size = 0.5) + NoLegend()

library(patchwork)
p1+p2

这个RenameIdents函数只需要你想修改成为的单细胞亚群名字,跟之前的名字一一对应,就可以完成全部的修改啦。修改前后很容易对比:

修改前后对比

再说说拆分

前面的已知的"Naive CD4 T"  "Memory CD4 T"合并为CD4,然后我们就可以提取CD4子集进行细分,然后映射回去,对单核细胞也是如此。


cd4_sce = sce[,Idents(sce)== "CD4 T"]
mono_sce = sce[,Idents(sce)== "Mono"]

sce$celltype = as.character(Idents(sce))
table(sce$celltype )
mono_sce$celltype = ifelse(mono_sce@assays$RNA@counts['CD14',]>1,'pos','neg')
sce$celltype[match(colnames(mono_sce),colnames(sce))] =  mono_sce$celltype 
table(sce$celltype)

DimPlot(sce, reduction = "umap",group.by = 'celltype',
        label = TRUE, repel = T,pt.size = 0.5) + NoLegend()

上面的代码,我们提取了单核细胞后,简单的根据CD14基因表达量进行单核细胞亚群细分,并且成功的把该细分信息,给回去了,可以看到:

>table(sce$celltype )

       B    CD4 T    CD8 T       DC     Mono       NK Platelet 
     344     1180      271       32      642      155       14 

> table(sce$celltype )

       B    CD4 T    CD8 T       DC      neg       NK Platelet      pos 
     344     1180      271       32      422      155       14      220 

确实是mono被拆分成为了CD14基因阴性和阳性两个亚群:

值得注意的是,单核细胞真正的细分亚群不能是仅仅靠CD14基因表达量,区分成为了CD14基因阴性和阳性两个亚群。而应该是常规走降维聚类分群流程,得到 "CD14+ Mono"  和"FCGR3A+ Mono"  两个有生物学意义的亚群。

CD14基因阴性和阳性两个亚群

如果你对单细胞数据分析还没有基础认知,可以看基础10讲:

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章