marbl / MetagenomeScope

Visualization tool for (meta)genome assembly graphs
https://marbl.github.io/MetagenomeScope/
GNU General Public License v3.0
24 stars 8 forks source link

Support showing extra metadata (length, coverage, etc.) in node / edge labels #207

Open fedarko opened 3 years ago

fedarko commented 3 years ago

Discussed yesterday -- this would be useful for generating paper figures, where the "context" available to the user is less clear.

I think Bandage has similar functionality -- should be cited as prior work on this.

See #243 -- the fanciest implementation of this lets the user define labels using custom strings. It'd work similarly to how you'd format a f-string in Python -- something like "{id} ({length} bp, {coverage}x", where the user can refer in {} to any of the available node / edge metadata fields. This would get difficult pretty quickly (eesh, how do we format numbers -- should we add support for the thousands separator, varying amounts of fractional digits, padding...?), but I guess we can just limit ourselves to thousands separator and fractional digits support (should be good enough for most use cases).

A simpler implementation would just let the user pick out fields (and maybe the order of them?, or just do alphabetical order or something), and then would make each label a list of these (e.g. "-12345 (Coverage = 3x, Length = 500 bp)").