システム関数で非線形フィットを行う


Video Image.png Video Text Image.png Website blog icon circle.png Blog Image 33x33px.png

概要

「NLFit」ダイアログは、非線形フィット処理中にフィット処理を確認することができるインタラクティブなツールです。このチュートリアルでは、Michaelis-Menten関数を使ってフィットします。これは、酵素反応速度での基本的なモデルで、これを例にして「NLFit」ダイアログの基本機能を説明します。フィットを実行する際にグローバルフィットを実行する方法を示します。これは、いくつかのパラメータを共有して、2つのデータセットを同時にフィットするものです。

必要なOriginのバージョン: Origin 8.0 SR6以降

学習する項目

このチュートリアルでは、以下の項目について解説します。

  • 単一ASCIIファイルをインポートする方法
  • パラメータを共有してグローバルフィットを実行する方法
  • フィット範囲を選択して、データの一部をフィットする方法
  • コマンドウィンドウを使って、簡単な計算を行う方法

ステップ

ファイルインポート

ワークブックを新しく作成します。ヘルプ: フォルダを開く: サンプルフォルダを選択して、サンプルフォルダを開きます。このフォルダ内のCurve FittingサブフォルダにあるEnzyme.dat ファイルを探します。空のワークシートにファイルをドラッグアンドドロップしてインポートします。

Tutorial NLFit 001.png

データをプロットする

列Bと列Cを選択して、Scatter.png ボタンをクリックし、散布図としてプロットします。

Tutorial NLFit 002 SR6.png

Michaelis-Menten関数でフィットする

単一基質の Michaelis-Menten 関数モデルは、酵素反応速度論で使用される基本モデルです。

v=\frac{V_{max}[S]}{K_m+[S]}

パラメータはvが反応速度、[S] は基質濃度、V_{max}は最大速度、K_m は、Michaelisの定数を表します。V_{max}K_m のパラメータは重要な酵素の特性で、こららの値はM-M (Michaelis-Menten)関数を v[S]でプロットした曲線にフィットして求めます。Originには、M-Mフィット関数はありませんが、より一般的なモデルである組み込みであるHill 関数を使ってフィットできます。

v=V_{max}\frac{x^n}{k^n+x^n}

ここで、 n は結合サイトです。単一基質モデルの場合、n=1の値は固定します。よってモデルをシンプルにしてM-M関数のように使用できるようにします。

作図したグラフを確認すると、2つの曲線がある事が分かります。ひとつは抑制物質なし、もうひとつは競合型抑制物質がある場合です。非線形曲線フィットツールを使用して2つの曲線を一度にフィットしましょう。競合抑制反応に対して、最大反応速度は抑制無しと同じなので、フィット処理中に V_{max} 値を共有することができ、グローバルフィットにより行われます。


  1. グラフをアクティブにして、解析:フィット:非線形曲線フィットと操作を行い、NLFitダイアログを開きます。設定:関数選択ページにあるGrowth/Sigmoidalカテゴリーから Hill 関数を選択します。
    Tutorial NLFit 003 SR6.png
  2. 設定:データ選択ページで、入力データの隣にある三角形のボタンをクリックし、現在のページのすべてのプロットを追加を選択して、データをセットします。
    Tutorial NLFit 004 SR6.png
  3. 設定:データ選択ページにある複数データフィットモードのドロップダウンリストから グローバルフィットを選択します。
    Tutorial NLFit 005 SR6.png
  4. パラメータタブをクリックし、 Vmaxの行にある共有チェックボックスにチェックを付けます。 これらの『共有』チェックボックスは、グローバルフィット モードを使っているときだけ利用できます。n と n_2の『固定』チェックボックスにチェックを付け、それらの値を1にします。
    Tutorial NLFit 006 SR6.png
  5. フィット」ボタンをクリックし、分析レポートを生成します。元のグラフにフィットのパラメータが表示されます(以下の画像ではフィットパラメータ値のみが表示されています)。
    Tutorial NLFit 007 SR6.png

フィット結果から、最大速度は、2162.8 \mu M/minであると結論付けできます。抑制なしの場合、K_mの値は1.78\mu Mになります。競合型抑制の場合、K_mの値は4.18\mu Mになります。

Lineweaver-Burk プロットをフィットする

モデルのパラメータは、Lineweaver-Burkまたは二重逆数プロットによっても推定できます。Lineweaver-Burkプロットは、 M-M関数の両側の逆数を取り、 1/v1/[S]でプロットします。

\frac{1}{v}=\frac{1}{V_{max}}+\frac{K_m}{V_{max}[S]}

これは実際には線形の関数です。

Tutorial NLFit L-B Plot.png

抑制なしの場合のデータを使用して、計算方法K_mV_{max}L-Bプロットを示します。


  1. 元のデータのワークシートに行き、Add New Columns.pngボタンをクリックして、2つ以上の列を追加します。列Dを右クリックして、列XY属性の設定: X列を選択してX列に設定します。再度、列Dを右クリックして、ショートカットメニューから列値の設定を選択し、値の設定ダイアログを開きます。ダイアログの編集ボックスに 1/Col(A) と入力し、この例では逆数の値を自動更新する必要はないので、再計算モードを「無し 」にします。
    同様に、列Eの値を 1/Col(B)として設定します。列DとEのロングネームをそれぞれ1/[S] & 1/Vとして入力します。すると、次のようになります。
    Tutorial NLFit 009 SR6.png
  2. 列Dと列Eを選択し、 Scatter.pngボタンをクリックして、散布図を作成します。
    Tutorial NLFit 010 SR6.png
    上記の式から、1/v 1/[S] には線形の関係があることが分かっているので、線形フィットツールを使って、このプロットを直線でフィットできます。(解析:フィット:線形フィットより線形フィット機能を使用することもできます)
  3. もう一度、非線形曲線フィットのダイアログを開き、「Polynomial」カテゴリーから Line 関数を選び、「フィット」ボタン Fit.png をクリックして、直接結果を生成します。
    Tutorial NLFit 011 SR6.png
    プロットから離れているデータポイントがあるので、これが最も良いフィットであるかどうかは疑う必要があります。実際、L-Bプロットの右側には、低い基質濃度の領域があり、測定誤差が大きいかもしれません。そのため、これらのデータポイントを除外した方が無難でしょう。
    Tutorial NLFit 012 SR6.png
  4. グラフの左上の角にある錠のアイコンをクリックして、パラメータの変更を選び、NLFitダイアログに戻ります。
    Tutorial NLFit 013 SR6.png
    設定:データ選択ページで、入力データノードにあるTriangle Button.png ボタンをクリックし、メニューから「グラフからすべてのデータを再選択する」を選択します。
    Tutorial NLFit 014 SR6.png
    NLFitダイアログは最小化し、 グラフページにカーソルを移動すると、カーソルが Tutorial NLFit 015.pngのようになります。フィットしたデータポイントを囲むようにドラッグして矩形を描きます。すると、入力範囲は縦線で印が付けられます。縦線をクリックして移動すれば、入力範囲を変更することができます。
    Tutorial NLFit 015 SR6.png
    グラフから範囲を選択するにあるTutorial NLFit 018.pngボタンをクリックして、「NLFit」ダイアログに戻ります。
    Tutorial NLFit 016 SR6.png
  5. 「NLFit」ダイアログの「フィット 」ボタンをクリックして、結果を再計算します。レポートテーブルが更新されたのがグラフから分かります。
    Tutorial NLFit 017 SR6.png
  6. フィット曲線の切片が 1/V_{max} であり、この例では、これは 4.76191E-4 です。V_{max}値を得るには、ウィンドウ:コマンドウィンドウを選択し、コマンドウィンドウを開き、次のように入力します。
    1/4.76191E-4 =
    そして、ENTERキーを押します。
    Tutorial NLFit 018 SR6.png
    Originは2099という値を返し、これは上記で得た2160に近い数字となっています。(Hill関数でフィットしたとき、2つのデータセットをフィットするのに V_{max} を共有しました。 抑制無しのデータのみをフィットすれば、この値はもっと近くなります。)