SingleR包注释细胞类型

SingleR是一个用于对单细胞RNA-seq测序(scRNA-seq)数据进行细胞类型自动注释的R包(Aran et al.2019)。依据已知类型标签的细胞样本作为参考数据集,对测试数据集中的细胞进行标记注释。

一 内置数据库

使用SingleR的最简单方法是使用内置参考对细胞进行注释。singleR自带的7个参考数据集,其中5个是人类数据,2个是小鼠的数据:

BlueprintEncodeData Blueprint (Martens and Stunnenberg 2013) and Encode (The ENCODE Project Consortium 2012) (人)

DatabaseImmuneCellExpressionData The Database for Immune Cell Expression(/eQTLs/Epigenomics)(Schmiedel et al. 2018)(人)

HumanPrimaryCellAtlasData the Human Primary Cell Atlas (Mabbott et al. 2013)(人)

MonacoImmuneData, Monaco Immune Cell Data - GSE107011 (Monaco et al. 2019)(人)

NovershternHematopoieticData Novershtern Hematopoietic Cell Data - GSE24759(人)

ImmGenData the murine ImmGen (Heng et al. 2008) (鼠)

MouseRNAseqData a collection of mouse data sets downloaded from GEO (Benayoun et al. 2019).鼠)

二 数据库,R包

2.1 singleR包安装

if(!requireNamespace("BiocManager", quietly =TRUE))
 install.packages("BiocManager")
BiocManager::install("SingleR")

2.2 加载数据集,数据

library(SingleR)
library(celldex)
library(Seurat)
library(pheatmap)
##下载注释数据库
hpca.se <- HumanPrimaryCellAtlasData()
bpe.se<- BlueprintEncodeData()

2.3 查看seurat结果

使用Seurat包pbmc的结果,在Seurat标准流程介绍过。

(1)查看seuret聚类结果

load("pbmc3k_final.rds.RData")
pbmc

meta=pbmc@meta.data #pbmc的meta文件,包含了seurat的聚类结果
head(meta)

(2)查看umap和tsne图

plot1 <- DimPlot(pbmc, reduction = "umap", label = TRUE)

plot2<-DimPlot(pbmc, reduction = "tsne",
               label = TRUE)
plot1 + plot2

三 singleR注释

3.1 singleR使用内置数据集注释

#进行singleR注释
pbmc_for_SingleR <- GetAssayData(pbmc, slot="data") ##获取标准化矩阵
pbmc.hesc <- SingleR(test = pbmc_for_SingleR, ref = hpca.se, labels = hpca.se$label.main) #
pbmc.hesc

#seurat 和 singleR的table表
table(pbmc.hesc$labels,meta$seurat_clusters)

3.2 绘制umap/tsne图

pbmc@meta.data$labels <-pbmc.hesc$labels

print(DimPlot(pbmc, group.by = c("seurat_clusters", "labels"),reduction = "umap"))

3.3 使用多个数据库注释

使用BP和HPCA两个数据库综合注释,使用list函数读入多个数据库

pbmc3 <- pbmc
pbmc3.hesc <- SingleR(test = pbmc_for_SingleR, ref = list(BP=bpe.se, HPCA=hpca.se), labels = list(bpe.se$label.main, hpca.se$label.main)) 
table(pbmc3.hesc$labels,meta$seurat_clusters)
pbmc3@meta.data$labels <-pbmc3.hesc$labels
print(DimPlot(pbmc3, group.by = c("seurat_clusters", "labels"),reduction = "umap"))

可以看到多了一些hpca没有注视到的细胞类型。

四 注释结果诊断

4.1 基于scores within cells

print(plotScoreHeatmap(pbmc.hesc))

细胞在一个标签的得分很显著的高于其他标签得分,注释结果比较清晰。

4.2 基于 per-cell “deltas”诊断

plotDeltaDistribution(pbmc.hesc, ncol = 3)

Delta值低,说明注释结果不是很明确。

4.3 与cluster结果比较

tab <- table(label = pbmc.hesc$labels,
             cluster = meta$seurat_clusters)

pheatmap(log10(tab + 10))

在单细胞RNA测序数据分析中,SEURAT是一个常用的R,用于数据的预处理、分析和可视化。SingleR是一个用于自动细胞类型注释的R,它可以与SEURAT对象结合使用,从而简化细胞类型注释的过程。以下是如何使用SingleR自动注释SEURAT对象的步骤: 1. **安装和加载必要的R**: 首先,确保你已经安装了Seurat和SingleR。如果没有安装,可以使用以下命令进行安装: ```R install.packages("Seurat") if (!requireNamespace("BiocManager", quietly = TRUE)) install.packages("BiocManager") BiocManager::install("SingleR") ``` 然后,在R脚本中加载这些: ```R library(Seurat) library(SingleR) ``` 2. **创建或加载Seurat对象**: 假设你已经有一个Seurat对象,或者你可以创建一个示例对象: ```R # 创建一个示例Seurat对象 data <- matrix(rpois(1000, lambda = 10), ncol = 100, nrow = 100) pbmc <- CreateSeuratObject(counts = data, project = "pbmc", min.cells = 3, min.features = 200) ``` 3. **预处理Seurat对象**: 进行必要的预处理步骤,如标准化、找高变基因、缩放等: ```R pbmc <- NormalizeData(pbmc) pbmc <- FindVariableFeatures(pbmc, selection.method = "vst", nfeatures = 2000) pbmc <- ScaleData(pbmc) pbmc <- RunPCA(pbmc, features = VariableFeatures(object = pbmc)) pbmc <- FindNeighbors(pbmc, dims = 1:10) pbmc <- FindClusters(pbmc, resolution = 0.5) pbmc <- RunUMAP(pbmc, dims = 1:10) ``` 4. **使用SingleR进行细胞类型注释**: 使用SingleR中的参考数据集进行细胞类型注释SingleR提供了多种参考数据集,如BlueprintEncodeData、HPCAData等。以下是使用BlueprintEncodeData进行注释的示例: ```R # 使用BlueprintEncodeData进行注释 ref <- BlueprintEncodeData() annot <- SingleR(test = GetAssayData(pbmc, assay = "RNA", slot = "data"), ref = ref, labels = ref$label.main) ``` 5. **将注释结果添加到Seurat对象中**: 将注释结果添加到Seurat对象的元数据中: ```R pbmc@meta.data$SingleR.label <- annot$pruned.labels ``` 6. **可视化注释结果**: 使用UMAP图或其他可视化方法查看注释结果: ```R DimPlot(pbmc, group.by = "SingleR.label", label = TRUE, repel = TRUE) + NoLegend() ``` 通过以上步骤,你可以使用SingleR自动注释SEURAT对象,从而简化细胞类型注释的过程。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值