IC50、EC50、LD50。みんな似たような名称ですが、それぞれちょっとずつ意味が違います。共通しているのは、いずれも 50%の確率で何かが起こる 濃度(Concentration)や用量(Dose)であることです。Wikipedia によると、
  • IC50:半数阻害濃度(half maximal (50%) Inhibitory Concentration)。化合物の生物学的または生化学的阻害作用の有効度を示す濃度。
  • EC50:半数効果濃度(half maximal (50%) Effective Concentration)。薬物や抗体などが最低値からの最大反応の50%を示す濃度。
  • LD50:半数致死量(Lethal Dose, 50%)。物質の急性毒性の指標、致死量の一種としてしばしば使われる数値で、投与した動物の半数が死亡する用量。
ということだそうです。こういった指標はほかにもあろうかと思いますが、今回は IGOR Pro で EC50 を求める方法を考えます。

▼ [おさらい] EC50 とは?

非常に大雑把に表現すると、ある実験で50%の効果・影響が認められた濃度が EC50 です。実験において、コントロールできるのは濃度ですが、ちょうど50%の効果・影響が認められる濃度というのは、事前にはわかりません。実験をやってみて、このあたりが50%の効果・影響だったね、と判断・推定するわけです。

いろいろ調べてみると、どうやら、効果・影響 vs. 濃度の関係が S 字カーブになるというのは、世の常識のようです(このあたりは、何か根拠があるんだと思いますが、詳しくないので触れないことにさせてください)が、S 字カーブといっても、いろんなカーブがあります。唯一無二な定義は無いのですが、一般に、パラメータが4つある次のカーブが良く利用されるようです(式1)。

Y = Bottom + (Top - Bottom)/(1+(X/C)Slope)   (1)

Bottom と Top は Y のレンジに対応し、Slope は変化する部分の傾きです。このカーブは非常に良くできていて、C を境に左右対称(点対称)なカーブになっています。つまり、この C が、50%の効果・影響を示す濃度になります。X を変化させて実験をして Y を観測して、この式でフィッティングすることで C を推計できれば、EC50 を求められるわけです。すごい。

この式は Hill の式(Hill Equation)と呼ばれることもあるらしく、Slope は Hill 係数(Hill Coefficient)とも呼ばれるそうです。

▼ IGOR Pro でフィッティング

では、式1の関数をユーザ定義関数でフィッティングしてみます(脚注)。次のようなサンプルデータ次のようなデータがあったとしましょう。

Table 1 サンプルデータ
Concentration Response
1.95 108
7.8 231
31.25 683
125 2288
500 6906
2000 18417
8000 24218
32000 24479
ig_ec50_1.pngaa
Fig.1 Concentration と Response

ユーザ定義関数の作成方法は、以前の記事をご参照いただくことにして、ここでは、ユーザ定義関数を定義すると得られるプロシージャだけ掲載しておきます。

Function Sample(w,x) : FitFunc
     Wave w
     Variable x
     //CurveFitDialog/ These comments were created by the Curve Fitting dialog. Altering them will
     //CurveFitDialog/ make the function less convenient to work with in the Curve Fitting dialog.
     //CurveFitDialog/ Equation:
     //CurveFitDialog/ f(x) = Bottom + (Top - Bottom)/(1+(x/EC50)^Slope)
     //CurveFitDialog/ End of Equation
     //CurveFitDialog/ Independent Variables 1
     //CurveFitDialog/ x
     //CurveFitDialog/ Coefficients 4
     //CurveFitDialog/ w[0] = Bottom
     //CurveFitDialog/ w[1] = Top
     //CurveFitDialog/ w[2] = EC50
     //CurveFitDialog/ w[3] = Slope

     return w[0] + (w[1] - w[0])/(1+(x/w[2])^w[3])
End

この定義をプロシージャウィンドウにコピーしてコンパイルすると、回帰分析のダイアログの関数のリストに Sample と いう関数が表示されます(Fig.2)。

ig_ec50_2.png
Fig.2 フィッティング関数のリスト

ユーザ定義関数では初期推定値を与える必要があります。今回のデータであれば、Fig.1から

  • Bottom = 0
  • Top = 30000
  • EC50 = 1000
  • Slope = -1

などと指定すれば良いでしょう。フィッティングを実行すると Fig.3 のようになります。いい感じですね。

ig_eg50_3.png
Fig.3 フィッティング結果

▼ ユーザ定義関数の再利用

せっかく定義した関数 Sample ですが、あるエクスペリメントファイルにしか定義されていませんので、何度も再利用して使うには不便ですね。ちょっと IGOR Pro に慣れた方なら、この定義をプロシージャファイル(.ipf)として保存しておいて、必要な時にロードすればよいとご存知でしょう。

IGOR Pro 6.1 以降には、もっと良い方法がありますよ。

IGOR Pro 6.1 では Igor Pro User Files というフォルダが利用できるようになりました。このフォルダは、 IGOR Pro 6.1 の新機能を紹介した際にも触れましたが、

Windows:
     C:\Users\<username>\Documents\WaveMetrics\Igor Pro 6 User Files
Macintosh:
     /Users/<username>/Documents/WaveMetrics/Igor Pro 6 User Files

にいろいろなファイルを配置することができます。Igor Pro 6 User Files にある Igor Procedures フォルダに上記のプロシージャファイルを保存してみてください。IGOR Pro を起動すればいつでも、回帰分析メニューの関数のリストに Sample が表示されます。

Igor Procedures  フォルダは、昔も今も Igor Pro Folder にありますが、6.1 から導入された Igor Pro User Folder は文字通りユーザフォルダなので、他のユーザは利用できません。あなただけのカスタマイズが可能です。

▼ まとめ

EC50 を例に、ユーザ定義関数を起動時にロードする方法をご紹介しました。何度も利用するようなユーザ定義関数がある方は、ぜひお試しください。

井上@技術開発部でした。


注:
以前の記事でも触れましたように、IGOR Pro の組み込みのフィッティング関数は限られているのですが、式1の関数は、実は、ほぼ、そのままずばりの組み込み関数が HillEquation という名称で提供されています(式2)。

Y = base+ (max - base)/(1+(xhalf/X)rate)   (2)

式1と式2は、Slope と rate が、

Slope = -rate   (3)

で置き換えれば、基本的に同じ関数であることがわかります。

※この記事の内容は執筆者の個人的見解で、ヒューリンクスによる公式情報ではありません。[免責事項]

トラックバック

この記事へのトラックバックURL
http://blog.hulinks.co.jp/cgi/mt/mt-tb.cgi/416
内容に対しての関連性がみられないものは削除する場合があります

グラフソフトには、グラフを簡単に、美しく描くだけでなく、同じデザインのグラフを描... 続きを読む

コメントの投稿

Emailアドレスは表示されません。は必須項目です。
ヒューリンクス取り扱い製品の内容や購入に関するお問い合わせはヒューリンクスサイト連絡先へお願いいたします。投稿前にその他の注意事項もご覧ください。

HULINKS サイトの新着情報