r - 具有 K 个集群和行名注释的热图
问题描述
我有一个看起来像这样的数据框,其中包含基因名称、基因家族和 Log2Fold Changes 。我能够将折叠变化放在热图中,但想只用基因家族注释行(在热图的右侧),同时还在整个热图上进行 K-means 聚类(制作 5 个簇)。这在 ComplexHeatmap 中可能吗?我附上了我的数据框:
tf.logs
Name 0dpi 1dpi 7di 14dpi 22dpi
Gene1 MYB 1 2 3 4 5
Gene2 WRKY 4 3 6 5 11
Gene3 ERF 3 4 5 66 2
Gene4 bZIP 3 4 5 6 6
Gene5 EFR 4 4 4 4 4
我的热图代码是这样的:
heat.gen = Heatmap(tf.log, width = unit(4, "cm"), km = 6
cluster_columns = F,
show_row_names = F,
row_gap = unit(1.25, "mm"),
row_title_gp = gpar(fontfamily = "sans", fontsize = 8, fontface = "bold"),
name = "Log2FC",
column_title = "Resistant - Susceptible",
column_title_gp = gpar(fontfamily = "sans", fontsize = 16),
col = colorRamp2(c(-4,0,4), colors = c("dodgerblue2", "cornsilk", "firebrick1")))
我还有一个包含基因名称和家族的数据框:
Family
Gene1 MYB
Gene2 WRKY
Gene3 ERF
Gene4 bZIP
Gene5 EFR
解决方案
不确定,ComplexHeatmap
但使用这个pheatmap
包很容易。只需将注释数据框提供为annotation_row
. 您可以对行和列进行聚类。
我已经使用了这两个软件包并且更喜欢pheatmap
个人。
推荐阅读
- c++ - 按字母顺序对对象数组进行排序c ++
- scala - What this error mean in high-order function? [Scala]
- sql - 多个特征组合导致要索引的数字的 Sql 问题
- node.js - 请求许可时的错误响应
- coq - coq 中有限映射的相等性(使用 map2 定义)
- c - 尝试使用用户输入时的 AddressSanitizer:DEADLYSIGNAL
- ios - 英国自动续订订阅者没有收据数据?
- html - 在 Bootstrap 中以一定的精度将图像定位在彼此之上
- raspberry-pi - 将 Plex 与 Chromecast 与 RasPlex 结合使用?
- angular - Angular DataTable 服务器端处理 - 上传和删除后重新加载列表中的新数据