Mercurial > repos > dfornika > screen_abricate_report
view screen_abricate_report.py @ 0:2ffd23634c1e draft
planemo upload for repository https://github.com/dfornika/galaxytools/blob/master/tools/screen_abricate_report commit d9732cd3279d03dcc498bf2eb903f9e6120a9d85-dirty
author | dfornika |
---|---|
date | Thu, 26 Sep 2019 19:37:27 -0400 |
parents | |
children | 40003338a8e8 |
line wrap: on
line source
#!/usr/bin/env python from __future__ import print_function import argparse import os import re import sys import csv from pprint import pprint def parse_screen_file(screen_file): screen = [] with open(screen_file) as f: reader = csv.DictReader(f, delimiter="\t", quotechar='"') for row in reader: screen.append(row) return screen def get_abricate_report_fieldnames(abricate_report): with open(abricate_report) as f: reader = csv.DictReader(f, delimiter="\t", quotechar='"') row = next(reader) fieldnames = row.keys() return fieldnames def main(args): screen = parse_screen_file(args.screen) abricate_report_fieldnames = get_abricate_report_fieldnames(args.abricate_report) with open(args.abricate_report) as f: reader = csv.DictReader(f, delimiter="\t", quotechar='"') writer = csv.DictWriter(sys.stdout, delimiter="\t", quotechar='"', fieldnames=abricate_report_fieldnames) writer.writeheader() for row in reader: for gene in screen: if re.search(gene['regex'], row['GENE']): writer.writerow(row) if __name__ == '__main__': parser = argparse.ArgumentParser() parser.add_argument("--screen", help="TSV file defining genes to screen for") parser.add_argument("abricate_report", help="Abricate output") args = parser.parse_args() main(args)