How to make a circular heatmap tree

I am running QIIME2-2023.2 in a conda environment.

I have two questions:

  1. Is it possible to get a heatmap tree (such as the one in part d of the below figure) through beta diversity analyses?

  1. How do I combine data from multiple samples to get a heatmap tree like above? Let's say I have sequencing data from 7 samples and I want to combine them to generate one figure like above.

Thank you!


Moving your topic to general discussion, there are no way to do it in Q2, possibilities to replicate this visual include graPhlAn or iTOL.


1 Like

Thank you! Is it possible to generate a singular phylogenetic output obtained from multiple samples through Q2 which I can subsequently plug in to the tools you mentioned? Thank you!

Yes, the tree can be generated from Q2. I am not sure what data are represented on the heatmap, but probably possible to extract it as well.

Hi @macrobiome, you should be able to make a figure similar to e based on the information

Then you can make d using q2-empress. We have a YouTube video, that provides an example, specifically at time point 9:20.



Hi @SoilRotifer, thanks for your note. I ran the following code to generate a heatmap based on the page you linked (This was the last command; I followed the steps prior to this exactly)

qiime feature-table filter-features /
--i-table heartonly-merged-table.qza /
--m-metadata-file heartonly-transposed-table.qza /
--o-filtered-table heartonly-filtered-table.qza'

I got the following output without beta diversity (My apologies if this a dumb question)

heatmap.qzv (2.1 MB)

What did I do wrong?

Nice work!

You won't be able to make a heat map with beta-diversity values in this way. Remember beta diversity is a pair-wise metric. Meaning, that beta-diversity it is the distance between any two samples. Thus, you cannot have a per-sample value, which is what alpha-diversity can provide.


Would you be able to suggest on how to make a heatmap with beta-diversity values similar to figure e in the earlier post?

Secondly, I see a bunch of nodes in the qzv (image below). What do they represent? I haven't seen them in any papers.

Re1: use a seaborn library, function clustermap seaborn.clustermap — seaborn 0.12.2 documentation
Re2: Those are hashes, which are used as a compact representation of original ASV sequences (writing 150 letters of original ASV sequence is not optimal)


1 Like

This topic was automatically closed 31 days after the last reply. New replies are no longer allowed.