Mercurial > repos > dfornika > screen_abricate_results
comparison 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 |
comparison
equal
deleted
inserted
replaced
| -1:000000000000 | 0:a54032ac6a55 |
|---|---|
| 1 #!/usr/bin/env python | |
| 2 | |
| 3 from __future__ import print_function | |
| 4 | |
| 5 import argparse | |
| 6 import os | |
| 7 import re | |
| 8 import sys | |
| 9 import csv | |
| 10 from pprint import pprint | |
| 11 | |
| 12 def parse_screen_file(screen_file): | |
| 13 screen = [] | |
| 14 with open(screen_file) as f: | |
| 15 reader = csv.DictReader(f, delimiter="\t", quotechar='"') | |
| 16 for row in reader: | |
| 17 screen.append(row) | |
| 18 return screen | |
| 19 | |
| 20 def get_abricate_report_fieldnames(abricate_report): | |
| 21 with open(abricate_report) as f: | |
| 22 reader = csv.DictReader(f, delimiter="\t", quotechar='"') | |
| 23 row = next(reader) | |
| 24 fieldnames = row.keys() | |
| 25 return fieldnames | |
| 26 | |
| 27 def main(args): | |
| 28 screen = parse_screen_file(args.screen) | |
| 29 abricate_report_fieldnames = get_abricate_report_fieldnames(args.abricate_report) | |
| 30 with open(args.abricate_report) as f: | |
| 31 reader = csv.DictReader(f, delimiter="\t", quotechar='"') | |
| 32 writer = csv.DictWriter(sys.stdout, delimiter="\t", quotechar='"', fieldnames=abricate_report_fieldnames) | |
| 33 writer.writeheader() | |
| 34 for row in reader: | |
| 35 for gene in screen: | |
| 36 if re.search(gene['regex'], row['GENE']): | |
| 37 writer.writerow(row) | |
| 38 | |
| 39 | |
| 40 | |
| 41 if __name__ == '__main__': | |
| 42 parser = argparse.ArgumentParser() | |
| 43 parser.add_argument("--screen", help="TSV file defining genes to screen for") | |
| 44 parser.add_argument("abricate_report", help="Abricate output") | |
| 45 args = parser.parse_args() | |
| 46 main(args) |
