Source code for galaxy.visualization.data_providers.phyloviz

""" Data providers code for PhyloViz """

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

class PhylovizDataProvider( BaseDataProvider ):
[docs] dataset_type = "phylo" def __init__( self, original_dataset=None ): super( PhylovizDataProvider, self ).__init__( original_dataset=original_dataset ) def get_data( self, tree_index=0 ):
[docs] """ 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.file_name parseMsg = None jsonDicts = [] rval = { 'dataset_type': self.dataset_type } if file_ext == "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