Mercurial > repos > dfornika > screen_abricate_results
diff screen_abricate_results.py @ 0:a54032ac6a55 draft
planemo upload for repository https://github.com/dfornika/galaxy/tree/master/tools/screen_abricate_results commit 607fa944c574740d29ea3ce948707b8bd17c7d58-dirty
author | dfornika |
---|---|
date | Thu, 26 Sep 2019 14:56:27 -0400 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/screen_abricate_results.py Thu Sep 26 14:56:27 2019 -0400 @@ -0,0 +1,46 @@ +#!/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)