R ComplexHeatmap 関数: ヒートマップのクラスタリング
UB3/informatics/r/heatmap_cluster
このページの最終更新日: 2024/09/30広告
概要: ヒートマップのクラスタリング
R の ComplexHeatmap というパッケージで、ヒートマップのクラスタリングや分割を行う方法についてまとめた。
デフォルトのクラスタリング
- cluster_columns = TRUE または FALSE
- cluster_rows = TRUE または FALSE
- show_column_dend = TRUE または FALSE
- show_row_dend = TRUE または FALSE
他の関数で行ったクラスタリングの読み込み
hclust 関数などで既にクラスタリングが完了していれば、それを変数として読み込むことができる。
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 を使って複数のヒートマップを並べているときは、すべてがメインのヒートマップに従って分割される。
マニュアルで分割
このデータセットは 32 行ある。これをマニュアルで分割したいときは、A が 10 個、B が 22 個のベクターを作って、それを split で参照すると分割可能。
A, B という文字が表示されてしまうが、これは row title に相当するので、row_title = " " と追加すれば表示されなくなる。
クラスタリングを入れると、まず分割され、それぞれのブロックの中でクラスタリングされるようである。
単に A - D のようにグループを増やせば、3 個以上に分割できる。
クラスタリングを入れると、まず分割され、それぞれのブロックの中でクラスタリングされるようである。
広告
References
コメント欄
サーバー移転のため、コメント欄は一時閉鎖中です。サイドバーから「管理人への質問」へどうぞ。