科学更正(2026-07-19): 早期页面曾用
neuron score - progenitor score构造表达轴,再以同一组分数沿轴变化支持“连续性”;这种代数自证不能独立证明发育轨迹,相关轨迹结论已撤回。本文现将图 8 和全文结论限定为监督式 marker-score 对比;它不是 pseudotime、lineage 或方向性证据。broad class 同时加入绝对分数与 top-two margin 拒判,156,049 个 profile 中 48,308 个归入Other/low marker。
Rosenberg et al. 的 SPLiT-seq 论文是组合索引单细胞转录组技术和发育 CNS 图谱中的经典工作。GSE110823 主数据包含 156,049 个 postnatal day 2 和 day 11 小鼠脑/脊髓 single-nucleus transcriptomes,作者报告超过 100 个细胞类型,并用 pseudotime 分析发育谱系。这样的数据很容易被写成“细胞数很大,所以结论很强”。但复现时更重要的问题是:公开矩阵和 metadata 到底能支持什么层级的发育解释?本文把问题收窄到神经前体/增殖状态到神经元成熟的 marker program 对比,展示 sample_type、cluster、module score、marker dotplot 和 监督式 score contrast,同时明确不能从表达快照直接推出真实命运决定或空间功能机制。
这篇数据的痛点:方法规模大,不等于解释可以越界
SPLiT-seq 的吸引力在于规模。GSE110823 覆盖 P2/P11 mouse brain and spinal cord,156,049 个 profile 对任何发育复现来说都很有诱惑力。但规模越大,越需要先把问题定义清楚。对于发育数据,最容易出现的过度解释是:看到 UMAP 上有不同 cluster,就把它写成一条确定发育路线;看到 P2/P11 分布不同,就把它写成命运转换;看到某些 marker 增减,就把它写成功能机制。
本文选择一个可回答的问题:公开矩阵中的 progenitor/cycling 与 neuronal/immature marker program 能否形成可审计的监督式表达对比?这个问题不复刻原文 pseudotime,也不声称重建 lineage fate。它只检查既定 marker program 在不同 sample type 和作者 cluster 背景中的分布。
论文和数据来源
论文、数据和公开矩阵信息如下。这里先把来源和矩阵层级交代清楚。
| 项目 | 内容 |
|---|---|
| 论文 | Rosenberg et al. Single-cell profiling of the developing mouse brain and spinal cord with split-pool barcoding |
| 发表信息 | Science, 2018 |
| DOI | 10.1126/science.aam8999 |
| PubMed | 29545511 |
| 公开数据 | GSE110823 |
| 公开输入 | GSM3017261_150000_CNS_nuclei.mat.gz |
公开矩阵进入分析前,先确认数据层级和规模。
| 项目 | 数值 |
|---|---|
| single-nucleus profiles | 156,049 |
| genes in DGE matrix | 26,894 |
| main cluster labels | 73 |
| spinal cluster labels | 45 |
| balanced cells for embedding | 26,000 |
复现边界: 本文使用 GEO 公开
.mat.gz中的 DGE、genes、sample_type、cluster_assignment 和 spinal_cluster_assignment。本文不做 FASTQ 级重新比对,也不复刻原文 pseudotime。(neuronal + immature) - (progenitor + cycling)只是预先指定 marker program 的代数对比,不能作为真实 lineage fate、方向、空间位置或功能机制的证据。
方法和分析流程
本文的处理顺序从数据层级开始:下载 GSE110823 GEO metadata、filelist 和主 CNS nuclei .mat.gz,核对论文 DOI、PubMed、样本设计和公开矩阵字段;读取 sparse DGE matrix、genes、sample_type、cluster_assignment 和 spinal_cluster_assignment,整理 P2/P11、brain/spinal cord 与 effective cluster;计算每个 profile 的 total counts、detected genes,抽样构建 PCA/UMAP,用于展示 stage/tissue 与 broad marker class 的结构;用 Sox2/Sox9/Pax6/Nes/Vim/Hes5、Mki67/Top2a、Dcx/Eomes/Neurod6/Tbr1/Satb2、Snap25/Syp/Rbfox3/Tubb3/Map2 等 module score 组织发育证据链;通过 marker dotplot、sample_type 分布和 progenitor-to-neuron 监督式 score contrast 判断监督式表达对比,并写清楚哪些解释必须停留在 follow-up 层面。这组处理先确认公开矩阵能支撑哪些问题,再把结果图解释限制在当前证据内。
数据设计:P2/P11 brain/spinal cord 是主要分组
主矩阵包含四类 sample_type:P2 brain、P11 brain、P2 spinal cord 和 P11 spinal cord。作者还提供主 cluster assignment 和 spinal-specific cluster assignment。本文将 spinal cord 中有 spinal label 的细胞优先使用 spinal cluster,其他细胞使用主 cluster,得到 117 个 effective cluster。

图 1. GSE110823 主矩阵包含 156,049 个 profile,其中 P2 brain 74,862、P11 brain 58,573、P11 spine 15,586、P2 spine 7,028。cluster 标签复杂,并且存在大量 unresolved label,因此后续解释不能只依赖作者标签。
这里的痛点很实际。很多发育数据对象里,cluster 名称非常多,但能进入文章解释的往往不等于全部标签;和问题直接相关的一组状态。本文不会试图逐一解释 117 个 effective cluster;围绕 progenitor/cycling、immature neuron、neuronal maturation 和主要胶质/血管边界组织证据。
矩阵可读性:大规模数据也要先看 count depth
即使数据规模很大,也不能跳过矩阵可读性检查。Split-seq 是组合索引方法,公开矩阵来自 single-nucleus/cell profiling,不同 sample_type 的 total counts 和 detected genes 可能有差异。本文先按 sample_type 查看这两个指标,用来判断 marker score 的解释是否需要保守。

图 2. P2/P11 brain/spinal cord 的 count depth 和 detected genes 有分布差异。这个图不用于判定某个样本“好坏”;提醒后续 marker 解释要考虑表达稀疏和检测不稳定。
这张图回答的是来源和比例问题。它适合用来发现样本不平衡、分组偏移或需要子集分析的地方;更强的生物学解释还要结合原文设计和额外证据。
组成图必须和采样设计一起读。它能说明当前公开矩阵里哪些群体被观察到、样本或组织标签是否均衡,但不能直接外推成真实组织比例或临床差异。
抽样 embedding:阶段/组织结构与细胞状态结构要分开读
为了让全局结构可视化,本文从四类 sample_type 中平衡抽样 26,000 个 profile,基于高变基因构建 UMAP。左图按 sample_type 着色,右图按 marker module 推断 broad class。

图 3. stage/tissue 结构和 broad class 结构是两层信息。P2/P11 与 brain/spinal cord 的分布可见,但不能直接等同于细胞命运;broad class 需要 marker module 支撑。
低维结构只回答表达空间是否可读。颜色或区域分开说明标签、阶段或状态和表达矩阵存在对应关系;它还不能单独证明谱系方向、空间位置、机制强弱或最终命运。
这张图的意义不等于“UMAP 很复杂”;说明后续必须把问题拆开。先看样本结构,再看细胞状态,再看发育 marker program 对比。否则很容易把 P2/P11 的采样差异、脑/脊髓差异和的细胞成熟过程混在一起。
broad class 构成:可提示方向,不能单独证明 fate
按 sample_type 统计 broad class 构成,可以看到 P2/P11 和 brain/spinal cord 中不同状态的相对分布。但需要明确:这个构成来自 public processed matrix 和 marker module assignment,不等于 lineage tracing,也不等于命运转换证明。

图 4. sample_type 层面的 broad class 构成和作者标签解析显示,数据中有大量 unresolved/low-label 细胞。本文把这些作为边界,而不等于强行补成精细 cell type。
这也是本文和普通“教学式复现”的区别。负责任的复现不能把每个细胞都命名得很漂亮;承认哪些标签证据不足。本文中 Other/low marker 有 36,288 个,Unresolved/low label 有 55,831 个;这些数字提醒我们,不能为了叙事完整而强行做过细解释。
module score:发育证据要看一组 marker 的方向
神经发育表达对比不能只靠一个 marker。本文把 marker 分成 progenitor/radial glia、cycling、immature neuron、neuronal maturation、excitatory、inhibitory、oligodendrocyte、astrocyte 等模块,并叠加到 embedding 上。

图 5. Progenitor/radial glia、cycling、immature neuron 和 neuronal maturation module 在 embedding 中呈现不同区域和梯度。这个图支持发育状态表达对比线索,但仍属于表达层面的证据。
这里可以看到一个实用原则:发育数据的结果图解释应当从 marker module 出发,而不等于先写一个很确定的轨迹故事。Sox2/Pax6/Hes5、Mki67/Top2a、Dcx/Eomes/Neurod6、Snap25/Rbfox3/Map2 等 marker 的组合方向,比单个基因更适合说明“从前体/增殖到神经元成熟”的表达变化。
P2/P11 分布:阶段结构是线索,不等于单独结论
随后把几个发育相关 module score 按 sample_type 展示。这个图回答的是:P2/P11 brain/spinal cord 中,progenitor/cycling、immature neuron 和 neuronal maturation 相关信号如何分布。

图 6. P2/P11 与 brain/spinal cord 的 module score 分布提供阶段线索。它支持“发育状态差异值得进一步分析”,但不能单独证明每个细胞的真实发育方向。
组成图必须和采样设计一起读。它能说明当前公开矩阵里哪些群体被观察到、样本或组织标签是否均衡,但不能直接外推成真实组织比例或临床差异。
这类结果在实际项目中很有用。比如一个研究者手里有 P2/P11 或不同发育阶段数据,他需要的不等于一堆 cluster 名称;知道哪些 marker program 随阶段变化、哪些变化可能受组织来源影响、哪些结论需要更多验证。
marker dotplot:命名必须被证据约束
为了审计 broad class 命名,本文做了 marker dotplot。Pax6/Hes5 支持 progenitor/radial glia,Mki67/Top2a 支持 cycling,Dcx/Eomes 支持 immature neuron,Snap25/Rbfox3 支持 neuronal maturation,Slc17a6/Slc17a7 和 Gad1/Gad2 分别支持 excitatory/inhibitory 线索,Mbp/Pdgfra/Aqp4/C1qa/Pecam1 支持胶质和血管边界。

图 7. marker dotplot 显示发育、神经元、胶质和血管相关 marker 的组合证据。检测不稳定时,单个 marker 不应被用来过度命名,必须看 marker panel 的整体方向。
marker 和 score 要成组解释。单个基因高表达只能提供线索;只有 dotplot、heatmap、signature、metadata 和组成结果互相支持,才适合写成细胞身份或状态判断。
这类图要按成组证据来读。单个基因或局部高表达只能提供线索,只有 marker panel、signature score、metadata 和组成信息互相支持时,才适合写成细胞身份、状态或谱系倾向。
监督式发育表达对比:不能当成轨迹
本文定义的轴是 neuronal/immature neuron score 减去 progenitor/cycling score。因为轴本身就是由这两组分数相减得到,再展示两组分数随轴变化不会产生独立证据。图 8 直接展示代数关系和 sample-type 分布,只把它用作监督式表达对比。

图 8. 左图展示监督式差值在四类 sample type 中的分布;右图展示构成该差值的两组分数。虚线为两组分数相等的位置。该图明确记录轴的代数来源,不提供独立 pseudotime 或发育方向证据。
这里能确认的是预先指定 marker program 的相对高低,以及它们与 sample type、作者 cluster 的对应关系。若要恢复轨迹结论,需要独立的轨迹算法、明确 root、分支稳定性、样本结构和 held-out marker,并与原文 pseudotime 或 lineage evidence 对照;当前分析不具备这些条件。
与原文对照:本文复现了规模和发育线索,但没有冒充完整 pseudotime
Rosenberg et al. 原文强调 SPLiT-seq 的规模、固定细胞/细胞核兼容性、样本复用能力,以及 P2/P11 mouse brain and spinal cord 中超过 100 个细胞类型和多个发育谱系的 pseudotime 分析。本文没有声称完整重做原文全部 pseudotime,要把公开矩阵转成一个可审计的发育证据链。

图 9. 原文是方法和发育图谱结合的大型研究;本文实际使用公开 .mat.gz 中的 DGE 与 metadata,聚焦 progenitor/cycling 到 neuronal maturation 的 marker program contrast。
这种缩小不等于弱化;严谨。实际项目中,很多人并不需要完整重做原文所有分析;要把一个复杂公开对象或旧项目整理成能回答某个问题的证据链。对于发育 CNS 数据,这个问题往往是:哪些细胞是前体/增殖状态,哪些是未成熟或成熟神经元,不同阶段的 marker program 如何分布,哪些图能支持这个判断。
深度解读:证据链和解释边界
回答范围: 本文回答的是:在 GSE110823 公开 DGE matrix 层级,P2/P11 brain/spinal cord 数据能否支持一个 focused developmental evidence chain。结果显示,sample_type、cluster label、marker module 和 监督式 score contrast 可以共同支持 progenitor/cycling 与 neuronal maturation 的监督式表达差异,同时能识别胶质和血管边界。
processed public matrix 的边界在哪里?
本文使用 .mat.gz 中的 DGE 与作者 metadata,不等于 FASTQ 级处理。它能支持 count depth 检查、cluster 标签审计、marker module score、抽样 UMAP 和 监督式 score contrast;但不能独立证明 lineage fate、空间结构、功能机制或完整 pseudotime。尤其是存在大量 unresolved/low-label 和 Other/low-marker 细胞时,过细命名必须谨慎。
主要图读法: 图 3 告诉我们 stage/tissue 与细胞状态是两层结构;图 5 和图 7 用 module score 和 marker dotplot 支撑命名;图 8 展示发育表达对比,而不等于简单离散分类;图 9 和图 10 则说明复现边界。读者不应该只看 cluster 数量,而要看每个结论是否有 marker、stage 和矩阵层级支撑。
不能过度解释的部分: 不能把 监督式 score contrast 写成真实细胞命运,不能把 P2/P11 构成差异写成直接因果,不能把 SPLiT-seq 的方法规模写成所有结论都更强,也不能忽略 unresolved/low-marker 细胞。若要更精准地解释一个发育问题,需要补充原文 pseudotime、更多时间点、lineage tracing、空间信息或更细的单细胞级稳定性分析。
继续深入的下一步: 第一,可以围绕某个谱系重新做更细的 subset embedding,例如 cortical excitatory neuron、interneuron maturation、spinal motor neuron 或 oligodendrocyte lineage。第二,可以用原文 pseudotime 逻辑或替代轨迹方法,对 marker program contrast 做更严格的方向验证。第三,可以把自己的发育 CNS 项目映射到这套 marker framework 上,先检查是否存在前体、未成熟、成熟和胶质边界,再决定是否值得做更深的轨迹或差异分析。
复现边界和结论审计

图 10. 本文支持 sample_type/cluster/marker 审计和表达表达对比线索;真实 lineage fate、空间结构、功能机制和方法优越性泛化不在本文证据范围内。
这里的重点是限制结论强度。公开矩阵能支持表达结构、marker 和 metadata 层面的复核;更强的机制、空间、功能或临床判断,需要 raw reads、原文模型、空间/病理信息或实验验证继续补证据。
- 谨慎线索:监督式 score contrast 显示发育表达对比,但只代表表达模块变化,不能替代原文 pseudotime 或真实 lineage 验证。
- 不能声称:不能从本文结果直接证明细胞命运、空间组织、功能机制、方法优越性,或完成 FASTQ 级复现。
这类复现对实际项目有什么价值?
发育 CNS 单细胞项目最常见的痛点不等于“图不够多”;“图之间没有证据链”。一个项目可能有很多 cluster、很多阶段、很多 marker,但如果没有把 sample design、矩阵层级、marker module 和监督式表达对比结果串起来,就很难形成可用于论文或汇报的解释。
类似本文的复现可以帮助整理几个关键问题:公开矩阵是否足够支持发育解释;作者 cluster 和 marker 证据是否一致;阶段差异是组成变化、状态变化还是检测层面差异;哪些细胞可以命名,哪些必须保留为 unresolved/low-marker;如果要继续深挖,应该选择哪条谱系而不等于全图浅铺。
小结
本文基于 Rosenberg et al. GSE110823 的公开 SPLiT-seq 发育小鼠 CNS 数据,读取 156,049 个 profile 和 26,894 个基因,围绕 P2/P11 brain/spinal cord、cluster label、marker module 和 监督式 score contrast 构建了一条神经前体/增殖状态到神经元成熟的证据链。
结论很明确:公开矩阵能支持严肃的 marker program contrast 分析,也能帮助把复杂发育数据整理成可读结果图;但它不能替代真实 lineage fate、空间结构、功能机制或 raw-read 级复现。对大型发育数据来说,更需要保留的不能把所有细胞类型都讲一遍,这里选择一个具体问题,用数据层级、marker 证据和解释边界把它讲清楚。