GBM 迁移前沿单细胞数据容易被写得过满。只要 UMAP 上有肿瘤细胞和微环境细胞,再叠上 invasion、hypoxia、mesenchymal 这些词,文章看起来就很有故事。但公开矩阵能支撑到哪一步,必须先拆清楚。
Darmanis et al. 这组数据的看点在于同一批公开细胞里同时有 neoplastic status、作者 cell type、Tumor/Periphery 取样标签和多组 marker program。它适合回答一个更具体的问题:在只有 GEO read-count matrix 和作者 metadata 的条件下,我们能不能把 GBM 肿瘤细胞、迁移前沿相关样本、regular/微环境细胞和表达程序整理成一条可复核的证据链。
本文不把低维图当作结论本身。每张图只承担一个任务:确认矩阵和 metadata 对齐,检查表达空间是否保留细胞身份,复核 marker 和 signature 是否成组支持作者标签,再把 tissue label、selection 和 composition 放回数据来源里解释。
论文和数据来源
Darmanis et al. 的论文发表于 Cell Reports,题目是 Single-Cell RNA-Seq Analysis of Infiltrating Neoplastic Cells at the Migrating Front of Human Glioblastoma。文献记录见 PubMed 29091775,公开数据入口为 GEO GSE84465。
本次复现使用 GSE84465_GBM_All_data.csv.gz 公开 read-count 矩阵,并从 series matrix 中提取 plate、well、patient id、tissue、tsne cluster、cell type、neoplastic 和 selection 信息。表达矩阵列名为 plate_id.well,metadata 里的 plate 与 well 需要重新拼接,才能和每一列细胞逐一对应。对齐后进入分析的规模是 3,589 个细胞、23,465 个基因。
这组数据不能只当成一个肿瘤细胞矩阵来读。作者 metadata 至少提供了四条会影响解释的线索:Tumor/Periphery 取样标签、Neoplastic/Regular 状态、作者 cell type、分选入口 selection。按作者 cell type 统计,Immune cell 有 1,847 个,Neoplastic 有 1,091 个,OPC 有 406 个,另有 astrocyte 相关细胞 88 个、oligodendrocyte 85 个、vascular 51 个、neuron 21 个。作者字段中 astrocyte 相关标签原文写作 Astocyte,下文保留这个字段含义,不把它改写成新的注释结论。
从 tissue 标签看,Tumor 细胞 2,343 个,Periphery 细胞 1,246 个。1,091 个 neoplastic 细胞中,1,029 个在 Tumor 标签下,62 个在 Periphery 标签下。Regular 细胞分布在两个取样标签中,Tumor 标签下也有大量 regular/微环境细胞。这个结构决定了后文不能把 tissue label 直接读成纯肿瘤细胞分组,也不能把 composition 图外推为病理切片上的真实比例。
| 取样标签 | 细胞数 | Neoplastic | Immune cell | OPC | 其他 regular 细胞 |
|---|---|---|---|---|---|
| Tumor | 2,343 | 1,029 | 1,182 | 50 | 82 |
| Periphery | 1,246 | 62 | 665 | 356 | 163 |
复现边界需要写在前面。本文使用的是 GEO 公开 read-count matrix 和作者整理 metadata,适合复核表达空间、marker program、cell type composition 和 metadata 对照。它不包含 FASTQ 重新比对、CNV-based malignant calling、病理切片定位、空间转录组或功能实验。因此,下文所有 invasion、mesenchymal、hypoxia 和 microenvironment 相关表述,都限定在表达程序和 metadata 关联层面。
方法和分析流程
分析从矩阵和 metadata 的关系开始。只有列名与细胞元数据对齐,后面的 cell type、tissue、patient、selection 和 neoplastic 标签才有解释基础。对齐完成后,流程包括 library-size normalization、log1p 转换、低表达基因过滤、高变基因选择、PCA/UMAP、无监督聚类和作者标签 crosswalk。
第二层是 marker 和 signature 复核。作者标签在这里作为待复核信息,再用 neoplastic/stem、cell cycle、hypoxia、mesenchymal/invasion、astro-glial、oligo-proneural、immune/microglia 和 vascular 几组 marker program 回头检查。单个 marker 只能提示方向;成组 marker、score 分布和 cell type 平均值放在一起,才适合支撑解释。
第三层是 composition 和边界。Tumor/Periphery 记录取样背景,selection 记录富集入口,UMAP 记录表达相似性。三者都很有用,但各自回答的问题不同。本文的结果图顺序也按这个逻辑展开:确认数据能读,检查表达结构,复核 marker 和 signature,把组成差异、cluster crosswalk 和源论文主线放到同一套证据框架里。
数据结构:先确认矩阵、metadata 和分选入口
GSE84465 的公开矩阵不能像已经整理好的 Seurat/h5ad 对象那样直接导入。矩阵列名是 plate_id.well,series matrix 中的 plate 与 well 则分散在元数据字段里。这里的对齐步骤很琐碎,却是整篇复现的地基。只要细胞顺序错位,后续 UMAP、composition、marker dotplot 都可能看起来合理,但解释对象已经变了。
图 1 检查三个问题。作者 cell type 和 neoplastic annotation 是否完整进入对象;Tumor 和 Periphery 标签下 detected genes 分布是否有明显异常;不同 cell type 的细胞数是否足以支撑后续比较。这个图并不提供生物学结论,它回答的是数据能否继续往下读。

图 1. 数据集概览。这个图先确认矩阵和元数据是否可用,不承担迁移前沿机制证明。
从细胞构成看,这组数据明显不均匀。Immune cell 数量最高,Neoplastic 次之,OPC 也有相当数量;vascular、neuron 和 oligodendrocyte 数量较少。Tumor 标签下既有 1,029 个 neoplastic 细胞,也有 1,182 个 Immune cell 和其他 regular 细胞。Periphery 标签下以 regular 细胞为主,但仍有 62 个 neoplastic 细胞。
这个结构带来两个读图限制。其一,Tumor/Periphery 的差异同时受到取样位置和细胞类型组成影响,不能只解释成肿瘤细胞状态变化。其二,selection 字段会影响进入矩阵的细胞构成。metadata 中可见 Microglia(CD45)、Astrocytes(HEPACAM)、Neurons(Thy1)、Unpanned、Oligodendrocytes(GC) 和 Endothelial(BSC) 等入口。composition 图展示的是当前公开矩阵里的可见组成,不等于组织原位丰度。
低维结构:表达空间能否恢复主分层
低维图的作用是检查公开矩阵是否保留源论文关心的主结构。它不能证明侵袭机制,也不能替代 CNV 或空间验证;但如果 neoplastic、OPC、immune、vascular 等标签在表达空间中完全混杂,后面的 marker program 和 composition 解释就缺少基础。

图 2. UMAP 按作者 cell type 着色。这里检查作者标签和表达结构之间是否大体一致。
图 2 重点看作者标签能否在表达空间中形成可读分层。Neoplastic 细胞形成多个相邻区域,immune/microglia 相关细胞占据明显区域,OPC 和 oligodendrocyte 也能分出方向。这样的结果说明公开 read-count 矩阵仍然保留了足够的细胞身份信号,可以继续做 marker 和 program 层面的复核。
同时,这张图也提醒我们保持谨慎。OPC 与 neoplastic/stem 相关 marker 在 GBM 中可能产生解释交叉;immune cell 内部也可能包含不同髓系状态。UMAP 上颜色分开,只能说明表达结构可读。如果要重新判定 malignant status 或细分微环境亚群,还需要 CNV、子集重聚类、患者层面汇总和更完整的原文注释。

图 3. UMAP 按 neoplastic status 着色。它把同一表达空间换成肿瘤样/regular 状态来读。
图 3 显示 Neoplastic 与 Regular 在表达空间里存在可见分层,作者 neoplastic status 和表达结构之间有可复核关系。Regular 细胞并不只出现在 Periphery,Tumor 标签下也有大量 regular/微环境细胞。对 GBM 组织单细胞数据来说,这一点影响很大:肿瘤区域本身包含微环境细胞,tissue label 不能直接当作细胞身份标签。
tissue label:取样区域不能当作空间坐标
源论文讨论 migrating front,读者自然会关心 Tumor 和 Periphery。公开矩阵里的 tissue label 记录取样背景,但它没有提供每个细胞在病理切片上的精确位置。图 4 可以用来判断取样标签与表达结构是否有关,不能直接写成肿瘤细胞在组织里如何迁移。

图 4. UMAP 按 tissue label 着色。这个图讨论取样标签与表达结构的关系,不承担空间定位证据。
Tumor 和 Periphery 在 UMAP 中呈现出组成差异,同时仍有交叠。Periphery 中保留少量 neoplastic 细胞,Tumor 中也有大量 regular/微环境细胞。这种混合让这篇数据值得认真复现:它能在公开矩阵层面呈现肿瘤细胞、regular/微环境细胞和取样区域标签之间的关系。
这里还要分清两个层级。Tissue label 能帮助读者理解样本来自肿瘤区域或周边区域;空间机制需要病理、空间转录组、影像或更明确的取样坐标来支撑。公开矩阵可以提出候选线索,却不能把 UMAP 上的 Tumor/Periphery 分布直接解释为浸润路线。
marker program:表达线索要成组检查
复现不能停在作者标签或 cluster 名字上。这里把八组 marker program 放到同一张图中:neoplastic/stem、cell cycle、hypoxia、mesenchymal/invasion、astro-glial、oligo-proneural、immune/microglia 和 vascular。这个设计比单独挑一个基因更稳,因为每个 program 都由多个基因共同支撑,也更容易暴露解释边界。

图 5. 多组 marker program score 的 UMAP 分布。这里看的是表达程序分布,不承担机制因果判断。
图 5 应按程序分布来读。neoplastic/stem、hypoxia 和 mesenchymal/invasion 分数在部分肿瘤相关区域升高,说明公开矩阵中保留了 GBM 常见状态程序;immune/microglia 分数集中在 immune 区域,vascular 分数集中在血管相关区域,未见全图同向升高。这个结果支持用 signature 辅助解释细胞身份和状态,但它仍是表达层面的证据,不能单独推出缺氧机制、侵袭因果或血管生态位。

图 6. 代表性 marker UMAP。它把每组 program 拆回具体基因,方便检查 score 的来源。
图 6 把具体基因放回 UMAP。SOX2/NES/OLIG2/PROM1 用来观察 neoplastic/stem 相关方向,MKI67/TOP2A 对应 cell cycle,VEGFA/CA9 对应 hypoxia 相关信号,VIM/CHI3L1/CD44/SERPINE1/FN1/MMP2 对应 mesenchymal/invasion 相关方向。微环境部分用 AIF1/TYROBP/C1QA、PECAM1/VWF 等 marker 检查 immune/microglia 和 vascular 方向。
这个图的好处是每个 program 都能回到具体基因。局限也同样清楚:单基因表达受检测率、细胞状态和测序深度影响,局部亮点不能直接写成细胞命运或功能机制。对于类似 GBM 项目,更稳妥的做法是把 marker UMAP、signature score、cell type dotplot 和患者/取样标签一起读。

图 7. Marker dotplot 按作者 cell type 汇总表达强度和检测比例。
图 7 是对图 6 的压缩检查。UMAP 看空间位置,dotplot 看每个作者 cell type 中 marker 的表达强度和检测比例。它能帮助识别两类问题:标签是否由 marker 支撑,marker 是否在多个细胞类型之间共享。GBM 数据里,OLIG2、PDGFRA、SOX2 等基因可能同时牵涉 neoplastic、OPC 或 progenitor-like 解释;immune 和 vascular marker 也需要和 cell type 组成一起读。dotplot 的意义就在于避免只凭 UMAP 形状下结论。
composition 和 crosswalk:把图读到项目层面
当主结构和 marker 已经确认后,才适合讨论组成和分层。这里关心的不止是哪一类细胞简单地多或少,还要看这些比例受哪些因素影响:Tumor/Periphery 取样、selection 富集、患者来源、作者注释框架,以及无监督 cluster 与作者标签的一致程度。

图 8. 不同 tissue label 下的 cell type 组成比例。这个图展示当前公开矩阵中的可见组成。
图 8 显示 Tumor 标签下 Neoplastic 细胞明显更多,同时也有 1,182 个 Immune cell 和其他 regular 细胞;Periphery 标签下 OPC、astrocyte 相关细胞和 immune cell 更突出,同时仍保留 62 个 Neoplastic 细胞。这个结果适合说明迁移前沿相关样本包含多种成分。它不适合直接外推为完整空间生态位,原因很具体:公开数据受取样位置、分选策略和单细胞捕获效率影响,composition 图只能说明当前矩阵里观察到的细胞组成。

图 9. 各 cell type 平均 marker-program score。它把 UMAP 上的程序信号汇总到细胞类型层面。
图 9 把 program score 汇总到 cell type 层面。Neoplastic 细胞的 hypoxia、mesenchymal/invasion 和 neoplastic/stem 相关 score 整体偏高,符合 GBM 肿瘤细胞状态解释;OPC 和 oligodendrocyte 在 oligo-proneural 方向更强,vascular 细胞在 vascular score 上最明显,immune cell 在 immune/microglia score 上更高。这里需要谨慎的是 OPC 和 neoplastic/stem 相关 marker 的交叉,尤其 OLIG2/PDGFRA 一类基因不能被粗暴解释成同一种生物学含义。对真实项目来说,这类热图的作用是提示哪些 cell type 需要子集内复核。

图 10. 无监督 cluster 与作者 cell type 的交叉表。这个图检查低维结构和作者注释是否一致。
图 10 是复现文章里很实用的一步。无监督 cluster 与作者 cell type 大体一致:多个 cluster 几乎完全由 Immune cell 组成,C1、C2、C6 等 cluster 主要是 Neoplastic,C4 主要是 OPC,C9 主要是 Oligodendrocyte,C13 主要是 astrocyte 相关细胞。也有混合 cluster,例如 C12 同时包含 Neoplastic、OPC、Immune cell、astrocyte 相关细胞和少量 vascular/Neuron。
混合 cluster 不一定代表错误。它可能来自过渡状态、低细胞数类别、分选背景、作者标签粒度或无监督聚类参数。把 crosswalk 写出来,比直接给每个 cluster 起一个漂亮名字更负责任。对于后续项目,这一步也能帮助判断是否值得进入 malignant 子集重聚类、immune 子集拆分或患者层面建模。
与源论文主线的对照
源论文关注 GBM migrating front 中 infiltrating neoplastic cells 和微环境相关信号。公开数据复现能够重新观察到 neoplastic 与 regular/微环境相关细胞的表达差异,也能看到迁移前沿相关样本中多种细胞类型和程序信号并存。本文没有重做 CNV 推断、空间定位、病理图像对照或功能验证,因此 invasion、mesenchymal 和 hypoxia 相关结论都写成 expression program 层面的线索。
这个区分需要先确认。公开矩阵能支持主要结构、marker 和部分组成解释;原文中涉及 raw reads、复杂模型、空间信息、临床变量或功能验证的部分,不能被一篇矩阵复现文章替代。把这条线划清楚,文章反而更有用,因为读者可以知道哪些结果已经能复核,哪些问题还需要回到原始数据或补充实验。
深度解读:这篇复现应该怎么读?
这篇复现回答的是一个范围明确的问题:公开矩阵能不能把 GBM 肿瘤细胞、迁移前沿相关样本和微环境信号整理成一条证据链。答案是可以,但证据链停在表达矩阵和作者 metadata 的层级。它可以支持细胞身份、neoplastic status、候选 marker program 和 tissue label 关联;它不能替代空间定位、CNV 重判、患者层面统计模型或功能实验。
raw/processed 边界也要讲清楚。虽然 GSE84465_GBM_All_data.csv.gz 是 read-count 矩阵,可以做归一化、降维、聚类和 score 计算,但它仍不等于从 FASTQ 开始的完整再分析。没有重新比对,就不能讨论比对率、重复、污染和 reads 层面的质量差异。没有空间坐标,就不能把 Tumor/Periphery UMAP 直接写成组织内迁移路线。
继续深入时,优先做三件事。肿瘤细胞内部可以补 CNV-based malignant calling 和 malignant 子集重聚类;患者层面可以按 BT_S1、BT_S2、BT_S4、BT_S6 汇总 program score 和 composition,检查信号是否被个别患者驱动;空间/病理层面则需要原文切片、取样描述或新的空间数据来确认 migrating front 解释。这样补分析,比继续堆更多总图更能提高证据质量。
不能过度解释的地方
矩阵层级的限制最直接。处理矩阵能帮助我们复核表达结构和 marker 程序,但不能回答 raw reads 层面的比对、重复、测序质量和完整差异检验问题。
低维距离也要谨慎。UMAP、PCA 和 t-SNE 的距离可以提示结构,不能直接等同于谱系距离、空间距离或机制强弱。图上两个区域靠近,只说明降维空间中相似,不自动代表组织位置相邻。
Marker 解释需要成组证据。单个 marker 不足以下结论,尤其在 GBM 这种肿瘤数据里,neoplastic/stem、OPC/progenitor-like 和 glial marker 容易交叉。更稳的证据来自 marker panel、signature score、metadata、composition 和患者层面的共同指向。
项目外推也要收住。公开数据中的线索可以指导后续分析,但不能替代实验验证、临床结局或私有项目的重新质控。类似项目如果要走向机制结论,需要补上 malignant calling、患者/样本分层、空间或病理对照,以及更明确的统计模型。
对类似项目有什么启发?
这类肿瘤数据最容易缺的是边界感。哪些信号来自肿瘤细胞,哪些来自微环境,哪些只是组织来源或采样位置的混合,哪些图能支持可发表的解释,都需要通过 marker、composition、signature 和 metadata 一起判断。只给 cluster 命名并不能解决这些问题。
对旧公开数据或旧 Seurat/h5ad 对象来说,复现通常要先确认矩阵来源、metadata 对齐、分组含义和可解释边界,再考虑重跑 UMAP。只有这些地基稳住,后面的 marker、signature、差异、亚群和结果图整理才有意义。
GSE84465 的例子说明,公开数据复现可以做出比“看见几个 cluster”更扎实的内容:把数据来源、矩阵来源、取样标签、作者注释、marker program、composition 和源论文主线放在同一篇文章里,让读者知道这批数据已经能回答什么,还缺什么。
小结
本次复现从 GSE84465 的公开矩阵和 metadata 出发,围绕数据结构、低维图谱、marker/signature、composition、cluster crosswalk、源论文对照和复现边界整理结果图。文章的重点放在证据链:哪些结论被当前矩阵支持,哪些只能作为继续深入的线索,哪些不能在公开数据层面过度解释。
对 GBM migrating front 这类题目,严谨写法不需要回避 invasion、hypoxia 或 microenvironment 信号,但要把它们放回表达程序、取样标签和验证边界里。这样得到的复现,才适合继续发展成患者层面、CNV/恶性识别、空间病理对照或更细亚群分析。