mcpField
T
tooluniverse-dose-response

tooluniverse-dose-response

github.com/mims-harvard数据与数据库1.8k122 次安装2 天前更新
代码仓库

关于 tooluniverse-dose-response

这是一个使用 4 参数逻辑模型拟合浓度-响应数据的 ToolUniverse 技能,帮助研究人员估算效价、效能和拟合质量,并比较化合物,同时提示结果解释的局限。

主要功能

  1. 014 参数剂量-响应曲线拟合
  2. 02估算 IC50 和 EC50
  3. 03报告 Hill 斜率与效能
  4. 04检查拟合质量
  5. 05比较化合物效价
  6. 06CSV 拟合脚本

适用场景

  1. 01分析酶或细胞实验响应
  2. 02比较不同化合物的效价
  3. 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、功效分析。

评论

支持 Markdown