def create_tree(nodes, edges): outTree = Tree() for node in nodes: outTree.add_node(node) for edge in edges: outTree.add_edge(edge) return outTree
def _initialize_tree(self, edges=None, nodes=None): # Create Tree object tree = Tree() # add nodes to the tree if nodes: tree.add_nodes(nodes) else: for cluster_id, cluster in self._clustering_results.clusters.items( ): tree.add_node(cluster.identifier, data=cluster.densities) # TODO find clonal cluster and set it as a root root = tree.nodes[CLONAL_CLUSTER] tree.set_root(root) if edges: tree.add_edges(edges) else: # add edges (initially all edges are children of Clonal cluster) for identifier, node in tree.nodes.items(): if identifier != CLONAL_CLUSTER: tree.add_edge(root, node) logging.debug('Tree initialized with edges {}'.format(tree.edges)) return tree