annotate 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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
a54032ac6a55 planemo upload for repository https://github.com/dfornika/galaxy/tree/master/tools/screen_abricate_results commit 607fa944c574740d29ea3ce948707b8bd17c7d58-dirty
dfornika
parents:
diff changeset
1 #!/usr/bin/env python
a54032ac6a55 planemo upload for repository https://github.com/dfornika/galaxy/tree/master/tools/screen_abricate_results commit 607fa944c574740d29ea3ce948707b8bd17c7d58-dirty
dfornika
parents:
diff changeset
2
a54032ac6a55 planemo upload for repository https://github.com/dfornika/galaxy/tree/master/tools/screen_abricate_results commit 607fa944c574740d29ea3ce948707b8bd17c7d58-dirty
dfornika
parents:
diff changeset
3 from __future__ import print_function
a54032ac6a55 planemo upload for repository https://github.com/dfornika/galaxy/tree/master/tools/screen_abricate_results commit 607fa944c574740d29ea3ce948707b8bd17c7d58-dirty
dfornika
parents:
diff changeset
4
a54032ac6a55 planemo upload for repository https://github.com/dfornika/galaxy/tree/master/tools/screen_abricate_results commit 607fa944c574740d29ea3ce948707b8bd17c7d58-dirty
dfornika
parents:
diff changeset
5 import argparse
a54032ac6a55 planemo upload for repository https://github.com/dfornika/galaxy/tree/master/tools/screen_abricate_results commit 607fa944c574740d29ea3ce948707b8bd17c7d58-dirty
dfornika
parents:
diff changeset
6 import os
a54032ac6a55 planemo upload for repository https://github.com/dfornika/galaxy/tree/master/tools/screen_abricate_results commit 607fa944c574740d29ea3ce948707b8bd17c7d58-dirty
dfornika
parents:
diff changeset
7 import re
a54032ac6a55 planemo upload for repository https://github.com/dfornika/galaxy/tree/master/tools/screen_abricate_results commit 607fa944c574740d29ea3ce948707b8bd17c7d58-dirty
dfornika
parents:
diff changeset
8 import sys
a54032ac6a55 planemo upload for repository https://github.com/dfornika/galaxy/tree/master/tools/screen_abricate_results commit 607fa944c574740d29ea3ce948707b8bd17c7d58-dirty
dfornika
parents:
diff changeset
9 import csv
a54032ac6a55 planemo upload for repository https://github.com/dfornika/galaxy/tree/master/tools/screen_abricate_results commit 607fa944c574740d29ea3ce948707b8bd17c7d58-dirty
dfornika
parents:
diff changeset
10 from pprint import pprint
a54032ac6a55 planemo upload for repository https://github.com/dfornika/galaxy/tree/master/tools/screen_abricate_results commit 607fa944c574740d29ea3ce948707b8bd17c7d58-dirty
dfornika
parents:
diff changeset
11
a54032ac6a55 planemo upload for repository https://github.com/dfornika/galaxy/tree/master/tools/screen_abricate_results commit 607fa944c574740d29ea3ce948707b8bd17c7d58-dirty
dfornika
parents:
diff changeset
12 def parse_screen_file(screen_file):
a54032ac6a55 planemo upload for repository https://github.com/dfornika/galaxy/tree/master/tools/screen_abricate_results commit 607fa944c574740d29ea3ce948707b8bd17c7d58-dirty
dfornika
parents:
diff changeset
13 screen = []
a54032ac6a55 planemo upload for repository https://github.com/dfornika/galaxy/tree/master/tools/screen_abricate_results commit 607fa944c574740d29ea3ce948707b8bd17c7d58-dirty
dfornika
parents:
diff changeset
14 with open(screen_file) as f:
a54032ac6a55 planemo upload for repository https://github.com/dfornika/galaxy/tree/master/tools/screen_abricate_results commit 607fa944c574740d29ea3ce948707b8bd17c7d58-dirty
dfornika
parents:
diff changeset
15 reader = csv.DictReader(f, delimiter="\t", quotechar='"')
a54032ac6a55 planemo upload for repository https://github.com/dfornika/galaxy/tree/master/tools/screen_abricate_results commit 607fa944c574740d29ea3ce948707b8bd17c7d58-dirty
dfornika
parents:
diff changeset
16 for row in reader:
a54032ac6a55 planemo upload for repository https://github.com/dfornika/galaxy/tree/master/tools/screen_abricate_results commit 607fa944c574740d29ea3ce948707b8bd17c7d58-dirty
dfornika
parents:
diff changeset
17 screen.append(row)
a54032ac6a55 planemo upload for repository https://github.com/dfornika/galaxy/tree/master/tools/screen_abricate_results commit 607fa944c574740d29ea3ce948707b8bd17c7d58-dirty
dfornika
parents:
diff changeset
18 return screen
a54032ac6a55 planemo upload for repository https://github.com/dfornika/galaxy/tree/master/tools/screen_abricate_results commit 607fa944c574740d29ea3ce948707b8bd17c7d58-dirty
dfornika
parents:
diff changeset
19
a54032ac6a55 planemo upload for repository https://github.com/dfornika/galaxy/tree/master/tools/screen_abricate_results commit 607fa944c574740d29ea3ce948707b8bd17c7d58-dirty
dfornika
parents:
diff changeset
20 def get_abricate_report_fieldnames(abricate_report):
a54032ac6a55 planemo upload for repository https://github.com/dfornika/galaxy/tree/master/tools/screen_abricate_results commit 607fa944c574740d29ea3ce948707b8bd17c7d58-dirty
dfornika
parents:
diff changeset
21 with open(abricate_report) as f:
a54032ac6a55 planemo upload for repository https://github.com/dfornika/galaxy/tree/master/tools/screen_abricate_results commit 607fa944c574740d29ea3ce948707b8bd17c7d58-dirty
dfornika
parents:
diff changeset
22 reader = csv.DictReader(f, delimiter="\t", quotechar='"')
a54032ac6a55 planemo upload for repository https://github.com/dfornika/galaxy/tree/master/tools/screen_abricate_results commit 607fa944c574740d29ea3ce948707b8bd17c7d58-dirty
dfornika
parents:
diff changeset
23 row = next(reader)
a54032ac6a55 planemo upload for repository https://github.com/dfornika/galaxy/tree/master/tools/screen_abricate_results commit 607fa944c574740d29ea3ce948707b8bd17c7d58-dirty
dfornika
parents:
diff changeset
24 fieldnames = row.keys()
a54032ac6a55 planemo upload for repository https://github.com/dfornika/galaxy/tree/master/tools/screen_abricate_results commit 607fa944c574740d29ea3ce948707b8bd17c7d58-dirty
dfornika
parents:
diff changeset
25 return fieldnames
a54032ac6a55 planemo upload for repository https://github.com/dfornika/galaxy/tree/master/tools/screen_abricate_results commit 607fa944c574740d29ea3ce948707b8bd17c7d58-dirty
dfornika
parents:
diff changeset
26
a54032ac6a55 planemo upload for repository https://github.com/dfornika/galaxy/tree/master/tools/screen_abricate_results commit 607fa944c574740d29ea3ce948707b8bd17c7d58-dirty
dfornika
parents:
diff changeset
27 def main(args):
a54032ac6a55 planemo upload for repository https://github.com/dfornika/galaxy/tree/master/tools/screen_abricate_results commit 607fa944c574740d29ea3ce948707b8bd17c7d58-dirty
dfornika
parents:
diff changeset
28 screen = parse_screen_file(args.screen)
a54032ac6a55 planemo upload for repository https://github.com/dfornika/galaxy/tree/master/tools/screen_abricate_results commit 607fa944c574740d29ea3ce948707b8bd17c7d58-dirty
dfornika
parents:
diff changeset
29 abricate_report_fieldnames = get_abricate_report_fieldnames(args.abricate_report)
a54032ac6a55 planemo upload for repository https://github.com/dfornika/galaxy/tree/master/tools/screen_abricate_results commit 607fa944c574740d29ea3ce948707b8bd17c7d58-dirty
dfornika
parents:
diff changeset
30 with open(args.abricate_report) as f:
a54032ac6a55 planemo upload for repository https://github.com/dfornika/galaxy/tree/master/tools/screen_abricate_results commit 607fa944c574740d29ea3ce948707b8bd17c7d58-dirty
dfornika
parents:
diff changeset
31 reader = csv.DictReader(f, delimiter="\t", quotechar='"')
a54032ac6a55 planemo upload for repository https://github.com/dfornika/galaxy/tree/master/tools/screen_abricate_results commit 607fa944c574740d29ea3ce948707b8bd17c7d58-dirty
dfornika
parents:
diff changeset
32 writer = csv.DictWriter(sys.stdout, delimiter="\t", quotechar='"', fieldnames=abricate_report_fieldnames)
a54032ac6a55 planemo upload for repository https://github.com/dfornika/galaxy/tree/master/tools/screen_abricate_results commit 607fa944c574740d29ea3ce948707b8bd17c7d58-dirty
dfornika
parents:
diff changeset
33 writer.writeheader()
a54032ac6a55 planemo upload for repository https://github.com/dfornika/galaxy/tree/master/tools/screen_abricate_results commit 607fa944c574740d29ea3ce948707b8bd17c7d58-dirty
dfornika
parents:
diff changeset
34 for row in reader:
a54032ac6a55 planemo upload for repository https://github.com/dfornika/galaxy/tree/master/tools/screen_abricate_results commit 607fa944c574740d29ea3ce948707b8bd17c7d58-dirty
dfornika
parents:
diff changeset
35 for gene in screen:
a54032ac6a55 planemo upload for repository https://github.com/dfornika/galaxy/tree/master/tools/screen_abricate_results commit 607fa944c574740d29ea3ce948707b8bd17c7d58-dirty
dfornika
parents:
diff changeset
36 if re.search(gene['regex'], row['GENE']):
a54032ac6a55 planemo upload for repository https://github.com/dfornika/galaxy/tree/master/tools/screen_abricate_results commit 607fa944c574740d29ea3ce948707b8bd17c7d58-dirty
dfornika
parents:
diff changeset
37 writer.writerow(row)
a54032ac6a55 planemo upload for repository https://github.com/dfornika/galaxy/tree/master/tools/screen_abricate_results commit 607fa944c574740d29ea3ce948707b8bd17c7d58-dirty
dfornika
parents:
diff changeset
38
a54032ac6a55 planemo upload for repository https://github.com/dfornika/galaxy/tree/master/tools/screen_abricate_results commit 607fa944c574740d29ea3ce948707b8bd17c7d58-dirty
dfornika
parents:
diff changeset
39
a54032ac6a55 planemo upload for repository https://github.com/dfornika/galaxy/tree/master/tools/screen_abricate_results commit 607fa944c574740d29ea3ce948707b8bd17c7d58-dirty
dfornika
parents:
diff changeset
40
a54032ac6a55 planemo upload for repository https://github.com/dfornika/galaxy/tree/master/tools/screen_abricate_results commit 607fa944c574740d29ea3ce948707b8bd17c7d58-dirty
dfornika
parents:
diff changeset
41 if __name__ == '__main__':
a54032ac6a55 planemo upload for repository https://github.com/dfornika/galaxy/tree/master/tools/screen_abricate_results commit 607fa944c574740d29ea3ce948707b8bd17c7d58-dirty
dfornika
parents:
diff changeset
42 parser = argparse.ArgumentParser()
a54032ac6a55 planemo upload for repository https://github.com/dfornika/galaxy/tree/master/tools/screen_abricate_results commit 607fa944c574740d29ea3ce948707b8bd17c7d58-dirty
dfornika
parents:
diff changeset
43 parser.add_argument("--screen", help="TSV file defining genes to screen for")
a54032ac6a55 planemo upload for repository https://github.com/dfornika/galaxy/tree/master/tools/screen_abricate_results commit 607fa944c574740d29ea3ce948707b8bd17c7d58-dirty
dfornika
parents:
diff changeset
44 parser.add_argument("abricate_report", help="Abricate output")
a54032ac6a55 planemo upload for repository https://github.com/dfornika/galaxy/tree/master/tools/screen_abricate_results commit 607fa944c574740d29ea3ce948707b8bd17c7d58-dirty
dfornika
parents:
diff changeset
45 args = parser.parse_args()
a54032ac6a55 planemo upload for repository https://github.com/dfornika/galaxy/tree/master/tools/screen_abricate_results commit 607fa944c574740d29ea3ce948707b8bd17c7d58-dirty
dfornika
parents:
diff changeset
46 main(args)