veg / phylotree.js

Interactive viewer of phylogenetic trees
http://phylotree.hyphy.org
MIT License
169 stars 77 forks source link

Error on PhyloXML documents with multiple phylogenies #460

Open miguel76 opened 6 months ago

miguel76 commented 6 months ago

As of version 1.20 (https://www.phyloxml.org/documentation/version_1.20/phyloxml.html) PhyloXML supports multiple phylogenies in the same file. When a PhyloXML with multiple phylogenies is parsed at the following line tree_json becomes undefined because xml.phyloxml.phylogeny is an array rather than an object: https://github.com/veg/phylotree.js/blob/60aa174ea59bc95dca842c518517974d8e9d6565/src/formats/phyloxml.js#L70

That leads to an error at the following line: https://github.com/veg/phylotree.js/blob/60aa174ea59bc95dca842c518517974d8e9d6565/src/formats/phyloxml.js#L71

This case should be managed in a clear way, either throwing an error stating that multiple phylogenies are not supported or choosing one of the phylogenies (e.g., the first) and giving a warning.

Ideally, it would be nice to load multi-phylogenies files as a set of Phylotree objects, but that would be an improvement rather than just fixing the bug, which is the priority in my opinion.