comparison 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
comparison
equal deleted inserted replaced
-1:000000000000 0:2ffd23634c1e
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)