其实在教程:为什么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.
十年后我环游世界各地的高校以及科研院所(当然包括中国大陆)的时候,如果有这样的情谊,我会优先见你。