Exemple #1
0
def get_pairwise_dists(tree, mainsp):
    """get pairwise distances between the main taxon and the rest of the taxa"""
    lst = []

    for sp in tree.leaf_names():
        lst.append((sp, treelib.find_dist(tree, mainsp, sp)))

    lst.sort(key=lambda x: x[1])
    names, dists = zip(*lst)
    return names, dists
def get_pairwise_dists(tree, mainsp):
    """get pairwise distances between the main taxon and the rest of the taxa"""
    lst = []

    for sp in tree.leaf_names():
        lst.append((sp, treelib.find_dist(tree, mainsp, sp)))

    lst.sort(key=lambda x: x[1])
    names, dists = zip(* lst)
    return names, dists
Exemple #3
0
def tree2distmat(tree, leaves):
    """Returns pair-wise distances between leaves of a tree"""
    
    # TODO: not implemented efficiently
    mat = []
    for i in range(len(leaves)):
        mat.append([])
        for j in range(len(leaves)):
            mat[-1].append(treelib.find_dist(tree, leaves[i], leaves[j]))
    
    return mat
Exemple #4
0

if __name__ == "__main__":
    stree = treelib.read_tree('simple.stree')
    popsize = 1e4
    freq = 1e0
    dr = 2.1
    lr = 2.0
    freqdup = .07
    freqloss = .05
    forcetime = 1e0
    gtree = sim_tree(stree, popsize, freq, dr, lr, freqdup, freqloss, forcetime)
    treelib.draw_tree(stree, scale=1)
    print 
    for leaf in stree.leaves():
        print leaf.name, treelib.find_dist(stree, stree.root.name, leaf.name)
    print
    treelib.draw_tree(gtree, scale=1)
    print
    
    if len(gtree.nodes) > 1:
        for leaf in gtree.leaves():
            print leaf.name, treelib.find_dist(gtree,gtree.root.name,leaf.name), leaf.data['freq']
    else:
        print 'only the root remains'
    
#    if len(gtree.nodes) > 1:
#        extant_count = 0
#        for leaf in gtree.leaves():
#            if leaf.data['freq'] > 0.0:
#                extant_count += 1