Warning

This document is for an old release of Galaxy. You can alternatively view this page in the latest release if it exists or view the top of the latest release's documentation.

Source code for galaxy.visualization.data_providers.phyloviz

""" Data providers code for PhyloViz """

from typing import (
    Any,
    Dict,
)

from galaxy.visualization.data_providers.basic import BaseDataProvider
from galaxy.visualization.data_providers.phyloviz.newickparser import Newick_Parser
from galaxy.visualization.data_providers.phyloviz.nexusparser import Nexus_Parser
from galaxy.visualization.data_providers.phyloviz.phyloxmlparser import Phyloxml_Parser


[docs]class PhylovizDataProvider(BaseDataProvider): dataset_type = "phylo"
[docs] def __init__(self, original_dataset=None): super().__init__(original_dataset=original_dataset)
[docs] def get_data(self, tree_index=0): """ Returns trees. Trees are actually an array of JsonDicts. It's usually one tree, except in the case of Nexus """ file_ext = self.original_dataset.datatype.file_ext file_name = self.original_dataset.get_file_name() parseMsg = None jsonDicts = [] rval: Dict[str, Any] = {"dataset_type": self.dataset_type} if file_ext in ["newick", "nhx"]: # parses newick files newickParser = Newick_Parser() jsonDicts, parseMsg = newickParser.parseFile(file_name) elif file_ext == "phyloxml": # parses phyloXML files phyloxmlParser = Phyloxml_Parser() jsonDicts, parseMsg = phyloxmlParser.parseFile(file_name) elif file_ext == "nex": # parses nexus files nexusParser = Nexus_Parser() jsonDicts, parseMsg = nexusParser.parseFile(file_name) jsonDicts = jsonDicts[int(tree_index)] rval["trees"] = parseMsg rval["data"] = jsonDicts rval["msg"] = parseMsg return rval