Captions beside branches of heatmaps

Hello! I’m trying to create a heatmap through the plugin qiime gneiss dendrogram-heatmap.
It resulted into something similar:

However, I’d like to see a sort of ‘caption’ on the side of the graph, showing me what each branch of the heatmap represents.
In this case, they would be families names since I collapsed taxonomies at that level.

I can’t figure out how to visualize this, apparently there isn’t any option allowing me to perform this for the plugin. It would be critical, since for my analysis creating a heatmap is the first way to individuate the main differences among different samples and conditions.

Any suggestions here? Thanks in advance!

Hi @Sparkle,

There is no option in gneiss to label the branches of the tree. Besides, it looks like 1) there are way too many tips to label individually and 2) this is a hierarchical clustering based on association with different balances, so labeling branches would probably not have any practical value.

But if you want to label the tips I would recommend exporting the data from the tree that is used as input... you may be able to parse the tip IDs and use that to label your tree, but this is of course a solution outside of QIIME 2.

Good luck!

1 Like

Good morning @Nicholas_Bokulich, and once more, thanks for your answer!

this is a hierarchical clustering based on association with different balances

Exactly, this is the logic on the basis of which the heatmap was created, provided by gneiss itself.

To create the heatmap, I used the following code:

qiime gneiss dendrogram-heatmap --i-table table-no-clo-mit.qza --i-tree gneiss/hierarchy.qza --m-metadata-file 16S_metadata.tsv --m-metadata-column Site --p-color-map seismic --o-visualization gneiss/site_heatmap.qzv

But if you want to label the tips I would recommend exporting the data from the tree that is used as input… you may be able to parse the tip IDs and use that to label your tree

I guess you're referring to hierarchy.qza. I exported it from QIIME2 through qiime tools extract and got a tree.nwk file. I uploaded the tree and visualized it through this tool. The IDs made of a sequence of numbers and letters are provided at each branch. However, I still don't understand the exact way I should match such IDs with the heatmap branches. The heatmap is shown in a 'squeezed' way I can't properly take advantage of and apparently there is no plugin option allowing me to provide a zoomed visualization of it. This way, since I was unable to find a more readable dataset related to the heatmap, it's hard even to count the branches to see if their structure matches the one of the hierarchy.qza tree...
Should I apply some filtering criteria to reduce he number of features displayed, or is it any way to show a 'higher resolution' version?

Thanks in advance!

1 Like

I don't think there are any options to do this in q2-gneiss... unfortunately this is really a customization of the visualization and will need to be done outside of QIIME 2. I do not think filtering features will solve your problem (beyond filtering the low-abundance features, which should probably already be done anyway) — you will lose potentially useful information.

Good luck!

2 Likes

Hi @Sparkle. Sorry, these visualizations never weren’t meant for this sort of in-depth operations from the command line.

But if you wanted to get your hands dirty in python, you can directly import the heatmap function here: https://github.com/biocore/gneiss/blob/master/gneiss/plot/_heatmap.py#L16

And we do have tutorials for this
https://biocore.github.io/gneiss/docs/v0.4.0/tutorials/python/cfs-python-tutorial.html

That will give you more flexibility when specifying the figure size, so you can zoom in more. And ultimately give you more customizability for the visualizations.

1 Like

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