关于 tooluniverse-drug-synergy
用于评估两种药物联用相对于加和模型是协同、相加还是拮抗的 ToolUniverse 技能。它根据实验数据类型引导选择 Bliss、HSA、Loewe、ZIP 或组合指数,并强调报告所用模型。
主要功能
- 01按数据类型选择协同分析模型
- 02支持 Bliss、HSA、Loewe、ZIP 和组合指数
- 03提供加和预期与协同评分解读
- 04说明效应尺度转换及剂量反应数据要求
适用场景
- 01评估单一剂量组合是否超过 Bliss 预期
- 02分析多剂量组合相对于单药的效果
- 03用单药剂量反应曲线评估联用剂量
- 04解析剂量矩阵中的协同区域
MCP 相关
技能通过 ToolUniverse 的 DrugSynergy_calculate_bliss、DrugSynergy_calculate_hsa、DrugSynergy_calculate_loewe、DrugSynergy_calculate_ci 和 DrugSynergy_calculate_zip 工具执行分析。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ mims-harvard/ tooluniverse --skill tooluniverse-drug-synergy安装后在 Claude Code 中输入/tooluniverse-drug-synergy确认已加载。
附带文件scripts/synergy_reference.pytest_synergy_reference.py
详细介绍
药物组合协同作用分析
判断两种药物的组合效果是超出预期(协同作用)、恰好符合预期(相加作用),还是低于预期(拮抗作用)——并根据你拥有的数据选择合适的参考模型。
“协同作用”只有相对于相加作用的零模型才有意义,而且不同模型对相加作用的定义不同——因此,首先要根据测量了什么数据来决定使用哪个模型。
步骤 0 — 根据现有数据选择模型
| 你测量了…… | 使用模型 | 工具 | 输入 |
|---|---|---|---|
| A、B 和 A+B 在一组剂量组合下的单次效应 | Bliss | DrugSynergy_calculate_bliss | effect_a、effect_b、effect_combination(各为 0–1 的分数) |
| A、B、A+B 在多个剂量点下的效应 | HSA | DrugSynergy_calculate_hsa | effects_a、effects_b、effects_combo(数组) |
| 单药剂量-反应曲线 + 一个组合点 | Loewe | DrugSynergy_calculate_loewe | doses_a_single/effects_a_single、doses_b_single/effects_b_single、dose_a_combo、dose_b_combo、effect_combo |
| 单药剂量-反应曲线 + 组合点,且需要 Chou-Talalay CI | Combination Index | DrugSynergy_calculate_ci | 与 Loewe 相同 + assumption |
| 完整的剂量 × 剂量活性矩阵 | ZIP | DrugSynergy_calculate_zip | doses_a、doses_b、viability_matrix(%,0–100) |
效应必须采用一致的抑制率标度。 Bliss/HSA/Loewe 需要的是分数形式的抑制率
0–1(0 = 无效应,1 = 完全杀灭)。如果你的数据是存活率百分比,请转换:inhibition = 1 − viability/100。ZIP 直接使用百分比形式的活性矩阵。标度混用是最常见的错误。
步骤 1 — 各模型中“相加作用”的含义
| 模型 | 零模型(相加)预期 | 最适合的情况 |
|---|---|---|
| Bliss 独立性 | 药物独立发挥作用:E_exp = E_a + E_b − E_a·E_b | 作用机制不同;快速单点筛选 |
| HSA(最高单药效应) | 组合效果应优于效果较好的单药:E_exp = max(E_a, E_b) | 保守地判断“是否优于单药治疗” |
| Loewe 相加作用 | 一种药物与自身组合时为相加作用(剂量等效) | 作用机制相同或相似;需要剂量-反应数据 |
| ZIP | 结合 Bliss + Loewe;一种药物使另一种药物的曲线效力发生偏移 | 剂量矩阵筛选(SynergyFinder 的默认模型) |
| Chou-Talalay CI | CI<1 为协同作用,=1 为相加作用,>1 为拮抗作用(中位效应法) | 基于剂量-反应数据的经典等效线分析 |
不存在唯一“正确”的模型——请注明你使用了哪个模型。 对某些组合,Bliss 和 Loewe 的结果确实会不同(这是预期结果,并非错误);同时报告两种模型的结果(例如 Bliss + HSA,或 Loewe + ZIP)是很好的做法。
步骤 2 — 运行分析
# Bliss (single dose pair, fractional inhibition)
tu run DrugSynergy_calculate_bliss '{"operation":"calculate_bliss",
"effect_a":0.4,"effect_b":0.3,"effect_combination":0.7}'
# -> expected 0.58, bliss_synergy_score 0.12, "Strong synergy"
scripts/synergy_reference.py 会根据一组剂量组合并列计算 Bliss、HSA 和 Loewe 风格的预期组合效应,让你在运行完整工具之前一眼看出这些模型的结果是否一致。
步骤 3 — 解读分数
对于 Bliss/HSA/Loewe/ZIP,协同作用分数为(观察值 − 预期值)(通常 ×100):
| 分数(分数形式,×100 标度) | 判定 |
|---|---|
| > +10 | 协同作用 |
| −10 到 +10 | 相加作用(无显著相互作用) |
| < −10 | 拮抗作用 |
对于Combination Index(Chou-Talalay):CI < 1 = 协同作用,CI = 1 为相加作用,CI > 1 为拮抗作用(请注意方向相反——数值越低,协同作用越强)。
- Bliss/HSA 分数为正,表示该组合在该点超出了相加作用预期。
- 协同作用通常取决于剂量——一种组合可能在某个配比下表现为协同作用,在另一个配比下表现为拮抗作用;对于矩阵,应报告协同作用的区域,而不是一个数字。
步骤 4 — 注意事项(请明确说明)
- 尺度不匹配(% 存活率与分数形式的抑制率)——先进行转换(步骤 0)。
- 效应接近 0 或 1(天花板效应)。 如果两种单药已经几乎杀死所有细胞,组合就无法显示协同作用(没有提升空间)——Bliss/HSA 会达到饱和;解读时请谨慎。
- ZIP/Loewe/CI 需要真实的剂量-反应数据:每种药物至少有 3 个非零且效应可测的剂量点,否则 Hill 拟合会失败(工具会提示)。
- 模型结果不一致很正常——不要为了得到“协同作用”而挑选模型;请预先指定模型并报告。
- 协同评分不等于疗效——强协同的组合整体效果仍可能较弱;还应报告组合的绝对效应。
局限性说明
- 这些是参考模型的协同评分,而非统计检验——如需评估可信度,请进行重复实验并报告剂量矩阵中的变异情况。
- 体外协同作用不保证临床获益(PK/PD、毒性和给药方案都很重要)。
相关技能
tooluniverse-dose-response— 拟合 Loewe/CI/ZIP 所需的单药 IC50/EC50 曲线。tooluniverse-cell-line-profiling— 查询预先计算的组合协同作用(SYNERGxDB)。tooluniverse-drug-repurposing/tooluniverse-network-pharmacology— 了解组合用药的依据。