def process_tree(tree, stree, gene2species): #============================== # process if options.hist or options.hashes: # count topology hashes.append(phylo.hash_tree(tree, gene2species)) elif options.histsplit: # count splits for leaf in tree.leaves(): tree.rename(leaf.name, gene2species(leaf.name)) splits.extend(phylo.find_splits(tree)) elif options.dump: # dump mode dump_tree(tree) elif options.events: # add event labels assert stree is not None and gene2species is not None phylo.count_dup_loss_tree(tree, stree, gene2species) else: # default mode: display tree display_tree(tree, options, gene2species=gene2species, stree=stree)
def test(self): tree1 = parse_newick("((a,b),c)") tree2 = parse_newick("(c,(a,b))") assert (phylo.find_splits(tree1, rooted=True) == phylo.find_splits(tree2, rooted=True)) tree1 = parse_newick("((a,b),(c,d))") tree2 = parse_newick("(((c,d),a),b)") assert (phylo.find_splits(tree1) == phylo.find_splits(tree2)) assert phylo.robinson_foulds_error(tree1, tree2) == 0.0 tree1 = parse_newick("(((a,b),(c,d)),(e,f))") tree2 = parse_newick("(((a,c),(b,d)),(e,f))") self.assertAlmostEqual(phylo.robinson_foulds_error(tree1, tree2), 2/3.)
def test(self): tree1 = parse_newick("((a,b),c)") tree2 = parse_newick("(c,(a,b))") assert (phylo.find_splits(tree1, rooted=True) == phylo.find_splits( tree2, rooted=True)) tree1 = parse_newick("((a,b),(c,d))") tree2 = parse_newick("(((c,d),a),b)") assert (phylo.find_splits(tree1) == phylo.find_splits(tree2)) assert phylo.robinson_foulds_error(tree1, tree2) == 0.0 tree1 = parse_newick("(((a,b),(c,d)),(e,f))") tree2 = parse_newick("(((a,c),(b,d)),(e,f))") self.assertAlmostEqual(phylo.robinson_foulds_error(tree1, tree2), 2 / 3.)