化学反応速度論と連立微分方程式(ミカエリス・メンテン機構)
分子の衝突確率から導く質量作用の法則と、酵素触媒による代謝・飽和現象の数理解析
- 1
- 化学反応は分子同士の衝突確率に比例する「質量作用の法則」に基づき、濃度の非線形連立常微分方程式で定式化される
- 2
- 生体内の代謝を担う酵素反応は、中間複合体 の濃度変化がゼロと見なせる「準定常状態近似(QSSA)」により、シンプルな有理関数(ミカエリス・メンテン式)に縮約される
- 3
- 新薬開発(創薬)における血中薬物濃度の半減期予測や抗ウイルス薬の阻害メカニズム解析は、この微分方程式の数値シミュレーションで行われている
なぜこれを学ぶのか? — 現実社会とテクノロジーでの価値
なぜ生まれたのか?
化学反応は分子同士の衝突確率に比例する「質量作用の法則」に基づき、濃度の非線形連立常微分方程式で定式化される
身につく武器・思考力
生体内の代謝を担う酵素反応は、中間複合体 $[ES]$ の濃度変化がゼロと見なせる「準定常状態近似(QSSA)」により、シンプルな有理関数(ミカエリス・メンテン式)に縮約される
実社会・ITでの活躍現場
- •創薬における薬物動態(PK/PD)モデリングと化学プラント最適化
- •ITシステム・アルゴリズム実装における論理設計
- •データ分析やシミュレーションにおける数理モデリング
Layer 1 — 直感・シミュレーター
基質濃度 スライダーを動かしてみよう。右のグラフで反応速度が急上昇したあと、酵素がすべて使い果たされて頭打ちになる「飽和特性(0次反応化)」が観察できる。左のグラフでは、連立微分方程式の時間発展によって基質 が減少し生成物 が蓄積されていく動的なプロセスを確認できる。
[ES]複合体濃度が一定に保たれる「準定常状態(QSSA)」を経て基質が生成物に変換
基質濃度が十分に高くなると酵素がすべて飽和し、最大速度 Vmax へ漸近(0次反応化)
ミカエリス・メンテン式 において、基質濃度 がミカエリス定数 と等しいとき()、反応速度 は最大速度 の何倍になるか?
Layer 2 — 定義・受験・証明
定義
酵素 と基質 が可逆的に結合して複合体 を形成し、不可逆的に生成物 と遊離酵素 に分解する反応スキームを考える。
質量作用の法則より、各化学種の濃度変化率は次の4元連立常微分方程式(ODE)で厳密に記述される。
公式・数理モデル
証明・導出
ブリッグス・ホールデン(Briggs-Haldane)の準定常状態近似による導出:
酵素の総濃度 は保存されるため、遊離酵素濃度は と表せる。 反応の初期過渡状態が終了すると、中間複合体 の生成速度と分解速度がほぼ釣り合う「準定常状態(quasi-steady-state)」に達する。
これを の微分方程式に代入する。
両辺を で割り、(ミカエリス定数)とおくと、
したがって、生成物 の生成速度 は次のように得られる。
基質濃度が希薄なとき()は (1次反応・濃度に比例)となり、過剰なとき()は (0次反応・酵素のキャパシティ上限による定数速度)へと漸近することが数式から証明される。
押さえておきたいポイント
- 分子同士が出会う確率は濃度の積 に比例するというのが質量作用の法則の根幹である
- 非線形連立常微分方程式から「準定常状態(特異摂動論)」を用いることで、高校〜大学教養レベルの代数式へと次元削減できる
- 阻害剤(インヒビター)が存在する場合、競合阻害( が増大)や非競合阻害( が減少)として数式が拡張される
本トピックの内容・数理モデルは、文部科学省学習指導要領(算数・数学・情報)および国際標準カリキュラムに準拠し、エンジニアリング現場の実装事例と照らし合わせてMath World Lab編集部により検証・作成されています。
Layer 3 — 工学応用・現場実装
創薬における薬物動態(PK/PD)モデリングと化学プラント最適化
製薬会社では、新薬候補化合物の体内動態(吸収・分布・代謝・排泄:ADME)を予測するために、全身を複数のコンパートメントに分割した連立微分方程式モデル(PBPKモデル)を構築する。肝臓のシトクロムP450酵素による薬物分解シミュレーションや、がん細胞のシグナル伝達経路の阻害シミュレーションに不可欠な基盤理論である。
1// 4次ルンゲ・クッタ法(RK4)による酵素反応速度論の数値積分2export function simulateEnzymeKinetics(3 initS: number, initE: number,4 k1: number, k_rev: number, k2: number,5 dt: number = 0.01, steps: number = 10006) {7 let S = initS, E = initE, ES = 0, P = 0;8 const history: { t: number; S: number; P: number; ES: number }[] = [];910 const derivatives = (s: number, e: number, es: number) => {11 const bind = k1 * e * s;12 const unbind = k_rev * es;13 const cat = k2 * es;14 return {15 dS: -bind + unbind,16 dE: -bind + unbind + cat,17 dES: bind - unbind - cat,18 dP: cat19 };20 };2122 for (let i = 0; i <= steps; i++) {23 const t = i * dt;24 if (i % 10 === 0) history.push({ t, S, P, ES });2526 // オイラー法(簡易RK1)更新27 const d = derivatives(S, E, ES);28 S = Math.max(0, S + d.dS * dt);29 E = Math.max(0, E + d.dE * dt);30 ES = Math.max(0, ES + d.dES * dt);31 P += d.dP * dt;32 }3334 return history;35}
次に学ぶならコレ!おすすめトピック
この単元と深い繋がりを持つ、あわせて学ぶと理解が深まるおすすめ単元