人阅读
发布时间:2023-10-16 16:31
细胞类型注释是scRNA-seq数据分析中的关键一环。传统的手动注释方法通常包含两个步骤:首先使用无监督学习对细胞进行聚类,然后依据聚类结果中典型的差异表达基因来将细胞类群注释为不同的类型。这一过程十分繁琐耗时,并且依赖先验知识,带有一定的主观倾向;相比之下,自动注释工具和方法具有快速简洁的优点。scRNA-seq细胞的自动注释一般可概括为三种类型[1],下图展示了不同类别方法中常见的一些软件或工具(图1)。
图1:scRNA-seq细胞注释的典型策略及代表性方法
第一种方法是基于Marker基因的细胞自动注释,依据一些特定基因来对细胞进行标记,判定细胞类型,选定的Marker基因或基因集应当具有细胞类型特异性并且能够稳定表达的。因此,该方法非常依赖Marker的准确性。获取Marker基因的方法有很多种,通常可以从一些公共数据库或者文献中得到。CellMarker[2]和PanglaoDB[3]是较为常见的存储人类和小鼠组织中多种细胞类型标记物的在线资源。第二种方法是基于参考转录组数据集的细胞注释。使用具有细胞类型标记的数据集作为参考,通过关联输入数据的基因表达值,从而将参考数据中的细胞或簇标签转移到具有类似基因表达谱的输入数据中的未标记细胞或簇。该方法较为依赖参考数据的来源和可靠性。最后,第三种方法利用了有监督机器学习,将带有细胞标记的参考数据作为训练集,通过机器学习方法得到一个模型(分类器),然后用于预测待注释细胞的细胞类型。同样,该方法依赖参考数据的质量。下面,我们从上述方法中各挑选一个工具进行阐述。
01 CellAssign
CellAssign[4]是一种基于概率图模型的方法,于2019年发表在Nature Methods上。它利用已有的细胞类型Marker基因的先验知识,通过推断细胞类型的概率来将未知数据分配到不同的细胞类型(图2)。具体来说,CellAssign将每个细胞表示为一个随机变量,该变量表示细胞属于各细胞类型的概率。同时,它还考虑了批次和样本效应的影响,通过引入协变量来调整这些效应。CellAssign还考虑了基因的表达变异性,并使用原始计数矩阵和负二项分布来建模。通过最大化后验概率估计,CellAssign可以推断每个细胞属于各个细胞类型的概率,并将细胞分配到具体的细胞类型中。与其他方法相比,CellAssign在准确性和F1得分方面表现更好,并且能够控制批次效应和样本效应。
图 2:CellAssign概览。(a) 使用CellAssign进行细胞注释,每个细胞被概率地分配到给定的细胞类型,而不需要任何手动注释或干预,并且考虑到批次效应的影响。(b) 图像展示了包含随机变量、数据、分布假设等在内的细胞类型分配概率模型。(c) 在CellAssign概率模型中使用的随机变量的描述,以及它们的先验分布。
◆ 软件的下载可参考如下方式(任选其一):
# 从GitHub下载
1. install.packages("tensorflow")
2. tensorflow::install_tensorflow(extra_packages='tensorflow-probability')
3. install.packages("devtools")
4. devtools::install_github("Irrationone/cellassign")
# 通过Conda下载
conda install -c conda-forge -c bioconda r-cellassig
◆ 下面以软件自带的示例数据进行基础用法演示:
# 加载R包
1. library(SingleCellExperiment)
2.library(cellassign)
3. library(scran)
# 加载内置数据集
4. data(example_sce)
5. data(example_marker_mat)
# 计算细胞标准化因子(示例数据已经包含该部分信息,如果是新数据,需要重新计算。推荐使用scran包中的computeSumFactors 函数。注意:在计算标准化因子之前最好不要对表达矩阵的基因进行筛选
6. # example_sce <- computeSumFactors(sce)
7. s <- sizeFactors(example_sce)
# 开始运行cellassign。这一步关键的地方在于,必须要保证输入的表达矩阵只包含marker基因的部分
8. fit <- cellassign(exprs_obj =
example_sce[rownames(example_marker_mat),],
marker_gene_info = example_marker_mat,
s = s,
learning_rate = 1e-2,
shrinkage = TRUE,
verbose = FALSE)
02 SingleR
在一篇研究肺纤维化相关巨噬细胞亚型的文章中[5],作者同时开发了一种单细胞转录组数据的细胞类型注释工具——SingleR。它通过将未知类型的单细胞的基因表达与参考数据集中已知细胞类型的基因表达进行相关性分析,来确定每个单细胞的细胞类型。它的注释过程包括以下几个步骤:1、针对每个单细胞独立进行注释。首先,计算单细胞表达与参考数据集中每个样本的Spearman相关系数。这个相关性分析仅针对参考数据集中的变异基因进行;2、根据参考数据集中的命名注释,将每个未知细胞的多个相关系数整合,为了防止由于参考样本的异质性而导致错误分类,SingleR使用相关系数的80%作为阈值;3、SingleR重新运行相关性分析,但仅针对上一步中排名靠前的细胞类型。并且这个分析仅针对囊括的细胞类型之间的变异基因进行。最低相关性值的细胞类型被移除(或者比最高值低0.05以上),然后重复这个步骤,直到只剩下两个细胞类型为止。最后一次运行后,对应于最高值的细胞类型被分配给单个细胞(图3)。
图 3:SingleR原理示意图
◆ SingleR包自带一些参考数据集,详细信息可通过官方网站查询,下面对它的基础用法进行演示:
# 从Bioconductor下载
1. BiocManager::install("SingleR")
# 加载R包及测试数据
2. library(celldex)
3. library(SingleR)
4. library(scRNAseq)
5. hpca.se <- HumanPrimaryCellAtlasData()
6. hESCs <- LaMannoBrainData('human-es')
7. hESCs <- hESCs[,1:100]
8. pred.hesc <- SingleR(test = hESCs, ref = hpca.se, assay.type.test=1, labels = hpca.se$label.main)
03 CellTypist
CellTypist[6]是一个用于自动注释人类组织中免疫细胞的工具。它的原理是通过整合来自不同组织的细胞数据,并使用机器学习方法训练模型,实现对细胞类型的准确分类(图4)。研究人员收集了来自20个不同组织的细胞数据,并对这些数据进行深度筛选和整合,以获得两个层次的细胞类型信息。然后,他们使用逻辑回归和随机梯度下降学习的方法训练了模型。模型的性能通过精确度、召回率和全局F1分数进行评估,结果显示在高层次和低层次的细胞类型分类上都达到了约0.9的准确性。CellTypist能够识别出不同的细胞亚群,包括T细胞、B细胞、单核巨噬细胞等,此外,它还能够自动注释细胞的详细亚型,提供了对免疫细胞群体的深入了解。它的预测结果对不同数据集之间的差异具有鲁棒性,包括基因表达稀疏性和批次效应等。
图 4:CellTypist原理示意图。CellTypist的工作流程包括数据收集、处理、模型训练和细胞类型预测
CellTypist既可以作为一个注释工具使用,也可以作为一个免疫细胞相关的数据库(图5)。在其官网上,我们可以通过Encyclopedia查询特定细胞类型的相关Marker信息,也可以输入特定基因来查看其在不同组织不同细胞类型中的表达情况(图6a-c)。
图 5:CellTypist官方网站示意图
而作为工具使用时,CellTypist提供了多种运行方法。你可以通过命令行工具进行细胞注释,可以在Python环境下使用,可以通过Docker运行。此外,你也同样可以在其官网进行在线分析(图6d)。下面我们介绍几种简单的用法。
◆ 软件的下载:
# pip方式下载
1. pip install celltypist
# conda方式下载
2. conda install -c bioconda -c conda-forge celltypist
◆ Python中使用:
# 模块导入
1. import celltypist
2. from celltypist import models
# 下载(初次使用时)并导入模型
3. models.download_models()
4. model = models.Model.load(model = 'Immune_All_Low.pkl')
# 细胞注释
# 注意1:输入数据的类型比较宽松,可以是环境内部变量,可以是外部文件;
# 可以是表达矩阵,也可以是AnnData对象;
# 注意2:当输入表达矩阵时,需要保持行为细胞,列为基因;可以通过添加参数”--transpose-input”转置
5. predictions = celltypist.annotate(input_file, model = model)
◆ 命令行使用:
# 下载模型(初次使用时)
1. celltypist –update-models
# 细胞注释
2. celltypist --indata /path/to/input/file --model Immune_All_Low.pkl --outdir /path/to/outdir
图 6:CellTypist在线工具。(a) 细胞或基因检索界面。(b)查询特定细胞类型后相关信息展示。(c)查询特定基因后热图展示。(d) CellTypist在线注释工具界面展示。
尽管自动注释工具可以自动预测scRNA-seq数据的细胞类型,但与传统的基于Marker的方法一样,它们仍然需要关于细胞类型的一些先验知识。前文我们提到了自动注释工具的三种分类方法,但究其本质,仍然都是从一个reference开始的,无论是Marker还是数据集。因此,尽管使用同一种方法,但如果使用不同的参考数据(训练模型、细胞特异性Marker等),仍然可能导致截然不同的注释结果。所以,在初期的准备阶段,如何选择参考数据需要格外谨慎。
另外,依据注释分辨率水平的不同,这些工具还可以被进一步分成cell-based和cluster-based,即注释到单个细胞或注释到簇。研究发现[7],参考数据的组成也会显著影响自动注释工具的性能。测试中,注释结果的准确率会随着参考数据中每种细胞类型的数量的增加而逐渐提高。当参考数据中包含的某一细胞类型数量较小时,使用注释单个细胞的方法可能不再合适。
在一些基准测试中,不同的研究给出了不同的结论。比如在Tamim等人的研究中[8],作者使用了27套测试数据,基于准确性、未分类细胞的百分比和计算时间等系统性评估了22种注释工具或方法。结果表明,支持向量机(SVM)分类器的整体表现最好。在另几项研究中[7,9],作者都没有明确表明哪种方法在所有评估指标上表现最好,而是在不同的指标下,不同方法具有不同的表现性能。因此,对于自动注释来说,更重要的可能不是工具的选择,而是参考数据的质量以及与待注释样本的匹配性。
最后,Zoe A. Clarke等人在21年给出了一份关于scRNA-seq细胞注释的建议[10]。如图所示(图7),对于一个新的数据来说,细胞注释应当按照如下步骤进行。①自动注释:建议首先尝试使用自动注释方法。自动注释方法可以快速进行细胞注释,并且在处理大规模数据集时效率高。自动注释的结果可能会受到所选择的参考数据的影响,因此可以尝试不同的Marker基因组合或数据集来优化注释结果;②手动注释:如果自动注释的结果不够准确或存在冲突/缺失的细胞标签,就需要进行手动注释。手动注释需要人工检查每个细胞的特征,并参考各种资源来确定其功能和细胞类型。通常,可以通过可视化每个已知Marker基因在二维数据图上的表达情况来进行手动注释。此外,还可以通过查阅文献和挖掘已有的单细胞转录组数据来寻找额外的Marker基因;③最后,细胞注释的结果可以进行独立验证,例如新的验证实验,或与互补数据进行比较,例如空间转录组学数据。
图 7:细胞注释过程由三个主要步骤组成:自动细胞注释、手动注释和验证。
参考文献:
[1] Su, M., Pan, T., Chen, QZ. et al. Data analysis guidelines for single-cell RNA-seq in biomedical studies and clinical applications. Military Med Res 9, 68 (2022).
[2] Hu C, Li T, Xu Y, Zhang X, Li F, Bai J, Chen J, Jiang W, Yang K, Ou Q, Li X, Wang P, Zhang Y. CellMarker 2.0: an updated database of manually curated cell markers in human/mouse and web tools based on scRNA-seq data. Nucleic Acids Res. 2023 Jan 6;51(D1):D870-D876.
[3] Oscar Franzén, Li-Ming Gan, Johan L M Björkegren, PanglaoDB: a web server for exploration of mouse and human single-cell RNA sequencing data, Database, Volume 2019, 2019, baz046, doi:10.1093/database/baz046
[4] Zhang, A.W., O’Flanagan, C., Chavez, E.A. et al. Probabilistic cell-type assignment of single-cell RNA-seq for tumor microenvironment profiling. Nat Methods 16, 1007–1015 (2019).
[5] Aran, D., Looney, A.P., Liu, L. et al. Reference-based analysis of lung single-cell sequencing reveals a transitional profibrotic macrophage. Nat Immunol 20, 163–172 (2019).
[6] C. Domínguez Conde et al. ,Cross-tissue immune cell analysis reveals tissue-specific features in humans.Science 376,eabl5197(2022).
[7] Huang Q, Liu Y, Du Y, Garmire LX. Evaluation of Cell Type Annotation R Packages on Single-cell RNA-seq Data. Genomics Proteomics Bioinformatics. 2021 Apr;19(2):267-281.
[8] Abdelaal T, Michielsen L, Cats D, Hoogduin D, Mei H, Reinders MJT, Mahfouz A. A comparison of automatic cell identification methods for single-cell RNA sequencing data. Genome Biol. 2019 Sep 9;20(1):194.
[9] Xie B, Jiang Q, Mora A, Li X. Automatic cell type identification methods for single-cell RNA sequencing. Comput Struct Biotechnol J. 2021 Oct 20;19:5874-5887.
[10] Clarke, Z.A., Andrews, T.S., Atif, J. et al. Tutorial: guidelines for annotating single-cell transcriptomic maps using automated and manual methods. Nat Protoc 16, 2749–2764 (2021).
上一篇
【IF 24.5】DSP揭示新辅助放化疗后增强的抗肿瘤免疫介导了胰腺癌的良好预后
下一篇
DSP助力揭示急性胃肠道移植物抗宿主病激素反应相关空间组织生态位