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