Use Cases

Use case #1: Large trees

Input: A phylogenetic tree (from file or external database) and (optionally) an external data file with labels for tips or internal nodes
Output: A prototype visualization tool that incorporates intelligent filtering (see below) that extends one or more of the existing models PhyloWidget (Java JGraphtT library and Processing framework) and Paloverde (C++ OpenGL libraries).
Motivation: Can we scale tree viz to 100-500K tips? Will the libraries underlying PhyloWidget and / or Paloverde be sufficient for our requirements?

Intelligent filtering: Given that the visualization cannot display tens (or hundreds) of thousands of nodes in a readable format, how do we make decisions about what to show on the screen? In a 'naive' mode, the choice of nodes might be based on the tree structure. But, in many cases, the user / data provider will have prior knowledge about what should be displayed. So, given an external data file with labels for tips or internal nodes, use this information to decide how to display the tree.

PhyloWidget: PROS: interactive, has multiple layouts, zooming changes the amount of detail on the screen; API allows for interaction with external data sources. CONS: doesn't cope with trees larger than about 10K tips; requires switching between zoom, pan and select modes using toolbar
Paloverde: PROS: scalability, smooth interaction, use of mouse and keyboard actions without a mode-switching toolbar. CONS: not interactive - the display is simply a static image. Zooming in only makes the image larger, rather than adding more data, and there is no way to incorporate external data.

Use case #2: Tree comparisons

Input: two phylogenetic trees (from file(s) or external databases) and a list of mappings of nodes (see below) from a file or external database.
Output: graphical visualization of both trees simultaneously, including the usual functionality PLUS the following. If you mouseover a node in one tree, one or more clades in the other tree is highlighted according to the mapping information.

A "mapping" maps a single node in one tree to one or more nodes in the other tree.
Motivation: In the gene tree reconciliation problem, one tree is the species tree, the other the gene tree. Mousing over a node on the gene tree should highlight the clade on the species tree in which the gene duplication occurred at its base. Mousing over a node on the species tree should highlight all the clades on the gene tree in which copies of the duplicate gene are found. The mappings can be obtained from existing programs that do GTP.