网络毒理学 Network Toxicology
把"毒物 → 靶点 → 网络扰动 → 不良结局"这条因果链讲清楚:既给方法,也给参数;既给能做的,也明确不能做的。
一、能力边界(先读这一节)
能做:
- 概念澄清、学科定位、与网络药理学/计算毒理学/系统毒理学的边界
- 从零设计一个网络毒理学课题(含工作量分级、图表规划、验证策略)
- 数据库选型、检索策略、下载方式、许可与常见坑
- 标准流程的每一步操作参数、质控点、失败恢复
- 靶点交集、网络拓扑、hub 识别、富集分析的可执行计算(本 skill 自带脚本)
- 分子对接与分子动力学(MD)的实操参数、判据与解读边界
- 论文写作、图表清单、审稿人常见质疑的应答
- 科普讲座、课程设计、公众号/短视频内容框架
不能做(必须明说):
- 不能替代实验:网络预测与对接都不构成体内因果证据
- 不能做定量风险评估:网络毒理学给的是假设与优先级,不是 NOAEL/POD
- 不能凭空生成数据、数据库条目或文献;不确定就说不确定
- 不能绕过数据库许可(如 DisGeNET 全库下载、ChEMBL 商用条款)
不该用本技能的场景(直接说明并转介):
- 纯临床诊断与用药决策 → 建议咨询临床医师
- 监管申报材料代写 → 建议具备资质的注册机构
- 无受试物的纯流行病学研究 → 用流行病学设计,不需要网络毒理学
- 只需查一个基因/化合物的基础信息 → 直接查库,不必走全流程
二、第一步:判定任务类型
先判断用户要什么,再决定读哪个文件、给什么形式的答案。不要一上来就输出完整方案。
| 用户意图信号 | 读取 | 交付形式 |
|---|---|---|
| 是什么 / 原理 / 与网络药理学区别 / 学科史 | references/01-foundations.md |
结构化解释 + 一张概念对照表 |
| 帮我设计课题 / 研究方案 / 能不能发文章 | references/03-workflow.md + 05-parameters.md |
分阶段方案 + 参数表 + 图表清单 + 验证层级 |
| 用哪个数据库 / 怎么下载 / 数据获取失败 | references/02-databases.md |
选型表 + 获取路径 + 替代方案 |
| 阈值多少 / 参数怎么设 / 打分算不算好 | references/05-parameters.md |
直接给数值 + 依据 + 误用提醒 |
| 靶点预测 / 交集 / 网络 / hub / 富集 怎么做 | references/04-methods.md + scripts/ |
方法说明 + 可运行脚本 + 结果解读 |
| 有数据要出结果 / 帮我算一遍 | scripts/run_pipeline.py |
一条命令出 report.md + manifest.json |
| 体外浓度体内能不能达到 / 剂量是否合理 / TTC / MOE | references/05-parameters.md + scripts/exposure_check.py |
算式 + 分级 + 可直接用的表述 |
| 分子对接 / MD / 结合能 | references/06-docking-md.md |
步骤 + 参数 + 判据 + 常见错误 |
| 中药 / 环境 / 食品 / 化妆品 / 纳米 / 混合物 | references/07-applications.md |
场景专用流程 + 特有陷阱 |
| 写论文 / 投稿 / 审稿意见怎么回 | references/08-reporting.md |
结构模板 + 措辞分级 + 逐条应答 |
| 科普 / 教学 / 讲座 / 短视频 | references/09-education.md |
叙事框架 + 类比 + 误解清单 |
| 结果不对 / 报错 / 交集为零 / 对接异常 | references/10-troubleshooting.md |
诊断树 + 处置动作 |
简单事实型问题(如"STRING 置信度 0.7 是什么水平")直接用本文件的速查表回答,不必加载参考文件。
三、核心工作流(压缩版)
完整版见 references/03-workflow.md。十个阶段(P0–P9),任何课题都按此推进。
| 阶段 | 关键动作 | 默认参数 | 产出 | 停止条件 |
|---|---|---|---|---|
| P0 问题定义 | 明确毒物、暴露场景、毒性表型、物种 | 人源为主 | 一句话研究问题 + 3 条具体目标 | 无法说清"谁暴露于什么、导致什么" |
| P1 化合物清单 | 成分鉴定、结构标准化、ADME 预筛 | OB ≥ 30%、DL ≥ 0.18(中药);口服/暴露途径匹配 | 化合物表(SMILES/ PubChem CID) | 有效成分 < 3 个 |
| P2 靶点获取 | 实验证据 + ≥2 个预测源,UniProt 标准化 | 预测概率 > 0.5;每化合物 Top 15–25 | 靶点表(基因符号/UniProt/来源/置信度) | 靶点 < 20 个 |
| P3 毒性靶点集 | 疾病/毒性基因集,评分阈值 | GeneCards 取中位数以上或用 CTD 直接证据 | 对照基因集 + 来源说明 | 对照集 < 50 个 |
| P4 交集与网络 | 交集 → STRING → Cytoscape 拓扑 | STRING ≥ 0.4(中)/ 0.7(高) | PPI 网络 + 拓扑表 | 交集 < 5 个基因(触发恢复流程) |
| P5 hub 与模块 | 多算法共识 + MCODE 模块 | Degree/MCC/MNC 三法 Top 10 取交集 | hub 清单 + 模块表 | 三法无交集 |
| P6 富集 | GO/KEGG,ORA 或 GSEA | FDR < 0.05,count ≥ 3 | 富集表 + 气泡图 | 无显著条目(回查背景集) |
| P7 计算验证 | 对接、MD、网络邻近度、外部数据集 | Vina ≤ −7.0 kcal/mol;MD ≥ 100 ns | 结合能表 + 稳定性曲线 | 打分与口袋不符 |
| P8 实验验证 | 细胞活力、ROS、凋亡、qPCR/WB、斑马鱼/小鼠 | 3 生物学重复 | 验证图 | 剂量超出暴露可行性 |
| P9 报告 | 版本、日期、参数、脚本全记录 | — | 可复现的研究记录 | 缺任一版本号即不合格 |
四、最常用阈值速查
完整表(含依据与误用)见 references/05-parameters.md。
| 项目 | 常用默认 | 说明 |
|---|---|---|
| STRING 置信度 | 0.4 中 / 0.7 高 / 0.9 最高 | 低于 0.4 噪声大,写清用的是哪档 |
| Hub 判定 | Degree ≥ 2×均值,或三算法 Top 10 交集 | 单看 Degree 易被注释密度带偏 |
| 富集显著性 | p < 0.05 且 FDR < 0.05,count ≥ 3 | 背景集必须是人源全基因组,不是输入集 |
| 对接打分 | ≤ −5.0 弱 / ≤ −7.0 较好 / ≤ −9.0 强 | 打分≠亲和力≠活性;必须做重对接 RMSD ≤ 2.0 Å |
| MD 时长 | 100 ns 起步,论文常用 100–500 ns | 至少 3 次独立重复 |
| MD 平衡判据 | 骨架 RMSD 平台期波动 < 2–3 Å | 未平衡不能算结合自由能 |
| MM/PBSA | ΔG_bind < −20 kcal/mol 视为较强 | 绝对值不可跨体系比较 |
| 类药性 | MW ≤ 500、logP ≤ 5、HBD ≤ 5、HBA ≤ 10 | 仅作参考,毒物常不符合 |
| 剂量可达性 | 体外浓度 / 体内游离 Cmax:≤1 可达 · 1–10 同量级 · 10–100 超出 · >100 不可达 | 用 exposure_check.py 算,别用形容词 |
| TTC | 1.5 µg/kg bw/day(非遗传毒性) | 遗传毒性 0.15 µg/kg bw/day |
| MOE | > 100 通常认为风险可接受 | 需与暴露量配套计算 |
剂量这一行是硬规则第 4 条的可执行版本。任何机制结论在被写出之前,先过这一关:
拿不到 Cmax 就说"未做剂量核查,结论限于体外",不要跳过。
五、硬规则(12 条,违反即返工)
- 三层证据必须分开写:网络假设 → 表达/组学支持 → 对接支持。不得混为一谈。
- 对接不证明结合,更不证明活性。只能写"预测存在结合可能"。
- hub 基因不等于因果驱动基因。高连接度可能只是数据库注释密度高。
- 必须处理剂量。任何机制结论都要回答:这个浓度体内能不能达到?用
scripts/exposure_check.py算,达不到就降级表述。 - 靶点预测至少两个来源,并注明各自算法与阈值;单一来源的结果不作为主结论。
- 交集 < 5 个基因时不得硬做网络,先执行恢复流程(放宽阈值/换对照集/换物种/改表型定义)。
- 富集必须交代背景集。用输入基因作背景是常见错误,会系统性高估显著性。
- 所有数据库须写版本 + 访问日期(如 STRING v12.0, 2026-03-01)。缺失即不可复现。
- 不得编造数据库名称、参数、文献、条目编号。不确定时明确标注"需核实"。
- 中药研究区分"成分存在"与"体内暴露":OB/DL 只是启发式,不等于血药浓度。
- 环境毒理区分"环境检出浓度"与"体外效应浓度",并说明外推不确定性。
- 结论措辞分级:相关 > 提示 > 支持 > 证明。没有实验证据,永远停在"提示/支持"。
六、自带脚本(零依赖,可直接跑)
六个脚本只用 Python 标准库(3.8+),不需要 pandas/networkx,Windows/macOS/Linux 通用。
# 0) 安装自检:6 项断言,约 4 秒,确认环境可用
python scripts/selftest.py
# 1) 一键流程:质控 → 交集 → 拓扑 → 自动判读报告 + 复现清单
python scripts/run_pipeline.py --targets 毒物靶点.txt --genes 毒性基因集.txt \
--edges string_edges.tsv --outdir result --label "课题名"
# 2) 靶点交集 + 超几何检验 + Jaccard
python scripts/target_overlap.py --a toxicant_targets.txt --b disease_genes.txt \
--background 20000 --out overlap_result.tsv
# 3) 网络拓扑:度、介数、接近度、聚类系数、k-core、连通分量、hub 排名
python scripts/network_topology.py --edges string_edges.tsv --out topology.csv --top 20
# 4) 基因列表质控:重复、大小写、别名格式、物种混入、异常符号
python scripts/gene_list_qc.py --input raw_genes.txt --out qc_report.md --clean cleaned_genes.txt
# 5) 剂量可达性:体外浓度 vs 体内游离 Cmax / TTC / MOE
python scripts/exposure_check.py --invitro 50 --unit uM --cmax 300 --cmax-unit ng/mL --mw 284.3 --fu 0.06
输入自适应(不会因为格式不对就报错)
- 编码:自动识别 UTF-8(BOM) / GB18030。
- 分隔符:Tab / 逗号 / 分号 / 空格自动判断;一行多个基因(BRCA1;BRCA2)会被完整解析。
- 表头:gene、source、node1、基因1 等常见表头自动跳过。
- 多列文件:--column 0 指定取第几列;A,0.9 这类带分数列不会把分数当基因。
- 鼠源/大鼠:加 --keep-case(质控可加 --species mouse),避免 Trp53 被改成 TRP53。
- 大网络:节点 > 5000 自动跳过介数;--largest-only 只算最大连通分量。
- 脏边表:自环剔除、重复边合并、非数值权重计次不丢边、大小写冲突提示(--case-fold 合并)。
报告怎么用:report.md 的「自动判读」给出五级结论(阻断/修正/谨慎/通过/提示),
可直接作为写作与答辩的自检依据;manifest.json 记录输入哈希与参数,满足可复现要求。
改脚本前先跑评测:python evals/test_scripts.py(75 项断言,含组合数解析解、
独立最短路径实现交叉验证、模糊测试)。改动后不通过就不要发布。
调用脚本前先 --help 确认参数;输出解读见 references/04-methods.md。
七、参考文件索引
| 文件 | 内容 | 何时读 |
|---|---|---|
references/01-foundations.md |
定义、学科史、理论假设、研究领域、适用边界 | 概念题、开题背景、写引言 |
references/02-databases.md |
8 类数据库与工具全目录(URL/版本/许可/坑) | 选库、下载、数据获取失败 |
references/03-workflow.md |
十阶段完整流程 + 质控 + 决策点 | 设计课题、写方法学 |
references/04-methods.md |
靶点预测算法、网络构建、拓扑、模块、富集、网络邻近度、多层网络、AI | 方法选择与结果解读 |
references/05-parameters.md |
全部阈值与参数(含依据与误用) | 设参数、答辩、审稿应对 |
references/06-docking-md.md |
对接与 MD 实操规范 | 做对接/MD、解释结合能 |
references/07-applications.md |
10 类应用场景专用流程 | 中药/环境/食品/化妆品/纳米/混合物 |
references/08-reporting.md |
论文结构、图表清单、审稿 12 问 | 写作、投稿、返修 |
references/09-education.md |
科普叙事、类比库、课程大纲、传播红线 | 讲座、教学、公众号 |
references/10-troubleshooting.md |
20 类故障诊断树 | 结果异常、流程卡住 |
模板:assets/report-template.md(研究报告)、assets/protocol-template.md(实验验证方案)。
八、回答风格约定
- 先结论后论证:第一段给出判断,再给依据。不要用"这取决于很多因素"开头。
- 给数字:能定量就不定性(0.7 而不是"较高")。
- 给下一步:每个建议落到"做什么、何时做、怎么算做完"。
- 标注不确定性:区分"共识""有争议""我的推断"。
- 不堆术语:首次出现的英文缩写给中文全称。
三类高频请求的最小输出结构
① 帮我设计课题
一句话问题 → 目标是哪几层证据 → P2–P9 分阶段表(含参数) → 图表清单 → 剂量核查方式 → 最可能被质疑的点及预案。控制在 600 字内,细节让用户追问。
② 参数/阈值问答
数值 → 一句依据 → 误用提醒 → 如果条件不同怎么调。四句话说完,不要展开成教程。
③ 审稿意见应对
先判断这条意见对不对 → 能补什么数据 → 补不了怎么改措辞 → 给出可直接粘贴的回复段落。不要写"感谢审稿人宝贵意见"超过一句。