查看原文
其他

各个单细胞亚群的差异基因数量投射到umap图

生信技能树 单细胞天地 2022-08-15


收到一个有意思的求助,希望可以把各个单细胞亚群的差异基因数量投射到umap图 ,如下所示:

各个单细胞亚群的差异基因数量投射到umap图

我简单读了一下文章,其实就降维聚类分群后,每个单细胞亚群在两个分组简单的做一下差异分析,有多少个单细胞亚群就做多少次差异分析,差异分析的上下调基因数量就是umap图里面的每个细胞的颜色情况。

我在 JCI Insight 2022  https://doi.org/10.1172/jci.insight.152616 文章里面也看到了类似的图:

 

因为每个单细胞亚群都有一个差异分析结果,所以也就是会有一个火山图等等,就跟常规表达量数据分析类似,公众号推文在:

单细胞的降维聚类分群标准分析这里我就不再赘述,也可以看基础10讲:

我们以大家熟知的pbmc3k数据集为例。大家先安装这个数据集对应的包,并且对它进行降维聚类分群,参考前面的例子:人人都能学会的单细胞聚类分群注释  ,而且每个亚群找高表达量基因,都存储为Rdata文件。

# 0.安装R包 ---- 
# InstallData("pbmc3k") 

library(SeuratData) #加载seurat数据集  
getOption('timeout')
options(timeout=10000)
#InstallData("pbmc3k")  
data("pbmc3k")  
sce <- pbmc3k.final   
library(Seurat)
table(Idents(sce))
DimPlot(sce,label = T)


library(future)
# check the current active plan
plan()
plan("multiprocess", workers = 4)
plan()

sce.markers <- FindAllMarkers(object = sce, only.pos = TRUE
                              min.pct = 0.25
                              thresh.use = 0.25)
DT::datatable(sce.markers)
pro='markers'
write.csv(sce.markers,file=paste0(pro,'_sce.markers.csv'))
save(sce.markers,file = paste0(pro, 'sce.markers.Rdata'))


这个时候,因为它pbmc3k数据集并没有分组,所以我们没办法做差异分析。如果你一定要知道如何对每个单细胞亚群都在两个分组做一下差异分析并且统计上下调基因数量,也可以看前些天我们在《单细胞天地》的推文笔记:各个单细胞亚群独立在两个分组做差异分析

其实就是每个单细胞亚群都跑一下如下所示的示例代码 :

# 假设是两个分组:
Idents(sce) = sce$group 
table(Idents(sce))
deg = FindMarkers(sce,ident.1 = 'group1',
            ident.2 = 'group1')
head(deg[order(deg$p_val),])
table(Idents(sce))

library(EnhancedVolcano)
res=deg
head(res)
EnhancedVolcano(res,
                lab = rownames(res),
                x = 'avg_log2FC',
                y = 'p_val_adj')

虽然我们没办法跑差异分析,但是统计每个单细胞亚群的标记基因,也是可以的啊!

我们把每个单细胞亚群的标记基因数量投射到umap图也是可以的:

> as.data.frame(table(sce.markers$cluster))
          Var1 Freq
1  Naive CD4 T  162
2 Memory CD4 T  176
3   CD14+ Mono  391
4            B  147
5        CD8 T  162
6 FCGR3A+ Mono  608
7           NK  364
8           DC  633
9     Platelet  242

代码比较简单,把每个单细胞亚群的标记基因数量首先加入到seurat对象的meta.data里面,如下所示:

sce$celltype = Idents(sce)
df = as.data.frame(table(sce.markers$cluster))
colnames(df) = c('celltype','NofDEGs')
sce$NofDEGs = df[match(sce$celltype,df$celltype),2]
library(patchwork)
DimPlot(sce,label = T)+FeaturePlot(sce,'NofDEGs')

如下所示:

把每个单细胞亚群的标记基因数量投射到umap图

其实这个图呢,就是把前面的表格内容:

> as.data.frame(table(sce.markers$cluster))
          Var1 Freq
1  Naive CD4 T  162
2 Memory CD4 T  176
3   CD14+ Mono  391
4            B  147
5        CD8 T  162
6 FCGR3A+ Mono  608
7           NK  364
8           DC  633
9     Platelet  242

进行了简单的可视化,并没有太多的其它意义。

往期回顾

Science: 微生物单细胞、高通量、菌株分辨率,我全都要!| 深度长文

胃腺癌肿瘤微环境免疫细胞分析

动动手指的单细胞分析手动选点小工具:xSelectCells

基于基因调控网络的单细胞转录组解析三阴性乳腺癌的瘤内异质性






如果你对单细胞转录组研究感兴趣,但又不知道如何入门,也许你可以关注一下下面的课程



看完记得顺手点个“在看”哦!


生物 | 单细胞 | 转录组丨资料每天都精彩

长按扫码可关注



您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存