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 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.)
Beispiel #4
0
    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.)