Esempio n. 1
0
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
Esempio n. 2
0
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,
Esempio n. 3
0
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
Esempio n. 4
0
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)
Esempio n. 5
0
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",