前面我们从单细胞数据下载整理,然后经过一系列处理之后,将一堆细胞根据基因表达特征相似性划分为不同的细胞群,对应不同cluster,而这些cluster在没有进行细胞类型鉴定之前无法得出有价值的生物学研究方向。此时就需要将这些细胞簇cluster数字转变成具有生物学意义的细胞类型,简单的说需要明确这些细胞簇cluster是T细胞、B细胞、巨噬细胞、上皮细胞、成纤维细胞等细胞具体类型,这就是细胞注释的过程。
细胞注释有两种方法。
一、人工注释
第一步,寻找Makers基因
#①寻找cluster 1 的Makers基因
Cluster1.markers <- FindMarkers(pbmc, ident.1 = 1, min.pct = 0.25)
head(cluster1.markers, n = 5)
#代码解读:ident.1 = 1代表定义类群1的细胞与其他所有类群相比,min.pct = 0.25代表得到的差异基因至少在类群1细胞中有百分之25的表达。
#运行结果如下:
#②寻找两个特定类群的Makers基因
Cluster2.markers <- FindMarkers(pbmc, ident.1 = 1, ident.2 =2, min.pct = 0.25)
#③寻找所有类群的Makers基因
pbmc.markers <- FindAllMarkers(pbmc, only.pos = TRUE, min.pct = 0.25, logfc.threshold = 0.25)
pbmc.markers %>% group_by(cluster) %>% slice_max(n = 2, order_by = avg_log2FC)
#代码解读:n = 2代表只保留每个类群中差异最显著的前两个基因作为Makers基因
#运行结果如下:
第二步,通过文献查询或者一些数据库收录找到Makers基因对应的细胞类型。(如下表)
第三步,注释细胞
#将类群根据Markers基因 定义细胞名
new.cluster.ids <- c("Naive CD4 T", "CD14+ Mono", "Memory CD4 T", "B", "CD8 T", "FCGR3A+ Mono","NK", "DC", "Platelet")
names(new.cluster.ids) <- levels(pbmc)
pbmc <- RenameIdents(pbmc, new.cluster.ids)
DimPlot(pbmc, reduction = "umap", label = TRUE, pt.size = 0.5) + NoLegend()
二、机器注释
第一步,加载安装包
#安装R包
BiocManager::install("SingleR")
BiocManager::install("celldex")
#加载R包
library(SingleR)
library(celldex)
第二步,细胞注释
#①下载参考基因集
refdata <- celldex::HumanPrimaryCellAtlasData()
#这里选择的是人的
#②计算每个cluster对应参考数据集中的细胞类型
cellpred <- SingleR(test = pbmc@assays$RNA@data, ref = refdata, labels = refdata$label.fine, clusters = pbmc@active.ident, assay.type.test = "logcounts", assay.type.ref = "logcounts")
第三步,可视化细胞注释
pbmc@meta.data$singleR=celltype[match(pbmc@active.ident,celltype$ClusterID),'celltype']
DimPlot(pbmc, reduction = "tsne", group.by = "singleR",label=T, label.size=5)
人工注释:就是基于参考数据库、文献资料确定已知细胞类型的特征表达基因列表和相关通路进行注释。
机器注释:就是基于参考数据库利用软件工具进行自动化注释。
机器注释,对小类亚群的精度不够。而人工注释也需要大量的先验知识,耗费更多的时间精力,所以常用的方法就是先用机器注释各个细胞大群,然后在人工手动对亚群进行注释。
到这里今天的分享就结束了,后面我们会继续为大家讲解单细胞测序分析后续的部分,大家敬请关注!
—END—
网友评论