Mercurial > repos > dfornika > screen_abricate_report
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) |