this post was submitted on 05 Nov 2025
39 points (100.0% liked)

Biology

3077 readers
2 users here now

This is a general community to discuss of all things related to biology!

For a more specific community about asking questions to biologists, you can also visit:

/c/askbiologists@lemmy.world

founded 4 years ago
MODERATORS
 

ITIS Tree of Life

Just finished another visualization of entire taxonomy tree. Previous is buried here: GBIF ToL.

Main concept is very simple: each taxon is a point, and each taxon has a clockwise-bent arc from it's parent taxon.

Trick is to place those points in a meaningful way. At first, I was using force-directed algorithm to do it. In general, it succeeded in grouping points by clades, but introduced a lot of branch overlapping (check how purple Echinodermata is "intruded" into Arthopoda in GBIF version).

Force-directed algorithms can layout not only trees, but basically any graph, and I thought: maybe tree-specific algorithm will produce a better result? I've found out there is a cool Voronoi Treemap algorithm which for any given tree can build a set of nested polygons, a polygon for each node in a tree. Not only it eliminates branch overlapping problem, but also it ensures those branches fit into convex polygons and you can even add gaps between adjacent branches. So I've built a CLI wrapper around a Java implementation I've found on GitHub.

At first, I've used it for NCBI database, but I didn't use gaps and haven't published interactive version yet (but there are PNGs in Wikimedia Commons). Then, I've made a treemap for ITIS. Points are points and polygons have been used for mouse hover feature. When I was making force-directed GBIF, I had to separately compute those polygons for each clade of given ranks. Now both points and polygons are computed by an algorithm, which is nice.

What do you think?

top 3 comments
sorted by: hot top controversial new old
[–] Bademantel@lemmy.world 3 points 1 month ago

That's amazing, dude. Thanks for sharing.

[–] Pika@rekabu.ru 1 points 1 month ago (1 children)

Amazing work! The only thing I would change is "Scientific" language name. It's Latin :)

Классно вышло, только я бы поменял язык "Scientific" на "Latin" :)

[–] podbrushkin@mander.xyz 2 points 1 month ago

Thank you, maybe I will do it.