在这种情况下,您需要使用画()
显式函数。看到https://jokergoo.github.io/ComplexHeatmap-reference/book/a-single-heatmap.html plot-the-heatmap和https://jokergoo.github.io/ComplexHeatmap-reference/book/a-list-of-heatmaps.html plot-the-heamtap-list。
从单一的热图获取订单和系统树图。看到https://jokergoo.github.io/ComplexHeatmap-reference/book/a-single-heatmap.html get-orders-and-dendrograms-from-heatmap。
获取订单和系统树图的热图的列表。看到https://jokergoo.github.io/ComplexHeatmap-reference/book/a-list-of-heatmaps.html get-orders-and-dendrograms-from-a-list-of-heatmaps。
对于复杂的注释生成的anno_ * ()
功能,宽度或高度应设置里面anno_ * ()
功能,如anno_points (…身高=…)
。的大小是由简单的注释anno_simple_size
。的宽度
/高度
和annotation_width
/annotation_height
是用来调整为多个注释都放在一个尺寸吗HeatmapAnnotation
对象。看到https://jokergoo.github.io/ComplexHeatmap-reference/book/heatmap-annotations.html multiple-annotations
在注释功能anno_ * ()
,争论axis_param
可用于设置坐标轴。值应该是一个列表,默认设置轴可以得到:
default_axis_param(“列”)default_axis_param(“行”)
传奇的风格可以控制的heatmap_legend_param
在热图()
,或annotation_legend_param
在HeatmapAnnotation ()
。传说中这些参数控制的参数传奇()
函数。看到https://jokergoo.github.io/ComplexHeatmap-reference/book/legends.html heatmap-and-annotation-legends。
的布局ComplexHeatmap并不完美,它仍然是有可能的一些文本的绘图区域。在这种情况下,您可以设置填充
论点画()
函数增加周围的空白区域最后的情节。看到https://jokergoo.github.io/ComplexHeatmap-reference/book/a-list-of-heatmaps.html manually-increase-space-around-the-plot。
是的,使用% v %
而不是+
。看到https://jokergoo.github.io/ComplexHeatmap-reference/book/a-list-of-heatmaps.html vertical-concatenation。
是的,所有的文本相关的元素(如标题、行名称,传说头衔,传说标签,…)允许数学表达式。
你可以设置newpage = FALSE
在画()
功能和使用grid.layout ()
管理面板的布局。
pushViewport(视窗(布局= grid.layout (…))) pushViewport(视窗(layout.pos。行=…,layout.pos。坳=…))(ht newpage = FALSE) #或画(ht_list newpage = FALSE) popViewport ()……
但我更建议使用grid.grabExpr ()
直接捕获的热图的输出和后画出整个情节作为一个单一的图形元素grid.draw ()
。
ht_grob =网格。grabExpr(画(ht…)) pushViewport(视窗(布局= grid.layout (…))) pushViewport(视窗(layout.pos。行=…,layout.pos。坳=…))grid.draw (ht_grob) popViewport ()……
你可以分成几个组,第一组你行组级别系统树图。看下面的例子:
m =矩阵(rnorm (1000 * 10), nr = 1000) hc = hclust (dist (m))组= cutree (hc, k = 6)的热图(m, cluster_rows = cluster_within_group (t (m)、组),row_split = 6,边境= TRUE)如果还设置row_split #最好
热图用于可视化的全球模式矩阵虽然不是每一个行或列。我建议随机样本行或列成一个合理的小数目,最后的热图应该一样如果你仍然坚持使用完整的矩阵。
您需要使用decorate_row_dend ()
或decorate_column_dend ()
手动添加坐标轴。看下面的例子:
m =矩阵(rnorm (100), 10) ht =热图(m, name = " foo ", row_dend_width =单元(4厘米),column_dend_height =单元(4厘米))画(ht、填充=单位(c(15、2、2、2),“毫米”))decorate_column_dend (" foo ", {grid.yaxis ()}) decorate_row_dend (" foo ", {vp = current.viewport()美元xscale = vp xscale网格。xaxis (= xscale[2]——0:5,标签= 0:5)})
注意左行系统树图,轴从右到左,你需要self-define在
和标签
在grid.xaxis ()
函数。
您还可以检查annotation_axis_grob ()
函数(以后使用grid.draw ()
画坐标轴)画一个更好的轴。
是的,这是它应该会因为k - means使用随机开始点和它对不同的运行可能会给不同的结果。为了解决这个问题,你无论哪种方式如下:
set.seed (…)
之前的热图。这使得确定随机种子总是相同的不同的运行。row_km_repeats
/column_km_repeats
k - means多次运行以获得最终共识k - means聚类。注意你可能仍然会出现不同的结果,但机会远小于就k - means运行一次。你需要分配的系统树图zero-row /列矩阵:
hc = hclust (dist(矩阵(rnorm(100), 10)))的热图(矩阵(数控= 0,nr = 10), cluster_rows = hc, right_annotation = rowAnnotation (foo = anno_points(1:10),某事= 1:10,酒吧= anno_barplot (1:10)), row_split = 2)
装饰图案(https://jokergoo.github.io/ComplexHeatmap-reference/book/)包含大量的例子和情节显示包的不同用法。有时候不容易找到你正在寻找解决方案。在这种情况下,不要犹豫在GitHub下降问题。我很高兴回答你所有的问题!
是的,你可以参考https://jokergoo.github.io/2020/05/06/translate-from-pheatmap-to-complexheatmap/。
是的,请参考的InteractiveComplexHeatmap包。