def add(self, data, name=None, support=70, scaled=True, branchlabels=False, leaflabels=True, *args, **kwargs): """ Add tree to existing figure """ root = None if isinstance(data, tree.Node): root = data else: root = tree.read(data) if not root: raise IOError, "cannot coerce data into tree.Node" name = name or root.treename self.root.append(root) fig = self.figure N = len(self.plot)+1 for i, p in enumerate(self.plot): p.change_geometry(1, N, i+1) plt = TreePlot(fig, 1, N, N, tf=self, app=self, name=name, support=support, scaled=scaled, branchlabels=branchlabels, leaflabels=leaflabels, *args, **kwargs) p = fig.add_subplot(plt) p.set_root(root) p.plot_tree() p.index = N-1 self.plot.append(p) if name: assert name not in self.name2plot self.name2plot[name] = p
def add(self, data, name=None, support=70, scaled=True, branchlabels=False, leaflabels=True): root = None if isinstance(data, tree.Node): root = data else: root = tree.read(data) if not root: raise IOError, "cannot coerce data into tree.Node" name = name or root.treename self.root.append(root) fig = self.figure N = len(self.plots)+1 for i, p in enumerate(self.plots): p.change_geometry(1, N, i+1) p = fig.add_subplot( TreePlot(fig, 1, N, N, app=self, name=name, support=support, scaled=scaled, branchlabels=branchlabels, leaflabels=leaflabels) ).plot_tree(self.root[-1]) p.index = N-1 self.plots.append(p) if name: assert name not in self.name2plot self.name2plot[name] = p ## global IP ## if IP: ## def f(shell, s): ## self.highlight(s) ## return sorted([ x.label for x in self.highlighted ]) ## IP.expose_magic("highlight", f) ## def f(shell, s): ## self.root.ladderize() ## self.redraw() ## IP.expose_magic("ladderize", f) ## def f(shell, s): ## self.show() ## IP.expose_magic("show", f) ## def f(shell, s): ## self.redraw() ## IP.expose_magic("redraw", f) return p
def __init__(self, data, name=None, scaled=True, div=0.25, branchlabels=True, leaflabels=True, overview=True): self.name = name self.div_value = div self.scaled = scaled self.branchlabels = branchlabels self.leaflabels = leaflabels self.highlighted = set() if isinstance(data, tree.Node): root = data else: root = tree.read(data) self.root = root if not self.root: raise IOError, "cannot coerce data into tree.Node" self.name = self.name or root.treename pars = SubplotParams( left=0, right=1, bottom=0.05, top=1, wspace=0.01 ) fig = pyplot.figure(subplotpars=pars, facecolor="white") connect_events(fig.canvas) self.figure = fig tp = TreePlot(fig, 1, 2, 2, app=self, name=self.name, scaled=self.scaled, branchlabels=self.branchlabels, leaflabels=self.leaflabels) ax2 = fig.add_subplot(tp) ax2.plot_tree(self.root) self.detail = ax2 ax1 = fig.add_subplot( OverviewTreePlot(fig, 121, app=self, snap=False, scaled=scaled, branchlabels=False, leaflabels=False, target=self.detail) ).plot_tree(self.root) self.overview = ax1 if not overview: self.toggle_overview(False) self.set_positions() if self.detail.nleaves < 50: self.toggle_overview()
def __init__(self, data, name=None, scaled=True, div=0.25, branchlabels=True, leaflabels=True, xoff=0, yoff=0, mark_named=True, overview=True, interactive=True, radial=False, leaf_fontsize=10, branch_fontsize=10, direction="rightwards"): self.overview = None self.overview_width = div self.name = name self.scaled = scaled self.radial = radial if radial: self.leaflabels = False self.branchlabels = branchlabels self.leaflabels = leaflabels self.xoff = xoff self.yoff = yoff self.direction=direction self.leaf_anchor = "left" if self.direction == "rightwards" else "right" self.branch_anchor = "right" if self.direction == "rightwards" else "left" self.mark_named=mark_named # Drawing a circle at named nodes if isinstance(data, tree.Node): root = data else: root = tree.read(data) self.root = root if not self.root: raise IOError, "cannot coerce data into tree.Node" self.name = self.name or root.treename pars = SubplotParams( left=0, right=1, bottom=0.05, top=1, wspace=0.01 ) fig = pyplot.figure(subplotpars=pars, facecolor="white") events.connect_events(fig.canvas) self.figure = fig self.layers = OrderedDict() self.ovlayers = OrderedDict() self.initialize_subplots(overview, leaf_fontsize, branch_fontsize) self.home()
for child in node.children: _bindeltran(child, stepmatrix, node2dpv, node2deltr, s) return node2deltr def binary_deltran(tree, chardata, stepmatrix): states = range(len(stepmatrix)) node2dpv = downpass(tree, states, stepmatrix, chardata) node2deltr = _bindeltran(tree, stepmatrix, node2dpv) return node2deltr if __name__ == "__main__": from pprint import pprint from ivy import tree root = tree.read("(a,((b,c),(d,(e,f))));") nstates = 4 states = range(nstates) cm = default_costmatrix(nstates) chardata = dict(zip("abcdef", map(int, "000233"))) dp = downpass(root, states, cm, chardata) for i, node in enumerate(root): if not node.label: node.label = "N%s" % i else: node.label = "%s (%s)" % (node.label, chardata[node.label]) print(ascii.render(root))
_bindeltran(child, stepmatrix, node2dpv, node2deltr, s) return node2deltr def binary_deltran(tree, chardata, stepmatrix): states = range(len(stepmatrix)) node2dpv = downpass(tree, states, stepmatrix, chardata) node2deltr = _bindeltran(tree, stepmatrix, node2dpv) return node2deltr if __name__ == "__main__": from pprint import pprint from ivy import tree root = tree.read("(a,((b,c),(d,(e,f))));") nstates = 4 states = range(nstates) cm = default_costmatrix(nstates) chardata = dict(zip("abcdef", map(int, "000233"))) dp = downpass(root, states, cm, chardata) for i, node in enumerate(root): if not node.label: node.label = "N%s" % i else: node.label = "%s (%s)" % (node.label, chardata[node.label]) print(ascii.render(root))