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)
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)
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)
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)
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)
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)