Visualization Needs
Note: This is an initial draft.
Essential short-term needs (to support applications being currently implemented).
Non interactive (besides navigation, collapsing of clades, branch length, [shape])
Single trait support (overlaying multiple traits would require interactivity)
Visualization Needs:
Nodes:
Size
Color
Shape
Text labels
Pie chart
Branches/Edges
Variable lengths
Thickness
Text lables
Color
Solid
Gradient
Collapsed Wedges
Color
Gradient
divide wedge into sub-triangles that each can have a separate color
NOTE: Gradient and divided wedge may need to be calculated by TV
multiple colors for collapsed clades (triangles) including:
color of the triangle as function of the state of the tips: for continuous values a gradient from average at the tips to the value at the node
[Suggestion: rank the n terminal taxa according to state value, splice triangle into n sections, color each section with gradient from tip to internal node.]
subdivide the triangle in wedges matching the collapsed tips in color and proportion (e.g. if a collapsed clade contains 100 taxa, 40 of which have a status color-coded with red and 60 with yellow, the triangle should be colored so that 40% of the surface is red and the rest is yellow)
Export
SVG
PNG
JPG
Newick (data will be lost)
Newick Extended (data will probably be lost)
NexML
PhyloXML
Internal data models
for generating local copies of data and saving modified version of public data
Interactions
Context awareness: Clicking on item brings up contextual menu
Contextual Menu: This is a definable menu based on metadata associated with tree. For example, clicking on an internal node brings up a menu with links that:
send all child-leaves to a program 'Sequence Extractor' to fetch the fasta sequences of the leaves
Regenerates a new tree of just that clade
Changes color of clade
Collapses clade into a wedge
Show/hide associated metadata (e.g. some trait)
Edges/Branches
Internal Nodes
Select all members in clade
Visualize just that clade
Leaves
Add information
Modify labels with new text
Add metadata
New traits
New annotations
New notes
Tree layout
Cladogram
Slanted
Rectangular
Phylogram
Re-root
Rootless
Ladderized
Replace underscores (_) in taxa names with whitespaces [search should proably support both]
Searching
Labels
node label
edge label
leaf label
Associated metadata (that is not visualized)
Annotations (GO, descriptive, traits)
Future needs
interactivity
interaction with objects to retrieve properties
support for multiple traits
images at nodes
basic tree interactions (through menu/toolbox)
selecting
pruning
subsetting
exporting
change visual properties
launch analyses
export
...
flexible contextual menus at nodes, edges and selected subtrees to perform tree interactions
advanced tree manipulations
… TBD
To be discussed
Origin of the visual representation elements: in TE or in TV?
e.g. Pie charts for discrete traits
Specify that information has to be represented as “pie chart” [thin lines for edges, no nodes, pie charts, legend]
Define colors of sections
Draw pie charts
JPG will likely have compression artifacts and not be particular efficient. For web export, it's probably better to use GIF. EPS/PS should also be considered for publication grade export.
Exporting trees in tree format is something that we should think about. It only makes sense in a standalone implementation, as within the DE (as far as I understand) there will be a common I/O framework that handles various formats. In that case, if the tree is modified, it should be passed back to that framework for export.
NexML and PhyloXML are not a priority for TE
Also, many journals (still) require TIFF for publication.
One additional question is the need for CMYK support
Inkscape supports several output formats and could be a good starting point, but I don't know if they use (or provide) libraries. AFAIK, CMYK support is still lacking.