SingleR单细胞亚群注释工具学习

SingleR 是一种用于单细胞 RNA 测序(scRNA-seq)数据分析的自动注释工具。它的主要功能是基于参考数据集为未注释的单细胞数据进行细胞类型注释。SingleR 使用了来自已知细胞类型的参考数据集(如公共的参考表达谱数据库)来推断新样本中每个细胞的类型。

SingleR 的工作原理:

  1. 输入数据:用户需要提供一个待注释的测试数据集(通常是单细胞 RNA 测序的表达矩阵)和一个已知细胞类型注释的参考数据集。

  2. 参考数据集匹配:SingleR 逐一比较待注释的每个细胞或细胞群与参考数据集中的每个细胞类型的基因表达模式,计算出相似性评分。

  3. 标签分配:根据与参考细胞类型的相似性,SingleR 将最匹配的细胞类型标签分配给每个测试细胞。

  4. 置信度计算:SingleR 计算当前预测标签与次优标签之间的差异(如 delta.next),并根据置信度来决定是否保留或修剪预测结果。

  5. 输出:输出包括初始的预测标签(labels)、修剪后的标签(pruned.labels)、和不同标签之间的置信度差距(delta.next),帮助研究人员理解细胞类型注释的可靠性。

SingleR 的优势:

● 自动化和高效:无需手动设置 marker 基因,SingleR 可以自动从参考数据集中进行学习和预测。

● 灵活性:支持多种参考数据集,包括人类和小鼠的不同细胞类型数据库。

● 准确性:通过置信度修剪,可以减少错误注释的风险。

步骤流程
1、导入

导入处理好的原始数据

rm(list = ls())
library(Seurat)
load("obj.Rdata")
p1 = DimPlot(seu.obj,reduction = "umap",label = T)
p1

一共有12群

2、加载注释文件和R包
library(celldex)
ls("package:celldex")
HumanPrimaryCellAtlas <- HumanPrimaryCellAtlasData()
BlueprintEncode <- BlueprintEncodeData()
MouseRNAseq <- MouseRNAseqData()
ImmGen <- ImmGenData()
DatabaseImmuneCellExpression <- DatabaseImmuneCellExpressionData()
NovershternHematopoietic <- NovershternHematopoieticData()
MonacoImmune <- MonacoImmuneData()
# 其中,以Data结尾的是celldex提供的参考数据,其他的是函数。数据共有7个,除了ImmGenData和MouseRNAseqData是小鼠的,其他都是人类的。

读取HumanPrimaryCellAtlas文件看一下

library(SingleR)
library(BiocParallel)
scRNA = seu.obj
# 提取归一化数据
test <- GetAssayData(scRNA, layer = "data")
#test = scRNA@assays$RNA$data
table(scRNA@active.ident)
#   0   1   2   3   4   5   6   7   8   9  10  11 
# 638 476 427 388 354 129 127 126  90  88  31  26
Rename_scRNA <- SingleR(test = test, 
                        ref = HumanPrimaryCellAtlas, # 参考注释文件
                        labels = HumanPrimaryCellAtlas$label.main,  #标注信息
                        clusters = scRNA@active.ident)
Rename_scRNA$labels
 # [1] "B_cell"              "T_cells"             "T_cells"             "T_cells"            
 # [5] "T_cells"             "B_cell"              "Endothelial_cells"   "Monocyte"           
 # [9] "Smooth_muscle_cells" "NK_cell"             "Endothelial_cells"   "T_cells" 
Rename_scRNA$delta.next
 # [1] 0.066315004 0.389803688 0.968866652 0.777167256 0.841875081 0.381917374 0.106055936
 # [8] 0.146110693 0.024163437 0.084589179 0.086608735 0.004900357
Rename_scRNA$pruned.labels
# [1] "B_cell"              "T_cells"             "T_cells"             "T_cells"            
# [5] NA                    "B_cell"              "Endothelial_cells"   "Monocyte"           
# [9] "Smooth_muscle_cells" "NK_cell"             "Endothelial_cells"   NA  

new.cluster.ids <- Rename_scRNA$pruned.labels
names(new.cluster.ids) <- levels(scRNA)
scRNA <- RenameIdents(scRNA,new.cluster.ids)
p2 <- DimPlot(scRNA, reduction = "umap",label = T,pt.size = 0.5) + NoLegend()
p1+p2

labels 是 SingleR 方法给每个细胞群或每个细胞分配的标签,表示该细胞的分类结果。这个标签是基于参考数据(如 HumanPrimaryCellAtlas)进行注释的。例如,“T_cells”、“B_cell”等代表细胞类型。

delta.next是每个细胞分配到的第一和第二最匹配标签之间的分数差异。这个值反映了分类结果的置信度。较大的 delta.next 值表示分类的置信度较高,因为第一和第二标签之间的分数差异大;较小的 delta.next 值则表示置信度较低,分类结果可能不太确定。

pruned.labels 是经过修剪的标签结果。当 delta.next 的值过小时,意味着该细胞的分类不够可靠,SingleR 会将这些分类结果设置为 NA,即未分类,以提高分类的准确性。因此,pruned.labels 是去除低置信度分类后的标签,保留了分类结果较为可靠的细胞标签。

但是我们仔细看修建后的结果的第五群,在label中是Tcell,在delta.next中分数也不低!然后在pruned.labels中被NA了~ 让人纳闷

笔者觉得自动注释只能作为参考,还是要踏踏实实的看文献自行注释~ (求“人/工具”不如求自己啊 hhh)

参考资料:

1、SingleR:https://www.bioconductor.org/packages/release/bioc/html/SingleR.html

2、生信技能树:https://mp.weixin.qq.com/s/GpOxe4WLIrBOjbdH5gfyOQ

致谢:感谢曾老师、小洁老师以及生信技能树团队全体成员。

:若对内容有疑惑或者有发现明确错误的朋友,请联系后台(欢迎交流)。更多内容可关注公众号:生信方舟

- END -

<think>好的,我现在需要回答用户关于单细胞测序中细胞注释方法和工具的问题。首先,我要理解用户的需求。用户提到了单细胞测序中的细胞注释,可能对现有的方法和工具不太清楚,想了解有哪些常用方法和工具,以及它们的优缺点和应用场景。 首先,我应该回顾自己掌握的知识。单细胞测序的细胞注释通常分为手动注释和自动注释两种。手动注释依赖于已知的标记基因和文献,而自动注释则使用计算工具数据库。常见的工具包括CellMarker、SingleR、Seurat、ScType等。此外,用户提供的引用中提到了Celaref和CellMarker网站,需要将这些信息整合进去。 接下来,我需要确保回答结构清晰,分点说明。可能的结构是:首先介绍基本流程,然后详细讲解手动和自动方法,再列举常用工具及其特点,最后给出选择建议。同时,根据用户提供的引用内容,Celaref和CellMarker需要被适当引用,说明它们的应用场景和注意事项。 然后,要注意用户提到的系统级指令,比如正确使用LaTeX格式。虽然这个问题可能不涉及数学公式,但如果有相关统计方法或算法,可能需要用LaTeX表达,比如某些评分公式。不过,目前看来可能不需要,但还是要保持警惕。 用户还要求生成相关问题,我需要根据回答内容提出相关的问题,比如工具的比较、挑战、验证方法等。这些问题应该能够帮助用户进一步深入理解主题。 需要检查引用是否正确,用户提供的引用1和2都是关于细胞注释工具和方法,特别是Celaref和CellMarker,这些在回答中要正确引用,并在末尾添加引用标识。 另外,用户可能对注释中的难点感兴趣,比如标记基因的特异性问题,如S100A8和S100A9在中性粒细胞中的情况,这时候需要结合引用1中的内容说明手动验证的重要性。 最后,确保语言用中文,结构清晰,分步骤说明方法,工具部分用列表展示,可能的话用代码块展示工具的使用示例,但用户示例中用了Python代码,而单细胞分析常用R,所以可能需要调整。不过用户提供的引用中没有代码示例,可能不需要代码块,但如果有工具的使用步骤,可以简要说明。 总结步骤: 1. 介绍细胞注释的基本流程。 2. 分点说明手动注释和自动注释的方法。 3. 列举常用工具,包括用户提到的Celaref和CellMarker,以及其他的如SingleR、Seurat等,说明各自特点。 4. 结合引用内容,讨论注释中的挑战和注意事项。 5. 给出选择工具的建议。 6. 生成相关问题,如工具比较、挑战、验证方法等。 需要确保所有工具和方法的描述准确,引用正确,并且语言自然流畅,符合用户的要求。</think>### 单细胞测序中细胞注释的方法与工具 #### 一、细胞注释的基本流程 单细胞测序的细胞注释是通过基因表达数据识别细胞类型或型的过程,核心步骤包括: 1. **数据预处理**:归一化、降维(如PCA/t-SNE/UMAP)、聚类。 2. **标记基因筛选**:通过差异表达分析或已知标记基因库(如CellMarker[^2])确定候选基因。 3. **类型匹配**:将候选基因与已知细胞类型的标记基因比对,完成注释。 #### 二、主要方法分类 ##### 1. 手动注释法 - **原理**:结合文献和数据库(如CellMarker)手动筛选高表达基因。 - **优点**:灵活性高,适合特定研究场景。 - **挑战**: - 标记基因可能跨细胞类型表达(如$S100A8$、$S100A9$在中性粒细胞和上皮细胞中均有表达)[^1]。 - 需依赖领域知识验证结果。 ##### 2. 自动注释工具 以下工具通过算法实现注释: | 工具 | 原理 | 特点 | |------------|----------------------------------------------------------------------|----------------------------------------------------------------------| | **SingleR** | 基于参考数据集的相关系数匹配 | 支持自定义参考集,适合人类/小鼠数据 | | **Seurat** | 整合差异基因分析与聚类 | 支持多组学数据,需手动筛选标记基因 | | **ScType** | 基于标记基因富集评分公式:$$score = \sum \frac{E_g}{\max(E)} \cdot w$$ | 自动化程度高,可识别型 | | **Celaref** | 通过聚类间相似性比对参考数据集 | 适用于稀有细胞类型注释 | #### 三、关键挑战与建议 1. **标记基因特异性问题** 部分基因(如$S100A8$)可能跨细胞类型表达,需结合实验背景验证。 2. **工具选择依据** - 数据量小或稀有细胞类型 → Celaref - 标准物种(人/小鼠) → SingleR - 需要型分辨 → ScType #### 四、典型工具使用示例(以SingleR为例) ```R library(SingleR) # 加载单细胞数据与参考数据集 sce <- readRDS("single_cell_data.rds") ref <- HumanPrimaryCellAtlasData() # 注释细胞类型 annotations <- SingleR(test = sce, ref = ref, labels = ref$label.main) ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值