def parse_tree(t): """Simple function to read a tree file off the disk and return it as a Tree object. Also calls the render() method on it so that it gets node IDs that we can use to apply labels/marks.""" treeobj = EvolTree(t) treeobj.render('') return treeobj
def run_evol_py(tree, alg, branch_model, site_models, workir='data/evol_output', tool_dir="ete3_apps/bin"): print(tree, alg, branch_model, site_models) builtin_apps_path = None builtin_apps_path = os.path.join(os.path.split(ete3_path)[0], tool_dir) tree = EvolTree(tree, binpath=builtin_apps_path) tree.link_to_alignment(alg) tree.workdir = workir ###branch model if branch_model: branch_model = str(branch_model) tree.run_model(branch_model) print(tree.get_evol_model(branch_model)) ### site model for site_model in site_models: tree.run_model(site_model) #tree.run_model('SLR.lele') global evol_output_dir, final_evol_tree evol_output_dir = workir final_evol_tree = evol_output_dir + '/tree_evol_result.png' tree.render(final_evol_tree, layout=evol_clean_layout, histfaces=site_models) return tree
def tree_layout(tree_file, ps_node_list): t = EvolTree(tree_file, format=0) style_other = NodeStyle() style_other['size'] = 6 style_ps = NodeStyle() style_ps['fgcolor'] = '#ff0000' style_ps['size'] = 6 for node in t.iter_descendants(): descendant = t.get_descendant_by_node_id(node.node_id) if node.node_id in ps_node_list: descendant.img_style = style_ps else: descendant.img_style = style_other ts = TreeStyle() ts.layout_fn = layout ts.show_branch_support = False ts.show_branch_length = False ts.show_leaf_name = False result_picture = os.path.join(output_dir, 'positive_selection_tree.png') t.render(result_picture, tree_style=ts)