做单细胞转录组分析的朋友,应该都见过AllenInstitute这个机构名。它在脑科学数据库领域的积累相当深厚,而今天要聊的scrattch就是它开源的一套单细胞注释工具。如果你手头有scRNA-seq数据,正在为“细胞类型注释结果不稳定”“标记基因选不准”这类问题头疼,那这个项目值得认真研究。它能做的事很聚焦:基于稀疏矩阵和随机森林构建可复用的细胞类型分类模型,把人工注释的经验固化下来,实现跨数据集、跨平台的自动注释。本文不打算念文档,就从一个实际使用者的角度,拆解它的设计思路、核心流程和我在落地时踩过的坑。
1. 项目概述:它到底是什么,适合谁用
1.1 解决的核心问题
单细胞测序数据分析里,细胞类型注释是承上启下的关键环节。上游聚类分完群,下游所有差异分析、轨迹推断、细胞通讯都建立在“这群细胞是什么类型”这个前提上。早期做法很原始:人工找几个已知marker,一个个基因去FeaturePlot上看表达,再结合文献判断群的身份。这种做法在小数据集上还行,样本一多、批次一杂就出问题,而且每个人的判断标准不一样,同一个cluster在不同人手里可能注释出完全不同的结果。
scrattch把这件事工程化了。它的核心思路是:用一种半自动的方式,从你已经注释好的高质量数据里提取规律,训练一个分类模型,然后用这个模型去预测新数据里的细胞类型。本质上就是把“注释经验”变成一个可重复、可分享、可跨数据集迁移的产物。这个思路和SingleR、SEACells有些相似,但它更强调两点:一是对大规模稀疏矩阵的支持,二是注释过程的层次化结构。
1.2 目标用户和适用场景
如果你符合下面几种情况的一种,scrattch会比较适合你:
- 你有一个已经人工注释好的参考数据集,想把它作为“标准答案”去注释新的实验数据。
- 你在做跨样本、跨平台的数据整合,需要保证所有样本的细胞类型标签口径一致。
- 你是做脑科学相关研究的,Allen Institute的公开数据本身就是很好的参考资源。
- 你受够了每次注释都要重新跑一遍marker可视化,想要一套可复用的流程。
反过来也要说清楚,scrattch不适合完全不懂细胞类型注释的新手。它默认你至少有一个人工注释质量较高的参考数据。没有这个前提,后面的模型训练和预测都无从谈起。它也不是细胞分群工具,不能替代Seurat、Scanpy的聚类流程。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 结构设计与方法论:为什么它的注释结果更稳定
2.1 与主流注释工具的底层差异
现在用Seurat做注释,最常见的方案是FindAllMarkers结合AddModuleScore,或者直接用SingleR配合参考转录组。这两种方法各有局限。Marker打分的问题在于:基因集的选择主观性很强,不同人筛选marker的阈值不一样,得到的打分结果能差出一大截。SingleR的问题则是参考数据库的颗粒度问题,它的参考数据太泛,对一个特定组织的数据做注释时,经常出现“能分大类、分不清亚型”的尴尬。
scrattch的底层思路不一样。它不是简单地把基因表达
