CircosHeatmap-aardio/dist/lib/r-library/ComplexHeatmap/doc/most_probably_asked_questions.html
2025-01-12 04:36:52 +08:00

318 lines
63 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
<title>Most probably asked questions</title>
<style type="text/css">
/**
* Prism.s theme ported from highlight.js's xcode style
*/
pre code {
padding: 1em;
}
.token.comment {
color: #007400;
}
.token.punctuation {
color: #999;
}
.token.tag,
.token.selector {
color: #aa0d91;
}
.token.boolean,
.token.number,
.token.constant,
.token.symbol {
color: #1c00cf;
}
.token.property,
.token.attr-name,
.token.string,
.token.char,
.token.builtin {
color: #c41a16;
}
.token.inserted {
background-color: #ccffd8;
}
.token.deleted {
background-color: #ffebe9;
}
.token.operator,
.token.entity,
.token.url,
.language-css .token.string,
.style .token.string {
color: #9a6e3a;
}
.token.atrule,
.token.attr-value,
.token.keyword {
color: #836c28;
}
.token.function,
.token.class-name {
color: #DD4A68;
}
.token.regex,
.token.important,
.token.variable {
color: #5c2699;
}
.token.important,
.token.bold {
font-weight: bold;
}
.token.italic {
font-style: italic;
}
</style>
<style type="text/css">
body {
font-family: sans-serif;
max-width: 800px;
margin: auto;
padding: 1em;
line-height: 1.5;
box-sizing: border-box;
}
body, .footnotes, code { font-size: .9em; }
li li { font-size: .95em; }
*, *:before, *:after {
box-sizing: inherit;
}
pre, img { max-width: 100%; }
pre, pre:hover {
white-space: pre-wrap;
word-break: break-all;
}
pre code {
display: block;
overflow-x: auto;
}
code { font-family: 'DejaVu Sans Mono', 'Droid Sans Mono', 'Lucida Console', Consolas, Monaco, monospace; }
:not(pre) > code, code[class] { background-color: #F8F8F8; }
code.language-undefined, pre > code:not([class]) {
background-color: inherit;
border: 1px solid #eee;
}
table {
margin: auto;
border-top: 1px solid #666;
}
table thead th { border-bottom: 1px solid #ddd; }
th, td { padding: 5px; }
thead, tfoot, tr:nth-child(even) { background: #eee; }
blockquote {
color: #666;
margin: 0;
padding-left: 1em;
border-left: 0.5em solid #eee;
}
hr, .footnotes::before { border: 1px dashed #ddd; }
.frontmatter { text-align: center; }
#TOC .numbered li { list-style: none; }
#TOC .numbered { padding-left: 0; }
#TOC .numbered ul { padding-left: 1em; }
table, .body h2 { border-bottom: 1px solid #666; }
.body .appendix, .appendix ~ h2 { border-bottom-style: dashed; }
.footnote-ref a::before { content: "["; }
.footnote-ref a::after { content: "]"; }
section.footnotes::before {
content: "";
display: block;
max-width: 20em;
}
@media print {
body {
font-size: 12pt;
max-width: 100%;
}
tr, img { page-break-inside: avoid; }
}
@media only screen and (min-width: 992px) {
pre { white-space: pre; }
}
</style>
</head>
<body>
<div class="frontmatter">
<div class="title"><h1>Most probably asked questions</h1></div>
<div class="author"><h2></h2></div>
<div class="date"><h3></h3></div>
</div>
<div class="body">
<div id="TOC">
<ul>
<li><a href="#most-probably-asked-questions">Most probably asked questions</a>
<ul>
<li><a href="#there-is-no-plot-coming-out-after-running-heatmap-function">There is no plot coming out after running Heatmap() function.</a></li>
<li><a href="#retrieve-orders-and-dendrograms">Retrieve orders and dendrograms.</a></li>
<li><a href="#how-should-i-control-the-height-or-width-of-the-heatmap-annotations">How should I control the height or width of the heatmap annotations?</a></li>
<li><a href="#how-should-i-control-the-axes-of-the-annotations">How should I control the axes of the annotations?</a></li>
<li><a href="#how-to-control-the-style-of-legends">How to control the style of legends?</a></li>
<li><a href="#some-text-are-cut-by-the-plotting-region">Some text are cut by the plotting region.</a></li>
<li><a href="#can-the-heatmaps-be-added-vertically">Can the heatmaps be added vertically?</a></li>
<li><a href="#does-heatmap-title-supports-mathematical-expression">Does Heatmap title supports mathematical expression?</a></li>
<li><a href="#i-have-many-heatmaps-and-i-want-to-put-them-into-different-panels-for-a-big-figure-for-my-paper">I have many heatmaps and I want to put them into different panels for a big figure for my paper.</a></li>
<li><a href="#i-have-a-matrix-with-too-many-rows-and-i-want-to-simplify-the-row-dendrogram">I have a matrix with too many rows and I want to simplify the row dendrogram.</a></li>
<li><a href="#i-have-a-matrix-with-huge-nunmber-of-rows-or-columns-what-is-the-efficient-way-to-visualize-it">I have a matrix with huge nunmber of rows or columns, what is the efficient way to visualize it?</a></li>
<li><a href="#how-to-add-axes-for-dendrograms">How to add axes for dendrograms?</a></li>
<li><a href="#i-set-row-km-column-km-and-it-gives-me-different-k-means-clusterings-for-different-runs">I set row_km/column_km and it gives me different k-means clusterings for different runs.</a></li>
<li><a href="#i-only-want-to-draw-dendrograms-plus-a-list-of-annotations">I only want to draw dendrograms plus a list of annotations.</a></li>
<li><a href="#i-still-have-a-problem-with-the-package-and-i-am-lost-in-the-ocean-of-the-huge-vignette">I still have a problem with the package and I am lost in the ocean of the huge vignette.</a></li>
<li><a href="#can-i-also-add-heatmaps-produced-by-pheatmap">Can I also add heatmaps produced by pheatmap()?</a></li>
<li><a href="#can-i-make-an-interactive-heatmap">Can I make an interactive heatmap?</a></li>
</ul>
</li>
</ul>
</div>
<!--
%\VignetteEngine{knitr}
%\VignetteIndexEntry{Most probably asked questions}
-->
<h2 id="most-probably-asked-questions">Most probably asked questions</h2>
<style type="text/css">
h1, h2, h3, h4, h5 {
line-height: 120%;
}
</style>
<h3 id="there-is-no-plot-coming-out-after-running-heatmap-function">There is no plot coming out after running Heatmap() function.</h3>
<p>In this case, you need to use <code>draw()</code> function explicitly. See
<a href="https://jokergoo.github.io/ComplexHeatmap-reference/book/a-single-heatmap.html#plot-the-heatmap">https://jokergoo.github.io/ComplexHeatmap-reference/book/a-single-heatmap.html#plot-the-heatmap</a>
and
<a href="https://jokergoo.github.io/ComplexHeatmap-reference/book/a-list-of-heatmaps.html#plot-the-heamtap-list">https://jokergoo.github.io/ComplexHeatmap-reference/book/a-list-of-heatmaps.html#plot-the-heamtap-list</a>.</p>
<h3 id="retrieve-orders-and-dendrograms">Retrieve orders and dendrograms.</h3>
<p>For retrieving orders and dendrograms from a single heatmap. See
<a href="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-single-heatmap.html#get-orders-and-dendrograms-from-heatmap</a>.</p>
<p>For retrieving orders and dendrograms from a list of heatmaps. See
<a href="https://jokergoo.github.io/ComplexHeatmap-reference/book/a-list-of-heatmaps.html#get-orders-and-dendrograms-from-a-list-of-heatmaps">https://jokergoo.github.io/ComplexHeatmap-reference/book/a-list-of-heatmaps.html#get-orders-and-dendrograms-from-a-list-of-heatmaps</a>.</p>
<h3 id="how-should-i-control-the-height-or-width-of-the-heatmap-annotations">How should I control the height or width of the heatmap annotations?</h3>
<p>For complex annotations generated by <code>anno_*()</code> functions, width or height
should be set inside the <code>anno_*()</code> function, such as <code>anno_points(..., height = ...)</code>. The size of simple annotations is controlled by <code>anno_simple_size</code>.
The <code>width</code>/<code>height</code> and <code>annotation_width</code>/<code>annotation_height</code> are used to
adjust the size for multiple annotations which are put in one
<code>HeatmapAnnotation</code> object. See
<a href="https://jokergoo.github.io/ComplexHeatmap-reference/book/heatmap-annotations.html#multiple-annotations">https://jokergoo.github.io/ComplexHeatmap-reference/book/heatmap-annotations.html#multiple-annotations</a></p>
<h3 id="how-should-i-control-the-axes-of-the-annotations">How should I control the axes of the annotations?</h3>
<p>In the annotation functions <code>anno_*()</code>, the argument <code>axis_param</code> can be used
to set the axes. The value should be a list and the default settings for axis
can be get by:</p>
<pre><code class="language-r">default_axis_param(&quot;column&quot;)
default_axis_param(&quot;row&quot;)
</code></pre>
<h3 id="how-to-control-the-style-of-legends">How to control the style of legends?</h3>
<p>The style of legends can be controlled by <code>heatmap_legend_param</code> in
<code>Heatmap()</code>, or <code>annotation_legend_param</code> in <code>HeatmapAnnotation()</code>. The
parameters for controlling legends are those arguments in <code>Legend()</code> function.
See
<a href="https://jokergoo.github.io/ComplexHeatmap-reference/book/legends.html#heatmap-and-annotation-legends">https://jokergoo.github.io/ComplexHeatmap-reference/book/legends.html#heatmap-and-annotation-legends</a>.</p>
<h3 id="some-text-are-cut-by-the-plotting-region">Some text are cut by the plotting region.</h3>
<p>The layout of the <strong>ComplexHeatmap</strong> is not perfect that it is still possible
some of the text are drawn out of the plotting region. In this case, you can
set the <code>padding</code> argument in <code>draw()</code> function to increase the blank areas
around the final plot. See
<a href="https://jokergoo.github.io/ComplexHeatmap-reference/book/a-list-of-heatmaps.html#manually-increase-space-around-the-plot">https://jokergoo.github.io/ComplexHeatmap-reference/book/a-list-of-heatmaps.html#manually-increase-space-around-the-plot</a>.</p>
<h3 id="can-the-heatmaps-be-added-vertically">Can the heatmaps be added vertically?</h3>
<p>Yes, use <code>%v%</code> instead of <code>+</code>. See <a href="https://jokergoo.github.io/ComplexHeatmap-reference/book/a-list-of-heatmaps.html#vertical-concatenation">https://jokergoo.github.io/ComplexHeatmap-reference/book/a-list-of-heatmaps.html#vertical-concatenation</a>.</p>
<h3 id="does-heatmap-title-supports-mathematical-expression">Does Heatmap title supports mathematical expression?</h3>
<p>Yes, all the text-related elements (e.g. titles, row names, legend titles, legend labels, …) allow
methematical expression.</p>
<h3 id="i-have-many-heatmaps-and-i-want-to-put-them-into-different-panels-for-a-big-figure-for-my-paper">I have many heatmaps and I want to put them into different panels for a big figure for my paper.</h3>
<p>You can set <code>newpage = FALSE</code> in <code>draw()</code> function and use <code>grid.layout()</code> to
manage the layout of your panels.</p>
<pre><code class="language-r">pushViewport(viewport(layout = grid.layout(...)))
pushViewport(viewport(layout.pos.row = ..., layout.pos.col = ...))
draw(ht, newpage = FALSE) # or draw(ht_list, newpage = FALSE)
popViewport()
...
</code></pre>
<p>But I more suggest to use <code>grid.grabExpr()</code> to directly capture the output of
the heatmap and later draw the whole plot as a single graphic element by
<code>grid.draw()</code>.</p>
<pre><code class="language-r">ht_grob = grid.grabExpr(draw(ht, ...))
pushViewport(viewport(layout = grid.layout(...)))
pushViewport(viewport(layout.pos.row = ..., layout.pos.col = ...))
grid.draw(ht_grob)
popViewport()
...
</code></pre>
<h3 id="i-have-a-matrix-with-too-many-rows-and-i-want-to-simplify-the-row-dendrogram">I have a matrix with too many rows and I want to simplify the row dendrogram.</h3>
<p>You can first group your rows into several groups and make a group-level
dendrogram on it. See following example:</p>
<pre><code class="language-r">m = matrix(rnorm(1000*10), nr = 1000)
hc = hclust(dist(m))
group = cutree(hc, k = 6)
Heatmap(m, cluster_rows = cluster_within_group(t(m), group),
row_split = 6, border = TRUE) # it would be better if also set row_split
</code></pre>
<p><img src="data:image/png;base64,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" alt="plot of chunk unnamed-chunk-6" /></p>
<h3 id="i-have-a-matrix-with-huge-nunmber-of-rows-or-columns-what-is-the-efficient-way-to-visualize-it">I have a matrix with huge nunmber of rows or columns, what is the efficient way to visualize it?</h3>
<p>Heatmap is used to visualize the global patterns of your matrix while not
every single row or column. I suggest to random sample rows or columns into a
reasonable small number, and the final heatmap should look the same as if you
still insist to use the full matrix.</p>
<h3 id="how-to-add-axes-for-dendrograms">How to add axes for dendrograms?</h3>
<p>You need to use <code>decorate_row_dend()</code> or <code>decorate_column_dend()</code> to manually
add the axes. See following examples:</p>
<pre><code class="language-r">m = matrix(rnorm(100), 10)
ht = Heatmap(m, name = &quot;foo&quot;,
row_dend_width = unit(4, &quot;cm&quot;),
column_dend_height = unit(4, &quot;cm&quot;)
)
draw(ht, padding = unit(c(15, 2, 2, 2), &quot;mm&quot;))
decorate_column_dend(&quot;foo&quot;, {
grid.yaxis()
})
decorate_row_dend(&quot;foo&quot;, {
vp = current.viewport()
xscale = vp$xscale
grid.xaxis(at = xscale[2] - 0:5, label = 0:5)
})
</code></pre>
<p><img src="data:image/png;base64,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gQceeOCBBx74loAHvt+AHye8za8Abg34kcJ7rjsPeOCBBx544IEHHnjggQceeOCBBx544IGPAAg88H4BDzzwwAMPPPDAA58R/Lfl/iD2c7lfyX1Q7CG5L8i9Qeyjco/IRQUEHni/gAceeOCBBx544IEHHnjggQceeOCBBx74CIDA64Gvnu3q6X0e8OOB91x3ecADDzzwwA8fvuMVMYAfLbz9yssCHnjggQceeOCBBx544IEHHnjggQceeOBtNR02BR54v4AHHnjggQceeOCBzwj+J3K/FntA7h6594n9Re7Fcn8S+5jc0+XcNR02BR54v4AHHnjggQceeOCBBx544IFPAt/1fFngxwnf+ew54IEHHnjggQceeOCBBx544IcD73BFDOCzgrffG/DAAw888MADDzzwwAMPPPDAAw888MADb6/psCnwwPvsDXjggQceeOCBBx74QcFflv3ePiL3ebHPyd0t92Wxj8t9Su6fYm+Ue7lcZPiOewMeeOCBBx544IEHHnjggQceeOCBBx544DtS2X8eC3xe8NabAg+8FPDAAw888MADPyZ4+4DPCd4h4IEHHnjggQceeOCBBx544IEHHnjggQdeRrXZBnjgAwQ88MADDzzwwAMPfEbwd8m9Q+yVcr+X+4zYa+U+K/ew2JfkLP6tn96/i4Ni1wK1NeBHCD+7emiDarMN8COCXx3wG4cvKorHnizP/tuA2hrw44Mvj/jplZf8b2/37L9NqK0BP074yebJ8mjr7L9NqK0BP054jnil8Eue4xXCW6LabAM88AECHnjggQc+FPxXzcobJtVX9sArgZ8WwKuALzs/2lfv7nbeCbwK+OoRP792PAVeIfykvCRBRR54FfCrAh7xDte/WA/4EcNbrG0M+J7hPfCAB955bWPAAw888MCHgv+aWTNqa8CPEP7rZs2orQE/QvhvmjWjtgb8COG/ZVb+tHWxWfn5K+Azhf+O2XK6tVwe7QOvAL7se2Xnf5oArwH++2blDdPqz9YDnyn8D81Wf66fUwF8pvA/M1u9uNuv3f/AZwr/S7PlUdDvxwM/YPgHzZpRWwN+hPC/M2tGbS0K/L1ynxb7jdwn5P4qZgHyLrnniT0g90m50/u38vdvRm0N+BHC/8usGbU14EcI/2+zZtTWgB8h/FfMmlFbA36E8JW/XDNqa8CPEP5+s+XqjfxG9SpYwGcKX7n64nK6eTIdyLdlgY8LX/bhstP/Ndktz6JyxQN+hPD3mZXfkl3c8IZfC/jhwr/brNsRb3078AOAf7tZt+d44McE/2azbq/qgR8T/OvMPPGAHyH8q80a8YRTmoEfH/wrzJrhW42AHyH8C80a8YDPDv75Zo14wGcH/xyzRrxA8C6XQgE+LvwzzKLDt+6mGvBx4Z9mVt5QO30O+Ezhn2pW3lA7fQ74TOHLnlxm3ukT4LOHf5LZo/e5efoc8JnCP8FseVRs1U6fAz5T+MeblTfUTp8DPlP4x5mVN9ROnwM+U/ibzBrxgAceeOCBBx544IEHHnjggR8BvPmr54DXA1/51XOd4LucWvNSuQ+I/Vnuv3JvE7tHTr7AzcOvEnuL3Gvkzu/j6sN89VfPdYH333AJfGz4tSO+9qvngFcBf1RsTcJ9Vg/8gOEviyMeeOA1wa9bAQ98F0/ggRcDHnjggQceeOCBBx544IEHHnjggQc+BbxDwGcE7xLwwAMPPPDAAw888MADDzzwwAMPPPDAAy+iAg984zaBAx544IEHHnjggQc+I/j3yD0idp/cF+VuEvuu3ENy7xV7ltxv5azuf+CBF7YJHPDAAw888MADDzzwwAMPPPDAAw888MADL6ICD3zjNoEDHnjggQceeODTw8cI+OHDRwl44IEHHnjggQceeOCBBx544IEHHnjggW8JeOD7DXjggQceeOCBBx74jOAtQP4u9iO5e+V+KnaX3GPk7hZ7k9yz5azuf+CB7zfggQceeOCBBx544IEHHnjggQceeOCBB74l4IHvN+CBBx544IEHfgTwHlfEAD4LePclwAMPPPDAAw888MADDzzwwAMPPPDAAw+8SAY88F4BD7xtwAMPPPDAAw98H/Bdc4f/hpx80Y+3yn1I7j9iL5B7itzrQ/RMOQf4rgEPvG3AAw888MADDzzwwAMPPPDAAw888MADD3xYsjB7AR544IEHHnjggQd+sPDuAZ8DvEfAAw888MADDzzwwAMPPPDAAw888MADD3xLwAPfb8ADDzzwwAMPPPDAJ4bvfOGMTtfQoJC5wUf7I/Ud8EoDXmnAKw14pQGgNOCVBrzSgFca8EoDXmnAK80eflIUxZVj44bFwf7FH6bVL862i8L46uqGm42vzveKzRPXvykFzR7+aL92w8SgLV0nW+d/nN96uJxdPbzYdmr+syj/xRgbU4qs4RfXD6s3zG65rfpPwTiopyWr8S/laOMO44ifXzuuPgJQ/1nDrx6eK4/ei+t3HlThawdxedRfZELPdk5qX6Xes4YvH7nNo36yW3mOXz2rb1QoFwe7leUG/HQT+OS5vaq/ePReHbWL2hFfsZzvVdw54oeWL/zk9Oendhu+ujr+ay8FZzzHDytr+PLxeXGj6e1c7dF7zb0CXT4L8Ko+cU7v4+vP4vtNXz17PKi8BOB9/LDikzulAa804JUGvNKAVxrwSgNeacArDXilAa804JUGvNKAVxrwSgNeacArDXilAa804JUGvNKAV9r/AZtji8L2v/izAAAAAElFTkSuQmCC" alt="plot of chunk unnamed-chunk-7" /></p>
<p>Note for the left row dendrogram, the x-axis is from right to left, you need to self-define <code>at</code>
and <code>label</code> in <code>grid.xaxis()</code> function.</p>
<p>You can also check <code>annotation_axis_grob()</code> function (later use <code>grid.draw()</code> to draw the axes) to draw a nicer axis.</p>
<h3 id="i-set-row-km-column-km-and-it-gives-me-different-k-means-clusterings-for-different-runs">I set row_km/column_km and it gives me different k-means clusterings for different runs.</h3>
<p>Yes, this is what it should be expected because k-means uses random start points and it might give
different results for different runs. To solve this problem, you do either way as follows:</p>
<ol>
<li>Always add <code>set.seed(...)</code> before making the heatmap. This makes sure the
random seed is always the same for different runs.</li>
<li>Set <code>row_km_repeats</code>/<code>column_km_repeats</code> to run k-means multiple times to get a
final consensus k-means clustering. Note you might still get different
results, but the chance is much smaller than just running k-means once.</li>
</ol>
<h3 id="i-only-want-to-draw-dendrograms-plus-a-list-of-annotations">I only want to draw dendrograms plus a list of annotations.</h3>
<p>You need to assign the dendrograms to a zero-row/column matrix:</p>
<pre><code class="language-r">hc = hclust(dist(matrix(rnorm(100), 10)))
Heatmap(matrix(nc = 0, nr = 10), cluster_rows = hc,
right_annotation = rowAnnotation(
foo = anno_points(1:10),
sth = 1:10,
bar = anno_barplot(1:10)),
row_split = 2)
</code></pre>
<p><img src="data:image/png;base64,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" alt="plot of chunk unnamed-chunk-8" /></p>
<h3 id="i-still-have-a-problem-with-the-package-and-i-am-lost-in-the-ocean-of-the-huge-vignette">I still have a problem with the package and I am lost in the ocean of the huge vignette.</h3>
<p>The vignette (<a href="https://jokergoo.github.io/ComplexHeatmap-reference/book/">https://jokergoo.github.io/ComplexHeatmap-reference/book/</a>)
contains huge number of examples and plots showing different usage of the
package. It is sometimes not easy to find the solution you are looking for. In
this case, dont hesitate to drop an issue on GitHub. I am glad to answer all of your
questions!</p>
<h3 id="can-i-also-add-heatmaps-produced-by-pheatmap">Can I also add heatmaps produced by pheatmap()?</h3>
<p>Yes, you can refer to <a href="https://jokergoo.github.io/2020/05/06/translate-from-pheatmap-to-complexheatmap/">https://jokergoo.github.io/2020/05/06/translate-from-pheatmap-to-complexheatmap/</a>.</p>
<h3 id="can-i-make-an-interactive-heatmap">Can I make an interactive heatmap?</h3>
<p>Yes, please refer to <a href="https://github.com/jokergoo/InteractiveComplexHeatmap">the <strong>InteractiveComplexHeatmap</strong> package</a>.</p>
</div>
<script src="https://cdn.jsdelivr.net/npm/prismjs@1.29.0/components/prism-core.min.js" defer></script>
<script src="https://cdn.jsdelivr.net/npm/prismjs@1.29.0/plugins/autoloader/prism-autoloader.min.js" defer></script>
</body>
</html>