TreeWidget is a handy JavaScript component for the visualization of phylogenetic data. It is currently used to display trees in the
TreeFam database and allows for inline representation of rectangular trees, alignments and sequence domains. After testing the application with trees of different sizes I came out with the following comments that may serve the author to improve this publication:
MajorUsability Apart from domain and alignment annotation, the documented functionality of
TreeWidget looks quite limited as compared with other JavaScript components. In my tests, I could only represent static trees with tip labels and motif structure. I have the impression that the application is capable of much more, but I could not find any reference to it in the help pages. For instance: Would it be possible to add or modify OnClick and MouseOver events? Search for nodes in large trees? What about zooming or showing bootstrap and branch length values? These are basic features present in the TreeFam version and in most tree viewers, but not in the current version of
TreeWidget. Note that although Figure 1 shows bootstrap support values in the tree, I could not find that option in the documentation. It would be useful to have the example code that generates the figures in the paper.
JSON is not a common format for phylogenetic data, but it seems to be the only way to load trees into the application. Can
TreeWidget read the newick or extended-newick formats? If so, please document it. In my case, I had to write a little parser to convert regular trees into treewidget/d3 format (
gist.github.com/jhcepas/9205262) to test the software, but it would be great to have this feature as a built-in option. The same applies for alignments. I think that providing Newick and Fasta files would be much more convenient for end users than pointing them to create a new JSON structure on top of the original data.
Manuscript Although I acknowledge the potential usefulness of
TreeWidget, I think the text goes a bit too far when states that this is the "
first modular tree visualization component". Even if we restrict to the JavaScript context, several libraries do provide online tree visualization from some time ago. In fact, the same d3 back-end library used by
TreeWidget is a JavaScript modular library that supports tree and network visualization by itself (
bl.ocks.org/mbostock/4063570) . Of note, the nice performance and responsiveness obtained when drawing large trees is a d3 feature available for the representation of any type of hierarchical data. Similarly,
jsPhyloSVG is a modular JavaScript library that allows online representation of phylogenetic trees, providing interesting features such as newick support and circular tree drawing. This should not prevent
TreeWidget from being published in
F1000Research, but the emphasis should be put on the possibility of representing phylogenetic information (i.e. duplication and speciation events) together with alignments and domain structure, in a very easy way.
There are also several mistakes regarding the literature cited in the introduction: 1) The ETE package is not only an offline tool, but a programming library offering a
webplugin module that can be used for online interactive visualization of custom phylogenetic data (i.e. the
PhylomeDB database uses ETE to render
interactive tree images with alignments and PFam domain annotations). 2) To my knowledge,
PhyloWidget is not JavaScript but Java. 3) I would not say that Archeopteryx is that slow for medium/large trees, and it also offers web integration and alignment and domain visualization.
MinorDocumentation While testing the library I had the feeling that the documentation was not very clear. First, I could not find the relevant code, documentation or examples within the github repository provided as the main link in manuscript. It seems that the so called '
registry installation' step is necessary to start using the library. This will install the whole BioJS package, making the code and examples available at ./biojs/target/registry/, which is in fact the base path assumed by the examples provided in the online example. This is not a big deal, but I had to guess it by browsing different pages and files of the BioJS project. It would be useful to point readers to the specific installation and help pages of
TreeWidget, clarifying whether it can be used independently or requires the BioJS project to be downloaded and compiled as a whole. Note, that it is also not clearly mentioned in the manuscript, that the examples and documentation of this component can be found at
https://www.ebi.ac.uk/Tools/biojs/registry/Biojs.Tree.html.
No competing interests were disclosed.
Comments on this article Comments (0)