tooluniverse-dose-response について
濃度–反応データを4パラメータロジスティックモデルで適合するToolUniverseスキルです。研究者が効力、有効性、適合品質を推定し、解釈上の限界を確認しながら化合物を比較できます。
主な機能
- 014パラメータ用量反応曲線の適合
- 02IC50とEC50の推定
- 03Hill勾配と有効性の報告
- 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)、ヒル勾配、効果(Emax)、および品質評価を求め、化合物間で効力を比較します。
こんなときに使います
- 酵素阻害/活性化アッセイ、細胞生存率、レポーターアッセイ、放射性リガンド結合、アゴニスト/アンタゴニストの薬理試験。
- 濃度のリストと各濃度での反応値があり、IC50/EC50とヒル勾配を求めたいとき。
- 「化合物AはBよりN倍効力が高い」と示したいとき。
モデルは4パラメータロジスティック(4PL)/ヒルシグモイドです:
f(x) = Emin + (Emax − Emin) / (1 + (EC50/x)^n) — ここで、nはヒル勾配です。
ステップ1 — データを準備する(結果がうまくいかない原因)
| 問題 | 対処方法 |
|---|---|
| 濃度の単位 | 単位(µM、nM、M)を1つ選び、すべての測定点で統一します。IC50はその単位で返されます。単位を混在させないでください。 |
| 対数濃度と線形濃度 | 濃度はlog10ではなく、線形スケールで渡します(例:0.01, 0.1, 1, 10)。フィッターが内部で対数変換します。 |
| ゼロ/コントロール濃度 | 濃度が文字どおり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を使います(入力は同じです)。2つの化合物を比較する場合は、conc_a/resp_a/conc_b/resp_bを指定してDoseResponse_compare_potencyを使います(各化合物のIC50に加え、ic50_fold_shift_b_over_aとmore_potentが返されます)。
制約付きプラトー、重み付け、プロットなど、標準外の要件には、scripts/fit_dose_response.pyを使います。CSVからSciPyの4PLフィッティングを実行し、ツールと同じ結果を得られます。
ステップ3 — 4つのパラメーターを解釈する
| パラメーター | 意味 | 妥当性の確認 |
|---|---|---|
| IC50 / EC50 | 最大効果の半分が得られる濃度、つまり効力です。低いほど効力が高くなります。 | 測定範囲内にあるべきです。端点と一致する、または端点を超える場合、曲線は不完全です(ステップ4)。 |
ヒル勾配n | 急峻さ/見かけの協同性です。約1なら単純な単一部位です。1.5超なら、急峻な曲線/正の協同性(または非特異的な反応)を示します。0.5未満なら、浅い曲線/複数部位または不均一性を示します。 | ` |
| Emax | 最大反応(上側のプラトー)であり、効果を示します。 | %データの場合、完全アゴニストは約100です。部分アゴニストは、飽和濃度でも100を大きく下回る値でプラトーに達します。 |
| Emin | 下側のプラトー(ベースライン/下限)です。 | %阻害データの場合、完全阻害剤では約0です。 |
| r² | フィッティングの品質です。 | 0.95以上なら良好です。0.90未満の場合は、IC50を信頼する前に外れ値、誤ったモデル、不完全な曲線がないか確認してください。 |
効力の比較:IC50/EC50の倍率差を報告します(例:「AはBより6.2倍効力が高い」)。意味のある比較とするには、両方のフィッティングが良好(r²≥0.95)で、ヒル勾配が同程度であることが必要です。ヒル勾配が大きく異なる曲線間の効力比は、明確な比較になりません。
ステップ 4 — 品質上の注意点(隠さずに明記する)
- 曲線が不完全で、プラトーがない。 応答が両端で平坦にならない場合、Emax/Emin(ひいては IC50)は外挿値となり、不安定です。IC50 は「概算/試験範囲より右側」と報告し、より広い濃度範囲を推奨してください。
- 測定点が 4~5 点未満、または変曲点付近に測定点がない。 フィッティングが、高い r² を示しながら、意味のない IC50 に収束することがあります。測定点が実際に IC50 を挟んでいるか確認してください。
- 二相性/U 字型のデータ。 4PL の単一フィッティングは、ホルミシスや二部位性の挙動には適しません。フィッティングの精度は低くなります(r² が低い)。IC50 を無理に 1 つ求めず、その旨を明記してください。
- IC50 と Ki。 IC50 はアッセイ条件(基質/リガンド濃度)によって異なります。Cheng-Prusoff 補正なしに、IC50 を親和性(Ki)として報告しないでください。
- 単位。 IC50 の正確さは入力した濃度単位に左右されるため、必ず単位を明記してください。
正直な制約
- 4PL は単調なシグモイドを前提としており、二相性、釣鐘型、または全か無かの急峻な応答は表現できません。
- 不適切または不完全な曲線から確信度の高い IC50 を報告することは、最もよくある誤りです。r² と曲線のカバレッジを基準に、報告の仕方を判断してください。
- 効力(IC50/EC50)は有効性(Emax)とは異なります。より効力の高い化合物が、より弱い(部分)アゴニストである場合があります。両方を報告してください。
関連スキル
tooluniverse-image-analysis— 画像由来の測定値(.tif、コロニー、蛍光)を用いた用量反応解析。tooluniverse-gpcr-structural-pharmacology/tooluniverse-network-pharmacology— 受容体薬理の文脈。tooluniverse-statistical-modeling— 一般的な回帰、スプラインによる EC50、検出力分析。