Beispiel #1
0
def main_regex(opts):
    print "in main regex"
    rdr = NewickReader({'node_annotations': True})
    in_tree = rdr.read(opts.in_tree_path)
    match_regex = re.compile(opts.match_pat)
    for t in in_tree.iter_tip_nodes():
        t.title = match_regex.sub(opts.replace_pat, t.title)
    wrtr = NewickWriter()
    wrtr._dist_format = opts.distance_format[0]
    wrtr.write(in_tree, opts.out_tree_path)
Beispiel #2
0
def main_map(opts):
    from csv import DictReader
    csv_reader = DictReader(opts.in_csv_path)
    name_map = {}
    for r in csv_reader:
        name_map[r[opts.in_col]] = r[opts.out_col]

    # now rewrite the tree
    rdr = NewickReader({'node_annotations': True})
    in_tree = rdr.read(opts.in_tree_path)
    for t in in_tree.iter_tip_nodes():
        t.title = name_map.get(t.title, t.title)
    wrtr = NewickWriter()
    wrtr._dist_format = opts.distance_format[0]
    wrtr.write(in_tree, opts.out_tree_path)