By having a variety of built-in features and several core abstractions, phylotree.js has a demonstrable ability to allow users to select portions of a tree in a wide variety of ways and interface these selections with downstream components of an application. Phylotree.js is capable of serving as a “glue” component between parts of an application. Crossings can represent interesting evolutionary events, or highlight the disparity between a single versus multi-tissue tree. With phylotree.js, it is possible to interface phylogenetic trees with a variety of other software to produce custom, interactive visualizations of phylogenetic data.
Phylotree.js is licensed permissively under the MIT license, is well documented, and contains a gallery of examples. The code at time of writing is available as an Additional file. All the minor tools related to branches, nodes and clades that collapse are available in the “Options” method.
Some features are enlisted here;
- Capable of handling multiple selection categories for comparative analysis
- Several mechanisms for selecting branches, including by clade, path to root, individual branches, internal branches, leaves, and branches that are nearby after layout
- Runs entirely in the browser, including Newick/PhyloXML/NexML parsing
- Can handle trees with thousands of tips
- Supports linear, radial, scaled branch, tip-aligned, and scaled tip size views
- The viewer can be constrained to fit in a given SVG box, or scale based on the size of the tree
- Animated rerooting
- Clade collapse and hiding to explore large trees
- Node, clade, and subtree selection
- Tools to automatically select subsets of tree branches based on conditions.
- Color branches and tips, including gradient shading for continuous traits.
- Customize the way tip names are displayed
- Transform branch lengths based on branch attributes
- Redefine the way a tree is displayed by writing custom CSS
It supports Newick format and XML for trees. A new update of PhyloTree, Build 17, is introduced, having nearly 5.5 thousands halogroups.