R: ヒートマップに行アノテーションを追加する
UB3/informatics/r/heatmap_annotation
このページの最終更新日: 2022/06/10- ComplexHeatmap でアノテーションを追加する
- pheatmap でアノテーションを追加する
広告
ComplexHeatmap でアノテーションを追加
ComplexHeatmap 関数で、右側または左側にアノテーションを追加する方法をまとめる。heatmap の行に対して情報を追加することになるので、
組み込みデータセット mtcars を例として使用。mtcars はこんな感じのデータセット。車の性能がまとめられている。

まずはただ heatmap を作って様子を見てみる。
デフォルトの色は赤 - 青、両軸でクラスタリングされるので、以下のような図が出力される。排気量 displacement と馬力 horse power, hp の数値が大きいので、その他の部分が真っ青になってしまう。
さらに、cyl と gear はシリンダーとギアの数で、整数値をもつ離散変数。vs と am は、エンジン (0 = V-shaped, 1 = straight) と Transmission (0 = automatic, 1 = manual) で、0 または 1 の二値変数である。全部をそのまま heatmap に投げ込むのは正しくない。

なお、R デフォルトの heatmap 関数を使うとこんな色合いになる (クリックで拡大)。

さらに、input が matrix でなく dataframe なので変換したという警告メッセージが出る。
Warning message: The input is a data frame-like object, convert it to a matrix.
heatmap を作る場合は、as.matrix でマトリクスに変換するのが基本である (→ R の行列とデータフレームの違い)。さらに cyl, gear, vs, am を除いて、以下のようにする。
Heatmap(as.matrix(mtcars2))

広告
右側に、先ほど取り除いた cyl や gear を追加してみよう。
別々のヒートマップをそれぞれ width1, width2... というオブジェクトに入れて、width1 + width2 のようにして表示させるイメージ。
show_row_names = TRUE, row_names_side = "left",
name = "param")
width3 = Heatmap(as.matrix(mtcars$gear), name = "gear")

vs, am は 0/1 の二値変数なので、それらを赤と緑で指定するパターン。フォントサイズの変更などもして見やすくした。

広告
References
Script: ub_related/R_script/Practice_heatmap_1_v1.R
- R : matrixとdata.frameの違い. Link: Last access 2022/05/21.
コメント欄
各ページのコメント欄を復活させました。スパム対策のため、以下の禁止ワードが含まれるコメントは表示されないように設定しています。レイアウトなどは引き続き改善していきます。「管理人への質問」「フォーラム」へのバナーも引き続きご利用下さい。
禁止ワード: http, the, м (ロシア語のフォントです)
|
|
このページにコメント
これまでに投稿されたコメント
Date | Name | Comment |
---|