コード例 #1
0

need to sort them by the mrcas and then do them all at once
"""

# this will either be sister or will be at a polytomy
add_as_sister = True

if __name__ == "__main__":
    if len(sys.argv) != 3:
        print "python " + sys.argv[0] + " infile.tre names.txt"
        sys.exit(0)

    tree = tree_reader.read_tree_file_iter(sys.argv[1]).next()

    tree_utils.set_heights(tree)

    of = open(sys.argv[2], "r")
    replace = {}  #key is single mrca taxon, value is node that is to be used
    for i in of:
        spls = i.strip().split(",")
        nms = spls[1:]
        nm = spls[0]
        x = None
        if len(nms) == 1:
            if nms[0] in replace:
                x = replace[nms[0]]
            else:
                for j in tree.leaves():
                    if j.label == nms[0]:
                        x = j
コード例 #2
0
                toremove.append(i)
    for i in toremove:
        sys.stderr.write("remove internal: "+i.get_newick_repr(False)+"\n")
        par = i.parent
        par.remove_child(i)


if __name__ == "__main__":
    if len(sys.argv) != 3:
        print "python "+sys.argv[0]+ " addtree bigtre"
        sys.exit(0)

    tree1 = tree_reader.read_tree_file_iter(sys.argv[1]).next()
    bigtree = tree_reader.read_tree_file_iter(sys.argv[2]).next()
    if EDITLEN:
        tree_utils.set_heights(tree1)
        tree_utils.set_heights(bigtree)

    rootnms = set(tree1.lvsnms())
    
    remove_int_ext_nodes(rootnms,bigtree)

    othernms = set(bigtree.lvsnms())
    if VERBOSE:
        ddifs = rootnms.difference(othernms)
        for i in ddifs:
            sys.stderr.write(i+"\n")
    diffnms = []
    diffnds = {}
    didit = False
    nrt = tree_utils.get_mrca_wnms(list(rootnms.intersection(othernms)),bigtree).parent
コード例 #3
0
import os
import tree_reader
import tree_utils
"""
assuming that the datedtre just has ott ids as the tip names

assuming the labelled_supertree has ott in front of the ott ids
"""

if __name__ == "__main__":
    if len(sys.argv) != 3:
        print "python " + sys.argv[0] + " datedtree labelled_superrtree"
        sys.exit(0)
    dated = tree_reader.read_tree_file_iter(sys.argv[1]).next()
    ott = tree_reader.read_tree_file_iter(sys.argv[2]).next()
    tree_utils.set_heights(dated)
    ottlvsd = {}  #key is name and value is node
    for i in ott.iternodes():
        ottlvsd[i.label] = i

    for i in dated.leaves():
        try:
            i.data["node"] = ottlvsd[i.label]  #ottlvsd["ott"+i.label]
        except:
            print >> sys.stderr, "not matched", i.label
            continue

    done = set()
    dates = {}  # key is node, value is date
    dates_names = {}  #key is node, value is mrca string
    for i in dated.iternodes(order="preorder"):