def test_lliks(n_taxa=15, n_sites=100): tree = pinf.tree.create(n_taxa, branch='random') branch = pinf.branch.get(tree) dna_data = pinf.data.treeSimu(tree, JC.D, JC.U, JC.U_inv, JC.pi, n_sites) L_cheng = pinf.Loglikelihood.initialCLV(dna_data) llik_cheng = pinf.Loglikelihood.phyloLoglikelihood(tree, branch, JC.D, JC.U, JC.U_inv, JC.pi, L_cheng) data_enc = seq_encode(dna_data) llik_mk = loglikelihood(tree, data_enc) rerooted = reroot(tree, rnd.choice(tree.get_leaf_names())) llik_rert = loglikelihood(rerooted, data_enc) return llik_mk - llik_cheng, llik_rert - llik_cheng
ntips = 4 nsites = 10 true_tree = pinf.tree.create(ntips, branch=None) print(true_tree) true_tree.show() data = pinf.data.treeSimu(true_tree, JC.D, JC.U, JC.U_inv, JC.pi, nsites) L = pinf.Loglikelihood.initialCLV(data) true_branch = pinf.branch.get(true_tree) true_llik = pinf.Loglikelihood.phyloLoglikelihood(true_tree, true_branch, JC.D, JC.U, JC.U_inv, JC.pi, L) print(f"The log-likelihood of the true tree: {true_llik}") my_llik = loglikelihood(true_tree, data) print(f"My log-likelihood of the true tree: {my_llik}") round(my_llik - true_llik, 6) # Beagle section tree = true_tree.copy() id_attr = "name" leaf_attr = "name" # Set up table = { 'A': 0, 'C': 1, 'G': 2,
def mk_lik_list(tree_list, seqs_list, model=JC): result = [] for tree, seqs in zip(tree_list, seqs_list): llik = loglikelihood(tree, seqs, model) result.append(llik) return result
true_tree = pinf.tree.create(ntips, branch='random') true_tree.show() rnd.seed(290102) data = pinf.data.treeSimu(true_tree, D, U, U_inv, pden, 100) L = pinf.Loglikelihood.initialCLV(data) true_branch = pinf.branch.get(true_tree) true_llik = pinf.Loglikelihood.phyloLoglikelihood(true_tree, true_branch, D, U, U_inv, pden, L) print(f"The log-likelihood of the true tree: {true_llik}") # seq_enc = seq_encode(data) # my_llik = loglikelihood(true_tree, seq_enc) my_llik = loglikelihood(true_tree, data) print(f"My log-likelihood of the true tree: {my_llik}") round(my_llik - true_llik, 6) tree_exp = true_tree.copy() reroot(tree_exp, 14) tree_exp.show() exp_llik = loglikelihood(tree_exp, data) print(f"Experimental log-likelihood of the true tree: {exp_llik}") round(exp_llik - true_llik, 6) tree_id = true_tree.copy() tree_id.show() refresh_ids(tree_id)
rbcl = Tree("rbcl/rbcLjc.nwk") data = SeqIO.parse("rbcl/rbcL.nex", 'nexus') seqs = {rec.id: str(rec.seq) for rec in data} # nex10 = Phylo.read("rbcl/rbcl10.tre", 'nexus') rbcl10 = Tree("rbcl/rbcl10.nwk") data10 = SeqIO.parse("rbcl/rbcl10.nex", 'nexus') seqs10 = {rec.id: str(rec.seq) for rec in data10} # nex738 = Phylo.read("rbcl/rbcl738nj.tre", 'nexus') rbcl738 = Tree("rbcl/rbcl738.nwk") data738 = SeqIO.parse("rbcl/rbcl738.nex", 'nexus') seqs738 = {rec.id: str(rec.seq) for rec in data738} # likelihood calculations my_llik = loglikelihood(rbcl, seqs, id_attr="id", leaf_attr="name") print(f"rbcl (my llik): {my_llik}") bg_llik = loglikelihood_beagle(rbcl, seqs, id_attr="id", leaf_attr="name", scaling=True) print(f"rbcl (beagle llik): {bg_llik}") round(bg_llik - my_llik, 8) my_llik10 = loglikelihood(rbcl10, seqs10, id_attr="id", leaf_attr="name") print(f"rbcl (my llik): {my_llik10}") bg_llik10 = loglikelihood_beagle(rbcl10, seqs10, id_attr="id", leaf_attr="name",