biocore / empress

A fast and scalable phylogenetic tree viewer for microbiome data analysis
BSD 3-Clause "New" or "Revised" License
45 stars 31 forks source link

Use smoother curves to draw circular layout barplots for trees with only a few tips #508

Open fedarko opened 3 years ago

fedarko commented 3 years ago

To draw barplots in the circular layout, EMPress uses four triangles for each tip in the tree's "bar". When there are over a couple of tips (probably somewhere in the 10-50 tips range) this looks nice, but below this threshold the approximation is really obvious, and the barplots look very angular:

image (This screenshot is really old - it's from the #357 PR - but the idea is the same.)

It turns out that this approximation can actually cause the barplots to overlap the tree, in the rare case where the curves from the circular layout extend "beyond" the lack of curves of the barplots (I think the tips having relatively short branch lengths is related to this).

Peek 2021-03-29 18-45

IMO this upgrades this problem from "ugly" to "actually a bug" -- a solution to this is adjusting the way circular barplots are drawn for trees with, say, < 100 tips; I think this would mostly involve altering Empress._addCircularBarCoords().

(...Noticed this problem while testing #505 :scissors: :evergreen_tree: :)