代码语言:javascript复制单细胞转录组数据进行降维聚类分群后,我们通常是让大家根据目前我们初步整理好的基因与单细胞亚群对应关系去命名,如下所示:
# T Cells (CD3D, CD3E, CD8A),
# B cells (CD19, CD79A, MS4A1 [CD20]),
# Plasma cells (IGHG1, MZB1, SDC1, CD79A),
# Monocytes and macrophages (CD68, CD163, CD14),
# NK Cells (FGFBP2, FCG3RA, CX3CR1),
# Photoreceptor cells (RCVRN),
# Fibroblasts (FGF7, MME),
# Endothelial cells (PECAM1, VWF).
# epi or tumor (EPCAM, KRT19, PROM1, ALDH1A1, CD24).
# immune (CD45 ,PTPRC), epithelial/cancer (EpCAM ,EPCAM),
# stromal (CD10 ,MME,fibo or CD31 ,PECAM1,endo)
可以看到,绝大部分亚群都是有三五个基因。而且第一次分群是通用规则的3大亚群的基因是固定的, 背诵下来后跑一下 可视化单细胞亚群的标记基因的5个方法的代码即可,详见以前我们做的投票:可视化单细胞亚群的标记基因的5个方法,下面的5个基础函数相信大家都是已经烂熟于心了:
- VlnPlot(pbmc, features = c("MS4A1", "CD79A"))
- FeaturePlot(pbmc, features = c("MS4A1", "CD79A"))
- RidgePlot(pbmc, features = c("MS4A1", "CD79A"), ncol = 1)
- DotPlot(pbmc, features = unique(features)) RotatedAxis()
- DoHeatmap(subset(pbmc, downsample = 100), features = features, size = 3)
对各个单细胞亚群的特异性高表达量基因进行可视化的基础函数里面,我最喜欢DotPlot,如下所示很容易看到一个单细胞转录组样品经过了降维聚类分群后,得到了如下所示的有生物学意义的亚群,并且给予了合理的名字,可视化其对应的特征高表达量基因 :
降维聚类分群
但是仍然是有一些小伙伴一定要使用FeaturePlot来可视化一个亚群的多个基因,这样他们就会提问单细胞的co-expression的featurePlot要怎么画呢?就是几个基因在一个图里面同时画上去,如下所示:
几个基因在一个图里面同时画上去
来源于文献;《Cell subtypes and immune dysfunction in peritoneal fluid of endometriosis revealed by single-cell RNA-sequencing》
可以看到,这4个基因都是单核细胞的特异性高表达量基因,不过单核细胞本身就可以比较好的区分成为CD14和CD16两个不同的单核细胞细分亚群。
我们这里还是以pbmc为例:
代码语言:javascript复制library(SeuratData) #加载seurat数据集
getOption('timeout')
options(timeout=10000)
#InstallData("pbmc3k")
data("pbmc3k")
sce <- pbmc3k.final
library(Seurat)
FeaturePlot函数的blend参数可以叠加两个基因
如下所示简单的代码:
代码语言:javascript复制FeaturePlot(sce,c("CD14" ,'FCGR3A'),blend = T)
相关还不错:
两个不同的单核细胞各自特征基因
可以很清楚的看到,单核细胞区分成为了两个不同区域:
两个单核细胞为主
如果确实需要叠加3个或者以上的基因
感觉不是很有必要,有一个办法是创作一个虚拟基因,是多个基因的合辑,比如;
也可以是多个基因的打分,代码如下所示: