从 55,737 × 16,291 的 processed TPM 矩阵到患者级证据:Sade-Feldman 黑色素瘤免疫治疗单细胞数据再分析
单细胞研究最容易制造的一种错觉,是图上有一万多个点,统计上便仿佛拥有一万多个独立样本。Sade-Feldman 等人在 2018 年发表的黑色素瘤免疫治疗研究,公开了 16,291 个细胞的表达矩阵,也提供了治疗前后、应答、治疗方案和分选方式等信息。数据规模足够大,生物学问题也足够重要;结论强度取决于这些点最终来自多少位患者、多少份活检,以及同一患者的多份材料应当如何归并。
本文的再分析把问题收紧为:在作者公开的 Smart-seq2 processed log2(TPM+1) 矩阵中,明确区分 cell、biopsy、patient、timepoint、response、therapy 与 enrichment 之后,哪些免疫状态与临床应答的关联仍得到患者级统计支持,哪些只适合作为后续假设,哪些问题根本不能由这份公开矩阵回答?
先给出结论。基线 19 位患者中,memory_TCF7 程序得分和该状态在既定 T/NK 子集内的比例,在治疗方案校正、HC3 稳健标准误、治疗分层精确枚举和患者重抽样下获得了相对一致但仍限于本队列的支持;dysfunction 程序得分也呈现方向一致的负关联。cytotoxic 与 cycling 程序在精确枚举链中通过多重校正,却没有在 HC3 的 20-outcome 联合家族校正中通过,因此不能被压缩成一句“均显著”。全转录组层面,55,737 个 feature 中没有任何一个通过 BH q<0.05。治疗后分析中,memory_TCF7 比例和 IFN 程序得分在两种取样范围下方向一致并得到精确检验支持;两种范围使用的是同一批患者,不能视为两个独立队列。纵向图最终只保留 7 位治疗方案和应答标签均稳定的患者,适合展示个体差异,不适合估计总体治疗效应。
这些结果既没有否定原论文,也没有把原论文的整套证据链重新做一遍。它们完成的是更窄、但可以被逐项核对的工作:审计公开 processed 表达层中的分母,重建患者级关联,保留方法之间的不一致,并把无法从当前数据层推出的结论明确写在边界之外。
1. 论文、数据与本次问题
原始研究为 Sade-Feldman 等发表于 Cell 的论文 “Defining T Cell States Associated with Response to Checkpoint Immunotherapy in Melanoma”。论文第一来源如下:
- DOI:10.1016/j.cell.2018.10.038
- PubMed:PMID 30388456
- GEO:GSE120575
原论文围绕接受免疫检查点治疗的黑色素瘤样本,描述了与应答相关的 CD8 T 细胞状态,并进一步使用固定组织、独立材料、表观遗传、克隆性和功能实验扩展证据。本文只处理公开的 processed 表达矩阵及其可对齐的元数据。因此,本文可以讨论表达程序、样本设计、患者级应答关联及内部敏感性,却不能把原论文后续的组织学、克隆性、染色质或功能实验说成已在这里重新获得。
公开表达层是 Smart-seq2 log2(TPM+1);它不属于未处理测序读段,也不属于适用于整数计数模型的输入。原始文本中,55,737 个表达数据行各带一个末端空字段;前两行 cell ID 与 sample label 不带该占位。剔除表达行的末端占位后,每个 feature 对应 16,291 个表达值,而不是把末端占位误读成第 16,292 个细胞。这个看似琐碎的读取细节很重要:多读一列会让表达矩阵与细胞元数据整体错位,少读一列则会丢掉真实细胞。核对后的矩阵维度为 55,737 个 feature × 16,291 个细胞,所有细胞均能映射到 GEO 活检记录。
2. 本次做了什么,以及没有做什么
本次分析从四条线并行约束结论。
分母线负责把每个细胞先映射到矩阵样本标签,再映射到 GEO 活检、患者、时间点、应答和治疗方案。任何临床应答推断都以患者为独立单位,不把同一人的多个细胞或多份活检当成额外患者。
取样线说明公开细胞来自 CD45+ 相关取样,并混有未富集、T 细胞富集和髓系富集材料。富集标签会改变进入矩阵的细胞组成,不能只当作元数据装饰。因此,图中的细胞比例不能直接还原未分选肿瘤组织的天然组成。
注释线把用于构建状态的 31 个基因,与用于事后检查的 25 个留出基因完全分开。聚类标签只有在构建证据达到绝对强度和分离度要求、同时得到留出面板支持时才被接受;证据不足就保留为 Ambiguous 或 Unsupported,避免用最接近的名称填满所有聚类。
统计线同时报告治疗方案校正效应、HC3 稳健标准误、分层精确枚举、患者级重抽样区间、BH 校正和逐一留出患者分析。治疗后模型沿用相同原则,并额外处理同一患者的应答标签冲突。只要不同方法给出不同等级的支持,正文便保留这种差异。
本文未从测序读段重新进行比对、建库前后质量控制、液滴层过滤或双细胞识别,也没有建立基于整数计数分布的差异模型。公开 processed 表达层无法恢复这些步骤。本文同样没有把低维坐标解释成细胞发育方向,没有建立临床预测器,也没有从观察性应答关联推断治疗因果机制。
3. 三层分母:16,291 个细胞、48 份活检、32 位患者
这组数据的起点是分母链:
| 层级 | 数量 | 合理用途 | 不能替代的层级 |
|---|---|---|---|
| feature | 55,737 | processed 表达与可检验性审计 | 未处理计数层的过滤历史 |
| cell | 16,291 | 低维结构、派生谱系和程序分布 | 患者群体的独立重复 |
| 矩阵样本标签 | 57 | 文件内样本账本 | 57 份独立活检 |
| GEO biopsy | 48 | 活检设计、细胞产量、描述性组成 | 48 位患者 |
| patient | 32 | 临床关联的生物学层级 | 外部人群泛化 |
| Pre patient | 19,9 R / 10 NR | 基线患者级关联 | 富集范围敏感性;基线均为 unsorted |
| Post conflict-free patient | 22,6 R / 16 NR | 治疗后患者级关联 | 两个独立复制队列 |
| stable paired patient | 7 | 描述性 Pre→Post 个体变化 | 总体治疗效应 |
16,291 个细胞分布在 48 份活检中,但这些活检只来自 32 位患者。治疗前有 5,928 个细胞、19 份活检、19 位患者;治疗后有 10,363 个细胞、29 份活检、24 位患者。因为部分患者在治疗后有不止一份活检,所以“活检数”和“患者数”在 Post 阶段明显分开。矩阵中的 57 个 sample label 进一步说明,文件内标签也不等同于独立生物样本:若只按列名计数,很容易夸大样本量。
主要 T/NK 定义包含 10,095 个细胞。这个数是细胞层分母,用于构建 T/NK 内部程序、聚类和活检内比例;临床模型的独立单位仍然是患者。
4. Figure 04:先把活检设计摆在统计结果之前

图 04 每一行是一份活检。左侧蓝色条表示该活检进入矩阵的全部细胞数,中间橙色条表示其中符合既定 T/NK 定义的细胞数,右侧三列依次编码时间点、应答和治疗方案。直接数据来源是逐活检元数据与逐细胞映射;图的描述单位是活检,临床推断单位仍是患者。
这张图展示细胞产量差异:有的活检只有百余个细胞,有的超过六百;T/NK 子集也从很少到三百余个不等。条形长短受到取样、分选、测序产量和入库流程共同影响,不能直接解释为肿瘤内某类细胞的真实丰度。同一患者可在多个时间点出现,也可在同一时间点出现多份材料。例如 P3 在 Post 有 Post_P3 与 Post_P3_2,P28 和 P23 也有重复的 Post 活检。若把每一行直接送入临床模型,这些患者会因活检较多而获得更高权重。
图中 Pre 共有 19 行,恰好对应 19 位患者;Post 有 29 行,却只对应 24 位患者。这个不对称决定了后续两类问题必须分开:横断面的应答关联以每位患者一个汇总值建模;纵向变化则先在 patient × timepoint × response × therapy 层面等权归并同层多份活检,再形成每位患者的 Pre 和 Post 值。
5. Figure 03:富集属于取样设计

公开矩阵中,unsorted 有 15,300 个细胞,T-enriched 有 873 个,myeloid-enriched 有 118 个。图 03 在同一组 16,291 个细胞坐标上叠加富集标签:灰色未富集细胞构成主体;蓝色 T 富集细胞主要落在大的 T/NK 连续区域;红色髓系富集细胞更多出现在髓系相关的分离区域,但并不只占据单一孤岛。
这张图允许的解释是:进入公开矩阵的细胞结构受取样与富集方案影响,后续组成比较必须披露这一点。它不允许我们逆推出未分选肿瘤组织的真实免疫构成,更不能把富集标签本身当成某种生物机制。尤其要注意,基线 5,928 个细胞全部来自 unsorted 材料,所以基线不存在“全部材料”和“仅未富集材料”两种可比较范围。治疗后的两种范围分析才有意义,但它们只是对取样定义的敏感性检查。
6. Figure 01:全局谱系结构能说明什么

图 01 使用全部 16,291 个 eligible cells,并以保守的 broad-lineage 派生标签着色。计数为:T 5,786、NK 2,807、B cell 1,953、myeloid 1,593、DC/APC 666、melanoma 405、ambiguous 3,081,总和正好回到 16,291。
几何上,B 细胞形成左上相对独立的区域,髓系与 DC/APC 在左下区域较集中,T 与 NK 主要占据右侧大结构;melanoma 数量较少,ambiguous 细胞则广泛分布并与多个区域混合。这里保留 3,081 个 ambiguous,体现了 processed assay 的分辨率边界:当广谱标记不能支持唯一谱系时,不应为了图例整齐而强行归类。
UMAP 的距离只反映所用表达空间、邻域参数和嵌入算法下的局部相似性。它可以帮助发现离群区域、混合区和潜在批次结构,却不能证明细胞从左向右分化,两个岛之间的空白也不包含变化方向。图 01 的角色是结构审计,不进入患者级 P 值计算。
7. Figure 02:按患者着色是在检查个体结构,不是在看疗效

图 02 沿用图 01 的坐标,把 16,291 个细胞按 32 位患者着色。图中刻意不放逐患者图例,这样可以避免把 32 种颜色误读为应答或治疗分组。这里每个点仍是一枚细胞,颜色仅表示它来自哪位患者。
可以看到,多数主要区域由多位患者共同贡献,但局部也存在某些颜色集中、成带或形成小团块的现象。这说明个体来源可能参与塑造低维结构。它提醒我们:如果在细胞层直接做应答检验,患者内高度相关的细胞会被错误当作大量独立重复,较多细胞的患者还会主导估计。正确做法是先在患者内汇总,再比较患者之间的差异。
图 02 不能告诉我们某一颜色对应 responder 还是 non-responder,也不能证明患者特异区域是临床效应。患者浓集可能同时来自生物差异、活检部位、富集方案、测序产量和其他未建模因素。它提供的是“必须把 patient 放回模型”的证据,而不是某个治疗结论。
8. T/NK 状态:先分开“程序构建”和“标签检查”
主要 T/NK 分母为 10,095 个细胞。分析使用 31 个预先登记的构建基因形成 memory_TCF7、cytotoxic、dysfunction、Treg、cycling 与 IFN 等程序,并在 1,800 个高变 feature 的表达空间中完成 PCA、UMAP 与 k=8 聚类。计算流程先拟合 35 个 PCA 成分,再把前 25 个成分用于 cosine 距离的 UMAP(n_neighbors=25、min_dist=0.25)和 KMeans(n_init=20、random_state=20260721);k=8 是标签判定采用的工作分辨率,k=6、10、12 只用于稳定性审计。另有 25 个留出基因不参与程序构建、高变 feature 选择或聚类拟合,只用于聚类形成后的同 assay 检查;两组基因的 symbol overlap 为 0。
这种分离只能降低“用同一批标记既出题又判卷”的循环论证,不能把留出面板升级成独立实验。它仍来自同一批细胞、同一测序平台和同一 processed 矩阵,因而属于内部支持。外部独立确认还需要新的队列、蛋白层、空间定位或功能实验。
标签接受规则同时考察四件事:构建程序的绝对强度、第一名与第二名的间隔、留出面板的检测率及面板间分离、非共享留出基因的支持数。最终 8 个聚类中,cluster 2 为 cycling、cluster 4 为 cytotoxic、cluster 6 为 memory_TCF7;clusters 1、5、7 为 Ambiguous;clusters 0、3 为 Unsupported。按聚类内细胞数计,3 个 exact clusters 共 3,717 个细胞,约占 T/NK 的 36.8%;3 个 Ambiguous clusters 共 3,651 个,约 36.2%;2 个 Unsupported clusters 共 2,727 个,约 27.0%。因此,不能把全部 10,095 个 T/NK 细胞都说成获得了确定的现代细胞类型名称。
9. Figure 11:灰色区域是结果的一部分

图 11 把通过证据阈值的三个聚类分别标为 memory_TCF7、cytotoxic 和 cycling,其余区域用 Ambiguous 与 Unsupported 两级灰色表示。直接数据来源是 T/NK 细胞表达嵌入与 k=8 聚类;每个点是一枚 T/NK 细胞,标签判断发生在 cluster summary 层面,图本身是结构展示而不是临床推断。
三个 exact 状态在 UMAP 上各有相对集中的区域:cycling 主要位于左侧,cytotoxic 主要占据中右部,memory_TCF7 更多分布于右上。与此同时,灰色区域并没有被这三种颜色完全包围或自然切断,部分状态之间也存在明显混合。这与免疫状态可能连续变化相容,但“相容”不等于已经证明连续轨迹。灰色细胞比例超过六成;如果把它们强行分给最近的彩色状态,后续比例和应答关联会获得虚假的确定性。
主标签接受条件为:construction top absolute ≥0.15、construction top-second margin ≥0.10、held-out target detection ≥0.10、held-out target-versus-second margin ≥0.10;目标状态还必须是 held-out panel 的第一名,并且至少有 2 个非共享 held-out genes 同时满足 cluster-standardized mean >0 与检测率 ≥0.10。这些是约定门槛,不是根据本队列结果优化出的 cut point。k=8 的 5 个替代 KMeans(n_init=10;seed 11、29、47、83、131)相对参考分区的 ARI 为 0.9305–0.9684,分区相似但并不完全一致。标签敏感性分析覆盖 81 组网格:construction absolute {0.10,0.15,0.20} × construction margin {0.05,0.10,0.15} × held-out detection {0.05,0.10,0.20} × held-out margin {0,0.10,0.20};exact cluster 数在 81 组中均为 3,其中 54 组得到 3 exact / 3 Ambiguous / 2 Unsupported,27 组得到 3 exact / 1 Ambiguous / 4 Unsupported。阈值变化会影响不确定聚类如何在 Ambiguous 与 Unsupported 之间移动,却没有把 exact 数扩展到 4 或更多;这只能说明所考察网格下达到全部条件的聚类数为 3,不能把八个聚类都视为稳定命名。
10. Figure 12:为什么 TIGIT 和 LAYN 都不能单独决定标签

图 12 的颜色表示聚类内平均 logTPM,点大小表示检测比例。面板包括 memory_TCF7 的 LTB、SELL、NOSIP、MAL,cytotoxic 的 CCL5、CTSW、GZMH、KLRG1、FGFBP2,dysfunction 的 HLA-DRB1、CD38、CXCL13、TNFRSF9、LAYN,Treg 的 TIGIT、BATF、TNFRSF18,cycling 的 MCM5、PCNA、CDK1、CENPF,以及 IFN 的 IFI6、XAF1、OASL、IFI44L。高丰度且缺乏状态特异性的 MALAT1 已从判定中排除。
Cluster 2 的 cycling 构建程序与 MCM5、PCNA、CDK1、CENPF 留出面板一致;cluster 4 的 cytotoxic 构建程序与 CCL5、CTSW、GZMH、KLRG1、FGFBP2 一致;cluster 6 的 memory_TCF7 构建程序与相应留出面板一致。这三者因此达到 exact 标准。
Cluster 5 展示了单基因直觉与面板证据的冲突。它在构建程序中排名第一的是 dysfunction,但与第二名的 margin 只有 0.030141;留出面板第一名却是 Treg。TIGIT 在 cluster 5 中较高,却也在 clusters 2 和 0 中较高。TIGIT 既可出现在调节性程序中,也与活化状态共享,不能凭一个基因把 cluster 5 命名为 Treg。HLA-DRB1、CD38、TIGIT 都属于共享度较高的活化或调节相关标记,因此不计入“至少两个非共享留出基因”的最低支持数。Cluster 5 最合理的结论是 Ambiguous,而不是在 dysfunction 和 Treg 中二选一。
Cluster 7 的构建程序第一名是 cytotoxic,留出面板第一名却是 dysfunction。LAYN 在 cluster 7 的平均 logTPM 为 1.7956,为各聚类最高;检测率为 0.2291,略低于 cluster 5 的 0.2347。构建程序的分离度仍不足,LAYN 提供了有价值的 dysfunction 线索,却不能越过整个面板与构建证据的冲突,因此 cluster 7 仍为 Ambiguous。
Cluster 3 在构建程序中更接近 Treg,留出面板却更接近 memory_TCF7,被列为 Unsupported;cluster 0 的构建程序更接近 cytotoxic,留出面板更接近 IFN,同样 Unsupported。图 12 的作用是展示单基因直觉需要服从预先规定的面板级证据。
11. Figure 05:活检内 T/NK 构成很不均一,但分母必须写清

图 05 保留全部 48 份活检,并按 Pre/Post 与 responder/non-responder 分成四个面板。每条横柱代表一份活检,柱内各颜色之和为 100%;分母只包括该活检中符合既定 T/NK 定义的细胞。状态由构建程序规则派生,颜色包括 memory_TCF7、cytotoxic、dysfunction、Treg、cycling、IFN 与 mixed/low。这里的程序型分配不等同于图 11 的 cluster exact label,尤其是 Treg、dysfunction 及 mixed/low 需要与标签不确定性一起阅读。
图上可以看到明显的活检间差异。基线 responder 面板中,部分样本的 memory_TCF7 占比较高,也有样本以 cytotoxic 为主;基线 non-responder 中,有的活检以 cycling 或 cytotoxic 为主,有的 dysfunction、Treg 或 IFN 比例更高。Post 两个面板同样没有统一模板,甚至同一患者的不同 Post 活检也可能呈现不同构成。这样的图能说明“公开样本中的 T/NK 程序构成高度异质”,却不能单凭肉眼判断某一状态在患者群体中整体增加。
四个面板的活检数与患者数也提醒我们不要把图示分母直接带入模型:Pre responder 为 9 biopsies / 9 patients,Pre non-responder 为 10 / 10;Post responder 为 8 / 8,Post non-responder 为 21 / 18。Post 的 P1、P5 存在应答标签冲突,描述图可以如实展示相应活检,临床应答模型却必须排除冲突患者。图 05 是活检层描述,不是患者层显著性检验,也不是原始肿瘤组织的免疫组成测量。
12. 基线应答模型:19 位患者,而不是 5,928 个独立观测
基线纳入 19 位患者,其中 responder 9 位、non-responder 10 位;5,928 个基线细胞全部来自 unsorted 材料。每位患者先得到 T/NK 程序均值和在既定 T/NK 分母内的程序状态比例,再拟合 outcome ~ responder + C(therapy)。responder 系数表示在治疗方案校正后的 R−NR 差异。
每个 outcome 同时经过四种互补检查。HC3 标准误处理小样本线性模型中的异方差;治疗方案分层精确枚举在保持各治疗层应答人数的条件下穷举 4,950 种标签配置;2,000 次患者级重抽样给出区间,并在秩不足时显式记为失败而非悄悄补值;逐一留出患者检查效应方向是否由单个患者决定。HC3 与 exact 的 P 值分别在同一个 20-outcome baseline family 中做 BH:这 20 行由主要 T/NK 分母的 10 个 outcome 与 strict-T 分母的 10 个 outcome 组成,两个 P 值序列各自校正。它们不能混成一个二元标签。
13. Figure 13:效应大小与 HC3 区间只是证据的一层

图 13 横轴为治疗方案校正后的 responder−non-responder 效应,点为估计值,线为 HC3 95% 区间。正值表示 responder 较高,负值表示 non-responder 较高。图中 memory_TCF7 为正,其余四个程序得分为负;dysfunction 的 HC3 区间不跨 0,cytotoxic 的未校正 HC3 区间也不跨 0,而 cycling 和 IFN 的区间跨 0。
但是,图 13 不显示 family-level BH、精确枚举、患者重抽样或逐一留出结果,所以不能只凭误差线宣布结论。下面列出主要 T/NK 分母下全部 10 个 outcome,避免只挑选支持最强的行。表中 q 值按上述 20 行联合 family 计算,不是主要 T/NK 与 strict-T 各自 10 行分开校正。
| T/NK outcome | 调整效应 R−NR | HC3 BH q | exact BH q | 患者重抽样 95% 区间 |
|---|---|---|---|---|
| memory_TCF7 score | +0.3382 | 0.0363 | 0.0141 | [0.1291, 0.6019] |
| memory_TCF7 fraction | +0.2001 | 0.0262 | 0.0141 | [0.0880, 0.3383] |
| cytotoxic score | −0.4175 | 0.0852 | 0.0229 | [−0.6799, −0.1678] |
| cytotoxic fraction | −0.0536 | 0.5340 | 0.4754 | [−0.2177, 0.0614] |
| dysfunction score | −0.4020 | 0.0262 | 0.0246 | [−0.6442, −0.1470] |
| dysfunction fraction | −0.0607 | 0.1929 | 0.1982 | [−0.1380, −0.0020] |
| cycling score | −0.4536 | 0.1522 | 0.0156 | [−0.7629, −0.1306] |
| cycling fraction | −0.1108 | 0.2335 | 0.0259 | [−0.2033, −0.0199] |
| IFN score | −0.3331 | 0.1398 | 0.0603 | [−0.6168, 0.0018] |
| IFN fraction | −0.0610 | 0.2631 | 0.1861 | [−0.1383, 0.0218] |
memory_TCF7 score 与 fraction 在 HC3-BH、exact-BH 和重抽样区间三条线上均得到同向支持,是基线结果中最一致的一组。dysfunction score 也同时通过两条 BH 校正,重抽样区间不跨 0。相对地,cytotoxic score、cycling score 和 cycling fraction 由 exact-BH 支持,但 HC3-BH 未通过;这可能反映小样本下参数近似、治疗分层离散排列和多重校正方式的差异。合理写法是“存在方向明确、值得预注册验证的关联”,而不是“不同方法共同确认”。IFN score 在两条 BH 链中均未通过,不能升级为阳性发现。
严格 T 细胞定义作为分母敏感性分析,同样完整报告 10 个 outcome:
| strict-T outcome | 调整效应 R−NR | HC3 BH q | exact BH q | 患者重抽样 95% 区间 |
|---|---|---|---|---|
| memory_TCF7 score | +0.3610 | 0.0683 | 0.0156 | [0.0723, 0.6451] |
| memory_TCF7 fraction | +0.2197 | 0.0363 | 0.0156 | [0.0625, 0.3762] |
| cytotoxic score | −0.3735 | 0.0640 | 0.0156 | [−0.6080, −0.1357] |
| cytotoxic fraction | −0.0298 | 0.4780 | 0.4754 | [−0.1100, 0.0295] |
| dysfunction score | −0.4090 | 0.0262 | 0.0182 | [−0.6487, −0.1575] |
| dysfunction fraction | −0.0573 | 0.2631 | 0.2945 | [−0.1467, 0.0154] |
| cycling score | −0.4337 | 0.1214 | 0.0156 | [−0.7007, −0.1510] |
| cycling fraction | −0.1114 | 0.1550 | 0.0250 | [−0.1923, −0.0296] |
| IFN score | −0.3470 | 0.1214 | 0.0603 | [−0.6389, −0.0034] |
| IFN fraction | −0.0746 | 0.2631 | 0.1568 | [−0.1679, 0.0202] |
严格 T 定义没有推翻主要方向:memory_TCF7 仍为正,cytotoxic、dysfunction、cycling、IFN 程序得分仍为负。但它也没有消除方法差异。memory_TCF7 score 在 strict-T 下 exact-BH 通过而 HC3-BH 为 0.0683;memory_TCF7 fraction 和 dysfunction score 则在两条链中均得到支持。分母敏感性的一致方向增加了内部可信度,却仍不是独立队列确认。
14. Figure 09:逐一留出患者检验的是“有没有单人扭转方向”

图 09 对 19 位基线患者依次留出一位,每次用剩余 18 位重新拟合治疗方案校正模型。每个箱线分布因此包含 19 个重估效应。memory_TCF7 的 19 个留出估计全部为正,范围约 +0.2413 至 +0.3982;cytotoxic 全部为负,约 −0.5376 至 −0.3769;dysfunction 全部为负,约 −0.4638 至 −0.3569;cycling 全部为负,约 −0.5084 至 −0.2749;IFN 全部为负,约 −0.4164 至 −0.1976。严格 T 分母下五个程序的方向同样在 19 次重估中均未翻转。
这说明基线程序得分的正负方向不是由某一位患者单独造成。它并不意味着所有模型都达到同等统计支持:cytotoxic 和 cycling 的 HC3-BH 与 exact-BH 仍然分歧,IFN 的两条 BH 链仍未通过。LOO 回答的是影响点问题,不回答外部可重复性问题,也不能替代新患者队列。
还要区分“方向稳定”和“大小稳定”。例如 memory_TCF7 的所有估计均为正,但从约 0.24 到 0.40 仍有明显幅度变化;IFN 虽始终为负,离 0 最近的留出估计约 −0.20,证据强度也弱于 memory_TCF7。将 LOO 与主模型、精确枚举和重抽样同时阅读,才能避免把一个漂亮箱线图当成最终裁决。
15. Figure 08:全转录组没有 BH discovery,本身就是重要结果

图 08 先在每位基线患者内聚合 T/NK 表达,再比较 9 位 responder 与 10 位 non-responder。横轴为 responder−non-responder 的平均 log2(TPM+1) 差异,纵轴为 Welch P 的 −log10。灰点是有效检验且 P≥0.05 的 feature,橙点是未经家族校正的 P<0.05 候选;虚线只表示名义阈值。统计单位是 baseline patient mean,而不是单个细胞。
五个必须同时报告的分母为:总 feature 55,737;具有有效 Welch P 的 42,011;常数或统计量未定义的 13,726;名义 P<0.05 的 2,562;BH q<0.05 的 0。13,726 个未定义行没有进入纵轴,不能被说成“有效检验但阴性”;它们属于不可检验或退化统计量。反过来,2,562 个橙点也不能被说成发现,因为在 55,737 行构成的预定检验家族中,没有任何一个通过 BH 阈值。
名义排序前列可见 FOXP1、MGAT4A、ARF6、SELL 等基因,但最小 BH q 仍约为 0.701。它们可以用于生成后续实验问题,例如是否在独立患者、特定 T 细胞亚群或蛋白层复核,却不能在当前队列中冠以应答基因集或分子标志物。大规模检验中“有两千多个 P<0.05”并不反常;若 55,737 个彼此相关的假设中完全没有多重校正发现,诚实结果就是 0。
从检验家族角度看,程序级分析可以把多个预先指定基因压缩为少量生物学维度,因而比逐 feature 扫描拥有更小的检验负担;全转录组扫描则在极宽的假设空间中承担更严的多重校正。前者出现有限支持、后者没有 BH discovery,并不矛盾。不严谨的做法,是在程序结果旁边挑几个橙点,拼成一条仿佛被全转录组确认的叙事。
16. 治疗后关联:两个 sampling scope,共用同一批 22 位患者
Post 阶段原有 24 位患者。P1 与 P5 的不同 Post 记录出现 response conflict,因此不能把冲突标签平均后塞进应答模型;排除两人后,每个分析范围均有 22 位 conflict-free patients,其中 6 位 responder、16 位 non-responder。
两个范围分别是 all-available 和 unsorted-only。前者使用患者可用的全部 Post 材料,后者只用未富集材料。每个范围都先筛选 eligible T/NK 细胞,再按 patient × response × therapy 合并同一患者在该范围内的所有细胞;score 是细胞层均值,fraction 是这些细胞中 state_call 的比例,多份活检因此按 eligible cell 数进行 cell-weighted pooling。等活检权重只用于后面的 patient-time 纵向主图。二者恰好包含同一组 22 位患者,所以差异主要反映取样范围如何改变患者汇总值。它们不是两个独立样本集,更不是一次发现加一次复制。
每个 scope 的 10 个 outcome 均拟合 therapy-adjusted HC3 模型,完成 6,800 次治疗分层精确排列、2,000 次秩感知患者重抽样,并在 scope 内分别做 BH。下表完整列出效应和两条 BH 结果:
| Post outcome | all effect / HC3 q / exact q | unsorted effect / HC3 q / exact q |
|---|---|---|
| memory_TCF7 score | +0.2948 / 0.0307 / 0.0728 | +0.2905 / 0.0538 / 0.1168 |
| memory_TCF7 fraction | +0.2187 / 0.00912 / 0.02868 | +0.2150 / 0.01826 / 0.03750 |
| cytotoxic score | −0.1686 / 0.2081 / 0.2350 | −0.1943 / 0.1559 / 0.2056 |
| cytotoxic fraction | −0.0198 / 0.7560 / 0.7912 | −0.0270 / 0.6689 / 0.7209 |
| dysfunction score | −0.3269 / 0.00912 / 0.06667 | −0.3330 / 0.00863 / 0.08480 |
| dysfunction fraction | −0.0652 / 0.1310 / 0.2002 | −0.0636 / 0.1559 / 0.2056 |
| cycling score | −0.2908 / 0.03683 / 0.2252 | −0.2761 / 0.05134 / 0.2056 |
| cycling fraction | −0.0759 / 0.05455 / 0.2252 | −0.0683 / 0.08012 / 0.2056 |
| IFN score | −0.3527 / 0.000070 / 0.02868 | −0.3507 / 0.000003 / 0.03750 |
| IFN fraction | −0.0649 / 0.01271 / 0.09059 | −0.0601 / 0.00253 / 0.1168 |
两条 scope 中最一致的结果有两项。其一,memory_TCF7 fraction 在 all-available 中效应 +0.2187,HC3 q=0.00912、exact q=0.02868,重抽样区间 [0.0921, 0.3322];在 unsorted-only 中效应 +0.2150,HC3 q=0.01826、exact q=0.03750,区间 [0.0860, 0.3472]。其二,IFN score 在 all-available 中效应 −0.3527,HC3 q=0.000070、exact q=0.02868,区间 [−0.4892, −0.2249];在 unsorted-only 中效应 −0.3507,HC3 q=0.000003、exact q=0.03750,区间 [−0.4884, −0.2387]。两种取样范围给出几乎相同方向与幅度,说明这两项对是否纳入富集材料相对不敏感。
其余结果必须保留方法差异。memory_TCF7 score 在 all-available 的 HC3-BH 通过,但 exact q=0.0728;在 unsorted-only 中两条 BH 均未通过。dysfunction score 的 HC3-BH 在两范围均通过,exact q 分别为 0.0667 和 0.0848。cycling score 只有 all-available 的 HC3 q 略低于 0.05,精确链并不支持。IFN fraction 的 HC3-BH 通过,exact q 为 0.0906 和 0.1168。把这些行一概称为“显著降低”会掩盖小样本方法对结论等级的实际影响。
Post LOO 对每个 scope×outcome 留出 22 位患者中的一位。除 cytotoxic fraction 外,列出的其余程序得分和比例在所有留出拟合中均保持原方向。cytotoxic fraction 共出现 3 次方向翻转:all-available 留出 P21 或 P4 时翻转,unsorted-only 留出 P4 时翻转。这与其接近 0 的主效应和较大的 q 值一致,说明它既无统计支持,也缺乏方向稳健性。
治疗后应答关联也不等同于“治疗造成了这些程序变化”。Post responder 与 non-responder 的差异可能同时反映基线差异、治疗选择、活检时点、存活选择和其他临床因素。这里的模型回答的是同一队列治疗后时点的横断面关联,不是反事实治疗效应。
17. Figure 07:7 位患者的纵向图,重点是异质性而不是平均箭头

构建纵向图前,48 份活检先被折叠为 45 个唯一 patient × timepoint × response × therapy strata:Pre 19 个,Post 26 个。同一 stratum 内如有多份活检,先对每份活检的患者级程序值做等权算术平均,使活检数不会改变该 patient-time 的权重。随后只保留 Pre 与 Post 的 therapy 和 response 标签均稳定、且两时点都可用的患者,得到 P12、P15、P2、P20、P3、P7、P8 共 7 位。每个程序因此恰好 7 条线,5 个程序共 35 行。这里的等活检规则只用于纵向 patient-time;Post 横断面模型仍采用上一节所述的细胞加权合并。
P3 是归并规则为何必要的直观例子。其 Post_P3 与 Post_P3_2 先等活检权重合成为一个 Post patient-time,得到 memory_TCF7 0.113276、cytotoxic 0.149598、dysfunction −0.002133、cycling −0.129427、IFN −0.261648。若把两份 Post 活检画成两位患者,或按细胞数加权,P3 会被重复计权,图中的斜率也会改变。
从 7 位患者的描述性 delta 看,dysfunction 有 6/7 上升,简单均值约 +0.1744;cytotoxic 有 5/7 下降,均值约 −0.0432;memory_TCF7 为 4 升 3 降,均值约 −0.1048,明显受少数大幅个体变化影响;cycling 为 4 升 3 降,均值约 +0.0053;IFN 为 4 升 3 降,均值约 +0.0043。图中不绘制组均值、置信区间或 P 值,正是为了避免把七条复杂个体轨迹压成一个貌似确定的总体箭头。
例如 memory_TCF7 面板中,有患者从约 0.50 降到负值,也有患者从负值上升;cytotoxic 面板既有明显下降,也有一位从接近 0 上升到约 0.63;dysfunction 虽多数上升,仍有一位下降;cycling 与 IFN 更接近双向混合。这些模式显示治疗过程中个体差异较大,适合提出后续问题,却不足以声称治疗普遍提高或降低某程序。
另有按活检 episode 整理的 14 对记录、涉及 11 位患者,可用于审计哪些活检形成配对,但不能代替上述 patient-time 主图。episode 数比患者数大,本身就说明把 episode 当作独立患者会重复计权。P1、P5 的时点内 response conflict 也不能被静默平均后放入稳定主集。
18. 与原论文的关系:一致、部分一致与未覆盖
在概念方向上,这次再分析与原论文关于 TCF7 相关记忆样状态和应答之间联系的主要叙述相容。基线 memory_TCF7 score 与 fraction 均为正,治疗后 memory_TCF7 fraction 在两种取样范围下也为正,并且基线 score 的 19 次 LOO 无方向翻转。这样的内部一致性说明,TCF7 相关程序的方向没有被某一张图或某一个患者单独决定。
但“相容”不等于对原文全部结论逐项确认。当前使用的是作者公开的 processed 表达层,无法回到更早的测序和过滤环节;原论文有关固定组织中 TCF7、独立材料、表观遗传状态、克隆性与功能实验的证据不在本文分析范围内;当前标签体系有意保留 3 个 Ambiguous 与 2 个 Unsupported 聚类,不能把它们直接对应到原论文或后来文献中的所有精细亚群;当前统计重点是患者级 association,不建立预测性能,也不估计临床可迁移阈值。
对 dysfunction 的结果属于“部分一致但定义需谨慎”。程序得分在基线两条校正链中均为负,Post 的 HC3 方向也为负;然而 cluster 5 和 cluster 7 的标签证据存在冲突,说明程序关联不能自动转换成“某个确定耗竭细胞群减少”。Program score、cluster label 和 biopsy fraction 是三个不同对象:一个患者可在多个细胞中呈现连续程序强度,而不必拥有一个边界清晰、被单一名称概括的离散亚群。
对 cytotoxic 和 cycling,则应把方法分歧视为结果的一部分。基线 exact-BH 支持负方向,HC3-BH 未通过;Post 的精确链不支持。它们可以成为独立队列中的预设候选,但当前证据不足以建立稳定应答标志。全转录组 BH discovery 为 0,也意味着不能再从名义基因列表中寻找“第二套确认”来弥补这一不足。
19. 深度解读:这篇再分析应该怎么读?
程序与单基因:memory_TCF7 的支持来自预先定义的程序、比例、治疗校正、精确枚举、重抽样和 LOO 的共同结构,而不是因为 TCF7 或 SELL 在某一张图上颜色很亮。相反,TIGIT 与 LAYN 的案例表明,即使一个熟悉标记在某聚类较高,也必须检查它是否共享、是否有第二个非共享基因支持、构建程序是否分离、整个留出面板是否一致。
效应大小与不确定性:基线 cytotoxic score 的调整效应约 −0.42,重抽样区间不跨 0,exact q 也通过,但 HC3 q=0.0852;cycling score 的差异更明显。对 19 位患者的小样本,离散精确检验与渐近稳健标准误对稀疏治疗层和效应分布的反应不同。保留两者,比挑一条对叙事更有利的方法更有信息量。
独立单位:16,291 个点决定表达结构的分辨率,却不能把基线临床样本量从 19 变成几千。治疗后 29 份活检也不能把 24 位患者扩成 29 位。患者级聚合会牺牲表面上的巨大 n,却换来与研究问题一致的误差结构。
取样范围:Post all-available 与 unsorted-only 的 memory_TCF7 fraction、IFN score 非常接近,说明结果对是否纳入富集材料相对稳定;但两条分析使用相同 22 位患者,相关性很高。跨样本复制需要新的患者,不能用同一批患者更换纳入规则来替代。
阴性检验家族:全转录组 2,562 个名义候选很容易写成长篇基因叙事,但 BH q<0.05 为 0 才是预定家族的结论。阴性结果并不空洞:它告诉我们当前患者数无法在如此宽的 feature 空间中稳定定位单基因差异,也提示后续研究应预先缩小假设、增加患者或使用独立数据确认。
纵向个体:7 位稳定患者的图显示,多数程序都存在双向变化。即便 dysfunction 有 6/7 上升,样本仍太小,而且保留标准会选择标签稳定、两时点可用的人群。把它称为治疗诱导总体变化,会越过数据设计能够支撑的边界。
20. 结论审计:支持、探索与禁止外推
支持但有限定
- processed Smart-seq2 log2(TPM+1) 矩阵的维度为 55,737 × 16,291,细胞可闭合映射到 48 份活检和 32 位患者。
- 全局低维结构显示 broad lineage、患者来源与富集标签均与局部分布有关,因此患者和取样设计不能从统计模型中省略。
- k=8 只有 cycling、cytotoxic、memory_TCF7 三个聚类达到 exact 标签标准;3 个 Ambiguous 和 2 个 Unsupported 被保留下来。
- 基线 19 位患者中,memory_TCF7 score、memory_TCF7 fraction 与 dysfunction score 在主要 T/NK 分母下得到 HC3-BH 与 exact-BH 的共同支持,结论限于本队列关联。
- 基线全转录组 42,011 个有效 Welch 检验中,BH q<0.05 为 0。
- Post 同一组 22 位 conflict-free patients 中,memory_TCF7 fraction 与 IFN score 在 all-available 和 unsorted-only 两范围方向一致,并由两条 BH 链支持。
- 纵向主图正确地以 7 位患者为 7 条线,并对同一 patient-time 的多份活检等权归并。
探索性
- 基线 cytotoxic 与 cycling 的部分 outcome 得到 exact-BH 支持但没有通过 HC3-BH,可作为后续研究预先指定的候选。
- 全转录组名义 P<0.05 的 2,562 行可用于提出新假设,但不是当前研究的 discoveries。
- Ambiguous 与 Unsupported 聚类可能包含连续状态、混合状态或当前面板未覆盖的生物学,需要新队列和其他测量层确认。
- Post 两种取样范围的一致方向提示部分结果对 enrichment 纳入规则相对不敏感,但不构成独立复制。
- 7 位患者的 Pre→Post 轨迹提示个体变化高度异质,可用于设计更大的纵向研究。
当前数据不能支持
- 不能把 16,291 个细胞、48 份活检或多个 Post 记录当成同等数量的独立患者。
- 不能把既定 T/NK 内的比例解释为未分选肿瘤组织中的绝对或相对免疫丰度。
- 不能把同 assay 留出面板说成独立实验确认,也不能给全部 8 个聚类强行安上确定名称。
- 不能用 response association 判断新患者的个体结局、推断治疗导致的分子链条,或直接指导用药。
- 不能把 UMAP 几何解释为发育轨迹,也不能把七位患者的连线解释为总体治疗诱导效应。
- 不能把 all-available 与 unsorted-only 称作相互独立的验证人群。
- 不能把名义基因排序称作多重校正后的发现。
21. 对类似单细胞临床研究可复用的设计原则
样本账本应先于生物学图:至少要明确 feature、cell、sample label、biopsy、patient 和 patient-time 六个层级,并写出各层如何映射。只要患者可贡献多份材料,模型就必须说明归并或层级处理方式。
取样方案要作为设计变量:分选、富集、解离和入库会改变进入表达矩阵的细胞集合。组成图必须在标题或图注中写明分母;若只在某个子集内归一到 100%,就不能把结果外推到组织整体。
注释不确定性需要量化:构建基因与检查基因分离,规定绝对强度、第一第二名间隔、检测率和非共享基因支持数,并系统改变阈值。一个成熟的注释结果允许 Ambiguous 和 Unsupported 存在,而不是追求每个聚类都有漂亮名称。
统计方法应互相暴露弱点:小患者数研究中,稳健标准误、分层精确检验、患者重抽样和 LOO 回答不同问题。它们不必给出完全相同的结果;需要警惕只报告最有利的一条。
检验家族必须预先定义:程序级假设、比例假设、全转录组扫描和不同时间点应分别说明多重校正范围。名义 P 排序可保留,但必须与 family-level discovery 分开。
敏感性分析不等于复制:换分母、换取样范围、换聚合规则、换阈值,能够检查同一数据中结果是否依赖分析选择;只有新的患者材料才能回答跨样本复制。
每张图都应承担明确任务:全局 UMAP 用于结构审计,患者着色用于发现个体集中,富集着色用于暴露取样影响,活检条形图用于核对设计,森林图用于效应与区间,LOO 用于影响点,配对线用于展示个体变化。任何一张图都不应同时承担它没有统计依据的临床结论。
22. 小结
这份公开数据的价值来自可审计的层级结构:16,291 个细胞不能被当作独立重复,但 32 位患者、48 份活检和丰富的 T/NK 表达状态可以放在同一框架中核对。层级理顺后,结论数量会减少,可信度边界更清楚。
基线最稳固的线索是 responder 中较高的 memory_TCF7 程序及比例,以及较低的 dysfunction 程序得分;cytotoxic 与 cycling 的负方向值得关注,但精确枚举和 HC3-BH 的分歧要求降级表达。治疗后,memory_TCF7 fraction 和 IFN score 对两种取样范围相对稳定,但仍只是同一批 22 位患者中的横断面关联。全转录组没有 BH discovery,七位稳定患者的纵向变化高度异质,聚类注释也只有三个达到 exact 标准。
科学严谨要求每个结论都携带自己的分母、统计单位、方法差异和不可外推范围。对这份数据,稳妥的读法是区分已经看到的患者级信号与仍需下一批患者回答的问题。