Nestorowa et al. 这篇 HSPC 分化单细胞数据需要重点呈现一个造血发育项目中很常见的痛点:FACS 分选得到的 LT-HSC、HSPC、progenitor 富集群体,并不等于转录组上完全离散的命运标签。复现这类数据时,最需要讲清的是 marker 是否支撑、谱系倾向是否连续、哪些细胞只是处在过渡区,以及公开 counts 矩阵能把结论支持到什么层级。
方法修订(2026-07-19): Stem/HSC、Myeloid、Ery/Meg、Lymphoid/Flt3 和 Cell-cycle 均保留为连续 signature score。公开数据没有外部独立身份标签,也没有经过校准的绝对阈值、top-two margin 和拒绝规则,因此 1,652 个 QC 细胞全部标为
unassigned,不再按最高分生成 lineage call,也不再展示 FACS gate 内的离散谱系比例。图 6-7 的监督分数轴只用于可视化表达梯度;同一 marker 家族沿轴变化属于内部一致性,不能证明分化方向。
为什么选这篇文献?
造血发育和干祖细胞项目很容易被写成“某群是 stem,某群是 myeloid,某群是 erythroid/megakaryocytic”。这种写法看似清楚,但在单细胞数据里经常过于硬。做复现或旧项目再分析时,老师通常关心的是:FACS gate 只是富集,还是可以直接当成细胞命运?marker 是单个基因支持,还是一组基因共同支持?某些细胞看起来像 progenitor,是因为真的进入某条谱系,还是只是 cell-cycle、测序深度或表达稀疏造成的局部差异?
Nestorowa et al. 2016 年发表在 Blood 的文章 A single-cell resolution map of mouse hematopoietic stem and progenitor cell differentiation,正好适合作为这个问题的公开复现案例。它不是疾病数据,也也不是大型 atlas;一组围绕小鼠骨髓 HSC/HSPC/progenitor 的经典分化图谱。对类似项目而言,吸引人的点不等于“我们也能跑 UMAP”,关键在于能否把“连续分化”和“谱系倾向”讲得比硬标签更稳。
论文和数据来源
论文、数据和公开矩阵信息如下。这里先把来源和矩阵层级交代清楚。
| 项目 | 内容 |
|---|---|
| 论文 | Nestorowa et al. A single-cell resolution map of mouse hematopoietic stem and progenitor cell differentiation |
| 发表信息 | Blood, 2016 |
| DOI | 10.1182/blood-2016-05-716480 |
| PubMed | 27365425 |
| 公开数据 | GSE81682 |
| 公开矩阵 | GEO HTSeq counts |
公开矩阵进入分析前,先确认数据层级和规模。
| 项目 | 数值 |
|---|---|
| 公开 counts 矩阵细胞列 | 1,920 |
| 本次 QC 后保留细胞 | 1,652 |
| 原始 Ensembl 基因行 | 46,175 |
| 符号聚合并过滤后的基因 | 36,190 |
| 复现结果图 | 10 张 |
复现边界: 本文使用 GEO 公开的 HTSeq counts 矩阵和 series matrix 元数据。它适合做 count-matrix 层面的 QC、log-normalization、HVG/PCA/UMAP、marker/signature score、FACS gate 富集和连续性可视化;它不能替代作者原始流程中的全部 fate model,也不能仅凭这套公开矩阵证明单个细胞的最终命运。
方法和分析流程
本文的处理顺序从数据层级开始:从 GEO 下载 GSE81682_HTSeq_counts.txt.gz 和 GSE81682_series_matrix.txt.gz,核对公开矩阵细胞列、GSM、样本标题和 FACS 富集标签;用 GENCODE mouse vM25 注释把 Ensembl gene id 映射到 gene symbol,并对重复 symbol 求和;按 2.25M-30M total counts 的矩阵深度窗口保留 1,652 个细胞;完成 library-size normalization、log1p、高变基因选择、PCA、UMAP 和无监督状态划分;随后计算 5 组连续 signature。所有细胞维持 unassigned,FACS gate 只作为实验富集信息,无监督 state 只作为表达结构参照。
先看公开矩阵:1920 列不等于直接可解释的 1920 个结果
这套 GEO counts 矩阵一共有 1,920 个细胞列,列名包含 LT-HSC、HSPC 和 Prog 三类前缀。GEO 和原文常被引用的 1,656 个细胞规模,更接近作者筛选后的可用细胞数。公开复现时不应该直接把 1,920 当成最终分析规模,也不应该为了凑数字任意过滤。

图 1. 公开矩阵包含 1,920 个细胞列。本文使用 2.25M-30M total counts 的矩阵深度窗口,保留 1,652 个细胞,数量接近文献/GEO 常见的 1,656 细胞规模。上限不等于为了“丢掉不喜欢的细胞”,用于避免少数极端高深度细胞在低维可视化中造成不成比例的影响。
这个 QC 选择也说明了严肃复现的一个原则:公开矩阵里能看到的细胞数、作者文章里报告的细胞数、我们用于下游结果图的细胞数,三者不一定完全相同。还要看把过滤逻辑写清楚,让读者知道后面的 UMAP、marker 和 signature 是在什么数据层级上得到的。
FACS gate 和转录组结构:富集不等于硬边界
下图把 QC 后的细胞投影到 UMAP,并分别按 FACS 富集标签和无监督表达状态着色。直观上可以看到 LT-HSC、HSPC 和 Prog 不等于完全随机混合,但也不等于三块干净分开的岛。

图 2. UMAP 显示 Prog 细胞在一侧明显富集,LT-HSC/HSPC 在另一侧和中间区域更多,但不同 FACS 标签之间存在过渡和混合。右图的无监督状态说明表达结构可以分层,但这些 state 只能作为表达状态使用,不应直接命名成固定命运。
这正是 Nestorowa 数据的价值所在。FACS gate 是强有力的实验富集信息,但它不等于单细胞转录组的最终解释。一个 HSPC 标签下的细胞可能保留较高 stem signature,也可能已经出现 Flt3、myeloid、erythroid/megakaryocytic 或 cell-cycle 倾向。复现文章如果直接把 gate 写成细胞类型,会错过这篇数据最关键的“连续分化”信息。
lineage signature:用成组 marker 看倾向,而不等于用单基因定命运
为了避免单个 marker 的表达稀疏和检测不稳定影响解释,本文用成组基因构建了五类 signature。Stem/HSC 模块命中 Hlf、Meis1、Procr、Mllt3、Mecom、Hoxa9、Gata2、Fgd5、Ly6a;Myeloid 模块命中 Csf1r、Lyz2、Mpo、Elane、Cebpa、Irf8 等;Ery/Meg 模块命中 Gata1、Klf1、Hba-a1、Hbb-bs、Pf4、Itga2b、Mpl、Vwf 等;Lymphoid/Flt3 模块包含 Il7r、Dntt、Rag1/2、Flt3、Ebf1、Pax5、Bcl11a;Cell cycle 模块包含 Mki67、Top2a、Cdk1、Pcna、Mcm5/6 等。

图 3. 前五幅图展示连续 signature score,第六幅图只显示每个细胞的最大连续分数。最大值没有被转换成身份标签;所有细胞仍为 unassigned。Stem/HSC 高分区域与 LT-HSC/HSPC 富集区相关,Myeloid、Ery/Meg 和 Cell-cycle 信号在其他区域增强。
这一点对类似造血项目需要先确认。读者需要的是“哪些细胞值得进一步深挖”,而不等于一个看似确定的硬标签。signature 的价值是把 marker 证据做成可比较的连续指标:某个细胞或状态更像 Stem/HSC、更偏 Myeloid、出现 Ery/Meg 倾向,还是主要表现为增殖活跃。
FACS 标签内也有分化倾向差异
把 signature score 按 FACS gate 展开,可以看到 gate-level 富集关系:LT-HSC 和 HSPC 更偏 Stem/HSC,Prog 更偏 Myeloid/Ery-Meg/Cell-cycle。但每个 gate 内部都有分散。

图 4. FACS gate 和 signature 倾向方向一致,但不等于一一对应。Prog 群体总体更偏下游谱系和 cell cycle,LT-HSC/HSPC 保留更高 stem signature;同时,每个 gate 内部仍存在明显分布范围。这支持“富集群体 + 连续倾向”的解释方式。
如果这是一个真实课题,后续报告里不能只写“Prog 细胞是髓系祖细胞”。更准确的表达应该是:Prog gate 中富集了一批 myeloid、erythroid/megakaryocytic 和 cycling 倾向更高的细胞;但也有过渡状态和 marker 不够明确的细胞,需要结合更多 marker、样本设计或功能实验来定位。
marker heatmap:把 score 落回具体基因
signature 是汇总指标,必须回到具体 marker。下面把代表性 marker 在无监督状态中的平均表达整理成 heatmap,并按连续性分数排序。

图 5. Hlf、Meis1、Procr、Mllt3 等支持 Stem/HSC 相关区域;Csf1r、Lyz2、Mpo、Elane、Irf8 支持 myeloid 倾向;Gata1、Klf1、Hba-a1/Hbb-bs、Pf4、Itga2b 支持 erythroid/megakaryocytic 倾向;Mki67、Top2a 等提示增殖活跃状态。这个图让“谱系倾向”回到基因证据上。
这类图要按成组证据来读。单个基因或局部高表达只能提供线索,只有 marker panel、signature score、metadata 和组成信息互相支持时,才适合写成细胞身份、状态或谱系倾向。
这一步也能防止文章变成“好看的 UMAP”。如果 heatmap 里没有成组 marker 支持,UMAP 上看起来再像分支,也只能作为形态线索。相反,当多个 marker 模块在不同状态中形成相互支持的趋势时,文章就可以更稳地讨论谱系倾向和过渡区。
监督谱系分数代理:用于排序,不代表轨迹
对于分化数据,最容易过度解释的地方是把 UMAP 分支写成命运树。本文构建了一个监督谱系分数代理:用下游谱系 signature 和 cell-cycle 信息与 Stem/HSC signature 做相对比较,得到 0-1 排序值。这个分数由预设 marker 定义,只用于排序和可视化。

图 6. 监督谱系分数代理在 UMAP 上呈连续分布,中间分箱中 HSPC、LT-HSC 和 Prog 发生混合。右图显示 Prog 的代理分数整体更高,但与 HSPC/LT-HSC 有重叠。该图说明预设 signature 与 FACS 富集关系相容,不证明轨迹方向。
这张图可以回答“预设 signature 与 FACS gate 如何对应”。UMAP 上存在标签混合,代理分箱中的 gate 组成逐步变化,同一 gate 内部也有分布范围。它支持非离散表达结构的描述,不能单独确定根节点、分支或发育方向。
marker 趋势:同一 marker 面板只作内部一致性检查
为了检查监督分数代理是否按定义工作,我们把代表性基因沿代理分箱求平均。由于这些基因与构建轴的 signature 有重叠,图 7 属于内部一致性检查。

图 7. Stem/HSC 相关基因在代理低端更明显,下游谱系和 cell-cycle 相关基因在高端或特定分箱增强。相同 marker 家族参与了代理构建,因此该图只说明计算结果内部一致,不能作为独立 trajectory 验证。
这类图要按成组证据来读。单个基因或局部高表达只能提供线索,只有 marker panel、signature score、metadata 和组成信息互相支持时,才适合写成细胞身份、状态或谱系倾向。
如果继续深挖,应加入未参与构建代理的 held-out marker,或使用明确根节点、稳定性评估和分支检验的 trajectory/pseudotime 模型。当前公开 counts 复现只保留“谱系相关表达梯度”和 FACS 富集边界。
连续 score 关系:保留重叠,不制造离散比例
没有外部独立标签时,把每个细胞强制分给最高 signature 会隐藏不确定性。两个分数接近、所有分数都低或只受细胞周期驱动的细胞,会被硬塞进某个类别。当前分析撤销这一步,只展示连续 score 之间的关系。

图 8. 左侧比较 Stem/HSC 与 Myeloid score,右侧比较 Ery/Meg 与 Lymphoid/Flt3 score,并用 FACS gate 着色。点云存在明显重叠和中间区域,因此不计算“某个 gate 中有多少细胞属于某谱系”。FACS gate 的富集方向仍可见,但它不提供单细胞终点身份。
这张图保留了原始问题:哪些细胞同时带有 stem 与下游程序,哪些细胞只有某一方向较高,哪些区域主要受 cell cycle 或测序深度影响。后续若要给离散身份,需要外部参考映射、作者独立标签或带拒绝规则的分类模型。
这类图很适合放进项目汇报。它能把“某个群体内部到底有什么”讲得比一张 UMAP 更清楚:不只告诉读者分成几群;告诉读者每个富集群体里哪些方向值得继续分支分析。
表达状态层面的组合证据
结尾处看无监督 state 的 FACS 组成和 signature profile。这个图把前面的 gate、state 和 signature 放到同一层级。

图 9. 不同表达状态中 FACS gate 组成不同,signature profile 也不同。某些 state 富集 Stem/HSC,某些 state 富集 Myeloid/Ery-Meg/Cell-cycle 倾向。它支持“状态 + 倾向 + 富集标签”的三层解释,而不能把 state 直接写成固定命运。
组成图必须和采样设计一起读。它能说明当前公开矩阵里哪些群体被观察到、样本或组织标签是否均衡,但不能直接外推成真实组织比例或临床差异。
对旧项目再分析来说,这种三层解释非常有用。原始项目可能只有粗略注释或 FACS 信息,但重新整理后可以把每个状态的 marker、signature、组成和连续位置串起来,为后续“该深挖哪一段”“哪些图可以放汇报”“哪些结论需要验证”提供依据。
复现边界图:哪些能说,哪些不能说
长文结尾处要把证据和边界放在一起看。Nestorowa 这类分化数据很容易被过度包装成“重建了完整命运路线”,但公开 counts 矩阵支持的是表达层面的倾向、富集关系和连续性线索。下面这张图把本文使用的数据层级、保留细胞数和可/不可解释的范围集中列出。

图 10. 本文可以支持 matrix-level QC、lineage-tendency gradients、FACS enrichment boundaries 和 marker-supported signatures;但不能仅凭公开 counts 矩阵给出作者内部 fate model 或单细胞命运验证。把这张边界图放在结论前,是为了避免读者把“表达倾向”误读成“确定命运”。
这张图把观察落到基因证据上。读的时候要看一组 marker 是否同向,而不是只挑某个显眼基因;如果证据只停留在 score 层面,结论也要保留探索性。
这里的重点是限制结论强度。公开矩阵能支持表达结构、marker 和 metadata 层面的复核;更强的机制、空间、功能或临床判断,需要 raw reads、原文模型、空间/病理信息或实验验证继续补证据。
与源论文主线的对照
本次复现与源论文主线一致的地方主要有三点。
第一,公开 HTSeq counts 矩阵仍然保留了 HSPC 分化相关的转录组结构。QC 后的 1,652 个细胞在 UMAP 和无监督 state 中形成清晰层次,FACS gate 与表达结构有对应关系。
第二,LT-HSC、HSPC 和 Prog 是 FACS 富集群体,不承担完全离散的终点身份。Stem/HSC、Myeloid、Ery/Meg、Lymphoid/Flt3 和 Cell-cycle signature 共同显示谱系相关表达差异,1,652 个细胞仍全部保持 unassigned。
第三,marker 层面的证据支持这种解释。Hlf/Meis1/Procr/Mllt3 等 stem marker,Csf1r/Lyz2/Mpo/Elane 等 myeloid marker,Gata1/Klf1/Hba/Hbb/Pf4/Itga2b 等 erythroid/megakaryocytic marker,以及 Mki67/Top2a 等增殖 marker,都能在不同状态中提供方向性证据。
需要保留的边界也很清楚。原文中的 fate model 和更完整的分化路线无法由本文这套公开复现完整重建。公开 counts 矩阵支持 FACS 富集边界、无监督状态和谱系相关表达梯度;某个单细胞的最终命运仍未被这套重分析单独证明。
深度解读:证据链和解释边界
回答范围:经典 HSPC 分化数据能否从公开 counts 矩阵中重新整理出可审查的 FACS 富集、无监督状态和谱系相关表达梯度。答案是可以,但 FACS gate、UMAP state 和最终命运必须分开解释。
raw / processed matrix 边界:GSE81682 公开的是 HTSeq counts 矩阵,适合做矩阵级 QC、表达标准化、marker/signature score 和低维可视化。它不等于从 FASTQ 重新比对的全流程再分析,也不包含所有实验层面的 fate validation。因此文章必须把“表达倾向”写成表达证据,而不等于机制或命运证明。
关键图读法:图 1 说明公开矩阵和 QC 边界;图 2 说明 FACS gate 和表达状态之间既有关联也有混合;图 3-5 用 signature 和 marker 证明不同谱系方向;图 6-7 展示非离散性和 marker 趋势;图 8-9 把群体组成、状态和 signature 合并到可汇报的层面。
不能过度解释的部分:不能把 UMAP 分支直接写成真实发育轨迹,不能把连续 signature 转成未经校准的最终命运,不能把 FACS gate 当成纯净细胞类型,也不能把监督谱系分数代理写成正式 pseudotime。本文展示的是公开矩阵层面的谱系相关表达梯度和富集边界。
继续深入的下一步:可以围绕关键过渡区做更细的 branch-specific marker 检查;可以引入正式 trajectory 方法,比较不同 pseudotime/lineage inference 的稳定性;可以把 cell-cycle 状态从 lineage 倾向中拆出来单独建模;也可以结合作者原始实验设计或额外数据,对特定谱系分支做更严格的验证。
对类似项目有什么启发?
HSPC 分化项目最容易出现两个相反问题:一种是把所有细胞硬分成几类,另一种是只说“连续变化”但拿不出具体证据。更需要保留的复现应该在两者之间建立证据链:先说明数据层级和 QC,再看 FACS 富集和 UMAP,接着用 marker/signature 解释倾向,结尾处用连续分箱和状态组成说明哪些结论能说、哪些只能作为后续方向。
这对公开数据复现和私有旧项目再分析都很实用。如果一个项目已经有 HSC/HSPC/progenitor 注释,但文章写不深,可以重新检查 marker 组合、富集边界、过渡细胞和 cell-cycle 干扰;如果已有 UMAP 但解释松散,可以把每个状态背后的 signature、组成和趋势整理成可复查的结果图。
- 痛点 2:分化连续性需要 UMAP、组成、marker 趋势和 signature 共同支撑。
- 痛点 3:单个 marker 不够稳,成组 marker 和 score 更适合解释谱系倾向。
- 痛点 4:公开 counts 复现能支持表达层面的倾向和边界,但不能替代实验命运验证。
小结
Nestorowa et al. GSE81682 的公开 counts 矩阵能恢复 HSPC 分化图谱中的主要表达结构:LT-HSC/HSPC/Prog 富集关系、Stem/HSC 与下游程序的连续 score、marker 层面的基因证据,以及非离散的表达连续性。当前没有给任何细胞分配新 lineage identity。
对于造血发育类单细胞项目,FACS 富集、表达状态、marker 证据、连续谱系程序和解释边界需要分开呈现。撤销最高分硬分类后,图中少了一组看似直观的比例,却保留了真实的不确定性,也给后续参考映射、轨迹模型和功能验证留下清楚入口。