Skip to content

Tree Viz Ideas #70

Closed
Closed

Description

@klterwelp

Handle distance outliers

  • Ex: I have an outlier that is very distant from the rest of the tree, so it makes all the other distances squashed and hard to distinguish.

Flippable tree

  • E.g. clade ordering is arbitrary, may be nice to flip tree by sorting ascending/descending distances, by size of the clades (e.g. number of children), by metadata if equidistant, etc
  • Could also be cool to select an internal node and then flip vertically from there (e.g. top children now are bottom)

Filter nodes by metadata

  • Remove nodes from the tree based on metadata values
  • May also be a nice way to have a user handle an outlier (just click on a node and delete it, if internal, maybe delete all children too?)

Multi-layer node metadata visualization

  • Can choose which metadata variable to visualize

I've attached an example tree with an outlier node (that also doesn't have associated metadata) and metadata (categorical and numeric).

metadata_and_nwk_tree.zip

I've been looking at this phylogenetic tree visualization software: https://peartree.live/manual (github: https://github.com/artic-network/peartree)

Activity

  1. vincerubinetti commented on Jun 25, 2026

    @vincerubinetti
    Member

    We also talked about some sort of "select and average" feature. Not sure how that would work or what calculation mechanism would be actually useful. I'll rely on you all to tell me that. But we can certainly implement some sort of drag-box-to-select and run any reasonably simple calculation on the selected nodes, e.g. compute the average of each unique pair of nodes within the selection.

  2. vincerubinetti commented on Jun 29, 2026

    @vincerubinetti
    Member

    I intend for #71 to close this issue (for now). It's not completely finished though. Here's my breakdown of the requests and tasks:

    For the crossed out ones, I don't want to do these for now, or probably ever, unless we have really concrete evidence that many users will use it, because it will add significant complexity to the code and UI. E.g. you now need a reset button and an indication that nodes were removed and where, and you probably want an undo/redo state history so you don't have to start from scratch after a mis-click. It then also begs the question of why other components don't support removing specific datums by hand. I'm anal about consistency, but I think it also annoys and confuses users when things aren't consistent. So implementing this in the tree component would insist that I implement it everywhere. I feel like filtering by type (#72) should be useful enough.

    A reminder that when I'm talking about what I'm implementing in the PR and codebase, I'm referring to what all users will see in perpetuity in the app. I added the ability to just paste your own data for the component to render, so if you wanted to hand-remove specific nodes, you can do that directly in your data.

  3. added a commit that references this issue on Jul 6, 2026
    17b42a9
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions