信息速览

Single Cell Portal — 单细胞基因组学开放数据门户 AI-Ready Wikipedia
INFOBOX
| 数据集名称 | Single Cell Portal(SCP) |
| 英文全称 | Single Cell Portal |
| 别名/简称 | SCP;Broad Single Cell Portal |
| 疾病分类 | 跨疾病平台(涵盖肿瘤、免疫、神经、心血管、代谢等;不适用于单一 ICD-11 归类) |
| SNOMED CT | 不适用(平台型多疾病资源,见 §2.1b 逐疾病映射) |
| 数据模态 | 单细胞 RNA 测序(scRNA-seq)为主,含空间转录组(Slide-seq 等)与降维/聚类衍生数据 |
| AI 任务类型 | 细胞类型注释、聚类与跨研究整合、批次效应校正、标记基因发现、差异表达、轨迹推断 |
| 样本总数 | 995+ 项公共研究、约 6,250 万+ 细胞、18 个物种(截至 2026-09) |
| 数据大小 | 单研究数十 MB 至数 GB 不等(平台总量未公布) |
| 数据格式 | MatrixMarket(mtx)+ barcodes/features 三件套、dense TSV/CSV、元数据 TSV、降维坐标 TXT |
| 许可证 | 逐研究授权(由贡献者指定);门户与 API 代码 BSD-3-Clause |
| 访问级别 | 浏览开放;注册后开放下载(部分研究仅登录可见) |
| DUO 标签 | NRES(公共研究无限制浏览);GRU(逐研究授权,视各研究条款而定) |
| 语言 | 英文 |
| 首发日期 | 2016-07(门户开源仓库创建于 2016-07-25) |
| 最后更新 | 持续滚动更新(截至 2026-09 仍有新研究入站) |
| 发布机构 | Broad Institute of MIT and Harvard |
| 官方主页 | https://singlecell.broadinstitute.org/single_cell |
| 下载地址 | https://singlecell.broadinstitute.org/single_cell(各研究页 Download tab 或 Bulk download) |
| DOI | 10.1101/2023.07.13.548886(方法论文预印本) |
| AI 就绪度评分 | ⭐⭐⭐(3/5)— 数据完全开放且 REST API 完善,但需逐研究下载与格式转换,无官方跨研究划分与统一预处理脚本(扣分项:格式逐研究异构、表达单位不统一) |
| 页面状态 | published |
§0 E-E-A-T 审核声明
医学审核:[千方病案医学编辑部] 交叉审核:§2 医学背景(单细胞测序技术原理、覆盖疾病领域与流行病学)、§7 偏倚与局限性分析。
数据工程审核:[千方病案医学编辑部交叉审核] 医疗 AI 数据工程师,审核范围:§4 DAIMS 数据字典、§5 数据划分策略、§6 预处理 Pipeline 和坑点。
审核日期:2026-09-05
医疗免责声明:本页面提供的医学信息仅供研究和教育目的,不构成医疗建议、诊断或治疗方案。数据集的医学描述基于公开发表的文献,未经逐一临床验证。任何基于该数据集训练的 AI 模型在应用于临床决策前,必须经过独立的临床验证和监管审批。
技术免责声明:本页面的代码示例、预处理建议和基准性能数据基于公开资料整理,不保证在特定环境下的准确性和适用性。使用者应自行验证代码安全性和数据预处理流程的正确性。千方病案医数集不对因使用本页面信息而导致的任何直接或间接损失承担责任。
数据使用合规:使用本页面描述的数据集前,请务必阅读并遵守数据集原始许可协议。Single Cell Portal 各研究许可由数据贡献者逐项指定,下载前需注册平台账户,部分研究仅登录可见。DUO 标签仅供参考,具体使用限制以数据集官方协议为准。
§1 数据集概览
§1.0 30 秒速览
Single Cell Portal(SCP) 是麻省理工学院与哈佛大学下属 Broad 研究所运营的免费开放平台,专门用来托管、展示和分享「单细胞测序」数据。单细胞测序技术能逐个细胞地读取基因活动,让科学家看清一块组织里到底有哪些细胞、它们在疾病中发生了什么变化。SCP 就像一个「单细胞数据的公共图书馆」:截至 2026-09,馆藏 995+ 项研究、约 6,250 万+ 个细胞、覆盖 18 个物种,任何人都能在线浏览,注册后即可下载。
它的重要性在于两点:第一,开放——数据由全球研究者自助上传,浏览无需注册,元数据检索连 API 密钥都不需要;第二,好探索——每项研究自带交互式可视化(细胞聚类散点图、基因表达小提琴图、空间图谱),不懂编程的生物学研究者也能点开看数据。
你可以用它来:检索某个疾病或器官有哪些公开单细胞数据集(用站内检索或 REST API)、下载单个研究的表达矩阵做二次分析(R/Python 均可)、给自己的研究找「对照数据」,或者把多项研究的细胞类型标注整合成更大的训练集训练 AI 模型。注意:各研究格式与单位不统一,跨研究整合前请先读 §6 的坑点清单。
§1.1 摘要
SCP 由 Broad 研究所数据科学团队开发维护,其方法论文描述了设计目标:在「可定制可视化的小众平台」(如 ShinyCell 类工具)与「易上传但缺乏可视化的纯数据仓库」(如 GEO)之间取得平衡,兼顾 customizability(贡献者自定义呈现)、findability(跨研究检索发现)与 reusability(数据可复用)三种属性(Tarhan et al., 2023, bioRxiv. DOI 10.1101/2023.07.13.548886)。平台采用自助式(self-service)架构:研究者上传三类核心文件——聚类/空间坐标文件、元数据文件、表达矩阵(dense 或 10x 风格稀疏矩阵),SCP 服务端解析后自动渲染交互式图表,贡献者无需任何 Web 开发技能即可完成发布,并对数据的共享范围与呈现方式保持完全控制。
可视化体系覆盖六个层面:细胞聚类散点图(数据整体结构与类型相似度)、空间转录组图(类型在组织内的空间分布)、基因表达图(散点/小提琴两种形态)、ideogram 查看器(基于文献挖掘的关联基因发现)、热图与点图(跨基因比较)。这些图表全部由服务端算力渲染,让大数据集也能在浏览器流畅交互——这也是 SCP 相对「下载到本地再看」的传统仓库模式的核心体验差异。
支撑这一模式的是一套完整的工程体系:REST API v1 提供分面检索(可同时搜研究与细胞)、批量下载编排(生成 curl 配置、经 Google Cloud Storage 只读 token 与 DRS/TDR 对象分发);门户代码与便捷脚本以 BSD-3-Clause 开源在 GitHub,PyPI 包 single-cell-portal 提供 Python 3 上传/校验工具。数据侧,SCP 同时要求上传处理矩阵与原始计数矩阵,鼓励复用;Metadata 文件驱动的高级检索按疾病、器官、物种、性别、建库方案等字段索引全部研究,这是它对 AI 工作流最友好的特性。
§1.2 战略价值
维度一:跨机构数据的「发现层」价值。 单细胞领域的数据碎片化严重:一项研究一个 GEO 号、一种格式、一套标注词汇。SCP 用统一的元数据模型(Disease/Organ/Species/Sex/Library preparation protocol 等分面)把 995+ 项研究编入同一检索入口,AI 工程师可以通过一次 API 调用回答「有哪些人类肺部的糖尿病相关单细胞数据可下载」这类问题,而无需逐个爬取文献补充材料。这种元数据层的结构化程度,使其成为构建「数据集检索/推荐 Agent」的理想数据源——官方 API 的 /search 端点甚至支持直接在细胞层面做分面检索。
维度二:研究全生命周期的「共享基础设施」价值。 SCP 不只是公开数据的终点站,更内嵌于研究流程:新数据先以私有研究形式与协作者共享,成熟后给审稿人开匿名只读通道,论文发表后一键转公开,多个相关研究还能组成可检索的 study collection(Tarhan et al., 2023)。对 AI 团队而言,这意味着平台上既有大量已发表、可引用的公开数据,也能观察到「数据从产生到公开」的真实流转节奏;对临床转化而言,贡献者主导的逐研究授权模式让敏感队列可以按最小充分原则开放,兼顾了开放科学与受控合规。
§1.3 同类数据集横向对比
| 平台 | 运营方 | 规模(检索时点) | 模态 | 访问模式 | 与 SCP 的差异化 |
|---|---|---|---|---|---|
| Single Cell Portal | Broad Institute | 995+ 研究 / 约 6,250 万+ 细胞(2026-09) | scRNA-seq、空间转录组 | 浏览开放,注册后下载;REST API 免认证检索 | 逐研究自助上传、贡献者完全控制、study collection |
| CELLxGENE Discover | Chan Zuckerberg Initiative | 约 1.238 亿细胞 / 1,892 数据集(NAR 2025) | scRNA-seq 及多模态 | 开放下载,集中清洗标准(h5ad/Census) | 集中策展与统一 schema,跨数据集切片能力强 |
| Human Cell Atlas (DCP) | HCA 国际联盟 | 约 6,320 万细胞 / 515 项目(2025 综述) | scRNA-seq、空间 | 经 DCP/SCP 等多出口发布 | 联盟式标准生产管线(Cumulus 输出 loom/h5ad 与 .scp 文件) |
| Single Cell Expression Atlas | EBI | 数百研究(统一再处理) | scRNA-seq | 开放,统一管线重分析 | 所有数据经同一流程再处理,可比性强但覆盖面小 |
| GTEx Portal | NIH/GTex 联盟 | 数十供体多组织(bulk 与单细胞级参考) | bulk RNA-seq、单细胞参考 | 开放下载 | 组织级 bulk 表达为主,非单细胞为主库 |
| HuBMAP | NIH | 多组织单细胞与空间图谱 | scRNA-seq、成像 | 开放 + 凭证分级 | 空间多组学深度更高,门户生态不同 |
| gEAR / NeMO Analytics | 大脑行为联盟等 | 数百数据集(神经科学向) | scRNA-seq、bulk | 开放浏览 | 神经科学垂直深耕,SCP 论文将其列为同类平台 |
| GEO(对照参照) | NIH/NCBI | 海量组学数据 | 全模态 | 开放提交 | 「无可视化纯仓库」一极,SCP 论文明确以其为对照定位 |
注:SCP 与 CELLxGENE 的研究集合存在大量互补与部分重叠,第三方工具生态常将两者列为互补索引;对比数字来自各自官方或同行评审综述,统计口径不同,不可直接相互换算。
§1.4 版本与里程碑时间轴
| 时间 | 里程碑 | 说明 |
|---|---|---|
| 2016-07 | GitHub 仓库 broadinstitute/single_cell_portal 创建(2016-07-25) |
门户进入工程开发阶段,BSD-3-Clause 开源 |
| 2020-11 | PyPI 包 single-cell-portal 0.2.2 发布(2020-11-02) |
提供 Python 3 便捷脚本(上传/格式校验),依赖 Google Cloud SDK |
| 2021 | 第三方指南记载平台约 500+ 研究、29,614,655 细胞,下载限额 0.5 TB/日 | 平台进入规模增长期 |
| 2023-07 | 方法论文发布于 bioRxiv(DOI 10.1101/2023.07.13.548886,PMID 37502904) | 系统阐述生命周期模型与可视化体系 |
| 2025-04 | 学术综述记载约 820 项研究、约 5,700 万细胞 | 同期第三方记载 884 研究 / 约 6,250 万细胞 / 18 物种 |
| 2026-09 | 官方检索页显示 995 项公共研究(截至 2026-09-13) | 持续滚动更新,无冻结版本 |
§1.5 典型应用场景
- 疾病细胞图谱检索与荟萃分析:用分面检索(疾病×器官×物种)圈定候选研究,经 API 批量拉取元数据,构建「某疾病现有公开单细胞证据」的系统综述底表。
- 细胞类型注释模型预训练与外部测试:从多器官研究中抽取带标注细胞,预训练标注器(如逻辑回归/线性模型或 transformer),再在自有数据上外推验证。
- 批次效应与数据整合基准:同一组织在多项研究中由不同建库方案产出,天然构成跨批次场景,可用于评测 Harmony、scVI 等整合算法。
- 教学与管线冷启动:官方 Demo 研究(基于 Scanpy 教程的 3k PBMC,10x 3’ v1 建库)体量小、结构标准,适合作为生信课程与 CI 冒烟测试的最小数据集。
- 空间转录组探索:部分研究提供 Slide-seq 等空间数据,可在浏览器中直接查看空间分布图,为空间建模研究筛选候选数据集。
- 数据发现 Agent 的评测场:分面检索端点结构稳定、免认证,适合作为「医疗数据检索 Agent」类系统的评测与演示环境——先查分面字典、再组合过滤、最后按 accession 汇聚结果,整条链路都可程序化复现。
§2 医学背景
§2.1 覆盖疾病的 ICD-11 编码映射
SCP 是跨疾病平台,其 Disease 分面随研究上传动态扩展。下表列举平台上具有代表性的疾病方向及其 ICD-11 映射(为条目可检索性而设的举例映射,非平台官方分类):
| 代表疾病方向 | ICD-11 编码 | ICD-11 中文名 | 平台数据示例 |
|---|---|---|---|
| COVID-19(SARS-CoV-2 感染) | RA01 | 冠状病毒病-19 | 外周血/气道细胞对感染的免疫应答研究 |
| 肺部肿瘤 | 2C25 | 肺或支气管恶性肿瘤 | 肺腺癌肿瘤微环境免疫图谱 |
| 2 型糖尿病 | 5A11 | 2 型糖尿病 | 胰岛细胞与人源化模型单细胞图谱 |
| 神经退行性疾病(阿尔茨海默病等) | 8A00(阿尔茨海默病) | 阿尔茨海默病 | 人脑/小鼠脑疾病模型的细胞组成变化 |
| 健康对照/正常组织图谱 | 无(健康状态) | — | 多器官健康参考图谱(脑、肺、免疫) |
§2.1b 覆盖疾病的 SNOMED CT 映射
| 代表疾病方向 | ICD-11 | SNOMED CT 码 | SNOMED 术语 |
|---|---|---|---|
| COVID-19 | RA01 | 840539006 | Disease caused by SARS-CoV-2 |
| 肺腺癌(肺部肿瘤代表) | 2C25 | 254549000 | Adenocarcinoma of lung |
| 2 型糖尿病 | 5A11 | 44054006 | Diabetes mellitus type 2 |
| 1 型糖尿病 | 5A10 | 46635009 | Diabetes mellitus type 1 |
| 阿尔茨海默病 | 8A00 | 26929004 | Alzheimer’s disease |
§2.2 疾病与领域背景简述
单细胞 RNA 测序(scRNA-seq)自 2009 年首次实现单个细胞的转录组测定以来(Tang et al., 2009, Nature Methods),已发展为现代生物医学的基础工具:它将组织解离为成千上万个细胞,逐一测定基因表达,从而把「组织平均值」拆解为「细胞类型分辨率」的精细图谱。题名含「single cell」的论文数量自该技术诞生以来呈指数增长(SCP 论文 Figure 1 基于 PubMed 的统计)。
对医学研究而言,这项技术的核心价值是解析「细胞组成的变化即疾病」:例如肿瘤组织中的免疫细胞浸润状态决定免疫治疗响应,COVID-19 患者外周血中 T 细胞与髓系细胞的异常分化已被多项单细胞研究刻画,神经系统疾病中特定神经元亚群的易感性只有细胞分辨率数据才能揭示。SCP 论文自述的收录范围覆盖了从 COVID-19 T 细胞到健康小鼠脑结构的广泛主题,与肿瘤学、免疫学、神经科学等主要医学分支的转化研究直接相关。
流行病学层面,SCP 覆盖的研究多为「疾病队列 + 健康对照」设计,样本供体来源于全球多家研究机构(平台 spatialCoverage 为全球多机构贡献);具体某疾病的患者规模以各研究原文为准,平台本身不提供跨研究的统一流行病学汇总——这正是使用本平台做医学 AI 建模时需要自行完成的元分析工作(见 §5、§7)。
从技术发展脉络看,平台收录数据的建库方案也在演进:早期研究多用 10x 3’ v1 等初代方案(官方 Demo 即如此),近年研究逐步转向更新版本与多模态方案。这要求使用者在跨年代聚合数据时把「建库版本」作为协变量显式建模,而非假设全库同质——§3.9 的建库规格表与 §7.1 的平台偏倚条目给出了具体操作建议。
§2.3 支持的临床/转化任务定义
| 任务类型 | 输入 | 输出 | 在 SCP 上的实现路径 |
|---|---|---|---|
| 细胞类型注释(诊断辅助基础) | 单细胞表达矩阵 | 每细胞类型标签 | 用带标注研究训练注释器,迁移到自有数据 |
| 疾病 vs 对照细胞状态识别 | 两队列表达矩阵 | 差异表达基因/异常亚群 | 圈定同组织疾病+对照研究,重归一化后整合分析 |
| 肿瘤微环境免疫浸润评估 | 肿瘤单细胞矩阵 | 免疫细胞组成比例 | 检索 2C25 相关研究,复用其标注做浸润谱统计 |
| 药物靶点候选发现 | 疾病特异表达模式 | 细胞类型特异靶点列表 | 跨研究共现分析(marker 基因在多研究中复现) |
| 免疫治疗响应机制研究 | 肿瘤/外周血配对数据 | 浸润免疫状态与应答关联 | 圈定肿瘤免疫研究,复用其 T/NK 细胞标注做分层 |
| 发育/分化轨迹刻画 | 时序或拟时序数据 | 轨迹与拟时序排序 | 利用多个 cluster 文件(多降维方案)交叉验证轨迹稳定性 |
| 空间生态位分析 | Slide-seq 空间数据 | 空间分布与邻域关系 | 下载空间研究,用坐标文件重建空间图 |
| 稀有细胞类型检索 | 跨库元数据 | 含目标类型的候选研究清单 | 分面 + 关键词组合检索,逐研究核对标注粒度 |
§2.4 数据来源人群构成
| 维度 | 构成情况 | 说明 |
|---|---|---|
| 供体来源 | 全球多国研究机构自助上传 | 平台不设统一入选标准,逐研究独立招募 |
| 物种 | 18 个物种,以人类与小鼠为主 | 人源研究通常含供体人口学元数据(性别等分面) |
| 年龄/性别 | 逐研究记录,无平台级汇总 | Metadata 分面含 Sex 字段,年龄视研究而定 |
| 种族/ ancestries | 逐研究记录,覆盖不均衡 | 存在 ancestry 偏倚风险,见 §7.1、§7.5 |
| 就医类型 | 研究级队列(门诊/住院/队列筛查不一) | 以各研究原文为准 |
| 研究设计 | 疾病队列 + 健康对照为主,兼有图谱型/方法学型研究 | 分面空白的研究多为健康图谱或方法学工作(§4.5) |
| 组织/器官 | Disease/Organ 分面索引(含肺、脑、外周血 PBMC、胰腺等) | 官方检索分面是权威清单 |
§2.5 临床与科研价值
对临床研究的价值链条是「公开图谱 → 机制假设 → 转化验证」:研究者可先在 SCP 上确认某细胞亚群/某基因模式是否在其他独立队列中复现(SCP 论文将此明确列为生命周期环节之一),再决定是否投入实验验证。这种「发布前跨队列核对」能显著降低假阳性发现率,对样本量普遍偏小的单细胞研究尤其重要。
对 AI 医疗产品研发,SCP 的价值是「训练数据的公共替代来源」:在无法立即获得院内数据时,可用平台上同组织的公开数据搭建注释/整合管线的原型,验证特征工程与模型选型;入院后用院内数据微调。同时,平台上大量「健康组织参考图谱」可直接用作细胞类型分类器的背景分布参照,辅助病理 AI 的可解释性建设。
§2.6 标注金标准构成
| 维度 | 构成 | 说明 |
|---|---|---|
| 标签对象 | 每个细胞的类型注释(元数据文件中的标注列) | 标签以 NAME 为键与表达矩阵逐细胞对齐 |
| 标注方式 | 贡献研究团队自行标注(marker 基因法 + 参考映射 + 专家审校,比例逐研究不同) | 平台不统一重标注;官方 Demo 研究沿用 Scanpy 教程标注 |
| 标注者资质 | 各研究作者团队(生物信息学/领域生物学背景) | 资质与一致性指标逐研究披露程度不一 |
| 标签词汇 | 无平台级强制本体;官方提示元数据需结构化以支持高级检索 | 跨研究标签对齐(如映射 Cell Ontology)是使用者的责任 |
| 参考性质 | 事实上的「多研究标注集合」,非单一金标准 | 适合作为弱标注/多源标注资源使用 |
§3 数据集规格
§3.0 获取通道抉择矩阵
SCP 为滚动更新型平台,无冻结版本号可选;使用者的「版本决策」实际是获取通道决策:
| 你的需求 | 推荐通道 | 单次体量 | 理由 |
|---|---|---|---|
| 快速浏览某研究结构与图表 | 网页端研究页(无需注册) | 0(在线渲染) | 交互式可视化直接可看,Slide-seq 等空间图可直接检查 |
| 程序化检索/监控研究元数据 | REST API /search + /search/facets |
KB 级 JSON | 免认证、免 API key,适合构建数据发现 Agent |
| 下载单个研究的全部文件 | 研究页 Download tab(需注册登录) | 数十 MB 至数 GB | 逐文件下载,可只取表达矩阵或坐标文件 |
| 下载多个/大型研究 | Bulk download(auth_code + curl 配置生成) | GB 级,日限额约 0.5 TB | 服务端生成 curl 脚本,走 GCS 只读 token 断点续传 |
| 贡献数据/校验上传格式 | GitHub 便捷脚本 + PyPI 包 single-cell-portal |
— | 官方 Python 3 脚本做格式校验,依赖 Google Cloud SDK |
§3.1 模态详情
单细胞 RNA 测序(主模态):平台绝大多数研究为液滴或板式 scRNA-seq 产出,官方 StudyFile 元数据模型原生记录 library_preparation_protocol(如 10x 3’ v1)、modality: Transcriptomic: unbiased、biosample_input_type(如 Whole cell)等字段。表达数据以两种形态入库:处理矩阵(作者选定单位,官方推荐 log2(TPM+1) 类变换)与原始计数矩阵(强制上传,鼓励复用)。AI 建模建议默认从原始计数矩阵出发自行标准化,见坑点 5。
空间转录组:平台收录 Slide-seq 等空间研究,空间点(spatial point)在数据模型中与细胞同构(都占 NAME 一行),坐标文件提供空间位置。注意部分空间研究需登录后才能下载。
衍生降维与聚类数据:每个研究附带一个或多个 cluster 文件(UMAP/t-SNE 等降维坐标),这是网页可视化的数据源,也是下载后快速还原官方图表的依据。三类核心文件通过 NAME 列严格对齐(见 §4.4)。
§3.2 按子集的规模分布
| 维度 | 分布情况 | 来源与时点 |
|---|---|---|
| 研究总数 | 995+ 项公共研究(官方检索页 “995 total studies found”) | 官方门户,截至 2026-09-13 |
| 细胞总量 | 约 6,250 万+(884 研究时点为 6,250 万,随研究增长只增不减) | singleron 指南,2025 |
| 物种覆盖 | 18 个物种,人类与小鼠研究占绝大多数 | singleron 指南,2025 |
| 疾病分面 | Disease 分面索引(肿瘤、免疫、神经、代谢、感染等方向) | 官方检索分面,2026-09 |
| 器官分面 | Organ 分面索引(肺、脑、外周血等) | 官方检索分面,2026-09 |
| 单研究规模 | 数千细胞(Demo:3k PBMC)至数百万细胞不等 | 官方 Demo 与 API cell_count 字段 |
§3.3 数据格式清单
| 文件类型 | 格式 | 结构约定 | AI 用途 |
|---|---|---|---|
| 表达矩阵(稀疏) | MatrixMarket .mtx + barcodes.tsv + features.tsv |
10x 风格三件套;barcodes 提供 NAME | 主训练数据(scanpy read_10x_mtx 直读) |
| 表达矩阵(dense) | TSV/CSV | 首行细胞名(=NAME)、首列基因名 | 小研究直读 pandas |
| Cluster/空间文件 | TXT/TSV | NAME + 降维/空间坐标列,可有多个 | 还原官方散点图、空间建模输入 |
| 元数据文件 | TXT/TSV | 每 study 恰一个,NAME 列唯一 + 结构化注解列(细胞类型等) | 标签来源,驱动高级检索 |
| 原始计数矩阵 | 同上两种形态 | 与处理矩阵分开上传 | 标准化重做的正确起点 |
| 批量下载清单 | curl 配置文件 | Bulk download 生成(含一次性 auth_code 换取的访问凭证) | 脚本化批量拉取 |
| 差异表达请求 | API POST 载荷 | /differential_expression 服务端计算 |
服务端 DE 结果复用 |
§3.4 存储大小
平台未公布全库总量。单研究规模跨越两个数量级:教学级研究(3k PBMC demo)解压后仅数十 MB, atlas 级研究可达数 GB;整体体量可由「995+ 研究 × 中位数百 MB」粗估为数百 GB 量级,但该估算非官方数字,仅供容量规划参考。实操建议:先用 API 的 cell_count/gene_count 字段核算目标研究规模,再决定逐文件下载还是 Bulk download;第三方记载的平台侧下载限额约 0.5 TB/日(2021 年时点)是批量拉取时的硬约束。
磁盘规划上还需注意稀疏矩阵的解压膨胀:.mtx 压缩包解压后体积通常放大 3-10 倍,读入内存转 dense 更会再放大一个数量级(百万细胞 × 2 万基因的 dense float64 约需 160 GB,CSR 稀疏则可低至 GB 级)。因此大批量工作流的磁盘与内存预算都应按「稀疏存储为常态、dense 仅按批转换」来设计(§6.4 的工程提示即基于此)。
§3.5 标注方式
| 方式 | 占比情况 | 质量特征 |
|---|---|---|
| Marker 基因人工判读 | 广泛使用(经典主流方法) | 依赖标注者经验,亚型分辨率有限 |
| 参考图谱自动映射 | 增多中(如参考映射工具输出) | 一致性较好,受参考集覆盖面约束 |
| 自动聚类 + 簇级标注 | 广泛使用 | 簇粒度标签,簇内异质性被折叠 |
| 元数据结构化注解 | 官方要求(驱动高级检索的最小集合) | 疾病/器官/物种/性别/建库方案字段可靠 |
§3.6 标注者资质与一致性
标注由各研究作者团队完成,通常为生物信息分析师出草案、领域生物学家复核;平台不设统一标注资格认证,多数研究不公开标注者间一致性系数(如 Cohen’s kappa)。使用时的工程对策:优先选择论文正文报告了标注验证(marker 表达证据、与已知图谱一致性)的研究;对跨研究训练任务,把「研究来源」作为标签的协变量并做标注词汇对齐(见坑点 8)。
§3.7 采集与更新周期
平台为持续滚动更新:研究在作者完成数据清洗后随时上传,公开后持续可见。平台侧无年度冻结版本;学术统计口径的快照(820 项/约 5,700 万细胞,2025-04;884 项/约 6,250 万细胞,2025;995 项,2026-09)显示年增量约百项研究。对需要可复现性的 AI 项目,建议在实验记录中固定「研究 accession 列表 + 下载日期」作为事实版本号。
更新节奏的另一面是「软性数据变更」:同一 accession 的文件可被贡献者重新上传(API 提供 sync 端点与 updated_at 时间戳)。长期运行的训练池应定期对已下载研究做校验和比对,检测上游文件的静默变更,避免「同名不同内容」的复现事故。
§3.8 地域覆盖
数据由全球研究机构自助上传,门户 spatialCoverage 为全球;无国家级配额或区域加权。隐含偏倚:贡献集中于科研投入较高的国家与机构(见 §7.1)。
§3.9 测序平台与建库规格
| 建库方案 | 记录位置 | 数据特征 | 建模注意 |
|---|---|---|---|
| 10x Chromium 3’ v1(官方 Demo 采用) | StudyFile library_preparation_protocol |
3’ 端 UMI 计数 | 与 v2/v3 数据混用时 UMI 结构差异需纳入批次校正 |
| Smart-seq2 等板式全長方案 | 同上(逐研究记录) | 读深更高、无 UMI、检出基因更多 | 与液滴数据整合时需专门校正检出深度差 |
| Slide-seq 等空间方案 | 研究页标注(部分需登录下载) | 空间点分辨率低于单细胞 | 去卷积后再做细胞类型分析 |
| 其他液滴/板式方案 | 逐研究声明(分面检索可筛选) | 特性介于上述两类之间 | 以 library_preparation_protocol 字段为准逐研究确认 |
§3.10 深度溯源链
| 层级 | 溯源载体 | 获取方式 |
|---|---|---|
| 研究 → 论文 | 研究页 Citation 区块与描述字段(常内嵌论文摘要全文) | 网页//site/studies/{accession} API |
| 研究 → 原始数据 | 作者提供的 GEO/SRA 等外部链接(各研究自述) | 研究页右侧链接区 |
| 上传文件 → 校验 | 官方便捷脚本(格式校验)与上传指纹(API upload_fingerprint 字段) |
GitHub wiki / API 元数据 |
| 处理矩阵 → 原始计数 | 同研究双矩阵 + is_raw_counts 标志字段 |
Download tab / API file_info |
| 平台方法学 | Tarhan et al., 2023(DOI 10.1101/2023.07.13.548886) | PubMed 37502904 |
§4 数据结构
§4.0 单研究数据目录树
下载某典型研究(含 10x 稀疏表达矩阵)并解压后的典型布局:
SCP200012345/ # 以研究 accession 命名的下载目录
├── expression/ # 表达矩阵区(驱动基因表达可视化)
│ ├── matrix.mtx # MatrixMarket 坐标格式稀疏矩阵(gene × cell)
│ ├── barcodes.tsv # 细胞条码列(= NAME),与所有其他文件对齐
│ ├── features.tsv # 基因/特征列(行索引)
│ └── raw/ # 原始计数矩阵(部分研究单独提供 raw 三件套)
├── dense_expression.csv # 部分研究提供 dense 形态(首行细胞名、首列基因名)
├── clustering/ # 降维/聚类坐标区(可有多个方案)
│ ├── UMAP_coords.txt # NAME + UMAP_1 + UMAP_2(还原官方散点图)
│ └── tSNE_coords.txt # NAME + tSNE 坐标
├── metadata.txt # 每 study 恰一个:NAME(唯一)+ 细胞类型等注解列
└── README.md # 研究自述(各研究可选提供)
目录结构预期说明:代码中的
data_root即此处SCP200012345的父目录;data_root / accession / expression为表达矩阵拼接路径。最小可用子集 = 官方 Demo 研究(Scanpy 教程 3k PBMC,10x 3’ v1),单文件即可跑通 §6.3 全流程。
§4.1 DAIMS 8 列字段字典
| 字段名 | 类型 | 说明 | 示例值 | AI 用途 | 观测误差 | 信息性缺失编码 | 取值范围 |
|---|---|---|---|---|---|---|---|
| NAME | Text | 细胞/空间点唯一标识,全文件对齐主键 | AAACATACAACCAC-1 |
样本行键;join 键 | 各文件拼写不一致会致对齐失败 | 无缺失(强制唯一) | 逐研究定义 |
| accession | Text | 研究唯一访问号 | SCP200012345 |
研究 URL/引用键 | — | 无 | 平台分配 |
| cell_count | Integer | 研究细胞数(API 元数据) | 2700 |
规模筛选、容量预估 | 随重传更新 | 无 | ≥ 0 |
| gene_count | Integer | 研究基因数(API 元数据) | 13714 |
特征维度预估 | 同上 | 无 | ≥ 0 |
| species | Text | 物种(分面检索字段) | Homo sapiens |
跨物种过滤 | 贡献者自填 | 空值=未填 | 18 个受控物种值 |
| disease | Text | 疾病分面值 | Type 2 diabetes |
队列圈定 | 贡献者自填、词汇不统一 | 空值≈健康/未标注 | 自由文本分面 |
| organ | Text | 器官分面值 | Lung |
组织圈定 | 同上 | 空值=未填 | 自由文本分面 |
| units | Text | 表达值单位说明 | UMI-corrected raw counts |
单位判别(坑点 4/5) | 作者自述 | 空值=未声明 | 自由文本 |
| is_raw_counts | Boolean | 是否原始计数矩阵 | true |
选择标准化起点(坑点 5) | 上传声明 | 无 | true/false |
| library_preparation_protocol | Text | 建库方案 | 10x 3' v1 |
批次协变量(坑点 8) | 上传声明 | 空值=未声明 | 受控+自由混合 |
| modality | Text | 数据模态 | Transcriptomic: unbiased |
模态过滤 | 上传声明 | 无 | 受控值 |
| cell_type_annotation | Text | 元数据中的细胞类型标签列 | CD8 T cells |
监督标签(标签分布见 §4.2) | 标注质量逐研究异 | 空值=该细胞未标注 | 词汇跨研究不统一 |
| sex | Text | 供体性别分面值(研究级) | Female |
人口学分层与偏倚审计 | 贡献者自填 | 空值=未声明 | 受控分面值 |
| assembly | Text | 参考基因组组装版本 | GRCh38 |
跨研究基因标识对齐 | 上传声明 | 空值=未声明 | 平台注册的组装列表 |
| biosample_input_type | Text | 建库样本类型 | Whole cell |
模态/样本过滤 | 上传声明 | 空值=未声明 | 受控值(如 Whole cell、Nuclei) |
§4.2 标签分布
SCP 的标签体系是「逐研究自治」的:每项研究的 metadata.txt 自带其细胞类型列,标签词汇与粒度跨研究不同(如 T cells 与 CD8-positive, alpha-beta T cell 指称近似对象)。平台不提供跨研究标签直方图;API 的 /search 支持在研究分面(species/disease/organ 等)而非标签层面统计。因此在平台层做「标签分布」的正确姿势是:按分面圈定研究集合 → 逐研究下载 metadata → 按 NAME 合并后自行统计标签频次与词汇冲突表(模板见 §6.3)。
标签统计时建议同时产出三张衍生表:标签×研究的覆盖率矩阵(判断每个标签的跨研究支撑度)、标签粒度审计表(按「是否含亚型后缀」等规则分层)、稀有标签清单(跨研究合计仍 <1,000 细胞的类目,训练前决定合并或剔除策略)。这三张表是 §6.5 坑点 8 映射工作的输入。
§4.3 关键统计
| 统计项 | 数值 | 口径与来源 |
|---|---|---|
| 公共研究数 | 995+ | 官方检索页,截至 2026-09-13 |
| 细胞总量 | 约 6,250 万+ | 884 研究时点(2025,singleron),此后只增不减 |
| 物种数 | 18 | singleron,2025 |
| 每研究核心文件 | 3 类(cluster/metadata/表达矩阵) | 官方帮助中心 |
| 元数据结构化分面 | 疾病/器官/物种/性别/建库方案等 | 官方帮助中心(Metadata-powered Advanced Search) |
| API 公开端点家族 | search/site/bulk_download/studies/status 等 8 族 | REST API v1 文档 |
§4.4 数据层级与主键链
Study(研究,accession 主键)
└── StudyFile(文件级元数据:file_type ∈ Cluster/Metadata/Expression Matrix…)
├── Metadata 文件:1 个/study,NAME 唯一 —— 标签与分面注解
├── Cluster/空间文件:N 个/study,文件内 NAME 唯一(同一细胞可出现在多个降维方案中)
└── Expression 矩阵:dense 列名 或 sparse barcodes = NAME
└── 细胞(NAME,跨文件 join 键)→ 基因(features 行)→ 表达值
主键链的铁律:NAME 必须在 metadata、cluster、矩阵(列名/barcodes)三处完全一致,矩阵列与 barcodes 就是 NAME 本身;多矩阵研究须为 NAME 加前缀消重,否则上传解析即报错(见坑点 2)。
§4.5 缺失值与信息性缺失
| 缺失情形 | 表现形态 | 处理建议 |
|---|---|---|
| 注解列空值 | metadata 某注解列对部分细胞为空 | 建模前显式过滤或填充 unknown 类;勿把空串当独立类 |
| 分面字段未填 | disease/organ 等分面空白(研究未声明) | API 过滤时遗漏风险——空值研究不进结果集,检索结果偏乐观 |
| 基因零表达 | 稀疏矩阵显式存零(不存) | MatrixMarket 只存非零项;读入后补零构造稠密/CSR |
| 单位未声明 | units 字段空 |
视为未知单位,禁止跨研究直接比较(坑点 4) |
| 原始矩阵缺失 | 个别历史研究未双矩阵上传 | 用 is_raw_counts 甄别;缺失时在实验记录中声明 |
「信息性缺失」在 SCP 主要体现为分面空白本身是信号:未声明疾病的研究多为健康图谱或方法学研究,圈队列时应把「分面空白组」显式纳入排除规则,而不是让它静默漏检。
§5 数据划分与使用建议
§5.1 官方划分
无。SCP 是平台而非基准数据集,官方不提供 train/val/test 划分,也未指定任何标准任务。这是其与 Kaggle 型数据集的本质差异:划分方案完全由下游使用者定义。
§5.2 社区惯例
社区通行做法按任务分两类:标注基准(如跨数据集注释评测)通常按「研究/供体级」切分——留出整个研究或整批供体做外部测试;整合基准(如 scIB 风格)则以「批次」为天然切分单元,考察整合后批次混合度与生物保真度的平衡。平台自身对此无官方立场,第三方综述(如细胞图谱领域综述)亦仅做数据规模口径的对比而非统一基准。
§5.3 划分策略建议与泄漏风险
- 供体/研究级划分优先:同一供体的细胞若同时出现在 train 与 test,模型可走「供体指纹」捷径,虚高性能。按 NAME 前缀或 metadata 供体列分组切分(GroupKFold)。
- 同源研究对齐检查:多项研究可能出自同一实验室、同一批细胞的不同发布(如 HCA 联动发布在 SCP 的 release 页);建 train/test 前按论文与供体信息做同源去重。
- 预处理泄漏:跨研究整合时,若归一化尺度/特征选择在全库上拟合后再切分,即为预处理泄漏。正确顺序是「先切分、后拟合标准化参数」(见坑点 8 的 Pipeline 顺序)。
- 标签泄漏:metadata 的降维坐标列若混入特征(UMAP_1/2 与表达共训),等于把全局结构信息泄给模型——坐标列只能用于可视化,不可作输入特征。
§5.4 交叉验证建议
小样本研究内验证用「供体分组 × 5 折」的 GroupKFold;跨研究泛化评估采用「留一研究外推(leave-one-study-out)」,并按建库方案分层汇报。指标建议同时报宏平均 F1(类不平衡)与按细胞类型的 per-class F1(稀有类,见 DAIMS 第 7 项)。
§5.5 外部验证建议
在 SCP 内部按研究切分的结论,最迟需在「平台外」验证一次:优先选 CELLxGENE Discover 下载的同组织 h5ad(集中策展、schema 统一),其次选原始论文的独立队列。汇报时标注两平台统计口径差异(SCP 逐研究自治 vs CELLxGENE 集中清洗),避免把口径差异误读为模型差异。
§5.6 研究集合构建清单(建模前的圈库规程)
- 分面圈定:用
/search/facets确认疾病/器官/物种的合法取值,再组合/search拉取候选研究;保存当次检索参数与返回结果快照。 - 规模核算:对候选清单逐个读取
cell_count/gene_count,剔除离群研究(过大研究单独处理)。 - 规范体检:核对每研究是否提供 raw 矩阵、metadata 分面是否填写完整、许可条款是否允许目标用途。
- 同源去重:按论文与供体信息识别同源发布(如某联盟多出口发布的同一 release),保留一个主 accession。
- 冻结清单:以「accession + 下载日期 + 校验和」固化训练集版本,之后平台新增研究不再静默进入训练池。
§6 AI 就绪指南
§6.0 云端快速启动
SCP 与 Broad 的 Terra 云分析平台深度集成:API 中有专门的 check_terra_tos_acceptance 端点,批量下载走 DRS(Data Repository Service)对象并落地于 TDR(Terra Data Repo)。已有 Terra 工作区的团队可在 Terra 内直接挂载相关研究数据;纯本地用户则按下节用 curl/Python 拉取即可。无 GPU 需求——单细胞预处理全部可在 CPU 笔记本完成(见 §6.8)。
§6.1 快速上手
代码块前置说明:以下 Pipeline 假设你已从某研究页 Download tab 下载并解压数据到
data/目录,data_root即该目录;目录结构遵循 §4.0 的树({accession}/expression/matrix.mtx等)。最小可用子集:官方 Demo 研究(Scanpy 教程 3k PBMC,10x 3’ v1),或任意提供 10x 三件套的研究。环境:pip install scanpy anndata requests torch。
# 环境与数据自检(首次使用建议先跑):确认依赖版本与 NAME 三处对齐
import scanpy as sc, pandas as pd, requests
assert sc.__version__ >= "1.9" # read_10x_mtx 与 cache 行为稳定
BASE = "https://singlecell.broadinstitute.org/single_cell/api/v1"
studies = requests.get(f"{BASE}/search", params={"facets": "species:Homo sapiens",
"size": 5}, timeout=30).json()
print("API OK, 样例研究:", [s["accession"] for s in studies["studies"]])
meta = pd.read_csv("data/SCP200012345/metadata.txt", sep="\t")
bc = pd.read_csv("data/SCP200012345/expression/barcodes.tsv", header=None)[0]
assert set(meta["NAME"]) == set(bc), "NAME 对齐失败,先处理坑点 2"
# 5 分钟上手:读取一个 SCP 研究并复现官方聚类图
import scanpy as sc
data_root = "data" # data_root:所有研究解压目录的父目录
accession = "SCP200012345" # 换成你目标研究的 accession
# 拼接关系:data_root / accession / expression / {matrix.mtx, barcodes.tsv, features.tsv}
adata = sc.read_10x_mtx(
f"{data_root}/{accession}/expression", # 含三件套的目录
var_names="gene_symbols", cache=True,
)
adata.var_names_make_unique() # 同名基因去重(mtx 特征列常见重复)
# 标准预处理(细节与坑点见 §6.3)
sc.pp.filter_cells(adata, min_genes=200)
sc.pp.filter_genes(adata, min_cells=3)
adata.layers["counts"] = adata.X.copy() # 保留原始计数
sc.pp.normalize_total(adata, target_sum=1e4)
sc.pp.log1p(adata)
sc.pp.highly_variable_genes(adata, n_top_genes=2000)
sc.pp.pca(adata)
sc.pp.neighbors(adata)
sc.tl.umap(adata)
sc.pl.umap(adata, save=f"_{accession}.png") # 与官方 cluster 图目视对齐
§6.2 数据获取
| 方式 | 认证要求 | 适用规模 | 入口 |
|---|---|---|---|
| 网页单文件下载 | 注册登录 | 单研究、单文件 | 研究页 Download tab |
| Bulk download | 登录 + 一次性 auth_code | 多研究/大研究 | 研究页 Bulk download(生成 curl 配置) |
| REST API 元数据 | 免认证 | 全库元数据 | /single_cell/api/v1 |
| 研究文件 API 流式读取 | 登录 token | 单文件 | /site/studies/{accession}/stream |
免认证元数据检索(构建数据发现 Agent 的正确姿势):
import requests
BASE = "https://singlecell.broadinstitute.org/single_cell/api/v1"
# 1) 分面值清单(先看有哪些疾病/器官/物种可选)
facets = requests.get(f"{BASE}/search/facets", timeout=30).json()
# 2) 分面+关键词联合检索研究(公开元数据,无需登录)
r = requests.get(f"{BASE}/search", params={"facets": "species:Homo sapiens,organ:Lung",
"size": 20}, timeout=30)
for s in r.json().get("studies", []):
print(s["accession"], s["name"], s.get("cell_count"), s.get("gene_count"))
# 3) 单研究详情(含描述全文——注意坑点 7)
detail = requests.get(f"{BASE}/site/studies/{r.json()['studies'][0]['accession']}",
timeout=30).json()
Bulk download 编排(登录后从研究页取得 auth_code 与配置):
# 服务端生成的 curl 配置批量拉取(约 0.5 TB/日限额,见坑点 3)
curl -K scp_bulk_download_config.txt # 配置内含 GCS 只读 token 与文件清单
§6.3 预处理全流程
"""SCP 研究级预处理 Pipeline:mtx → QC → 归一化 → HVG → 整合就绪矩阵
输入:§4.0 目录树;输出:{accession}.h5ad(含 counts 层与标准化层)"""
import scanpy as sc, pandas as pd, numpy as np
from scipy import io, sparse
def load_scp_study(data_root: str, accession: str):
base = f"{data_root}/{accession}/expression"
adata = sc.read_10x_mtx(base, var_names="gene_symbols", cache=True)
adata.var_names_make_unique()
# 元数据与 cluster 坐标按 NAME 对齐(NAME 就是 barcodes)
meta = pd.read_csv(f"{data_root}/{accession}/metadata.txt", sep="\t", index_col=0)
adata.obs = adata.obs.join(meta, how="left") # 缺失注解→NaN(见 §4.5)
return adata
def preprocess(adata, min_genes=200, min_cells=3, n_hvg=2000):
# 1) QC:质控阈值按研究微调(液滴数据线粒体比例常用 <15-20%)
adata.var["mt"] = adata.var_names.str.startswith(("MT-", "mt-"))
sc.pp.calculate_qc_metrics(adata, qc_vars=["mt"], percent_top=None, log1p=False,
inplace=True)
keep = (adata.obs.n_genes_by_counts >= min_genes) & \
(adata.obs.pct_counts_mt < 20)
adata = adata[keep].copy()
sc.pp.filter_genes(adata, min_cells=min_cells)
# 2) 双层保存:counts 层永远保留(坑点 5)
adata.layers["counts"] = adata.X.copy()
sc.pp.normalize_total(adata, target_sum=1e4)
sc.pp.log1p(adata) # 单位收敛为 log1p(CP10K)
# 3) HVG 与缩放(先切分后拟合的原则见坑点 8)
sc.pp.highly_variable_genes(adata, n_top_genes=n_hvg, subset=False)
return adata
# 标签词汇冲突表(跨研究训练前的必做体检,见坑点 8)
def label_conflict_table(ann_by_study: dict) -> pd.DataFrame:
rows = []
for acc, labels in ann_by_study.items():
for lab, n in labels.value_counts().items():
rows.append({"accession": acc, "label_raw": lab, "n_cells": n})
return pd.DataFrame(rows).pivot_table(index="label_raw", columns="accession",
values="n_cells", fill_value=0)
§6.4 PyTorch DataLoader 完整代码
"""从预处理产物 h5ad 构建细胞类型注释训练集。
预期:data_root 下 {accession}.had 已含 obs['cell_type_annotation'] 与 layers['counts']。
划分:供体/研究级 GroupKFold(§5.3),绝不在细胞级随机切分。"""
import torch
from torch.utils.data import Dataset, DataLoader
from sklearn.preprocessing import LabelEncoder
import anndata as ad
class SCPCellDataset(Dataset):
def __init__(self, h5ad_paths, label_col="cell_type_annotation"):
self.adatas = [ad.read_h5ad(p) for p in h5ad_paths]
self.genes = sorted(set().union(*[set(a.var_names) for a in self.adatas]))
self.le = LabelEncoder().fit(
[l for a in self.adatas for l in a.obs[label_col].dropna()])
def __len__(self):
return sum(a.n_obs for a in self.adatas)
def __getitem__(self, idx):
for a in self.adatas: # 简单实现:顺序定位;大库请先合并落盘
if idx < a.n_obs:
x = a[idx].layers["counts"].toarray().ravel()
# 基因对齐到全局词表 + log1p 归一(训练/推理同变换,防泄漏见坑点 8)
x = a[:, self.genes].layers["counts"].toarray().ravel()
x = np.log1p(x / max(x.sum(), 1) * 1e4)
y = self.le.transform([a[idx].obs[label_col].item()])[0]
return torch.tensor(x, dtype=torch.float32), torch.tensor(y)
idx -= a.n_obs
raise IndexError
ds = SCPCellDataset(["data/A.h5ad", "data/B.h5ad"])
# 分组切分示例(供体级):实际按供体列生成 train/test 索引后传给 Subset
loader = DataLoader(ds, batch_size=256, shuffle=True, num_workers=4)
x, y = next(iter(loader)) # x: [256, n_genes] y: [256]
# 工程提示:多研究基因并集会让矩阵变宽(零填充增多);
# 百万细胞级请先在磁盘上合并为单一 h5ad(并集基因 + CSR 稀疏存储),
# 再让 Dataset 直接按行切片,避免上例逐研究定位带来的 O(n_research) 检索开销。
# Data行永不稠密化到内存全量——用 scanpy 读出的 CSR 按批转 dense 张量即可。
§6.5 真实坑点清单(8 个)
⚠️ 坑点 1:匿名调用
/studiesAPI 返回 401 Unauthorized(分类:工程陷阱)问题:REST API 的
/studies端点族(含研究列表遍历)要求登录态;公开匿名访问只会得到 401。很多使用者把/studies当成「公开研究列表」接口,第一步就被卡住。
症状:GET /studies返回 HTTP 401(User is not authenticated);换工具/换 UA 无效;而/search却能正常返回。
解决:
- 简单方法:公开检索一律走
/search(免认证),需要研究列表时用其分面参数圈定后翻页。- 进阶方法:确需写操作(建研究、改注解)时走登录 token;浏览器登录后复用会话或按官方文档获取用户 token(
/site/renew_user_access_token)。- SOTA 方法:把「免认证发现」与「认证获取」分层编排——发现层缓存
/search与/search/facets结果,获取层才携带凭证,凭证只落在下载编排服务中。# 反例(401):requests.get(f"{BASE}/studies") # 正例:requests.get(f"{BASE}/search", params={"facets": "species:human"})参考:REST API v1 文档;ToolUniverse
single_cell_portal_tool源码注释(“the /studies route requires authentication”)。
⚠️ 坑点 2:NAME 跨文件不匹配或重复,解析失败/可视化空白(分类:预处理陷阱)
问题:SCP 数据模型以 NAME 为主键把 metadata、cluster 坐标、表达矩阵三处对齐;上传或下游拼接时 NAME 不一致,轻则单细胞元数据全丢,重则平台 ingest 直接报错。
症状:研究页基因表达图/散点图空白;自建分析里join后行数骤减为 0;多矩阵研究上传时报 duplicate NAME 错误。
解决:
- 简单方法:下载后先做体检——
set(metadata.NAME) == set(barcodes)且 metadata.NAME 无重复。- 进阶方法:多矩阵(多批次/多物种)研究按官方建议为每套 barcodes 加研究内唯一前缀(如
batch1_AAAC…),并在 metadata 同步使用前缀名。- SOTA 方法:把 NAME 体检做成 CI 步骤(§6.3 前 3 行断言),任何新研究入库先过检再进训练池。
import pandas as pd meta = pd.read_csv("metadata.txt", sep="\t") bc = pd.read_csv("expression/barcodes.tsv", header=None)[0] assert meta["NAME"].is_unique, "metadata NAME 重复" assert set(meta["NAME"]) == set(bc), f"NAME 不一致:缺失 {len(set(bc)-set(meta['NAME']))}"参考:官方帮助中心《Key study files depend on unique NAMEs to enable visualizations》。
⚠️ 坑点 3:下载需注册登录,且平台侧约 0.5 TB/日限额(分类:工程陷阱)
问题:浏览免登录,但下载必须注册;批量拉取受平台侧每日限额约束(第三方 2021 年记载 0.5 TB/日)。自动脚本在未登录态会拿到登录页而非文件。
症状:curl 直链得到 HTML 登录页或 401;大库批量下载中途失败且次日才恢复配额。
解决:
- 简单方法:注册账号后在研究页手工下载,适合 ≤3 个目标研究。
- 进阶方法:用 Bulk download 的 auth_code + 服务端 curl 配置脚本化拉取;把下载计划按限额切成多日任务。
- SOTA 方法:按 API
cell_count × gene_count预估体量、优先精简到目标研究子集再批量;批量任务落盘「已下载 + 校验和」清单支持断点续跑。est_gb = cell_count * gene_count * 4 / 1024**3 # 粗估 dense float32 尺度 # 只拉 features 子集或稀疏矩阵时远小于此值;>0.5TB/日则拆天参考:Biomage《Leveraging Public scRNA-seq Data》指南(下载与限额记载)。
⚠️ 坑点 4:表达单位跨研究不统一,直接比较等于比较苹果和橙子(分类:评估误用)
问题:SCP 处理矩阵的单位由贡献者自定,官方仅推荐 log2(TPM+1) 类变换并在 axes 标注。跨研究直接比较表达值(如把不同研究的同一基因表达求均值)没有生物学意义。
症状:跨研究差异表达结果被平台/建库偏差主导;同一基因在不同研究里「表达量」差几个数量级;聚类按研究而非按细胞类型分开。
解决:
- 简单方法:只用原始计数矩阵(
is_raw_counts=true),全库统一normalize_total + log1p。- 进阶方法:跨研究整合前先做 HVG 求交/并、再跑批次校正(Harmony/scVI),把「研究」当批次键。
- SOTA 方法:深度生成模型(scVI 系列)直接以原始计数为似然建模,端到端吸收单位与技术差异。
# 统一化:以 counts 层为唯一真相源 adata.X = sc.pp.normalize_total(adata, target_sum=1e4, copy=True).X sc.pp.log1p(adata) # 全库统一 log1p(CP10K) 后才可比参考:官方帮助中心《Expression matrix files》(单位说明);scVI 相关方法文献。
⚠️ 坑点 5:processed 矩阵 ≠ raw 矩阵,建模拿错起点(分类:标签理解)
问题:SCP 同时要求上传 processed 与 raw 矩阵,StudyFile 以
is_raw_counts字段区分;processed 矩阵可能已过滤、已缩放甚至已做中心化(可为负值)。把 processed 当 counts 用会破坏负二项式等基于计数的模型假设。
症状:scVI/隐马尔可夫类模型报「X 含负值」;差异表达 P 值异常;不同研究「同一处理」结果不可复现。
解决:
- 简单方法:读文件后断言
X.min() >= 0且数值为整数型,不满足即视为 processed。- 进阶方法:按 API
file_info.is_raw_counts与units字段自动路由——true→直接入池,false→仅用于可视化/对照。- SOTA 方法:数据卡片化记录每个研究的矩阵形态(raw/processed/单位),进元数据层随 accession 一起版本化。
import numpy as np X = adata.layers["counts"] assert X.min() >= 0, "负值出现:拿到的是 processed 矩阵,换 raw/ 目录三件套" assert np.allclose(X, X.astype(int)), "非整数:疑似已归一化矩阵"参考:REST API StudyFile 模型(
expression_file_info.is_raw_counts、units字段);官方《Expression matrix files》。
⚠️ 坑点 6:多物种(Barnyard)研究必须按物种拆矩阵(分类:偏倚陷阱)
问题:官方要求矩阵按物种分开(“Barnyard” 或比较研究应分物种出矩阵);跨物种混合训练时,同源基因(one-to-one ortholog)映射与计数深度差异会引入系统性偏倚。
症状:人鼠混合训练后物种聚类先于细胞类型聚类(物种信号淹没生物学信号);ortholog 对不齐导致特征表长度对不上。
解决:
- 简单方法:下载时即按物种分目录落盘,训练只取单物种子集。
- 进阶方法:确需跨物种时,用权威 ortholog 表把基因映射到共同空间,仅保留 one-to-one 同源对,并按物种分层评估。
- SOTA 方法:跨物种预训练模型(如基因词表含物种标识的大模型)并按物种做分域微调。
human = adata[adata.obs["species"] == "Homo sapiens"].copy() mouse = adata[adata.obs["species"] == "Mus musculus"].copy() # 拆分后再各自建管线参考:官方帮助中心《Key study files depend on unique NAMEs…》(Barnyard 规则)。
⚠️ 坑点 7:研究描述字段内嵌整篇论文摘要,NLP 前必须清洗(分类:工程陷阱)
问题:SCP 的 study description 常把整篇论文摘要原文塞入;直接把 API description 字段当「简洁描述」喂给检索/分类模型会引入冗余噪声与截断问题。
症状:embedding 平均被摘要的长尾语句主导;token 超限被截断后丢失 title 信息;「研究间相似度」实际是「摘要间相似度」。
解决:
- 简单方法:入库前按长度截断(如 512 字符)。
- 进阶方法:结构化抽取——用 name + 分面(species/disease/organ)拼成规范描述,description 全文仅作补充语料。
- SOTA 方法:摘要段落切块 + 分块 embedding,检索时按块召回再聚合到研究。
text = f"{s['name']} | {s.get('species','')} | {s.get('disease','')} | " \ f"{(s.get('description') or '')[:512]}" # 结构化优先,摘要只取前缀参考:ToolUniverse 源码注释(“SCP descriptions embed whole paper abstracts… truncated”)。
⚠️ 坑点 8:跨研究整合无统一预处理——泄漏与批次校正的顺序问题(分类:数据泄漏)
问题:SCP 各研究独立上传、独立预处理,词汇、单位、过滤标准全部不一致。若在全库范围拟合归一化参数/HVG/校正模型之后再做 train/test 切分,测试集信息已经泄入训练管线;若不做校正则批次效应吃掉生物信号——顺序错误是单细胞多研究学习最常见的失败根因。
症状:交叉验证分数虚高而留一研究外推骤降;UMAP 上按研究分岛而非按细胞类型分组;标注器在新研究上准确率掉 30+ 个百分点。
解决:
- 简单方法:严格「先切分后预处理」:按研究/供体切分 → 每折内拟合归一化与 HVG → 折外变换。
- 进阶方法:整合方法(Harmony/scVI)同样只在训练折上拟合,测试研究做
transform;标签词汇先用映射表对齐再训练。- SOTA 方法:按「留一研究」协议做泛化基准(leave-one-study-out),同时汇报批次混合度与生物保真度两类指标,防止单一指标被校正强度操纵。
from sklearn.model_selection import LeaveOneGroupOut logo = LeaveOneGroupOut() for tr, te in logo.split(X, y, groups=adata.obs["accession"]): # 折内:fit scaler/HVG/整合模型 → transform 测试研究 → 评估 ...参考:官方帮助中心(逐研究自治与双矩阵设计);Tarhan et al., 2023(贡献者自治模型)。
§6.6 数据增强(安全与危险清单)
| 增强 | 安全性 | 说明 |
|---|---|---|
| 随机基因掩码(模拟 dropout) | ✅ 安全 | 按小比例置零基因表达,模拟测序丢失,广泛用于单细胞预训练 |
| 计数域高斯/泊松噪声 | ✅ 安全 | 在 counts 层扰动后重归一化,等价于测序重复的近似 |
| Mixup(同类型细胞间插值) | ⚠️ 谨慎 | 仅在同供体同类型内做,跨供体 mixup 会伪造嵌合细胞 |
| 跨研究随机配对替换 batch 标签 | ❌ 危险 | 破坏批次-生物结构对齐,污染校正评估 |
| 在 UMAP/降维坐标上做增强 | ❌ 危险 | 坐标是全局拟合产物(§5.3 标签泄漏),增强只会放大泄漏 |
| 对稀疏矩阵做稠密化增强 | ❌ 危险 | 破坏稀疏性假设且内存爆炸,工程上反模式 |
| 按细胞类型复制过采样少数类 | ⚠️ 谨慎 | 仅在训练折内做;跨折过采样会泄漏类先验 |
| 随机供体级 dropout | ⚠️ 谨慎 | 可提升供体鲁棒性,但须与供体级划分协同设计 |
§6.7 模型推荐
| 任务 | 推荐模型/工具 | 语言生态 | 起步理由 |
|---|---|---|---|
| 读取与预处理 | Scanpy / Seurat | Python / R | 官方 Demo 即 Scanpy 教程数据,read_10x_mtx 直读 SCP 三件套 |
| 细胞类型注释 | CellTypist、scArches 迁移 | Python | 支持「预训练→新研究外推」的注释工作流 |
| 跨研究整合 | Harmony、scVI/scANVI | Python | 直接以研究为批次键;scVI 以 counts 为似然(配坑点 5) |
| R 语言工作流 | Seurat | R | 社区大量 SCP 数据教程基于 Seurat;与 Scanpy 互转经 h5Seurat/h5ad |
| 批次校正评测 | scIB 指标族 | Python/R | 同时量化批次混合与生物保真(坑点 8 的 SOTA 协议) |
| 元数据检索 Agent | REST API + requests | 任意 | /search 免认证,天然适合 RAG 式数据发现 |
§6.8 硬件需求
| 规模 | 配置建议 | 说明 |
|---|---|---|
| 单研究(≤5 万细胞) | 8-16 GB 内存 CPU 笔记本 | Scanpy 全流程即可;稀疏矩阵是关键 |
| 单研究(10 万-100 万细胞) | 64-128 GB 内存工作站 | 建议用 backed 模式或分块;避免稠密化 |
| 跨研究整合(百万级细胞) | 128 GB+ 内存 + 可选 1× GPU | scVI 类模型 GPU 可显著提速,但 CPU 可跑 |
| 全库元数据检索 | 无特殊要求 | 纯 API 调用,MB 级内存 |
§6.9 评估指标与代码
# 注释任务指标:宏 F1(类不平衡主指标)+ per-class F1(稀有类体检)
from sklearn.metrics import f1_score, classification_report, adjusted_rand_score
macro_f1 = f1_score(y_true, y_pred, average="macro")
print(classification_report(y_true, y_pred)) # 逐类 F1:检查稀有亚型
# 整合任务指标:生物学保真(ARI/NMI vs 真实标签)+ 批次混合(按研究分组的 silhouette)
ari = adjusted_rand_score(labels_true, labels_clustered)
# 泛化协议:留一研究外推(§6.5 坑点 8 的 SOTA 协议)
from sklearn.model_selection import LeaveOneGroupOut
scores = [f1_score(y[te], pipe.fit(X[tr], y[tr]).predict(X[te]), average="macro")
for tr, te in LeaveOneGroupOut().split(X, y, groups=study_ids)]
# 汇报规范:整体分数 + 按建库方案分层的子集分数 + 最差外推研究的分数。
# 只报整体 macro-F1 会掩盖「对某类建库方案系统性失效」的风险。
print(f"LOSO macro-F1: mean={np.mean(scores):.3f}, min={np.min(scores):.3f}")
§6.10 MLOps 笔记
- 数据版本即 accession 清单:SCP 无冻结版本,可复现性依赖「accession 列表 + 下载日期 + 校验和」三元组,建议写入 DVC/实验跟踪系统。
- 许可逐研究登记:每个 accession 对应一项贡献者授权,商业化或再分发前逐项核对研究页许可区块(平台代码 BSD-3-Clause 不等于数据可自由商用)。
- 研究级血缘记录:记录每个 accession 的建库方案(
library_preparation_protocol)与is_raw_counts状态,作为模型卡片的数据溯源附录。 - 下载任务幂等化:限额与登录态意味着批量下载必然分批重试——用「已下载清单 + 校验和」实现断点续跑。
- 监控分面漂移:平台滚动更新意味着「今天检索到的研究集」会随时间变化;定期快照
/search/facets结果,监控疾病/器官覆盖的漂移,避免训练池静默扩容。 - API 变更防护:API v1 端点偶有字段增删,客户端对响应做「宽容解析」(缺失字段置 None 并告警),关键实验依赖的字段(cell_count、is_raw_counts)纳入每日冒烟测试。
§7 质量评估与局限性
§7.1 已知偏倚清单
| 偏倚类型 | 描述 | 严重程度 | 缓解措施 |
|---|---|---|---|
| 贡献自选择偏倚 | 自助上传模式使数据集中于科研活跃的机构/物种/组织,覆盖面≠疾病负担分布 | 高 | 分面统计先行,对目标组织做覆盖缺口分析后再立题 |
| 建库平台偏倚 | 10x 与 Smart-seq2 等方案检出率、dropout 特性不同 | 高 | 以 library_preparation_protocol 为批次协变量建模 |
| 标注词汇偏倚 | 标签由贡献者自行定义,无平台级本体强制 | 高 | 标签映射表 + 留一研究外推验证(坑点 8) |
| 供体/人口学偏倚 | 供体 ancestry、年龄等记录不均衡且逐研究不一 | 中 | 建模前做人口学分布审计;跨平台(CELLxGENE)补充验证 |
| 批次与供体混淆 | 多数研究一人一库,供体效应与研究效应部分共线 | 中 | 供体级划分 + 混合效应视角解释 |
| 幸存者/发布偏倚 | 阴性结果与失败队列较少作为独立研究上传 | 低-中 | 结论引用以同行评审论文为准 |
§7.2 标注质量评估
平台不统一重标注,标注质量取决于贡献团队:官方通过强制结构化元数据(NAME 唯一、分面字段)保证「检索层」质量,而「细胞类型标签」的生物学正确性以各研究论文的验证为准。工程上可用的质量信号:研究是否同时提供 raw 矩阵(体现数据规范度)、元数据分面填写完整度、论文是否报告标注验证。对高 stakes 任务,建议抽样 50-100 细胞人工核验 marker 基因表达一致性后再信任该研究标签。
另一个实用信号是「标注粒度的一致性」:同一研究内标签体系应自洽(如「T cells」「CD8 T cells」「B cells」并存时须明确层级关系)。跨研究训练时按两步走——先在研究内把标签规范为单层平铺类目,再做研究间映射;跳过第一步直接做跨研究映射是标签噪声的主要来源。
§7.3 泛化性评估
| 部署场景 | 失效风险 | 证据与理由 |
|---|---|---|
| 同组织同平台的注释迁移 | 低-中 | 标注词汇与建库方案相近;仍需 HVG 对齐与批次校正 |
| 跨建库方案迁移(10x↔Smart-seq2) | 高 | 检出深度与 dropout 特性系统性不同(坑点 4/6) |
| 跨物种迁移 | 高 | 同源基因映射有限,物种信号常压制生物信号(坑点 6) |
| 单研究内小样本分类 | 中 | 簇级标签折叠了簇内异质性,易过拟合 |
| 稀有细胞类型识别 | 高 | 跨研究词汇不一致使稀有类训练信号被稀释(§7.7 第 7 项) |
| 临床直接应用 | 极高 | 公开研究数据为科研用途,未经临床验证流程 |
§7.4 伦理评估
平台公开数据为脱敏的细胞级聚合谱,不含直接标识符;人类供体的知情同意与伦理审批由各贡献研究所在机构负责并逐研究声明。下载需注册账户形成使用留痕,部分敏感研究仅登录可见——贡献者对共享范围保持完全控制是平台的核心伦理设计(Tarhan et al., 2023)。再分析者仍应遵守逐研究许可与学术惯例(引用来源研究)。
§7.5 公平性评估
供体 ancestry 在平台上分布不均衡(集中于科研投入高的地区/队列),直接迁移可能放大 ancestry 偏倚;疾病覆盖偏向资金充裕的研究领域。建议:训练前审计 ancestry/性别/年龄分布,在模型卡片中披露训练集构成;对临床相关下游任务,按人口学分层的性能报告是最低要求。
§7.6 数据漂移评估
两类漂移需纳入监控:平台漂移——滚动更新使研究集合、分面值持续增长(2025 年 820/884 项 → 2026-09 995 项);技术漂移——建库方案迭代(10x v1→v3 等)使新旧研究的技术特性不同。工程对策:accession 清单版本化(§6.10)+ 定期快照分面 + 按建库方案分层监控模型表现。
§7.7 DAIMS 24 项数据质量检查
| # | 检查项 | 状态 | 说明 |
|---|---|---|---|
| 1 | 宽格式 | ✅ | 表达矩阵天然为基因×细胞宽表,dense/sparse 双形态 |
| 2 | 唯一标识 | ✅ | NAME 全局对齐主键强制唯一;研究层 accession 唯一 |
| 3 | 特殊字符 | ⚠️ | 官方要求 NAME 用字母数字+下划线,但逐研究执行度不均 |
| 4 | 重复行 | ✅ | 官方强制 NAME 唯一,重复 NAME 会被 ingest 拒绝 |
| 5 | 缺失编码 | ⚠️ | 注解空值=未填,无平台级统一缺失码 |
| 6 | 标签标识 | ✅ | metadata 标签列明确,标签列与 NAME 对齐 |
| 7 | 罕见类分组 | ⚠️ | 稀有亚型跨研究词汇不一,合并后样本仍稀疏 |
| 8 | 偏倚评估 | ✅ | 平台偏倚结构清晰可述(§7.1),API 分面可量化 |
| 9 | 数据字典 | ✅ | 官方帮助中心对三类文件格式定义完备 |
| 10 | 信息性缺失解释 | ⚠️ | 分面空白=未声明,其语义需使用者自行推断(§4.5) |
| 11 | 设备记录 | ⚠️ | 记录建库方案(library_preparation_protocol)但不记录仪器级信息 |
| 12 | 共线性 | ⚠️ | 基因间高相关普遍,需 HVG/PCA 缓解(常规单细胞处理) |
| 13 | 编码映射 | ⚠️ | 标签无平台级本体映射,跨研究对齐是使用者责任 |
| 14 | 时间戳处理 | ✅ | 文件与研究含 created_at/updated_at;数据为快照型 |
| 15 | 划分建议 | ✅ | 本文 §5 给出供体级/留一研究协议(平台无官方划分) |
| 16 | 泄漏讨论 | ✅ | 供体泄漏与预处理泄漏均有明确讨论(§5.3、坑点 8) |
| 17 | 标签分布 | ⚠️ | 平台不提供跨研究标签统计,需自行汇总(§4.2) |
| 18 | 测量偏倚 | ⚠️ | 建库方案间检出/ dropout 系统性差异显著 |
| 19 | 外部验证建议 | ✅ | §5.5 给出跨平台(CELLxGENE)验证路径 |
| 20 | 版本记录 | ⚠️ | 平台滚动更新无冻结版本;可复现依赖 accession 清单自管 |
| 21 | 预处理脚本 | ⚠️ | 官方提供格式校验脚本与 Demo,无统一分析管线(社区 Scanpy/Seurat 生态成熟) |
| 22 | 合规要求 | ✅ | 逐研究许可 + 注册下载 + 部分研究登录可见,规则明确 |
| 23 | 多模态对齐 | ✅ | NAME 机制把 metadata/cluster/矩阵/空间坐标严格对齐 |
| 24 | 去标识化 | ✅ | 公开数据为脱敏聚合谱,无直接标识符;下载留痕可控 |
DAIMS 评分:18.5 / 24(✅ 13 项 + ⚠️ 11 项 × 0.5 + ❌ 0 项)
评分解读:这是典型的「平台型资源」得分曲线——凡是平台机制能保证的项(标识、对齐、合规、去标识化)几乎全绿,凡是依赖 995+ 个贡献者自治一致性的项(词汇、单位、版本、预处理)全为 ⚠️。短板不是数据脏,而是一致性由分散的作者团队而非中央管线保证。这决定了正确用法:把 SCP 当「多源弱一致标注池」而非「统一基准数据集」。
对你意味着什么:(1)任何跨研究训练,先把「标签映射表 + 单位审计 + 建库方案登记」三件事做完(约一天工作量),⚠️ 项可手动提升到近 ✅ 水平;(2)可复现性要自建——accession 清单 + 下载日期 + 校验和入版本库;(3)无需等待平台级修复:⚠️ 项大多有成熟的社区工程解法(Scanpy 标准化、Harmony/scVI 校验),本文 §6 已给出可运行实现。
§7.8 外部验证矩阵
| 外部数据集/场景 | 来源机构 | 评估任务 | 性能指标 | 相对内部变化 | 关键发现 |
|---|---|---|---|---|---|
| HCA DCP Release(2020-03) | Human Cell Atlas 联盟 | 标准化产出与 SCP 互通 | — | — | Cumulus 管线为 SCP 定向输出 .scp.matrix.mtx/.scp.metadata.txt 等文件,证明跨平台格式互换可行 |
| CELLxGENE Discover | CZI | 同组织补充训练/验证 | — | — | 两平台研究集互补(SCP 逐研究自治 vs CELLxGENE 集中清洗),跨平台验证是推荐的泛化协议 |
| SCP 规模纵向快照 | 学术界 | 平台增长度量 | 研究数/细胞数 | 820 项(2025-04)→ 995 项(2026-09) | 平台规模年增约百项研究,任何一次性统计都会过期 |
说明:SCP 为平台型资源,社区尚无「以 SCP 全库为统一基准」的同行评审排行榜;上表仅录有据可查的跨平台互操作与规模证据,性能指标列待统一基准出现后补充。
§8 基准性能与生态
§8.1 排行榜与方法学里程碑
SCP 不设官方基准任务与排行榜(平台性质决定,见 §7.7 解读)。下表改为记录「以公共单细胞数据为对象的方法学里程碑」,供选型参考;表中各方法在不同研究集合/任务上评测,数值不可直接横向比较:
| 排名参考 | 方法/工具 | 任务 | 年份 | 关键技术 | 完整引用 | 代码 |
|---|---|---|---|---|---|---|
| 1 | Tang et al.(scRNA-seq 开山) | 单细胞转录组测定 | 2009 | 单细胞 mRNA-seq | Tang F et al., 2009, Nature Methods. DOI 10.1038/nmeth.1315 | — |
| 2 | Scanpy | 预处理/分析框架 | 2017 | 稀疏图分析 | Wolf FA et al., 2018, Genome Biology. DOI 10.1186/s13059-017-1382-0 | github.com/theislab/scanpy |
| 3 | Harmony | 批次整合 | 2019 | 迭代聚类对齐 | Korsunsky I et al., 2019, Nature Methods. DOI 10.1038/s41592-019-0619-0 | github.com/immunogenomics/harmony |
| 4 | scVI/scIB 评测体系 | 整合基准 | 2022 | 深度生成+系统基准 | Luecken MD et al., 2022, Nature Methods. DOI 10.1038/s41592-021-01336-8 | github.com/theislab/scib |
| 5 | CELLxGENE Discover | 数据平台 | 2025 | 集中策展+聚合查询 | CZ Cell Science Program et al., 2025, Nucleic Acids Research. DOI 10.1093/nar/gkae1043 | github.com/chanzuckerberg/cellxgene |
注:Tang/Luecken/Korsunsky/CZI 的 DOI 为对应论文的通行标识,引用前请以 DOI 解析结果为准;wolf 2018 与 Korsunsky 2019 的年份/卷期为通行记载。
§8.2 SOTA 总结与选型建议
在 SCP 场景下不存在单一 SOTA 模型,选型应按任务链条:读取与预处理选 Scanpy(官方 Demo 同源);注释迁移选「CellTypist 预训练 + 自有数据微调」;跨研究整合选 scVI 族(以 counts 为似然,天然规避坑点 4/5);整合质量评测选 scIB 指标族。若目标只是数据发现而非建模,REST API + 分面检索即是最优「模型」。
§8.3 评测协议建议
自行建立基准时遵循四条:(1)研究集合固定为显式 accession 清单并随论文发布;(2)切分采用留一研究外推(leave-one-study-out),报告按建库方案分层的子集成绩;(3)指标同时报宏 F1(注释)与 scIB 双轴(整合);(4)与「平台外」CELLxGENE 同组织数据做一次交叉验证作为泛化上界检查。
评测透明度还应包含「数据获取审计块」:记录检索 API 的请求参数、返回研究数、下载日期与每个研究的 updated_at,使他人能用同一请求复现你的数据池。平台滚动更新(§7.6)意味着不记录这些细节的基准结果在数月后就不可复现。
§8.4 相关数据集对照表
| 数据集/平台 | 运营方 | 规模(检索时点) | 模态 | 与 SCP 的关系 |
|---|---|---|---|---|
| CELLxGENE Discover | CZI | 约 1.238 亿细胞 / 1,892 数据集(2025) | scRNA-seq 多模态 | 互补索引;集中清洗可作外部验证源 |
| Human Cell Atlas DCP | HCA 联盟 | 约 6,320 万细胞 / 515 项目(2025) | scRNA-seq、空间 | 部分 release 经 SCP 出口发布 |
| SynEcoSys | 医疗 AI 企业 | 约 4,600 万细胞 / 731 数据集(2025) | scRNA-seq | 临床向补充源 |
| Single Cell Expression Atlas | EBI | 数百研究(统一重处理) | scRNA-seq | 统一管线版本,可比性参照 |
| GTEx Portal | NIH | 数十供体多组织 | bulk RNA-seq 等 | bulk 对照参考 |
| HuBMAP | NIH | 多组织单细胞/空间图谱 | 多组学 | 空间多组学互补源 |
| gEAR / NeMO Analytics | 神经科学联盟 | 数百数据集 | scRNA-seq、bulk | 神经科学垂直平台,SCP 论文列为同类 |
§8.5 关键论文 Top 5
- Tarhan L, Bistline J, Chang J, Galloway B, Hanna E, Weitz E., 2023, bioRxiv. DOI 10.1101/2023.07.13.548886 — SCP 平台方法学论文:生命周期模型、可视化体系与定制性/可发现性/可复用性权衡的第一手阐述。
- CZ Cell Science Program et al., 2025, Nucleic Acids Research 53(D1):D886-900. DOI 10.1093/nar/gkae1043 — 竞品 CELLxGENE Discover 的平台论文,规模对比与跨平台定位的权威来源。
- Tang F et al., 2009, Nature Methods. DOI 10.1038/nmeth.1315 — 单细胞转录组测序的开山之作,SCP 论文用以标记领域起点。
- Luecken MD et al., 2022, Nature Methods. DOI 10.1038/s41592-021-01336-8 — scIB 整合基准体系,跨研究整合评测的方法学标准(本文 §8.3 协议依据)。
- Svensson V et al., 2020, Database. DOI 10.1093/database/baaa073 — 单细胞数据库趋势的策展研究,理解 SCP 在数据库生态中位置的行业视角。
§8.6 社区活跃度
GitHub 仓库 broadinstitute/single_cell_portal(BSD-3-Clause)约 50 stars、25 forks、2 个开放 issue,wiki 提供教程与文件定义文档;PyPI 包 2020-11 发布 0.2.2 后保持稳定(工具成熟而非废弃——门户主体在官网迭代)。支持渠道为官方帮助中心(Zendesk)与支持邮箱。平台本体活跃度高:截至 2026-09 仍在滚动收录新研究(995 项)并维护 API v1。第三方生态(Singleron、Biomage、ToolUniverse 等教程与工具封装)持续产出,说明外部采用度健康。
§8.7 生态快照表
| 资源 | 类型 | 链接 | Star/规模 截至 2026-09 | 推荐理由 |
|---|---|---|---|---|
| 官方门户 | 数据平台 | https://singlecell.broadinstitute.org/single_cell | 995+ 研究 | 一切入口的起点 |
| REST API v1 | 接口 | https://singlecell.broadinstitute.org/single_cell/api/v1 | 8 族端点 | 免认证元数据检索,AI Agent 首选 |
| GitHub 仓库 | 代码 | https://github.com/broadinstitute/single_cell_portal | 50 stars / BSD-3-Clause | 格式校验脚本与 wiki 教程 |
| PyPI 包 | 工具 | https://pypi.org/project/single-cell-portal | v0.2.2(2020-11) | Python 3 上传/校验便捷脚本 |
| 官方帮助中心 | 文档 | https://singlecell.zendesk.com | 核心文章 10+ 篇 | 数据格式权威定义(NAME 规则/矩阵规范) |
| 方法论文 | 论文 | DOI 10.1101/2023.07.13.548886 | PMID 37502904 | 平台设计第一手阐述 |
| Scanpy 生态 | 分析库 | Scanpy(社区) | 官方 Demo 采用 | read_10x_mtx 直读 SCP 数据 |
§9 相关资源与引用
§9.1 官方资源导航
| 资源 | 地址 | 说明 |
|---|---|---|
| 门户首页 | https://singlecell.broadinstitute.org/single_cell | 检索、浏览、下载总入口 |
| REST API 文档 | https://singlecell.broadinstitute.org/single_cell/api/v1 | 全端点交互式文档(含在线试用) |
| GitHub 仓库与 Wiki | https://github.com/broadinstitute/single_cell_portal | 教程、文件定义、便捷脚本 |
| 官方帮助中心 | https://singlecell.zendesk.com | 格式规范、NAME 规则、FAQ |
| 支持邮箱 | scp-support@broadinstitute.zendesk.com | 官方技术支持 |
| 方法论文 | https://pubmed.ncbi.nlm.nih.gov/37502904 | PMID 37502904 / PMCID PMC10370058 |
§9.2 BibTeX 引用块
@article{tarhan2023singlecellportal,
title = {Single Cell Portal: an interactive home for single-cell genomics data},
author = {Tarhan, Leyla and Bistline, Jon and Chang, Jean and Galloway, Bryan and Hanna, Emily and Weitz, Eric},
journal = {bioRxiv},
year = {2023},
doi = {10.1101/2023.07.13.548886},
note = {PMID 37502904, PMCID PMC10370058}
}
@article{czcellscienceprogram2025cellxgene,
title = {CZ CELLxGENE Discover: a single-cell data platform for scalable exploration, analysis and modeling of aggregated data},
author = {{CZ CELLxGENE Discover Cell Science Program} and Abdulla, S. and Aevermann, B. and Assis, P. and Badajoz, S. and Bell, S. M. and others},
journal = {Nucleic Acids Research},
volume = {53},
number = {D1},
pages = {D886--D900},
year = {2025},
doi = {10.1093/nar/gkae1043}
}
@article{tang2009mrnaseq,
title = {mRNA-Seq whole-transcriptome analysis of a single cell},
author = {Tang, Fuchou and Barbacioru, Catalin and Wang, Yang and Nordman, Ellen and Lee, Clarence and Xu, Nanlan and others},
journal = {Nature Methods},
volume = {6},
pages = {377--382},
year = {2009},
doi = {10.1038/nmeth.1315}
}
@article{luecken2022benchmarking,
title = {Benchmarking atlas-level data integration in single-cell genomics},
author = {Luecken, Malte D. and B{\"u}ttner, Maren and Chaichoompu, Kridsadakorn and Danese, Astrid and Interlandi, Marta and M{\"u}ller, Michaela F. and others},
journal = {Nature Methods},
volume = {19},
pages = {41--50},
year = {2022},
doi = {10.1038/s41592-021-01336-8}
}
@article{svensson2020curated,
title = {A curated database reveals trends in single-cell transcriptomics},
author = {Svensson, Valentine and da Veiga Beltrame, Eduardo and Pachter, Lior},
journal = {Database},
year = {2020},
doi = {10.1093/database/baaa073}
}
§9.3 引用指南
引用本数据集时请优先引用来源研究的原始论文(各研究页 Citation 区块),再引用 SCP 平台论文(Tarhan et al., 2023)与本项目页面。使用 REST API 做元数据荟萃分析时,建议在方法学部分注明检索日期与分面参数(API 返回随平台滚动更新而变化)。商业或再分发用途请逐研究核对贡献者授权条款。
引用格式建议三层并列:(1)数据层面引用各来源研究原文;(2)平台层面引用 SCP 论文(本页 §9.2 首条 BibTeX);(3)方法层面引用你实际使用的分析工具(Scanpy/Seurat/scVI 等)对应方法论文。若你的结论依赖平台的规模统计(如研究数),请在正文中带「截至 YYYY-MM」时点标注——平台的滚动更新会让任何静态数字过期。
§10 AI 使用声明卡
§10.1 AI 模型列表
本条目由千方病案医数集生产流水线制作,写作阶段使用 AI 辅助模型(CodeBuddy Code / fast-model)完成资料整理、结构化撰写与代码示例生成;事实核查与医学/工程审核由人工完成。
§10.2 AI 参与范围
AI 参与:§1-§9 初稿撰写、信息抽取与归纳、代码示例生成、格式规范化。AI 不参与:事实终审(全部数字须可溯源至 §10.3 来源清单)、医学与工程结论的最终判断、三段免责声明与审核信息的确认。
§10.3 输入来源列表
- Single Cell Portal 官方门户首页与检索页(singlecell.broadinstitute.org/single_cell,2026-09-13 抓取,“995 total studies found”)
- Tarhan L et al. Single Cell Portal: an interactive home for single-cell genomics data. bioRxiv 2023. DOI 10.1101/2023.07.13.548886(PMCID PMC10370058)
- PubMed 收录页 37502904(SCP 论文书目信息)
- bioRxiv 2025.04.10.648034(SCP 规模综述记载:820 项研究 / 约 5,700 万细胞,2025-04 时点)
- Large cell atlases 综述(Genome Biology / PubMed 41116172,2025):SCP 与 CELLxGENE、HuBMAP、DISCO 生态定位
- CZ CELLxGENE Discover. Nucleic Acids Research 2025;53(D1):D886-900(竞品规模:约 1.238 亿细胞 / 1,892 数据集)
- SCP 官方帮助中心:Expression matrix files(singlecell.zendesk.com/hc/en-us/articles/360060610292)
- SCP 官方帮助中心:Key study files depend on unique NAMEs to enable visualizations(articles/4414542290587)
- GitHub broadinstitute/single_cell_portal 仓库(BSD-3-Clause,2016-07-25 创建,50 stars,wiki 教程)
- PyPI single-cell-portal 包页(v0.2.2,2020-11-02,BSD,Python>=3.7)
- ToolUniverse single_cell_portal_tool 源码(Harvard Zitnik Lab):/studies 需认证、description 含摘要全文、1000+ studies/80M+ cells 记载
- Singleron《Single Cell Portal 指南》(884 项研究 / 约 6,250 万细胞 / 18 物种,2025 时点)
- Biomage《Leveraging Public scRNA-seq Data》指南(下载需注册、0.5 TB/日限额、旧时点 500+ 研究/29,614,655 细胞)
- DataBiosphere data-portal 仓库 methods 文档(HCA 2020-03 release 的
.scp.*文件族) - SCP REST API v1 文档(端点清单、StudyFile 模型、BSD-3-Clause 标注)
§10.4 人工校验记录
| 内容模块 | 审核者 | 审核方式 | 审核状态 |
|---|---|---|---|
| §1 概览与规模数字 | 千方病案医学编辑部 | 逐数字对照 §10.3 来源 | ✅ 已通过/已验证 |
| §2 医学背景与术语映射 | 千方病案医学编辑部(医学方向) | ICD-11/SNOMED 码交叉核对 | ✅ 已通过/已验证 |
| §3-§4 规格与数据结构 | 千方病案医学编辑部(数据工程) | 对照官方帮助中心与 API 文档 | ✅ 已通过/已验证 |
| §5 划分与泄漏分析 | 千方病案医学编辑部(数据工程) | 方法学评审 | ✅ 已通过/已验证 |
| §6 AI 就绪指南与 8 坑点 | 千方病案医学编辑部(数据工程) | 代码逻辑走查 + 坑点溯源核对 | ✅ 已通过/已验证 |
| §7-§8 质量评估与生态 | 千方病案医学编辑部 | DAIMS 逐项复核 + 引用核对 | ✅ 已通过/已验证 |
| §9-§10 引用与声明 | 千方病案医学编辑部 | BibTeX 与来源清单一致性核对 | ✅ 已通过/已验证 |
§10.5 AI 生成章节标注
§1.0/§1.1/§1.2、§2.2/§2.5、§3.1/§3.4/§3.7、§4.2/§4.3、§5.2-§5.5、§6 全部代码示例、§7.1-§7.6、§8.2/§8.3 为 AI 辅助生成初稿后经人工审核修订;§0、§10.4、三段免责声明为人工定稿模板;全部表格数字均经人工对照 §10.3 来源核验。
§10.6 最后人工审核日期
2026-09-05(与 §0 审核声明一致)
页面状态:published(全部内容已完成审核并发布)
相关数据集导航
以下为站内 AI-Ready 数据集百科中与本词条共享多个主题标签的相关数据集,按相关度降序排列:
- tabula-sapiens — 共享标签:基因组学与多组学 / 单细胞基因组学 / 转录组
- hcl — 共享标签:基因组学与多组学 / 单细胞基因组学 / 转录组
- kpmp — 共享标签:基因组学与多组学 / 单细胞基因组学 / 转录组
- metabolights — 共享标签:基因组学与多组学 / 转录组
- metabolomics-workbench — 共享标签:基因组学与多组学 / 转录组
- immport — 共享标签:基因组学与多组学 / 转录组
- geo — 共享标签:基因组学与多组学 / 转录组
- fantom5 — 共享标签:基因组学与多组学 / 转录组
- tcga — 共享标签:基因组学与多组学 / 转录组
- cellxgene — 共享标签:基因组学与多组学 / 转录组
导航说明:本章节由全站统一标签体系自动计算生成(标签重合度算法),双向可达;点击链接可跳转至对应数据集词条。

