# DeepGraph 免费层交付 · 单细胞空间域识别的"最小对照"实验

**提交方向**: 单细胞数据分析(Trajectory analysis / Spatial domain detection / Gene regulatory network)
**目标档位**: 把实验跑完,给数据和结果 · **投稿目标**: 未填写(按"扎实可发的普通期刊/会议"校准,非顶会 novelty 口径)
**交付时间**: 2026-08-07

---

## 0. 先说一个判断:三个关键词里,只有 Spatial domain detection 能在 CPU 上做出结论能站住的东西,而且真正值钱的不是再造一个方法,是补一个没人做的对照

- **和北大周沛劼老师团队正面比模型,我不建议。** 他们做的是时空动力学的生成式基础模型(stVCR 今年 3 月上了 Nature Methods),背后是理论 + 算力 + 长期积累。你从"再做一个更好的大模型"这个角度切进去,资源不对等,审稿人第一句话就是"和 stVCR 比呢"。
- **能差异化的位置是"可验证性",不是"更大的模型"。** 这条线现在最缺的是对照:Genome Biology 2025 的零样本评测发现,单细胞基础模型(scGPT / Geneformer)在聚类和批次校正上打不过"选高变基因"这种最土的做法;NAR 2025 的 19 方法评测也发现传统聚类在高噪声平台上反超大部分 GNN。**这类"结果居然不成立"的工作,普通期刊很吃,而且不需要算力。**
- 你写"算力约束:无",但**我们免费层这一轮只有 CPU(2 核可用 / 30GB / 60 分钟)**,所以这轮跑的是不需要 GPU 也能定生死的那一块:空间域识别里的**空模型对照**。
- Trajectory 和 GRN 这两条,CPU 上只能跑玩具规模,得不出对你有用的结论,这轮**不做**,理由在第 2 节。

---

## 1. 领域现状:空间域识别已经很挤,但"和什么比"这件事没标准

- **数量级**:NAR 2025 的系统评测一次就横向比了 **19 个方法**,跑了 30 个真实数据集 + 27 个模拟数据集、6 种测序平台。方法被分成四类:只用表达(Leiden / Louvain / Seurat)、表达+坐标(BayesSpace / STAGATE / GraphST / SpaGCN 等 10 个)、表达+H&E(MUSE / SpaCell)、三者都用(SpaGCN+ / stLearn / DeepST)。2025 年到现在新方法还在持续往外冒(SGCD、多视图 GCN+对比学习、持续同调等)。
- **审稿人默认你要比的对象**:SpaGCN(Nat Methods 2021)、STAGATE(Nat Commun 2022)、BayesSpace、GraphST。**基准数据集事实上只有一个**:LIBD 人前额叶皮层(DLPFC)12 张 Visium 切片,带人工标注的皮层分层(L1–L6 + 白质),指标是 ARI。
- **公认的数值坐标**:NAR 2025 里 GraphST 在 151673 切片上 ARI = 0.633 最高;SpaGCN 在 12 张切片上的中位 ARI = 0.44。GraphPCA(Genome Biology 2024)报告自己在 DLPFC 上 ARI = 0.536,并称这"接近不含空间信息的 PCA 的两倍"。
- **公认的难点(也是缺口所在)**:NAR 2025 的结论是"没有方法在所有数据上最好,最优方法取决于平台"。也就是说,**这条线上的排行榜是不稳的**——但几乎所有新方法论文仍然只汇报单次运行、两位小数的 ARI 表格。

---

## 2. 还开着的缺口(按可行性排序)

**缺口 A(小、确定、我们这轮就跑):零学习的"平滑基线"没人当对照做过完整报告。**
所有 GNN 方法本质上都在做一件事——把空间邻居的表达混进来。那么问题是:**只做邻居平均、不学任何参数,能拿到这些方法宣称收益的百分之多少?** 相关前作只有 SPCS(Brief Bioinform 2022),它发现平滑 + Louvain/mclust 在 DLPFC 上可以与 BayesSpace 相当——但 SPCS 本身是个带调参的两阶段方法,而且 2022 年之后的一大批 GNN 方法基本没把"最朴素的平滑"列进对照表。这个缺口还开着,是因为做它对方法学作者没好处(证明自己的复杂度不必要)。**做成了能发方法学评估/benchmark 类的中文核心、SCI 三四区。**

**缺口 B(小、和 A 同源):ARI 的"免费分数"没人量化。**
皮层是分层的、空间连续的。那么**任何**空间连续的划分,哪怕表达信息是纯噪声,都会天然拿到一个非零 ARI。这个"地板值"是多少?没有一篇论文报过。如果它是 0.2,那 0.44 和 0.53 之间的差距要重新解读。**这一条比 A 更有杀伤力,而且完全不需要算力。**

**缺口 C(大、这轮不做):空间域 → 域内 GRN → 域间轨迹 的端到端一致性。**
你的三个关键词其实是一条链,但现在三段各自评测,没人问"上游分域分错了,下游 GRN 和轨迹会错到什么程度"。这是个好问题,但需要多平台数据 + GPU 跑上游方法,**属于你自己有算力时该做的下一步,不是免费层这一轮能覆盖的**。

---

## 3. 评审会打你的三个点(提前堵)

1. **"你只做了 DLPFC 一个数据集/一个平台。"**
   这是最致命的一刀,因为 NAR 2025 已经白纸黑字说结论随平台变。**防法**:12 张切片全跑(不是挑一张),并且在讨论里明确写"本结论限于 10x Visium 分层组织,非 Visium 平台需另行验证"。主动划边界比被审稿人划便宜。

2. **"你的基线是不是没调参,拿弱基线打靶?"**
   评估类论文最常见的死法。**防法**:自变量做成网格(邻居数 k 全扫),公开每个格点的原始日志和随机种子,让人能复现;不做"我方法调到最好、对照用默认参数"这种事。

3. **"ARI 单指标,而且簇数用了真值 K。"**
   用真值 K 是这条线的通行做法,但审稿人可以质疑它注水。**防法**:同时报 NMI 和一个无标签的空间连贯性指标;再报**种子间标准差**——如果它比论文表格里两个方法的差距还大,那说明整条线的比较精度存疑,这本身是个可写的发现。

---

## 4. 我们这一轮真去跑的实验

选**缺口 A + B**(它们共用同一套流水线,一次跑完两个问题)。选它的理由:数据已验证可下载、算法只需 numpy/scipy/sklearn、CPU 几分钟一轮、而且**结论真有可能是反的**——反了也有信息量。

### 可被推翻的预测

> **P1(主)**:在 DLPFC 12 张切片上,一个不学任何参数的邻居平滑基线(log-normalize → kNN 均值平滑 → PCA(50) → GMM),最佳 k 下的**平均 ARI ≥ 0.40**,且相对 k=0(不平滑)的提升 **≥ +0.10**(12 切片配对 Wilcoxon,p < 0.05)。
> **推翻条件**:平均 ARI < 0.40,或提升 < 0.10,或 p ≥ 0.05 —— 任一命中即算 P1 被推翻,照报。推翻意味着"GNN 的收益不能用简单平滑解释",这对你反而是好消息(说明那条线是真有内容的)。

> **P2(次,但信息量更大)**:几何空模型(坐标保留、表达换成空间平滑的高斯噪声)的 **ARI ≤ 0.15**。
> **推翻条件**:若 > 0.25,说明这个数据集上相当一部分 ARI 来自"任何空间连续的划分"而非表达信息,**那么这条线上所有已发表的 ARI 比较都需要重估**。这条被推翻,比 P1 成立更值得写。

### 数据(已实测可下载,均为公开 LIBD/GitHub/S3,无需申请)

| 内容 | 来源 | 实测 |
|---|---|---|
| 12 张切片表达矩阵 | `https://spatial-dlpfc.s3.us-east-2.amazonaws.com/h5/{sample}_filtered_feature_bc_matrix.h5` | HTTP 206,12.9 MB/张,合计约 155 MB |
| 点坐标 | `HumanPilot/10X/{sample}/tissue_positions_list.txt` | 已下载,标准 6 列格式 |
| 人工分层真值 | `HumanPilot/10X/barcode_level_layer_map.tsv` | 已下载,47,329 barcode;151507–151510 与 151673–151676 各 7 层,151669–151672 各 5 层 |

> 环境备注:本机 `/usr/bin/python3.12` 已有 numpy 2.4.6 / scipy 1.18.0 / scikit-learn 1.9.0 / matplotlib 3.11.0,**缺 h5py 和 pandas,需 pip 装(均有 wheel,秒级)**。全流程不依赖 scanpy / torch / igraph。

### 臂(arms)

| 臂 | 是否 baseline | 做什么 |
|---|---|---|
| `baseline-nonspatial` | ✅ | k=0,完全不用坐标:log-normalize → top-2000 高变基因 → PCA(50) → GMM(真值簇数)。这是公平对照,因为它和实验臂**共用完全相同的预处理、降维、聚类和随机种子**,唯一差别就是有没有把邻居信息混进来 |
| `proposed-smooth-k` | ❌ | 同上,但在 log-normalize 之后做 `X' = 0.5·X + 0.5·mean(X over kNN)`,k ∈ {6,12,18,24}。**零参数、零训练** |
| `null-shuffle-expr` | ❌ | 空模型①:打乱表达矩阵与坐标的对应关系,坐标不动,跑最佳 k。ARI 应塌回随机水平 |
| `null-geometry-only` | ❌ | 空模型②:坐标不动,表达整体换成空间平滑的高斯噪声,跑最佳 k。**这一臂直接给出 P2 的答案** |

### 主指标

| 指标 | 口径 | 为什么要它 |
|---|---|---|
| `ari` | 预测域 vs 人工分层的 Adjusted Rand Index,簇数取该切片真值(7 或 5) | 这条线的通行指标,能直接和 NAR 2025 的 0.44 / 0.633 对话 |
| `nmi` | 同上,归一化互信息 | 堵第 3 节的"单指标"质疑 |
| `spatial_coherence` | 预测标签与其 6 近邻众数一致的点占比 | 无标签指标;用来检查 ARI 提升是不是纯粹被"变连续"这一件事买单 |
| `ari_seed_std` | 同切片同参数下 3 个种子的 ARI 标准差(越小越好) | 量化"两位小数比较"到底有没有意义 |

**自变量**:邻居数 k ∈ {0, 6, 12, 18, 24};聚类器 ∈ {GMM(full covariance,主), KMeans(稳健性检查)}。平滑权重 α 固定 0.5。

**统计口径**:3 个种子(0/1/2,作用于 PCA 随机 SVD 与聚类初始化);12 张切片全跑,报**跨切片均值 ± 标准差**与**种子内标准差**;所有臂共用同一预处理与同一算力预算;跨臂比较用 12 切片配对 Wilcoxon 符号秩检验。**负结果原样汇报,不改预测再解释。**

### 这一轮明确做不到的部分(先说清楚)

1. **我们不重跑 STAGATE / GraphST / SpaGCN。** 它们需要 GPU 和各自的依赖环境。所以我们只能把自己的数字和**论文发表的数字**并排放,这**不是受控比较**(预处理、高变基因数、簇数策略都可能不同)。这一点会在结果里显式标注,不含糊过去。你自己后续有 GPU 时,把这几个方法在同一预处理下重跑,才是完整的一篇。
2. **只有 10x Visium 一个平台、一个组织(人皮层)。** 不能外推到 Slide-seqV2 / Stereo-seq / seqFISH。
3. **不用 H&E 组织学图像**,所以和 stLearn / SpaGCN+ / DeepST 这类多模态方法不可比。
4. **不做 GRN、不做轨迹推断**——CPU 上只能做玩具规模,结论对你没用。
5. **不做簇数自动选择**,沿用真值 K(与被比较方法的通行做法一致),但这本身是个已知的注水点。

---

## 5. 参考来源

- [Benchmarking computational methods for detecting spatial domains and domain-specific spatially variable genes from spatial transcriptomics data — Kang et al., *Nucleic Acids Research* 53(7), 2025](https://pmc.ncbi.nlm.nih.gov/articles/PMC12000868/) (DOI: 10.1093/nar/gkaf303)
- [Zero-shot evaluation reveals limitations of single-cell foundation models — Kedzierska et al., *Genome Biology*, 2025](https://genomebiology.biomedcentral.com/articles/10.1186/s13059-025-03574-x)
- [Transcriptome-scale spatial gene expression in the human dorsolateral prefrontal cortex — Maynard et al., *Nature Neuroscience*, 2021(DLPFC 数据集原文)](https://www.nature.com/articles/s41593-020-00787-0)
- [LieberInstitute/HumanPilot — DLPFC 原始数据、点坐标与人工分层标注(本轮实验的数据入口)](https://github.com/LieberInstitute/HumanPilot)
- [SpaGCN: Integrating gene expression, spatial location and histology ... — Hu et al., *Nature Methods*, 2021](https://www.nature.com/articles/s41592-021-01255-8)
- [Deciphering spatial domains from spatially resolved transcriptomics with an adaptive graph attention auto-encoder (STAGATE) — Dong & Zhang, *Nature Communications*, 2022](https://www.nature.com/articles/s41467-022-29439-6)
- [SPCS: a spatial and pattern combined smoothing method for spatial transcriptomic expression — Liu et al., *Briefings in Bioinformatics* 23(3), 2022](https://pmc.ncbi.nlm.nih.gov/articles/PMC9116229/)
- [GraphPCA: a fast and interpretable dimension reduction algorithm for spatial transcriptomics data — *Genome Biology*, 2024](https://genomebiology.biomedcentral.com/articles/10.1186/s13059-024-03429-x)
- [stVCR: spatiotemporal dynamics of single cells — Peng, Zhou & Li, *Nature Methods*, 2026(周沛劼团队)](https://www.nature.com/articles/s41592-026-03010-3)
- [周沛劼 · 北京大学定量生物学中心课题组主页](https://cqb.pku.edu.cn/info/1002/2869.htm)

---

*本文档由 JouleBeat · DeepGraph 出具。文献结论来自公开检索,已标注出处;判断部分是我们的观点,可以被反驳。*

```json
{
  "task_slug": "spatial-domain-smoothing-null-control",
  "question": "在 DLPFC 12 张 Visium 切片上,一个零学习的 kNN 邻居平滑基线能拿到多少 ARI?以及一个只有几何、没有真实表达信息的空模型能白拿多少 ARI?",
  "falsifiable_prediction": "P1: 最佳 k 下平滑基线在 12 张切片上的平均 ARI >= 0.40,且相对 k=0 提升 >= +0.10(配对 Wilcoxon p<0.05);若平均 ARI < 0.40 或提升 < 0.10 或 p >= 0.05,则 P1 被推翻。P2: 几何空模型(坐标保留、表达替换为空间平滑高斯噪声)的 ARI <= 0.15;若 > 0.25 则 P2 被推翻,意味着该数据集上 ARI 存在显著的几何免费分数。两条均按实际结果照报。",
  "dataset": "LIBD Human DLPFC 10x Visium,12 张切片(151507-151510, 151669-151672, 151673-151676)。表达矩阵: https://spatial-dlpfc.s3.us-east-2.amazonaws.com/h5/{sample}_filtered_feature_bc_matrix.h5 (每张约 12.9MB,已实测 HTTP 206 可分段下载,需 h5py 读取)。点坐标: https://raw.githubusercontent.com/LieberInstitute/HumanPilot/master/10X/{sample}/tissue_positions_list.txt。人工分层真值: https://raw.githubusercontent.com/LieberInstitute/HumanPilot/master/10X/barcode_level_layer_map.tsv (已实测下载成功,47329 barcode,三列: barcode/sample/layer)。簇数按真值: 151507-151510 与 151673-151676 用 7,151669-151672 用 5。仅保留在 layer map 中有标注的点。预处理: 基因表达点数>=10 过滤 -> 库大小归一到 1e4 -> log1p -> 按方差取 top-2000 高变基因。",
  "arms": [
    {"name": "baseline-nonspatial", "is_baseline": true, "what": "k=0,完全不使用空间坐标: log-normalize -> top2000 HVG -> PCA(50) -> 聚类(真值簇数)。与实验臂共用完全相同的预处理/降维/聚类/种子,唯一差别是不做邻居平滑"},
    {"name": "proposed-smooth-knn", "is_baseline": false, "what": "在 log-normalize 之后按像素坐标构 kNN 图,做 X' = 0.5*X + 0.5*mean(X over kNN),k 取 6/12/18/24,其余步骤与 baseline 完全一致。零训练参数"},
    {"name": "null-shuffle-expr", "is_baseline": false, "what": "空模型①: 随机置换表达矩阵行与空间坐标的对应关系(坐标不动),再走最佳 k 的平滑流水线。预期 ARI 塌到随机水平,用于验证平滑本身不会凭空造出结构"},
    {"name": "null-geometry-only", "is_baseline": false, "what": "空模型②: 坐标不动,把表达矩阵整体替换为同形状的独立高斯噪声,再走最佳 k 的平滑流水线。直接测量'任何空间连续划分'能白拿的 ARI 地板值,回答 P2"}
  ],
  "metrics": [
    {"name": "ari", "higher_is_better": true, "what": "预测域标签与人工分层标注的 Adjusted Rand Index(sklearn.metrics.adjusted_rand_score),簇数固定为该切片真值"},
    {"name": "nmi", "higher_is_better": true, "what": "同上配对的归一化互信息(normalized_mutual_info_score)"},
    {"name": "spatial_coherence", "higher_is_better": true, "what": "无标签指标: 预测标签与其 6 个空间最近邻的众数标签一致的点所占比例"},
    {"name": "ari_seed_std", "higher_is_better": false, "what": "同切片同参数下 3 个种子的 ARI 标准差,用于判断两位小数级别的方法比较是否有意义"}
  ],
  "sweep": {
    "k_neighbors": ["0", "6", "12", "18", "24"],
    "clusterer": ["gmm_full", "kmeans"]
  },
  "seeds": [0, 1, 2],
  "budget_minutes": 45,
  "cpu_feasible": true,
  "out_of_scope": [
    "不重跑 STAGATE / GraphST / SpaGCN / BayesSpace 本身(需 GPU 与各自依赖),只引用其已发表数值并显式标注这不是受控比较",
    "只覆盖 10x Visium 一个平台、人前额叶皮层一种组织,不外推到 Slide-seqV2 / Stereo-seq / seqFISH",
    "不使用 H&E 组织学图像,因此与 stLearn / SpaGCN+ / DeepST 等多模态方法不可比",
    "不做基因调控网络推断,不做轨迹/伪时序推断(CPU 上只能做玩具规模,结论无用)",
    "不做簇数自动选择,沿用真值 K(与被比较方法通行做法一致,但已知是可被质疑的点)",
    "不扫平滑权重 alpha(固定 0.5),若时间有余再在 151673 单张切片上做 alpha in {0.25,0.5,0.75} 的稳健性检查"
  ]
}
```