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)
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)