单细胞分析数据后,得到族群后,如何将族群进行细胞名称注释是重要的步骤。这里使用SingleR 进行简单的自动注释。
安装需要的R包
需要两个包SingleR
和celldex
if (!require("BiocManager", quietly = TRUE)) install.packages("BiocManager")
if (!require("SingleR", quietly = TRUE)) install.packages("BiocManager")
library(SingleR)
if (!require("celldex", quietly = TRUE)) install.packages("BiocManager")
library(celldex)
hpca.se <- celldex::HumanPrimaryCellAtlasData()
hpca.se
hpca.se@metadata
bpe.se<-celldex::BlueprintEncodeData()
bpe.se@metadata
save(hpca.se,file='./data/HumanPrimaryCellAtlas_hpca.se_human.RData')
save(bpe.se,file='./data/BlueprintEncode_bpe.se_human.RData')
安装和加载SingleR
包时注意大小写即可。(个人踩坑经历,安装几次,发现加载不上)
保存数据之后,后续可以直接加载进行分析
SingleR进行细胞注释
# 获取标准化的矩阵数据
scobj4SingleR <- GetAssayData(scobj, slot = "data") ##获取标准化矩阵
pred.scobj <- SingleR(test = scobj4SingleR, ref = hpca.se, assay.type.test=1,
labels = hpca.se$label.main)
class(pred.scobj)
pred.scobj
table(pred.scobj$labels)
PCA降维展示
# PCA降维聚类
scobj <- RunPCA(scobj, features = VariableFeatures(object = scobj))
DimPlot(scobj, reduction = "pca")
PCAPlot(scobj)
# seurat 和 singleR的table表
table(pred.scobj$labels, scobj$seurat_clusters)
scobj@meta.data$labels <- pred.scobj$labels
DimPlot(scobj, group.by = c("seurat_clusters", "labels"), reduction = "pca")

同时也可以使用umap
和 tSNE
降维的结果,使用自动注释的结果进行展示

当然,这种注释的方法,还是有一定的局限性。因为SingleR
这个package注释的依据是Human Primary Cell Atlas An expression atlas of human primary cells: inference of gene function from coexpression networks
使用的是人类原代细胞的一些标志物,如果研究的是比较特殊的一些项目,可能就需要根据个人的项目的情况,进行人工注释,这个时候就是和个人的知识背景相关。
参考文章
SCS【6】单细胞转录组之细胞类型自动注释 (SingleR)
Using SingleR to annotate single-cell RNA-seq data
An expression atlas of human primary cells: inference of gene function from coexpression networks
网友评论