这篇长文复现围绕 Darmanis et al. 早期人脑单细胞 RNA-seq 数据展开。目标不只展示一张 UMAP;本文从 GEO 公开的逐细胞表达文件、SOFT 元数据、细胞类型注释、canonical marker 和 lineage score 几个层面,重新整理 466 个成人和作者标注 fetal-like/replicating 类群的人脑细胞,看看神经元、星形胶质、少突胶质、OPC、小胶质和血管相关细胞能否在公开矩阵中被清楚读出来。
为什么选 Darmanis 人脑数据?
Darmanis et al. 是人脑单细胞转录组早期非常有代表性的一组公开数据。它的规模放在今天不算大,只有几百个细胞,但它有两个适合复现的特点:第一,数据来自早期 full-length 单细胞流程,逐细胞文件公开,适合展示老项目如何重新整理;第二,作者给出了神经元、胶质、血管和 fetal-like/replicating 等注释,适合用 marker 和低维图谱做可解释对照。
对这类早期数据,复现的价值不是追求“细胞数量很大”;关键在于把旧格式公开数据重新组织成今天更容易阅读的分析对象。很多经典文献的数据不是 h5ad 或 Seurat 对象;一堆 GSM 文件、SOFT 注释和补充表格。把这些内容重新对齐、做 QC、画图并解释清楚,本身就是复现工作里最容易被低估的部分。
本篇关注几个问题:
- GEO 中 466 个逐细胞表达文件能否和 SOFT 元数据完整对齐?
- 作者给出的 cell type 标签在 UMAP 上是否形成稳定结构?
- 神经元、星形胶质、少突胶质、OPC、小胶质和内皮 marker 是否支持这些注释?
- 早期 full-length 数据中哪些结果可以解释,哪些结果不适合过度延伸?
- 如果把它作为老项目复现案例,哪些检查步骤最值得保留?
这篇数据对应的真实研究痛点
早期人脑单细胞数据的价值来自经典,但痛点也很明显:细胞数少、文件格式老、注释层级有限,读者如果直接拿现代 atlas 的标准去要求它,很容易得出不公平或过度的结论。真实项目里常见的问题是,旧论文或老课题只留下逐细胞表达文件和元数据,想重新用于汇报或补充分析时,必须先判断 broad identity 是否可靠,而不是马上追求精细神经元亚型或疾病机制。
这篇复现把问题限定在可支持的范围内:神经元、星形胶质、少突胶质、OPC、小胶质和内皮等大类能否被公开表达矩阵、作者注释、marker 和 lineage score 共同支持。低丰度类群和 fetal-like/replicating 标签则需要保守解释。这样处理能把老数据重新整理成可读证据,同时避免把 466 个细胞的小规模数据写成现代脑图谱。
论文和数据来源
Darmanis et al. 的论文发表于 Proceedings of the National Academy of Sciences,题目是 A survey of human brain transcriptome diversity at the single cell level。文章利用单细胞 RNA-seq 描述人脑中主要细胞谱系的转录组差异,为后续人脑细胞图谱研究提供了早期参考。
- 论文:Darmanis et al. PNAS, 2015
- 论文题名:A survey of human brain transcriptome diversity at the single cell level
- DOI:10.1073/pnas.1507125112
- PubMed:PMID 26060301
- 公开数据:NCBI GEO GSE67835
- 公开文件:466 个 GSM 逐细胞表达文件 + GEO SOFT 元数据
复现边界说明 本文使用 GEO 公开的逐细胞表达矩阵和 SOFT 元数据做复现,未从 FASTQ 重新比对。公开文件中每个细胞对应一个
csv.gz,表达值来自作者处理后的 per-gene read assignment;因此本文把它作为“公开表达矩阵复现”,重点检查注释、marker、图谱结构和可解释性。
数据结构:466 个细胞,一个文件一个细胞
GSE67835 的公开文件与近几年常见的 10x 矩阵不同。它不是一个统一的 matrix.mtx;它是 466 个 GSM*.csv.gz 文件,每个文件代表一个细胞,每行是一个 gene symbol 和表达值。SOFT 元数据中提供 tissue、cell type、age、C1 chip id 和 experiment sample name 等字段。
公开 SOFT 没有提供一套可直接用于个体层统计的可靠 donor ID。本文不把 C1 chip ID 或 experiment sample name 自动等同于独立 donor;age、cortex/hippocampus 和作者 fetal-like/replicating 标签只作 metadata 描述。缺少 donor 层模型时,这些字段不能支持年龄方向、发育方向或脑区总体差异。
- 公开逐细胞样本:466
- 原始 gene symbol:22,088
- 至少 3 细胞检测到的基因:19,553
- 每细胞 read count 中位数:2,225,099
- 每细胞检测基因中位数:4,025
- 作者注释 cell type:9

图 1. SOFT 元数据概览。作者注释中 neurons 数量最多,再是 fetal_quiescent、astrocytes、hybrid、oligodendrocytes、fetal_replicating、endothelial、OPC 和 microglia。组织来源以 cortex 为主,另有少量 hippocampus 细胞。
这里有一个容易误读的点:SOFT 中 cell type 字段包含 fetal_quiescent 和 fetal_replicating,但本文没有把所有细胞按真实年龄重新分成 adult/fetal 两组,因为年龄字段在公开注释中并不适合作为本次复现的主要分组依据。后文提到 fetal-like/replicating 时,指的是作者在 cell type 标签中提供的类群,而不是本文重新推断出的年龄标签。
质控:早期 full-length 数据要看 count 和 detected gene
早期 full-length 单细胞数据的 QC 逻辑与 10x UMI 数据不完全一样。这里的 total counts 很高,中位数约为 2,225,099,每细胞检测基因中位数约为 4,025。这符合 full-length read-count-like 矩阵的特点,不能直接拿 10x UMI 项目的阈值照搬。

图 2. 每细胞总表达量、检测基因数以及不同 cell type 的 detected genes 分布。这个图主要用于确认旧格式表达矩阵读入后没有明显异常,并帮助解释不同细胞类型之间测序复杂度可能不同。
在复现老数据时,我更关心三个问题。第一,所有 GSM 文件是否有相同 gene order,否则直接拼矩阵会产生错位。第二,SOFT 中的 GEO accession 是否能与文件名完整匹配。第三,QC 分布是否出现明显空细胞或极端异常值。Darmanis 这组数据在这三点上都比较干净,因此后续使用完整 466 个细胞进入标准化、降维和 marker 检查。
分析流程:从逐文件矩阵到可解释图谱
本次复现没有把流程写成黑盒;尽量保留每一步的可解释性。
- 解析 GEO SOFT 元数据,提取 tissue、cell type、age、C1 chip ID 和 experiment sample name。
- 读取 466 个
GSM*.csv.gz文件,检查 gene order 是否一致,并合并成 cell × gene 表达矩阵。 - 计算每个细胞的 total counts、detected genes,以及每个基因被多少细胞检测到。
- 保留至少 3 个细胞中检测到的基因,进行 library size normalization 和 log transform。
- 由于这是早期 read-count-like full-length 数据,高变基因选择采用 log 表达方差排序,避免套用 UMI 数据的分散度假设。
- 基于高变基因执行 PCA、邻接图、UMAP 和 Leiden 聚类。
- 用 canonical brain lineage marker 检查作者 cell type 标签是否有表达支撑。
- 计算 neuron、astrocyte、oligodendrocyte、OPC、microglia、endothelial 和 progenitor signature score,作为 marker 图的补充。
这套流程的目的不是替代原文所有分析;关键在于把公开表达矩阵重新整理成今天可以快速复查的图谱和证据链。
UMAP:作者注释在表达空间中形成清楚分区

图 3. UMAP 按 SOFT cell type 着色。neurons、astrocytes、oligodendrocytes、OPC、microglia 和 endothelial 等类群整体形成可分辨结构;fetal_quiescent 与 fetal_replicating 在右侧形成相对独立区域。
这个 UMAP 的第一层信息是:作者注释不是随机散落的。neurons 在主图谱中占最大区域,astrocytes、oligodendrocytes、OPC 和 microglia 有各自较集中的位置。fetal_quiescent 与 fetal_replicating 的分区更独立,说明这些类群的整体转录组状态与其他成人脑细胞明显不同。
第二层信息是:hybrid 类群分布较散,夹在多个谱系附近。这类标签在复现文章里不能粗暴解释成一种稳定新细胞类型,更适合写成“可能包含混合表达、双细胞、过渡状态或注释不确定细胞”。这也是老单细胞数据复现中必须保留的边界意识。
组织来源:cortex 为主,hippocampus 细胞较少

图 4. UMAP 按 tissue 着色。公开注释中 cortex 占 430 个细胞,hippocampus 占 36 个细胞。hippocampus 数量较少,因此本文不把组织差异作为主要结论。
从组织来源看,这组数据以 cortex 为主,hippocampus 只有 36 个细胞。这个比例决定了本文不适合展开“皮层 vs 海马”的深入差异分析。对于公开复现来说,承认这种设计边界比强行做差异更重要。样本量小、组织不均衡、旧平台技术噪声较高时,过度解释会让文章显得不可靠。
Marker UMAP:脑细胞谱系的表达证据

图 5. canonical brain lineage marker 在 UMAP 上的表达。SNAP25/SYT1 支持神经元区域;AQP4/GFAP/ALDH1L1 支持星形胶质;MBP/PLP1 支持少突胶质;PDGFRA/CSPG4 支持 OPC;CX3CR1/C1QA/PTPRC 支持小胶质/免疫相关区域;PECAM1/VWF/CLDN5 支持内皮细胞;SOX2/VIM/MKI67 帮助观察 progenitor/replicating 相关信号。
Marker 图是这篇复现最重要的证据之一。仅凭 UMAP 颜色很容易把作者注释当成事实,而 marker 图可以回答“这些标签是否有表达支撑”。在本次复现中,SNAP25 和 SYT1 在神经元区域更强,AQP4、GFAP 和 ALDH1L1 指向星形胶质区域,MBP 和 PLP1 指向少突胶质相关区域,PDGFRA 对 OPC 区域有提示,小胶质区域则能看到 CX3CR1、C1QA、PTPRC 等信号。
同时也要注意,部分 marker 在这组早期数据中并不完美。例如 RBFOX3、MOG、CLDN5 等基因在单细胞层面的检测率并不高,不能因为某个 marker 很弱就否定整个注释,也不能因为一个 marker 有少量表达就过度解释。老数据更适合多个 marker 合并判断。
Dotplot:按作者注释汇总 marker 支撑

图 6. 不同 SOFT cell type 中 marker 的平均 log 表达和检测比例。点的颜色代表平均表达,点大小代表检测比例。这个图把 UMAP 上的空间信号转成按注释类别汇总的证据。
Dotplot 更适合回答“一个细胞类型整体表达什么”。可以看到,neurons 中 SNAP25 和 SYT1 更突出,oligodendrocytes 中 PLP1、MBP 更突出,astrocytes 中 AQP4 等星形胶质信号更明显,microglia 中 C1QA、PTPRC 等免疫/小胶质 marker 更集中。fetal_replicating 相关类群中 MKI67、VIM 等增殖或发育相关信号更值得注意。
把 UMAP marker 和 dotplot 合在一起看,作者 cell type 标签整体是可复现的。它不是现代 atlas 级别的高分辨率注释,但作为 2015 年的公开人脑单细胞数据,主要谱系结构已经足够清楚。
Signature score:用基因集补充单 marker 的不稳定性

图 7. 基于多个 canonical marker 计算的 lineage signature score。score 图用于补充单个 marker 检测率不足的问题,尤其适合早期 full-length 数据的复现解释。
单个 marker 在单细胞数据中容易受表达未检出、测序深度和注释粒度影响。Signature score 把多个 marker 合在一起,虽然不能替代严格注释,但能帮助判断某个区域是否具有一致的谱系倾向。这里 neuron、astrocyte、oligodendrocyte、OPC、microglia、endothelial 和 progenitor score 的空间分布与 UMAP 和 dotplot 基本一致。
需要特别说明的是,score 的绝对值不是跨数据集可直接比较的指标。它更适合在同一数据集内部辅助读图:哪一片区域更像神经元,哪一片更像星形胶质,哪一片更像小胶质或血管相关细胞。用它做公开复现时,重点应该是解释方向,而不是夸大数值本身。
组成比例:细胞类型、组织和聚类之间的关系

图 8. 不同 tissue 中的 cell type 构成。cortex 细胞数远高于 hippocampus,因此组成比例主要用于描述数据结构。
这张图回答的是来源和比例问题。它适合用来发现样本不平衡、分组偏移或需要子集分析的地方;更强的生物学解释还要结合原文设计和额外证据。

图 9. Leiden cluster 与 SOFT cell type 的交叉表热图。这个图用于检查无监督聚类是否大体对应作者注释。
组成比例图显示 cortex 是这组数据的主要来源,hippocampus 数量较少;Leiden 对照图则说明无监督聚类与作者注释有较好对应关系,但不是一一完全等价。对于小规模早期数据,这种结果很正常:聚类可能受到 cell type、技术批次、细胞状态和测序复杂度共同影响。
因此本文没有把 Leiden cluster 当成新的精细注释结论;关键在于把它当作复查工具。如果 cluster 与作者标签明显冲突,就需要回到 marker、QC 和样本来源重新检查。现在看到的结果支持“主要谱系可复现”,但不支持对每个 cluster 做过细命名。
与源论文主线的对照
源论文的关键价值来自证明人脑主要细胞类型在单细胞转录组层面可区分,并展示神经元、星形胶质、少突胶质、OPC、小胶质和血管相关细胞之间的表达差异。本次复现与源论文主线一致的地方主要有三点。
第一,公开矩阵可以重新恢复主要细胞谱系结构。UMAP 上作者注释形成清楚分区,说明公开表达数据保留了原文中的主要生物学信号。
第二,canonical marker 支持主要注释。神经元 marker、胶质 marker、OPC marker、小胶质 marker 和内皮 marker 的表达分布与注释总体一致。对于早期数据来说,这一点比追求更复杂的下游分析更关键。
第三,fetal-like/replicating 类群具有相对独立的转录组区域,并能看到增殖/发育相关信号。这与原文讨论发育相关细胞状态的方向相符,但本文只把它作为作者标签的复现,不重新定义发育轨迹。
复现这类老数据最容易出错的地方
- 文件方向错误:每个
GSM文件是一列细胞表达,如果把 gene 和 cell 方向弄反,后续所有 QC 和 UMAP 都会失真。 - 注释错位:SOFT 的 accession 必须和文件名前缀严格对齐,不能只按文件排序和表格排序硬拼。
- 阈值照搬:full-length read-count-like 数据不能直接套 10x UMI 的 QC 阈值和解释习惯。
- marker 单点判断:老数据检测率有限,应该用多个 marker、dotplot 和 signature score 合并判断。
- 过度做差异:466 个细胞和不均衡组织来源适合复现主结构,不适合包装成大规模 atlas 差异研究。
- 忽略边界:hybrid 或 fetal-like 标签需要谨慎解释,最好明确它们来自作者注释而不是本文重新命名。
可以复用到哪些项目?
这篇复现对很多旧单细胞项目有参考意义。不是所有经典数据都有标准化对象,有些只提供逐样本文件、补充表、SOFT 注释或早期平台输出。把它们重新整理成可分析对象时,最重要的是先保证元数据和表达矩阵对齐,再谈下游解释。
类似流程可以用于:
- 旧 GEO 单细胞项目的重新整理和注释核查。
- 只有逐细胞表达文件、没有 h5ad/Seurat 对象的经典文献复现。
- 需要把旧论文图谱整理成汇报或文章补充图的项目。
- 需要检查 marker、细胞类型和聚类是否一致的公共数据再分析。
- 需要把公开数据重新组织成清楚中文报告的单细胞课题。
本次复现的限制
这篇文章有明确边界。第一,使用的是 GEO 公开表达矩阵,不是 FASTQ 重新比对。第二,细胞数量只有 466 个,不能和现代百万级 atlas 做同等粒度比较。第三,tissue 组成不均衡,cortex 远多于 hippocampus,因此组织差异不是本文主结论。第四,hybrid 与 fetal-like/replicating 类群沿用作者注释,本文没有独立做发育轨迹推断。第五,早期测序平台和分析流程与现在常见 10x UMI 数据不同,部分 marker 的检测率和表达尺度需要谨慎解释。
这些限制不削弱复现价值,反而说明公开复现应该怎样写得更稳:把能确认的部分讲清楚,把不能确认的部分标出来。
深度解读:这篇复现应该怎么读?
Darmanis 人脑这篇复现要按“经典旧格式单细胞数据重建”来读。它只有 466 个细胞,不是现代大规模 brain atlas;公开数据形式也不是一个矩阵对象;它是 466 个 GSM*.csv.gz 逐细胞文件加 SOFT metadata。本文复核的是:这些文件能否正确对齐,作者 cell type 标签是否由 marker 支持,以及早期 full-length read-count-like 数据能讲到哪一层。
1. 这篇复现回答了什么?
它回答的是“GSE67835 的逐细胞表达文件和 SOFT 注释能否重新整理成人脑主要谱系图谱”。本文检查了 gene order、GEO accession 对齐、QC 分布、UMAP、Leiden、marker UMAP、dotplot 和 lineage score,结果显示 neurons、astrocytes、oligodendrocytes、OPC、microglia、endothelial 以及作者标注的 fetal-like/replicating 类群整体可被重新观察。
这支持源论文“人脑主要细胞谱系在单细胞转录组层面可区分”的主线。但本文不是高分辨率人脑 atlas,也不是发育轨迹分析。
2. raw / processed matrix 的边界在哪里?
本文使用作者处理后的 per-gene read assignment 表达值,未从 FASTQ 重新比对。早期 full-length 数据的 total counts 和 detected genes 不能用 10x UMI 习惯直接解释;高变基因选择也不宜机械套用 UMI 分散度假设。因此本文把它定位为“公开表达矩阵复现”,重点做注释、marker 和主结构检查。
这个边界也适用于 fetal_quiescent、fetal_replicating 和 hybrid 标签。它们来自作者注释,本文可以检查这些类群是否在表达空间中相对独立、是否带有增殖/发育相关 marker,但不能重新定义发育状态或证明轨迹方向。
3. 关键图应该怎么读?
图 1 和图 2 先看 metadata 和 QC 是否合理;图 3 看作者 cell type 在表达空间中是否分区;图 4 提醒 cortex 远多于 hippocampus,因此组织差异不是本文主结论;图 5-7 用 SNAP25/SYT1、AQP4/GFAP/ALDH1L1、MBP/PLP1、PDGFRA/CSPG4、CX3CR1/C1QA/PTPRC、PECAM1/VWF/CLDN5 和 SOX2/VIM/MKI67 等 marker/signature 检查谱系;图 8-9 再看 composition 与 Leiden crosswalk。
这篇文章尤其要多 marker 联合读。老数据中单个 marker 检测率可能不稳定,不能因为一个 marker 弱就否定注释,也不能因为一个 marker 零星表达就强行定义新类型。
4. 哪些地方不能过度解释?
第一,不能把 466 个细胞写成现代人脑 atlas。第二,不能把 cortex vs hippocampus 做成主要差异结论,因为 hippocampus 只有 36 个细胞。第三,hybrid 标签不能被直接写成稳定新细胞类型。第四,fetal-like/replicating 标签不能被本文重新解释成发育轨迹。第五,Leiden cluster 只是复查工具,不是原文细胞类型的替代。
本文能严肃支持的是:公开矩阵能恢复主要人脑细胞谱系,且作者标签有 marker 证据。本文不能支持的是细胞亚型精细 taxonomy、组织区域差异、发育轨迹或功能机制。
5. 如果继续深入,下一步做什么?
继续深入时,应先扩展注释核查,而不是增加 cluster 数。可以逐项对照原文细胞类型表,检查 neurons、astrocytes、oligodendrocytes、OPC、microglia 和 endothelial 的 marker panel;也可以把 fetal_quiescent/fetal_replicating 单独拿出来看增殖、progenitor 和细胞周期基因。但如果要讨论发育状态或组织区域差异,需要更多样本和更完整的原文设计支持。
这篇文章对旧数据复现的启发是:先把表达文件、metadata、QC 和 marker 证据对齐,再讨论生物学。旧格式数据只要整理严谨,仍然可以成为可信的文献复现材料。
小结
Darmanis et al. GSE67835 是一个很适合展示“经典旧数据如何重新整理”的人脑单细胞案例。本次复现从 466 个逐细胞表达文件和 SOFT 元数据出发,重新构建表达矩阵,完成 QC、降维、聚类、marker、dotplot、signature score 和组成对照。结果显示,neurons、astrocytes、oligodendrocytes、OPC、microglia、endothelial 以及作者标注的 fetal-like/replicating 类群整体可以在公开矩阵中被重新读出。
对类似公开单细胞数据,如果需要从文献、GEO accession 或旧表达文件重新整理成可解释图谱,关键不是简单运行一套流程;关键在于把数据来源、注释对齐、marker 证据、结果图边界和源论文对照一起整理清楚。