在umap图上面叠加基因表达量

2022-03-03 12:56:27 浏览数 (3)

其实在教程:为什么CD4阳性T细胞并不是表达CD4最多的,分享过这个技巧,不过标题不够醒目,所以大家很难记忆它,换个马甲再来一次, 这次很明确的告诉你是在在umap图上面叠加基因表达量。

就是为了回答交流群小伙伴的提问:

这个umap里面,叠加了FeaturePlot看一个基因表达信息。文献出处是:《IL-11 is a crucial determinant of cardiovascular fibrosis》,作者其实就是想展现IL-11这个基因呢,在其中一个fibroblasts细胞亚群里面是表达量比较高!

仍然是以大家熟知的pbmc3k数据集为例

大家先安装这个数据集对应的包,并且对它进行降维聚类分群, 而且每个亚群找高表达量基因,都存储为Rdata文件。

代码语言:javascript复制
# 0.安装R包 ----
# devtools::install_github('caleblareau/BuenColors')
# utils::install.packages(pkgs = "ggstatsplot")
# InstallData("pbmc3k") 

# 1.加载R包和测试数据 ----
rm(list = ls())
library(SeuratData) #加载seurat数据集  
getOption('timeout')
options(timeout = 10000)
data("pbmc3k")  
sce <- pbmc3k.final  
library(Seurat)

DimPlot(sce,reduction = "umap",label = TRUE) 
unique(Idents(sce))
sce$celltype = Idents(sce)

# 2.单细胞分析基本流程 ----
# 主要是拿到 tSNE和Umap的坐标,因为默认的 pbmc3k.final 是没有的
sce <- NormalizeData(sce, normalization.method =  "LogNormalize",  
                     scale.factor = 1e4) 
sce <- FindVariableFeatures(sce, 
                            selection.method = "vst", nfeatures = 2000)  
sce <- ScaleData(sce) 
sce <- RunPCA(object = sce, pc.genes = VariableFeatures(sce))  
sce <- FindNeighbors(sce, dims = 1:15)
sce <- FindClusters(sce, resolution = 0.8) 
set.seed(123)
sce <- RunTSNE(object = sce, dims = 1:15, do.fast = TRUE) 
sce <- RunUMAP(object = sce, dims = 1:15, do.fast = TRUE)
DimPlot(object = sce, reduction = "umap",label = TRUE)   
# 3.定义分组信息 ---- 
Idents(sce) = sce$celltype

# 4.寻找各个单细胞亚群的特征性高表达量基因----
sce.markers <- FindAllMarkers(object = sce, 
                              only.pos = TRUE,
                              min.pct = 0.25, 
                              thresh.use = 0.25) 

save(sce, sce.markers, file = 'tmp.Rdata')

接下来开启绘图模式

在前面保存好了的seurat对象什么,可以提取表达量矩阵,以及降维后的坐标,就很容易自定义绘图啦,代码如下所示:

代码语言:javascript复制
sce.all=sce
gene='CD4'
p1=DimPlot(sce.all,reduction = 'umap',label = T,repel = T,
           group.by = 'celltype')
pos=sce.all@reductions$umap@cell.embeddings
pos=pos[sce.all@assays$RNA@counts[gene,]>1,]
head(pos)
p1 geom_point(aes(x=UMAP_1,y=UMAP_2), 
              shape = 21, colour = "black",
              fill = "blue", size = 0.5,  
              data = as.data.frame(pos))

效果如下所示:

在umap图上面叠加基因表达量

可以看到的是CD4这个基因并不是在CD4的T细胞特异性表达哦,在各种Mono细胞也是有不少的表达量哈。

如果你确实觉得我的教程对你的科研课题有帮助,让你茅塞顿开,或者说你的课题大量使用我的技能,烦请日后在发表自己的成果的时候,加上一个简短的致谢,如下所示:

代码语言:javascript复制
We thank Dr.Jianming Zeng(University of Macau), and all the members of his bioinformatics team, biotrainee, for generously sharing their experience and codes.

十年后我环游世界各地的高校以及科研院所(当然包括中国大陆)的时候,如果有这样的情谊,我会优先见你。

1 人点赞