关于 tooluniverse-dose-response
这是一个使用 4 参数逻辑模型拟合浓度-响应数据的 ToolUniverse 技能,帮助研究人员估算效价、效能和拟合质量,并比较化合物,同时提示结果解释的局限。
主要功能
- 014 参数剂量-响应曲线拟合
- 02估算 IC50 和 EC50
- 03报告 Hill 斜率与效能
- 04检查拟合质量
- 05比较化合物效价
- 06CSV 拟合脚本
适用场景
- 01分析酶或细胞实验响应
- 02比较不同化合物的效价
- 03检查不完整或质量较差的曲线
MCP 相关
提供用于计算 IC50、拟合曲线和比较效价的 ToolUniverse 工具,并介绍本地 Python 拟合脚本。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ mims-harvard/ tooluniverse --skill tooluniverse-dose-response安装后在 Claude Code 中输入/tooluniverse-dose-response确认已加载。
附带文件scripts/fit_dose_response.pytest_fit_dose_response.py
详细介绍
剂量-反应 / 浓度-反应分析
将成对的浓度与反应测量值转换为效价(IC50/EC50)、Hill 斜率、效能(Emax)和质量判断,并比较不同化合物的效价。
适用场景
- 酶抑制 / 激活实验、细胞活力实验、报告基因实验、放射性配体结合实验、激动剂 / 拮抗剂药理学。
- 你有一组浓度及其对应的反应值,并希望获得 IC50/EC50 和 Hill 斜率。
- 你想说“化合物 A 的效价是 B 的 N 倍”。
模型采用 4 参数逻辑(4PL)/ Hill S 形曲线:
f(x) = Emin + (Emax − Emin) / (1 + (EC50/x)^n) — 其中 n 是 Hill 斜率。
第 1 步 — 准备数据(结果出错的常见原因)
| 问题 | 处理方法 |
|---|---|
| 浓度单位 | 选择一种单位(µM、nM、M),并用于每个数据点。返回的 IC50 将使用该单位。不要混用。 |
| 对数浓度还是线性浓度 | 传入线性尺度的浓度(例如 0.01, 0.1, 1, 10),而不是 log10。拟合器会在内部取对数。 |
| 零浓度 / 对照浓度 | 删除字面值为 0 的浓度(log(0) 未定义)。如果要归一化,仅将其作为 Emin/Emax 参考值保留。 |
| 变化方向 | 抑制曲线从高到低(IC50);激活曲线从低到高(EC50)。工具可以处理这两种情况;只要保持一致即可。 |
| 归一化 | 如果希望 Emax/Emin 接近 100/0,将原始信号转换为对照的百分比:% = 100 × (raw − blank)/(control − blank)。原始值也可用于拟合,但此时平台值的单位是原始数据单位。 |
| 重复测量 | 拟合前对每个浓度的技术重复取平均,或传入所有数据点(拟合时每个点的权重相同)。 |
覆盖范围要求: 至少需要 4 个数据点(工具要求),理想情况下需要 6–8 个覆盖两个平台的数据点——即有明显高于和低于拐点的数据点。如果曲线始终未达到平台,IC50 的可靠性会较差,且结果是外推值(参见第 4 步)。
第 2 步 — 拟合 / 获取效价
单条曲线 → IC50 或 EC50(计算方式相同;抑制时称为“IC50”,激活时称为“EC50”):
tu run DoseResponse_calculate_ic50 '{"operation":"calculate_ic50",
"concentrations":[0.001,0.01,0.1,1,10,100],
"responses":[98,95,80,45,12,3]}'
返回 ic50、ic50_95_confidence_interval、hill_slope、emax、emin、r_squared、log_ic50。
仅获取完整的 4PL 参数 → DoseResponse_fit_curve(输入相同)。比较两个化合物 → 使用 DoseResponse_compare_potency,并传入 conc_a/resp_a/conc_b/resp_b(返回各自的 IC50、ic50_fold_shift_b_over_a 和 more_potent)。
对于非标准需求(约束平台、加权、绘图),scripts/fit_dose_response.py 可从 CSV 执行 scipy 4PL 拟合,结果与工具一致。
第 3 步 — 解读四个参数
| 参数 | 含义 | 合理性检查 |
|---|---|---|
| IC50 / EC50 | 产生半最大效应的浓度,即效价。数值越低,效价越高。 | 应落在测试范围内;如果位于或超出端点,说明曲线不完整(第 4 步)。 |
Hill 斜率 n | 曲线陡峭程度 / 表观协同性。约为 1 = 简单的单位点作用。>1.5 = 曲线陡峭 / 正协同性(或非特异性作用)。<0.5 = 曲线平缓 / 多位点作用或异质性。 | 如果 ` |
| Emax | 最大反应(顶部平台)= 效能。 | 对于百分比数据,完全激动剂的 Emax ≈100;即使在饱和剂量下,部分激动剂的平台值也远低于 100。 |
| Emin | 底部平台(基线 / 下限)。 | 对于抑制百分比数据,完全抑制剂的 Emin ≈0。 |
| r² | 拟合质量。 | ≥0.95 表示拟合良好;<0.90 → 在信任 IC50 之前,先检查异常值、模型是否错误或曲线是否不完整。 |
效价比较: 报告 IC50/EC50 的倍数变化(例如,“A 的效价是 B 的 6.2 倍”);只有在两条曲线的拟合都良好(r²≥0.95)且 Hill 斜率相近时,才应认为比较结果有意义——斜率差异很大的曲线之间,效价比值并非可靠的直接比较。
第 4 步 — 质量问题(应明确说明,不要隐瞒)
- 曲线不完整/没有平台期。 如果响应在两端都没有趋于平坦,Emax/Emin(因此也包括 IC50)就是外推值,且不稳定。应将 IC50 报告为“近似值/右移至测试范围之外”,并建议使用更宽的浓度范围。
- 少于 4–5 个数据点,或没有数据点接近拐点。 拟合可能收敛到毫无意义的 IC50,却有很高的 r²。请检查数据点是否确实覆盖 IC50。
- 双相/U 形数据。 单一 4PL 不适用于兴奋性效应或双位点行为——拟合效果会很差(r² 低);应标记这一问题,而不是强行得出一个 IC50。
- IC50 与 Ki。 IC50 取决于实验条件(底物/配体浓度)。未经 Cheng-Prusoff 校正,不要将 IC50 报告为亲和力(Ki)。
- 单位。 IC50 的准确性取决于输入的浓度单位——务必注明单位。
诚实说明局限
- 4PL 假定响应呈单调 S 形;无法描述双相、钟形或陡峭的全或无响应。
- 最常见的错误,是根据质量差或不完整的曲线给出看似可信的 IC50——应以 r² 和曲线覆盖范围作为报告依据。
- 效力(IC50/EC50)不等于效能(Emax)——效力更强的化合物可能是效能较弱的(部分)激动剂;两者都应报告。
相关技能
tooluniverse-image-analysis— 基于图像测量结果(.tif、菌落、荧光)进行剂量-反应分析。tooluniverse-gpcr-structural-pharmacology/tooluniverse-network-pharmacology— 受体药理学背景。tooluniverse-statistical-modeling— 通用回归、通过样条曲线计算 EC50、功效分析。