# DeepGraph 免费层交付 · 空模型对照:海马 × AD 的"核心靶点"没通过特异性检验

**提交方向**: 中药海马防治阿尔茨海默病
**交付时间**: 2026-08-07
**这一轮真跑了**: CTD(报表日期 2026-07-30,人类行 OrganismID==9606,11095 个人类化合物)+ STRING v12.0(combined_score>=700,16201 个有边基因)+ Enrichr(KEGG_2021_Human 320 个 term、DisGeNET 9829 个 term);**4 个臂**(baseline-standard-pipeline / null-size-matched / null-degree-matched / disease-swap-control),**3 个种子**(0、1、2),两个空模型臂各 **1000 次抽样 × 3 个种子**;`results.json` 记录的总耗时 **19.5 秒**。代码、日志、图、原始 CSV 随附。

> 全文除第 5 节外,**每一个数值都直接来自随附的 `work/results.json`**(最多四舍五入到 3 位有效数字),你可以逐个回查。第 5 节的数字来自随附的 `SCOPE.md` 文献检索,不是本轮实验结果。

---

## 0. 结论(先说结果)

**我们的预注册预测被证实了,而这是个负结果:在这条标准流水线下,海马成分集给出的 AD 靶点/通路结果,与规模和靶点度数都匹配的随机化合物集给出的结果分不开。**

预测原文(`results.json.falsifiable_prediction`):随机集的 top-10 hub 命中率 ≥ 50%、且海马的 `emp_p_ad_overlap` > 0.05,即判为"证实"(说明是流水线假象);若命中率 < 20% 且两个经验 p 都 < 0.05,则判为"推翻"(说明流水线有判别力)。跑出来:degree-matched 空模型的 **hub 命中率 = 0.973**,海马 AD 基因重叠的经验 **p = 0.478**、KEGG hsa05010 富集的经验 **p = 0.403**,推翻条件在任何一个种子上都没出现,`prediction_outcome = confirmed`。疾病置换对照更直接:同一份海马靶点集,**AD 在 6 个疾病里按富集强度排第 4**。

结论的准确措辞(不能比数据更强):**已发表的那类"核心靶点模块"结论,与"数据库/流水线通用假象"这一解释是一致的,我们没有找到它是海马特异的证据**。这不等于说海马对 AD 无效——本轮没有任何细胞、动物或结合数据,也没覆盖海马的肽类成分。

下一步该往哪拐(细节在第 3 节):① 别把这套 hub 当"发现"写,把它降级成"候选 + 特异性检验"写进正文;② 换掉靠原始子网度数排 hub 的做法,先对全基因组背景度数做归一化再排;③ 真正的增量在肽组学和一组自己的湿实验数据上。

## 1. 我们替你跑了什么

**一句话设计**:把文献里那条标准流水线原样实现成 baseline 臂,再给它加上它自己缺的东西——同规模、同靶点度数分布的随机化合物集,跑完全相同的流水线 1000 次,看海马的结果在这个随机分布里排在哪。

**baseline 是什么**(`arms[0].what`):海马成分清单 → CTD 人类靶点取并集去重 → 与 KEGG "Alzheimer disease"(hsa05010)取交集 → 在交集上建 STRING(score>=700)子网 → 按子网内度数排序取 top-10 hub → 用完整靶点集对 KEGG_2021_Human 全部 term 做超几何检验 + BH-FDR。**为什么公平**:这就是审稿人默认的做法,我们没有把它做弱、没有换掉任何一环;两个空模型臂跑的是**同一段代码路径、同一份数据快照**,唯一的差别是把海马成分清单换成随机化合物。度数匹配这一步是关键:只匹配化合物个数会高估显著性,因为 CTD 里不同化合物挂的基因数差几百倍。

成分清单是**输入参数不是我们的发现**:CTD ChemicalName 精确匹配到 **21 条**,其中 **20 条**有至少 1 个人类 CTD 靶点,**Proline** 因为无人类记录被剔除(逐条命中数在 `work/logs/run.log` 里全部打印)。

### 1.1 baseline 臂(确定性,3 个种子取值相同)

| 指标 | 种子 0 / 1 / 2 | 均值 ± 标准差 |
|---|---|---|
| `n_targets_seahorse`(去重人类靶基因数) | 1270 / 1270 / 1270 | 1270 ± 0 |
| `n_ad_overlap`(∩ KEGG hsa05010) | 71 / 71 / 71 | 71 ± 0 |
| `neglog10p_ad_kegg` | 6.49 / 6.49 / 6.49 | 6.49 ± 0 |
| `ad_kegg_fdr` | 1.17e-06 / 1.17e-06 / 1.17e-06 | 1.17e-06 ± 0 |
| `n_kegg_terms_sig_fdr05`(FDR<0.05 的 KEGG term 数) | 174 / 174 / 174 | 174 ± 0 |

单看这一栏,它是一份"可以直接写进论文结果"的漂亮命中。下面两张表是它在随机对照下的样子。

### 1.2 两个空模型臂(各 1000 次抽样 × 3 个种子)

| 臂 | 指标 | 种子 0 / 1 / 2 | 均值 ± 标准差 |
|---|---|---|---|
| null-size-matched(弱空模型,只匹配化合物个数) | `emp_p_ad_overlap` | 0.207 / 0.207 / 0.211 | 0.208 ± 0.00188 |
| | `emp_p_ad_kegg` | 0.320 / 0.301 / 0.292 | 0.304 ± 0.0117 |
| | `hub_recovery_rate` | 0.936 / 0.936 / 0.959 | **0.944 ± 0.0108** |
| **null-degree-matched(主对照,个数+靶点度数都匹配)** | `emp_p_ad_overlap` | 0.462 / 0.485 / 0.489 | **0.478 ± 0.0119** |
| | `emp_p_ad_kegg` | 0.395 / 0.400 / 0.416 | **0.403 ± 0.00895** |
| | `hub_recovery_rate` | 0.970 / 0.976 / 0.973 | **0.973 ± 0.00245** |

`headline` 记录的对比是这两个空模型臂的 `hub_recovery_rate`:0.944 → 0.973,差值 0.0293(为什么是这两个臂对比,见第 2 节偏离说明)。

**流水线判别力上限**(degree-matched 臂,`hub_jaccard_null`):任取两个互不相关的随机集,它们 top-10 hub 列表的 Jaccard 中位数 **0.667**(Q1 = 0.429,Q3 = 0.667,3 个种子完全一致)。也就是说,两份毫无关系的随机成分表,top-10 hub 名单一半以上是重合的。

### 1.3 逐基因命中率(这一栏比总命中率更能说明问题)

| 基因 | null-degree-matched 种子 0/1/2 | 均值 ± 标准差 | null-size-matched 均值 |
|---|---|---|---|
| APP | 0.032 / 0.040 / 0.021 | 0.0310 ± 0.00779 | 0.0897 |
| JUN | 0 / 0 / 0 | 0 ± 0 | 0 |
| PPARG | 0 / 0 / 0 | 0 ± 0 | 0 |
| AKT1 | 0.961 / 0.965 / 0.964 | 0.963 ± 0.00170 | 0.791 |
| TNF | 0.933 / 0.943 / 0.925 | 0.934 ± 0.00736 | 0.852 |
| IL6 | 0.838 / 0.836 / 0.837 | 0.837 ± 0.000816 | 0.752 |
| TP53 | 0 / 0 / 0 | 0 ± 0 | 0 |

### 1.4 疾病置换对照(确定性)

海马靶点集固定不动,只换疾病基因集(DisGeNET 的 AD + 2 型糖尿病 / 高血压 / 结直肠癌 / 哮喘 / 骨关节炎),同一套超几何检验按 −log10(p) 排名:

| 指标 | 种子 0 / 1 / 2 | 均值 ± 标准差 |
|---|---|---|
| `disease_rank_ad`(1 = AD 最强) | 4 / 4 / 4 | 4 ± 0 |
| `n_diseases_tested` | 6 / 6 / 6 | 6 ± 0 |
| `ad_neglog10p` | 74.0 / 74.0 / 74.0 | 74.0 ± 0 |

AD 的富集强度绝对值很高(−log10 p ≈ 74.0),但在 6 个疾病里只排第 4 位——有非 AD 疾病排在它前面。逐个疾病的 overlap / p 值在随附的 `work/results_raw/disease_swap_control.csv`。

## 2. 怎么读这个结果

**这些数支持什么**:在 CTD + STRING + Enrichr 这套数据库、这条标准流水线下,海马小分子成分集的 AD 富集(重叠 71 个基因、FDR 1.17e-06)**落在随机对照分布的中间位置**(经验 p 分别是 0.478 和 0.403,离 0.05 很远),而 top-10 hub 里的高连接度基因在随机集里也几乎必然出现(0.973)。加上疾病置换里 AD 只排第 4,合起来支持一句话:**这条流水线在这个成分清单上,对"是不是海马"和"是不是 AD"都没有分辨力**。

**这些数不支持什么**(重要,别外推):
- **不支持"海马对 AD 无效"**。本轮没有细胞、动物、结合或药效学数据,`out_of_scope` 里写死了不下这个结论。
- **不支持"APP/JUN/PPARG 这三个基因是随机就能捞到的"**。恰恰相反:degree-matched 空模型里 APP 只有 0.0310,JUN 和 PPARG 是 0。总命中率 0.973 几乎完全由 AKT1(0.963)、TNF(0.934)、IL6(0.837)撑起来——这三个是 STRING 里"什么都连"的超高度数节点。所以准确的说法是:**这条流水线的 top-10 hub 主要被 STRING 的度数结构决定,而不是被成分表决定**;至于已发表的 APP/JUN/PPARG 模块,本轮**没有**在这个方向上给出反驳证据,它落空的原因是我们的 baseline 用这份 CTD 成分清单跑出来的 top-10 hub 本身就不含这三个基因(名单见随附 `work/results_raw/baseline_hub.json`)——不同的成分清单来源会给出不同的 hub,这本身也提示"核心模块"对输入清单不稳健。
- **不支持任何"显著/不显著"的强统计断言**。3 个种子只够说明种子间抖动很小(各指标标准差都在 0.012 以内),不构成显著性检验。
- **对肽类成分完全不适用**。CTD 只有小分子-基因互作,海马的蛋白/肽类活性成分在库里没有任何靶点记录。这个覆盖缺口本身就是交付结论之一。

**规模限制,放大后可能变的部分**:每个种子 1000 次抽样,能分辨的经验 p 分辨率就到千分位;但本轮的经验 p 在 0.4 附近,离 0.05 差一个数量级,再加抽样数不会翻盘。真正可能翻盘的是**换掉方法本身**——见第 3 节第 ② 条。

**`results.json.deviations` 里的 4 条偏离,逐条交代**:

1. **GO_BP_2025 富集没跑**。6 个预注册指标没有一个需要它(只用到 KEGG hsa05010、hub 基因、重叠数、疾病排名),跳过它对任何一个报出来的数字都没有影响;baseline 臂的 KEGG_2021_Human 富集 + BH-FDR 是完整跑的。
2. **(STRING 阈值 × AD 基因集来源)的 3×3 扫描没有按满规模跑**。满规模是 1000 次抽样 × 3 种子 × 9 种组合 = 27,000 次,本轮没有尝试;实际跑的是一个降规模、单种子的版本,结果单独放在 `work/results_raw/sweep_results.csv`(每行的 `n_null` 和 `seed` 两列记录了究竟跑了多少),**没有折进 results.json 的主结果,本报告也不引用它的任何数字**。要判断结论对阈值/基因集来源的稳健性,请直接看那份 CSV 和 `figs/04_sweep_hub_recovery_heatmap.png`。
3. **`headline` 里的 baseline_mean / proposed_mean 不是"baseline 臂 vs 实验臂"**,而是 null-size-matched(0.944)与 null-degree-matched(0.973)的 `hub_recovery_rate` 对比——因为真正的证伪轴在这里;baseline-standard-pipeline 是确定性的,实验计划里没给它定义 `hub_recovery_rate`。读 `headline` 时别把它误读成"我们的方法比 baseline 好 0.0293"。
4. **疾病置换对照的 6 个疾病全部取自 DisGeNET**(包括 AD),没有混用 DisGeNET 和 KEGG。这样做是为了让 6 次检验的背景基因全集完全一致——混库比较会把"背景集大小"和"疾病身份"混在一起,排名就不可信了。代价是:这一臂的 AD 富集用的是 DisGeNET 的 AD 基因集(`ad_neglog10p` = 74.0),和 1.1 表里基于 KEGG hsa05010 的 `neglog10p_ad_kegg` = 6.49 **不是同一个量,不能横向比**。

## 3. 你现在可以拿它做什么

**值得马上投入的一步:把这一节直接写进你的正文,而不是另写一篇方法学论文。** 标题就叫"靶点特异性验证",内容是本轮的三张对照(size-matched 空模型、degree-matched 空模型、疾病置换),结论照实写:核心靶点未通过特异性检验,因此后续实验验证的候选靶点不按子网度数排名选,而按另一套标准选。中文核心 / SCI 三四区这个档位,审稿人看到有人主动做了这一步,基本不会再拿"数据库偏倚"来毙你——这正是 `SCOPE.md` 第 2 节判断为"可行性最高的缺口"的那件事,现在它跑完了。

**先别急着投的一步:再多跑几个 STRING 阈值、再换几个成分-靶点数据库,指望结论翻盘。** 本轮的经验 p 在 0.4 附近,不是"差一点点显著"。方法不换,加算力换不来判别力。

**如果要救"hub 排序"这条线,只有一个技术改法值得试**(本轮没跑,预算用完,记在 `work/NOTES.md`):不要用子网内的原始度数排 hub,先把每个基因的 STRING 度数对全基因组背景度数做归一化(例如相对同规模随机基因集的 z-score)再排。诊断是明确的——AKT1/TNF/IL6 在随机集里的命中率高达 0.963/0.934/0.837,说明它们是被度数结构顶上来的;扣掉背景度数之后,可能会露出真正被成分表决定的那部分信号。这是一个可以在 CPU 上当天跑完的改动。

**审稿人最可能打你的三个点**(压缩自 `SCOPE.md` 第 3 节):
- **"核心靶点是数据库假象"**——现在你有对照数据可以正面回答,这一条从最致命变成你的加分项。
- **"海马是动物药,你套的是植物药的筛选口径"**——本轮用的是 CTD 化合物名精确匹配,清单里是牛磺酸、胆固醇、脂肪酸这类通用小分子,审稿人会问"你分析的是海马还是任何海产品"。请显式声明清单来源与筛选口径,并主动做一次"海产品共有成分 vs 海马特有成分"的拆分。
- **"重复 + 缺乏实验验证"**——海马 × AD 的网络药理学在 2026 年 4 月已被占位(见第 5 节第一条)。这个档位最有效的增量不是新颖性,是"别人没做的对照 + 一组自己的实验数据";哪怕只有一组 BV2 小胶质细胞 LPS 模型的 NO/TNF-α/IL-1β,稿子的命运也完全不同。

**中长期真正的增量在肽组学**(`SCOPE.md` 缺口 B):海马的活性主体是蛋白和肽,所有主流成分-靶点数据库都只收小分子——本轮的结论范围因此天然只覆盖"最不重要的那一小部分成分"。这不是我们跑不动,是库里没有。你有 UPLC-MS/MS 肽组学数据的话,这部分我们能算。

## 4. 随附材料

全部在本目录下,可逐个打开核对:

| 文件 | 是什么 |
|---|---|
| `work/run.sh` | **一条命令复现:`bash run.sh`**。下载或复用缓存 → awk 预过滤 STRING → 主实验 → 补充扫描 → 出图 → 写日志 |
| `work/run_experiment.py` | 主流水线:baseline 臂 + 两个空模型臂 + 疾病置换臂,argparse CLI,成分清单可用 `--` 参数换成你自己的 CSV |
| `work/sweep.py` | 补充的 STRING 阈值 × AD 基因集来源扫描(降规模、单种子,见第 2 节偏离 2) |
| `work/make_figures.py` | 从 `results.json` + `results_raw/*.csv` 出 4 张图 |
| `work/results.json` | **本报告所有数字的唯一来源**:4 个臂 × 各指标 × 每种子原始值 + 均值/标准差、预测原文与判定、数据快照版本、偏离清单 |
| `work/logs/run.log` | 完整运行日志:每个化合物的 CTD 命中数、被剔除的 Proline、71 个 AD 重叠基因的完整名单、baseline top-10 hub、每个种子每个臂的逐行结果 |
| `work/results_raw/` | 原始 CSV/JSON:每种子 1000 次空抽样明细(`null_*_seed*.csv`)、baseline KEGG 富集全表、疾病置换表、baseline hub 列表、Jaccard 原始值、扫描结果 |
| `work/figs/01_null_overlap_distribution.png` | degree-matched 空分布(3 种子合并)与海马观测重叠值的位置 |
| `work/figs/02_hub_recovery_rate.png` | 两个空模型臂逐种子的 hub 命中率,并标出预注册的 0.50 证实线与 0.20 推翻线 |
| `work/figs/03_disease_swap_control.png` | 6 个疾病的 −log10(p) 排序,AD 标红 |
| `work/figs/04_sweep_hub_recovery_heatmap.png` | 补充扫描的热图(降规模、单种子,数字以 CSV 为准) |
| `SCOPE.md` | 本轮之前的方向判断与文献查新全文(第 5 节是它的压缩版) |

**环境**:`results.json.env` 记录 Python **3.12.3**,`torch` 字段是 "not used in this task"——这个任务是集合运算 + 超几何检验,纯 CPU、不需要 GPU、不需要深度学习框架,额外依赖为空。随机种子固定为 0、1、2,`bash run.sh` 可重跑;数据快照写死在 results.json 里(CTD 报表 2026-07-30、STRING v12.0、Enrichr KEGG_2021_Human 与 DisGeNET)。

**我们不要你的数据、代码或稿子。** 本轮所有证据都用公开数据库自己造:CTD、STRING、Enrichr 三个源都是程序化直接下载、无需登录,`run.sh` 里的 URL 就是原始地址。任何人拿这份代码都能在自己的机器上复查、也能反驳我们。你唯一需要提供的东西是**你自己的成分清单**——把本轮那 21 条换成你实验室 UPLC-MS/MS 测出来的成分表重跑一遍,结论可能完全不同,那才是你论文里该用的数。

## 5. 方向判断与文献(摘自随附的 SCOPE.md)

> 以下数字来自 SCOPE.md 的文献检索(2026-08-07 PubMed 实测),不是本轮实验结果。

- **方向干净,但具体命题已被占位**:海马 × AD 的网络药理学在 2026 年 4 月已发表(Song P 等,做完 5 个药典物种、329 个成分、276 个化合物,报出 APP/JUN/PPARγ 核心模块),作者单位含"海洋中药研究院",与你的关键词高度重合——是你们组的,本轮正好补上审稿人必问的对照;不是,你必须先解决"重复"。
- **这条线极度拥挤且高度雷同**:`"network pharmacology"[tiab]` 共 17,794 篇,与 AD 交叉 614 篇、其中 282 篇挤在 2025–2026 两年。
- **同质化已被量化成审稿武器**:Diao 等系统分析 1,038 篇网络分析研究,总结出"总是那几个黄酮 → 总是那几个 hub → 总是那几条通路"的三层结构,并指出这是数据库偏倚被不敏感的分析方法放大的自我强化循环。这篇之后,"你的核心靶点是数据库假象"从模糊质疑变成可直接引用来毙稿的意见。
- **三个还开着的缺口**:A 空模型对照(全领域没做,纯计算可行——**本轮做的就是这个**);B 海马活性主体是蛋白/肽而主流库只收小分子(需要你的质谱数据);C 神经炎症/突触/神经递质三条线缺剂量-效应与时序数据(需要动物实验)。
- **海马的在体证据目前在抑郁/神经炎症模型上**(抑制小鼠海马 CA1 小胶质细胞、下调 pNF-κB 与 NLRP3、上调 BDNF 与 pNrf2/GPX4),AD 在体证据的空位还开着。

**参考来源**(与 SCOPE.md 一致,未删改):

- [Medicinal seahorses (Hippocampus spp.) for Alzheimer's disease within species conservation framework](https://pubmed.ncbi.nlm.nih.gov/41922822/) — Song P 等,*Naunyn Schmiedebergs Arch Pharmacol* 2026;399(9):12873-12896,doi:10.1007/s00210-026-05246-4(329 成分、276 化合物、核心模块 APP/JUN/PPARγ)
- [Rethinking network analysis in ethnopharmacology: a multi-omics and AI roadmap to overcome conceptual and methodological biases](https://pmc.ncbi.nlm.nih.gov/articles/PMC12962898/) — Diao X 等,*Front Pharmacol* 2026;17:1748478,doi:10.3389/fphar.2026.1748478(系统分析 1,038 篇,提出三层"同质化")
- [Seahorse Attenuated DSS-Induced Depression in Mice by Inhibiting Neuroinflammation and Ferroptosis](https://pmc.ncbi.nlm.nih.gov/articles/PMC12183345/) — Chen PL 等,*Food Sci Nutr* 2025;13(6):e70482,doi:10.1002/fsn3.70482(海马在体抗神经炎症证据)
- [Therapeutic Potential of Big-Belly Seahorse Derived Peptide in Blood Pressure Regulation...](https://pubmed.ncbi.nlm.nih.gov/41304787/) — *Pharmaceutics* 2025;17(11):1449,doi:10.3390/pharmaceutics17111449(海马肽类活性成分证据)
- [The genus Hippocampus — a review on traditional medicinal uses, chemical constituents and pharmacological properties](https://pubmed.ncbi.nlm.nih.gov/25560669/) — *J Ethnopharmacol* 2015;162:104-11,doi:10.1016/j.jep.2014.12.032(海马化学成分基础综述)
- [Comparative Toxicogenomics Database's 20th anniversary: update 2025](https://pubmed.ncbi.nlm.nih.gov/39385618/) — *Nucleic Acids Res* 2025;53(D1):D1328-D1334,doi:10.1093/nar/gkae883 · [数据下载](https://ctdbase.org/downloads/)
- [The STRING database in 2023](https://pubmed.ncbi.nlm.nih.gov/36370105/) — *Nucleic Acids Res* 2023;51(D1):D638-D646,doi:10.1093/nar/gkac1000 · [数据下载](https://string-db.org/cgi/download)
- [Gene Set Knowledge Discovery with Enrichr](https://pubmed.ncbi.nlm.nih.gov/33780170/) — *Curr Protoc* 2021;1(3):e90,doi:10.1002/cpz1.90 · [Enrichr 基因集库](https://maayanlab.cloud/Enrichr/)

---

*本文档由 JouleBeat · DeepGraph 出具。实验代码、日志与原始结果随附,结论可被复查与反驳。*
