单细胞分析细胞注释不用人工?SingleR来搞定






单细胞分析细胞注释不用人工?SingleR来搞定

小果  生信果  2023-06-01 19:00:50

生信人R语言学习必备

立刻拥有一个Rstudio账号

开启升级模式吧

(56线程,256G内存,个人存储1T)

小果来喽,大家最近在做什么生信分析呢?小果最近在做单细胞转录组分析的细胞注释部分,今天就和大家分享一下。


单细胞转录组注释一直是单细胞RNA测序分析中的重要步骤之一。细胞注释有多种方法,可以人工注释,也可以自动注释。SingleR的出现使得单细胞数据的注释变得更加快捷、精确和可靠。同时,SingleR也为后续的单细胞转录组分析提供了更为准确和具体的细胞身份信息。


SingleR是什么呢?


SingleR是一种用于单细胞转录组注释的自动化方法,是基于R使用的一个工具。它使用参考数据集中的基因表达模式来预测每个单细胞在不同类型和状态下的细胞身份,从而实现对单细胞数据进行注释。


SingleR的基本思路是将待注释的单细胞数据与大规模参考数据库进行比较,分析其共性和差异性,从而得到最优的细胞身份注释。SingleR所使用的参考资料包括 HPA、ImmGen 和 Blueprint 等公开的 scRNA-seq 数据库。SingleR的优点在于快速、简单、有较高的准确性。此外,它不需要用户对注释进行手动干预,避免了人为因素对结果的影响。


这里小果使用的是seurat分析的pbmc数据,原数据是从10X Genomics网站上免费获得的外周血单个核细胞(PBMC)数据集,可以在此链接下载https://cf.10xgenomics.com/samples/cell/pbmc3k/pbmc3k_filtered_gene_bc_matrices.tar.gz。经过数据预处理、降维聚类后,进行注释。

原数据的处理代码如下:

library(dplyr)library(Seurat)library(patchwork)#数据导入dir="../filtered_feature_bc_matrix/hg19/"#原数据所在文件夹counts <- Read10X(data.dir = dir)scdata <- CreateSeuratObject(counts = counts)#质控scdata[["percent.mt"]] <- PercentageFeatureSet(scdata, pattern = "^MT-")# 计算线粒体基因表达的比例VlnPlot(scdata, features = c("nFeature_RNA", "nCount_RNA", "percent.mt"), ncol = 3) #可视化QC metrics as a violin plotplot1 <- FeatureScatter(scdata, feature1 = "nCount_RNA", feature2 = "percent.mt")plot2 <- FeatureScatter(scdata, feature1 = "nCount_RNA", feature2 = "nFeature_RNA")plot1 + plot2scdata <- subset(scdata, subset = nFeature_RNA > 200  & percent.mt < 10)#过滤细胞。我们过滤掉基因数(nFeature_RNA)小于200的细胞,以及线粒体基因组比例大于10%的细胞。scdata <- NormalizeData(scdata, normalization.method = "LogNormalize", scale.factor = 10000)scdata <- FindVariableFeatures(scdata, selection.method = "vst", nfeatures = 2000) #特征选择all.genes <- rownames(scdata) #数据缩放scdata <- ScaleData(scdata, features = all.genes)#降维scdata <- RunPCA(scdata,features = VariableFeatures(object = scdata))DimPlot(scdata, reduction = "pca")#UMAPscdata <- RunUMAP(scdata, dims = 1:10)DimPlot(scdata, reduction = "umap",label = TRUE)#聚类scdata <- FindNeighbors(scdata, dims = 1:10)scdata <- FindClusters(scdata, resolution = 0.5)对数据处理后,进行SingleR的注释:#SingleR注释library(SingleR)#载入参考数据集ref_use <- HumanPrimaryCellAtlasData()singler_res <- SingleR(test=as.matrix(scdata@assays$RNA@data), #输入表达矩阵                ref=ref_use, #参考数据                labels=ref_use$label.fine #标签)table(singler_res$labels)  #查看注释结果         #保存SingleR注释结果write.table(singler_res,"../output/Singler_out.xls",sep='t',quote = F)celltype = data.frame(ClusterID=rownames(singler_res), celltype=singler_res$labels, stringsAsFactors = F)scdata@meta.data$singleR=celltype[match(rownames(scdata@meta.data),celltype$ClusterID),'celltype']head(scdata@meta.data)DimPlot(scdata, reduction = "umap", group.by = "singleR",pt.size = 1.5)


我们可以看到,SingleR将此数据注释成了7大类,分别用不同颜色标识。

 

最后,小果给大家介绍一个在线小工具:基于基因功能注释信息挖掘关键作用基因(http://www.biocloudservice.com/122/122.php),简单好用,大家记得用起来哦。


微信号 | 18502195490

知乎 | 生信果

点击“阅读原文”立刻拥有

↓↓↓