ヒートマップの色づけ (5): 中央値からの距離に変換して色付け

「コントロールで低いところは、実験群で高いところは」のように色づけするには、 log変換した後、さらに、中央値からの距離に変換することが必要です。

中央値からの距離

中央値 (median) は、文字通り、真ん中の値です。例の場合、6サンプルのシグナル値は、9から10の間に分布しています。よって、その真ん中である 9.5 が中央値となります。(奇数サンプルの場合は、平均を取る必要はありません。5サンプルなら、3番目に大きい値が中央値です。)

中央値からの距離は、単純に「差」を取ればよいです。例えば、WT1のシグナル値は、9なので、9-9.5 = -0.5 となります。同様にKO1のシグナル値は、10-9.5 = 0.5 です。

中央値からの距離で色づけ。
中央値からの距離で色づけ。

中央値からの距離で色づけ

中央値からの距離に変換したら、色づけします。「どのくらいの差を何色にするか」は作者が決めます。ここでは、-1であれば、、+1であれば、としました。中央値からの距離なので、必然的に中央値に該当するものが、真ん中=となります。どのような色づけにしているかは、必ず凡例を付けましょう。

MeV の使い方で紹介している色づけ方法は、この作業を意味しています。

ここでは、一例として、中央値を使いました。これ以外に、平均値を使う場合もあります。また、標準偏差を求めて、平均値からSD何個分離れているか、という値に変換する場合もあります。

 

ヒートマップの色づけ (3): log変換して色づけ

ratio で色づけをしても、コントロール群で低いところは、高いところは(実験群はその逆)という色づけにはなりません。では、log変換した場合はどうでしょうか?

色づけが期待通りにならない原因の1つは、シグナル値が非常に広い範囲に分布していることです。log変換することで、この範囲を狭くすることはできます。例えば、下図のように、16から1024まであったものが、 log 変換すると、4から10までの範囲に収まります。(100万でも log2変換すると 20 くらいなので、必ず、二桁以内に収まります。)

log変換した場合。シグナル値の分布する範囲は狭く見える。
log変換した場合。シグナル値の分布する範囲は狭く見える。

これを色付けしてみます。Gene A の WTの低いところをにしたいので、 4.5 よりシグナル値の低いところを、高いところをにします。また、Gene B にも同じ色づけを適用します。

log2変換してから色づけ。
log2変換してから色づけ。

結果は、log変換しない場合と同じです。log変換してもシグナル値の大小関係は保たれます。分布が狭くなるだけでは、うまく色付けできません。

 

MA プロット (MA Plot)

ボックスプロット、散布図、ヒストグラムのほかに、マイクロアレイのデータの代表的な表示方法として、MAプロット(えむえーぷろっと) [1] があります。図形としては、散布図を45度回転させたようなイメージです。

MAプロットに用いるデータ

MAプロットは、2サンプルのデータの関係を表します。散布図では、log2変換されたシグナル値がそのまま用いられますが、MAプロットを書くためには事前に計算作業が必要です。その名の通り、2サンプルのデータから、MAの値を算出して使用します。ここで、M は「log2変換されたシグナル値の差」であり、A は「log2変換されたシグナル値の平均値」です。数式では、次のように書けます。

  • M = log2(実験サンプル) – log2(コントロールサンプル)
  • A =  { log2(実験サンプル) + log2(コントロールサンプル) } / 2

M は、「log2変換されたシグナル値の差」つまり、logFC のことです。また、A は、Average の A と覚えるとよいでしょう。

MAplot
MA プロットの例。

作図方法については、wikipedia などで紹介されています[2]。当初は2色法のデータをもとに提案されていたため、2サンプルとして、R: redG: green の表記がされていることもありますが、1色法でもMAプロットは使えます。MAプロットは、散布図のひとつです。ただ、シグナル値の代わりにMとAの値を算出して用いているだけです。MとAの値を算出してしまえば、散布図なので、エクセルでも比較的簡単に書けるでしょう。

続きを読む MA プロット (MA Plot)

 

log fold-change (=logFC or log ratio) の算出方法の確認(解答)

前投稿の解答です。WT と KO に、それぞれ具体的な値を入れてみると、分かりやすいかもしれません。

たとえば、WT = 128, KO = 256 であったとします。ratio = KO/WT なので、 256/128 = 2 となり、通常の ratio は、2 です。つまり、2倍に増加したことになります。では、logFC では、どうでしょうか?

  1. 先に log2 変換するので、式で書くと、 log2(KO) / log2(WT) となります。log2(256) = 8, log2(128) = 7 なので、logFC = 8/7 = 1.142 ?? 間違いです。
  2. 後で log2 変換するので、式で書くと、 log2(KO/WT) となります。 log2(256/128) = log2(2) = 1 で、正しいです。
  3. log2 変換してから、差をとります。式では、 log2(KO) – log2(WT) となります。log2(256) – log2(128) = 8-7 = 1 で、これも正しいです。
  4. 先に差をとってから、log2 変換するので、 log2(KO – WT) と書けます。log2(256 – 128) = log2 (128) = 7 ?? 間違いです。
  5. WT = 128, KO = 256 なら、logFC = 2 ?? WT = 256, KO = 128 なら logFC = -2 ?? 間違いです。

正解は、 2. と 3. です。どちらの計算方法でもよいのですが、log2変換されていれば、割り算ではないことに注意が必要です。

計算に用いているシグナル値が、log2変換された値 (log2-transformed) なのか、log2変換されていない値 (non-log) かを確認しておきましょう。

 

log fold-change (=logFC or log ratio) の算出方法の確認

log fold-change (= logFC or log ratio) の算出方法の確認です。logFC の算出方法として、正しいのは、次のうちどれでしょうか?正解は2つあります。

wild type (WT) と knock out (KO) の2サンプルのシグナル値を比較するものとします。なお、通常の fold-change (ratio) は、以前に紹介したように割り算ですので、KO を WT で割れば(KO/WT)、WTに比べて、何倍になっているか計算できます。

  1. WT と KO の値をlog2変換して、KO を WT で割る
  2. KO を WT で割ってから、算出された値をlog2変換する。
  3. WT と KO の値をlog2変換して、KO から WT を引く
  4. KO から WT を引いてから、算出された値をlog2変換する。
  5. KO を WT で割る。このとき、ratio > 1 なら、そのまま。ratio < 1 なら、逆に WT を KO で割り、ー(マイナス)の符号を付ける。