Example #1
0
    def test_ml_large(self):
        """Test ML code"""

        # params
        bgfreq = [.258,.267,.266,.209]
        kappa = 1.59

        # data
        tree = treelib.readTree("test/data/verts/19520/19520.ensembl.tree")
        align = fasta.readFasta("test/data/verts/19520/19520.nt.mfa")


        likes = []
        dists = []

        nodes = sorted(tree.nodes.values(), key=lambda x: x.dist)

        l = spidir.calc_seq_likelihood_hky(tree, align, bgfreq, kappa)
        print l
        self.assert_(l != -util.INF)


        l = spidir.find_ml_branch_lengths_hky(
            tree,
            util.mget(align, tree.leafNames()),
            bgfreq, kappa,
            parsinit=False,
            maxiter=1)
        print l
        self.assert_(l != -util.INF)
Example #2
0
    def test_ml_large(self):
        """Test ML code"""

        # params
        bgfreq = [.258, .267, .266, .209]
        kappa = 1.59

        # data
        tree = treelib.readTree("test/data/verts/19520/19520.ensembl.tree")
        align = fasta.readFasta("test/data/verts/19520/19520.nt.mfa")

        likes = []
        dists = []

        nodes = sorted(tree.nodes.values(), key=lambda x: x.dist)

        l = spidir.calc_seq_likelihood_hky(tree, align, bgfreq, kappa)
        print l
        self.assert_(l != -util.INF)

        l = spidir.find_ml_branch_lengths_hky(tree,
                                              util.mget(
                                                  align, tree.leafNames()),
                                              bgfreq,
                                              kappa,
                                              parsinit=False,
                                              maxiter=1)
        print l
        self.assert_(l != -util.INF)
Example #3
0
    def test_calc_hky_seq_likelihood(self):

        bgfreq = [.258, .267, .266, .209]
        kappa = 1.59
        tree = treelib.parse_newick(
            "((A:.1,B:.1):.1,((C:.1,D:.1):.2,E:.3):.1);")
        align = {
            "A":
            "CGCAGACAACTCCCCCGACCACACATAGTACGAAATCCTCAGCCGCTGCCGACTCCGACGCGCGGACTGTCCGGGTTCAGCGAGGCTTAAGAGAACGGCC",
            "B":
            "CCCAAACAACTCCCCCGACCAGACATAGTACGAGATCCTCAGCCACTGGCGACTCGGACGCGCAGAGTGTCCCGCTTAAGCGAGGCTGCAGAGAACGGCC",
            "C":
            "GGCCAGCAATTCCTCCGACCACGCATAGTACGAGATCGTCTGCCTCCTGCGAATCGGACGCGCAGAGTGTTCCGGTTAAGGGAGACTTCAGAGACCTGGC",
            "D":
            "CGCTAACAATTCCCCCGACCACACTGAGTACGAGATACTCGGACTCCGGCGATCTCTACTCGCAGAGAGTCCCACTTAAGCGAGACTGACGAGCACGGGC",
            "E":
            "ATTCTTCCACACCTGCGTGTTCGTCACGTATCAAATGCGGAGCCCACGTCCAATGGCACACGAACAGTCGGCCACGGAATCGCAGACTCGTTGACCAACG"
        }

        draw_tree(tree)

        l = spidir.calc_seq_likelihood_hky(tree, align, bgfreq, kappa)
        l2 = spidir.find_ml_branch_lengths_hky(tree, align, bgfreq, kappa)

        draw_tree(tree)

        print "log lk", l, l2
        self.assert_(l2 > l)
Example #4
0
    def test1(self):

        # (0, 1):2
        # P(x_0,x_1|t) = \sum_{x_2} P(x_0|x_2,t_0) * P(x_1|x_2,t_1) * P(x_2)
        # P(x_0|x_1,t) = P(x_0,x_1|t) / P(x_1|t) = P(x_0,x_1|t) / P(x_1)

        for t in frange(0.1, 2.0, 0.1):
            bgfreq = [0.25, 0.25, 0.25, 0.25]
            kappa = 1.0
            tree = treelib.parse_newick("(a:%f,b:%f)" % (t * 0.5, t * 0.5))
            align = {"a": "C", "b": "T"}

            l = spidir.calc_seq_likelihood_hky(tree, align, bgfreq, kappa) - log(0.25)
            mat = spidir.make_hky_matrix(bgfreq, kappa, t)
            l2 = log(mat[0][1])

            print l, l2
            fequal(l, l2)
Example #5
0
    def test1(self):

        # (0, 1):2
        # P(x_0,x_1|t) = \sum_{x_2} P(x_0|x_2,t_0) * P(x_1|x_2,t_1) * P(x_2)
        # P(x_0|x_1,t) = P(x_0,x_1|t) / P(x_1|t) = P(x_0,x_1|t) / P(x_1)

        for t in frange(.1, 2.0, .1):
            bgfreq = [.25, .25, .25, .25]
            kappa = 1.0
            tree = treelib.parse_newick("(a:%f,b:%f)" % (t * .5, t * .5))
            align = {"a": "C", "b": "T"}

            l = spidir.calc_seq_likelihood_hky(tree, align, bgfreq, kappa) \
                - log(.25)
            mat = spidir.make_hky_matrix(bgfreq, kappa, t)
            l2 = log(mat[0][1])

            print l, l2
            fequal(l, l2)
Example #6
0
    def test_calc_hky_seq_likelihood(self):

        bgfreq = [0.258, 0.267, 0.266, 0.209]
        kappa = 1.59
        tree = treelib.parse_newick("((A:.1,B:.1):.1,((C:.1,D:.1):.2,E:.3):.1);")
        align = {
            "A": "CGCAGACAACTCCCCCGACCACACATAGTACGAAATCCTCAGCCGCTGCCGACTCCGACGCGCGGACTGTCCGGGTTCAGCGAGGCTTAAGAGAACGGCC",
            "B": "CCCAAACAACTCCCCCGACCAGACATAGTACGAGATCCTCAGCCACTGGCGACTCGGACGCGCAGAGTGTCCCGCTTAAGCGAGGCTGCAGAGAACGGCC",
            "C": "GGCCAGCAATTCCTCCGACCACGCATAGTACGAGATCGTCTGCCTCCTGCGAATCGGACGCGCAGAGTGTTCCGGTTAAGGGAGACTTCAGAGACCTGGC",
            "D": "CGCTAACAATTCCCCCGACCACACTGAGTACGAGATACTCGGACTCCGGCGATCTCTACTCGCAGAGAGTCCCACTTAAGCGAGACTGACGAGCACGGGC",
            "E": "ATTCTTCCACACCTGCGTGTTCGTCACGTATCAAATGCGGAGCCCACGTCCAATGGCACACGAACAGTCGGCCACGGAATCGCAGACTCGTTGACCAACG",
        }

        draw_tree(tree)

        l = spidir.calc_seq_likelihood_hky(tree, align, bgfreq, kappa)
        l2 = spidir.find_ml_branch_lengths_hky(tree, align, bgfreq, kappa)

        draw_tree(tree)

        print "log lk", l, l2
        self.assert_(l2 > l)