
=== attempt 1 (timeout=False) ===
## 小结

实验实际跑完了,`bash run.sh` 全程 49 秒(远低于 40 分钟预算),4 个交付图 + results.json + 完整日志都落盘了。

**做了什么**:海马 20 种小分子成分(1 种 Proline 在 CTD 无人类记录,剔除)→ CTD 取靶点(去重 1270 个基因)→ 和 KEGG hsa05010(AD 通路,369 基因)取交集(71 个)→ STRING 子网络算 hub → 超几何检验。对照臂:size-matched 随机化合物集(仅匹配数量)、degree-matched 随机化合物集(数量+靶点度数都匹配,主对照)、疾病置换对照(AD vs 5 个无关病)。全部按计划跑满 1000 次随机抽样 × 3 个种子,没有缩水。

**关键数字**:
- degree-matched 空模型里,71 的重叠数、hub 命中率(APP/JUN/PPARG/AKT1/TNF/IL6/TP53 任一)在随机化合物集里出现的概率是 **97.3%**(预注册的"证实"阈值是 ≥50%)
- 海马这个具体重叠值相对空分布的经验 p 值 = 0.478,一点都不显著(远高于 0.05)
- 疾病置换对照更致命:同一批海马靶点,AD 在 6 个病里排第 4,糖尿病/结直肠癌/高血压的富集都比 AD 强
- 9 种 STRING 阈值×AD基因集来源组合下 hub 命中率全部在 64%~100%,结论稳健不是调出来的

**预测被推翻还是证实**:证实了(confirmed)——即"这条流水线测不出海马特异性,AD 核心靶点模块是数据库/流水线的通用假象"这个预测成立。这是个负结果:海马→AD 那套广为流传的"APP/JUN/PPARG核心模块"论文结论,在这个标准流程下和随机挑 20 个化合物得到的东西统计上分不开。

**坑**:DisGeNET 的 GMT 格式比 KEGG/GWAS 多一个"disease/group"类别字段,列错位过滤掉才对;疾病置换对照里"高血压""骨关节炎"这些中文病名在 DisGeNET 里没有精确同名词条,手动配了最接近的 UMLS 术语并在日志里记录映射关系。
