ヒートマップの色づけ (6): 中央値からの距離とシグナル値の関係

log変換した後、さらに、中央値(または平均値でも可)の距離に変換することで、コントロール群と実験群の差が見えやすくなります。このとき、もとのシグナル値との関係はどうなっているでしょうか?

中央値からの距離に変換したヒートマップ。
中央値からの距離に変換したヒートマップ。

シグナル値が異なる複数の遺伝子を色づけ

上記は、2つの遺伝子のシグナル値を、中央値からの距離に変換して色付けした場合の例です。中央値は、それぞれの遺伝子ごとに算出します。つまり、 Gene A の中央値は、4.5 であり、 Gene B の中央値は、9.5 です。それぞれの中央値を使って、距離を求めます。

したがって、 Gene A の WT1 は、 4 – 4.5 = -0.5 となり、 Gene B の WT1 は、9 – 9.5 = -0.5 となります。同様にすべてのサンプルについて算出し、色づけします。凡例にあるように、色づけの基準は、1つで複数の遺伝子に対応できます。

結果として、どちらも WT は -0.5 、 KO は、 +0.5 となり、色づけは、 Gene A も Gene B も同じパターンになります。

もとのシグナル値の高低に注意

このように、中央値からの距離に変換した場合、コントロール群と実験群の差は分かりやすくなりますが、 各遺伝子のシグナル値の高低は分からなくなります。

よって、ヒートマップからは、一見、差があるように見えても、マイクロアレイデータからシグナル値を確認すると、低い部分の変化であることもあります。シグナル値が低い場合は、ノイズである可能性もあるので、重要な遺伝子であれば、ヒートマップの色だけで判断せずに、もとの数値をチェックした方がよいでしょう。

 

ヒートマップの色づけ (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何個分離れているか、という値に変換する場合もあります。

 

ヒートマップの色づけ (4): 凡例 (legend) の表示

これまでの例からも分かるように、ヒートマップの色づけは、作者次第で変化します。そのため、ヒートマップには、「どれくらいの数値を何色にしているか」という凡例 (legend) の表示が不可欠です。

凡例の表示。
凡例の表示。

凡例の表示

凡例 (legend, Color Key)は、色のついたバーに、目安となる数値をつけて表現します。 少なくとも、最低値(左端)、中央値(真ん中)、最高値(右端)の3つの数値は必要でしょう。また、ヒートマップの色づけは、の3段階ではなく、連続的に変化していることが多いです。 続きを読む ヒートマップの色づけ (4): 凡例 (legend) の表示

 

ヒートマップの色づけ (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変換してもシグナル値の大小関係は保たれます。分布が狭くなるだけでは、うまく色付けできません。

 

ヒートマップの色づけ (2): ratio で色づけ

高いシグナルと、低いシグナルがあるためにうまくいかないのであれば、シグナル値を fold change (ratio) に変換して色づけしてはどうでしょうか?

シグナル値を ratio に変換。
シグナル値を ratio に変換。

ratio の算出

例の場合、WTをコントロールとするので、WTの平均値で、KOのシグナル値を割ると ratio になります。

Gene A の場合は、WT の平均値が 10 なので、 KO の ratio は、10 になります。一方、WTは同じ値で割るので、1になります。(例は、シグナル値がいずれのサンプルも同じ(=ばらつきが全くない)極端なケースです。)

Gene B の場合は、WT の平均値が 1000 なので、 KO の ratio は、2 になります。WTは同じ値で割るので、1になります。

ratio で色づけ

これを色づけしてみます。変動のないところ、つまり、 ratio = 1 の部分を黒、2倍以上 (ratio > 2) を、0.5倍以下 (ratio < 0.5) をに塗るとします。

ratio で色付けした例。
ratio で色付けした例。

結果としては、コントロール群が黒で、実験群が、黒、となるヒートマップが得られます。シグナル値が高いところも低いところも、 ratio が変動していれば、変化は色として確認できます。(この意味では、目的を達成している色づけ方法といえます。)

ただ、コントロール群は、同じ値で割ることになるので、黒以外になりません。よって、ratio で色づけした場合、コントロール群をヒートマップに表示する意味はほとんどありません。

ratio を用いた場合、コントロール群で低いところは、高いところは(実験群はその逆)という、色の変化にはなりません。