Quantile Normalization
今週は9年ぶりくらいにマイクロアレイを使った実験をしている(昔の仕事。今では主成分分析は当たり前になっていますが、実に原始的ですなぁ)。
今回は、複数の処理間の比較を相互にしたいので一色法(One color)で実験した。
実験は生物研のマイクロアレイラボでさせていただいた。ハードもソフトも初期のものから見ると比較にならないほど進歩している。実際に異なるスライドグラス間で3反復したデータを見比べてみると、r2=0.995位の再現性がある。いやはや大した進歩です。
データ解析も然り。AgilentのアレイはOne colorの実験ではQuantile normalizationによるスケール調整を推奨している。手順は次の通り。
- シグナル強度を対数変換(底は2)する
- 75%点のシグナル強度の対数値でシグナル強度の対数変換した強度を割る
- 個々のプローブの価をアレイ間で中央値が0になるようにシフト
Gene springでこれを一気にやって頂いたのだが、12組のデータセットのうち3組は全く同じサンプルで反復をとったので、3.のステップでは若干バイアスがかかってしまう。
そこで、研究室に戻ってからSASインスティチュートのJMP7を生のシグナル強度から再計算させた。
アジレントの推奨するQuantile normalizationは、75%点のシグナル強度の対数値で、対数変換した個々のシグナル強度を割る。算術的には、処理Xの個々のSignal強度をSxとすると、Normalizeしたシグナル強度Sxnは次の通り。
Sxn = Log2(Sx)/Log2(Col Quantile(Sx, 0.75))
”Col Quantile(Sx, 0.75)”というのはJMPの関数で、カラムの分位点を返す。この場合は0.75を指定する。これって、結局
Sxn = Log(Col Quantile(Sx, 0.75))Sx
75%点のシグナル強度を底にした対数変換と同じことだ。が、JMPの関数では対数の底は10かeしか選べないので、計算上はLog10で処理する。プログラム上の数式は実はけっこう面倒くさい。こんな案配になる。
Sxn = (Log10(Sx)/Log102)/(Log10(Col Quantile(Sx, 0.75))/Log102)
簡略化すれば、
Sxn = Log10(Sx)/Log10(Col Quantile(Sx, 0.75))
Log10(Col Quantile(Sx, 0.75))は定数なので、結構マシではある。
ともあれ、底がシグナル強度の実測値に依存した任意の価だと、比べたいシグナル強度の比がわかりにくい。こういう変換は良いような悪いような・・・。結局、生のシグナル強度に返ってt検定やANOVAをする場合には、Sxnから逆変換をしておかないといけないのだな。
シグナル強度のヒストグラムを見ると、Z変換じゃいかんだろうにというデータを無理矢理正規化している論文も時折見る。が、どう見たって正規分布に近似できないものを、何も考えないで正規分布にねじ込むのは宜しくない。
このQuantile normalizationが妥当かどうか・・・もう少し考えてみないとわからない。
人気blogランキングへ←このエントリーの情報はお役に立ちましたか?
クリックしていただけると筆者が喜びます!
| 固定リンク
この記事へのコメントは終了しました。
コメント