R ComplexHeatmap 関数: ヒートマップのクラスタリング

UB3/informatics/r/heatmap_cluster

このページの最終更新日: 2024/02/03


  1. 概要: ヒートマップのクラスタリング
  2. ヒートマップの分割

広告

概要: ヒートマップのクラスタリング

R の ComplexHeatmap というパッケージで、ヒートマップのクラスタリングや分割を行う方法についてまとめた。

デフォルトのクラスタリング

  • cluster_columns = TRUE または FALSE
  • cluster_rows = TRUE または FALSE
  • show_column_dend = TRUE または FALSE
  • show_row_dend = TRUE または FALSE

他の関数で行ったクラスタリングの読み込み

hclust 関数などで既にクラスタリングが完了していれば、それを変数として読み込むことができる。

clustering <- hclust(data, method="average")
Heatmap(mat, cluster_columns = clustering)

k-means 法によるクラスタリング

  • row_km, column_km: 数字を指定して、ブロックの数を決める。k-means 法によってクラスタリングされる。
  • row_km_repeats, column_km_repeats: 1 以外の数字を指定する。row_km, column_km には乱数が使われているので、同じクラスタリングが再現されないことがある。これを防ぐために数値を設定する。
  • さらに、set.seed(123) のようにしてシード値を指定。row または column_repeat と sed.seed を両方設定して、km clustering が再現されるようになる。set.seed は、ヒートマップを作成するたびに毎回実行しなければならないようだ。

ヒートマップの分割

デンドログラムに従って分割

row_split = 2, column_split = 3 のように数字を指定して、デンドログラムに従って split が可能。width を使って複数のヒートマップを並べているときは、すべてがメインのヒートマップに従って分割される。

Rで作成したmtcarsのヒートマップ

マニュアルで分割

このデータセットは 32 行ある。これをマニュアルで分割したいときは、A が 10 個、B が 22 個のベクターを作って、それを split で参照すると分割可能。

A, B という文字が表示されてしまうが、これは row title に相当するので、row_title = " " と追加すれば表示されなくなる。

Rで作成したmtcarsのヒートマップ

クラスタリングを入れると、まず分割され、それぞれのブロックの中でクラスタリングされるようである。

Rで作成したmtcarsのヒートマップ

単に A - D のようにグループを増やせば、3 個以上に分割できる。

クラスタリングを入れると、まず分割され、それぞれのブロックの中でクラスタリングされるようである。

Rで作成したmtcarsのヒートマップ
広告

References

コメント欄

サーバー移転のため、コメント欄は一時閉鎖中です。サイドバーから「管理人への質問」へどうぞ。