Mercurial > repos > dfornika > screen_abricate_results
annotate screen_abricate_results.py @ 4:f06ea4673b49 draft default tip
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 19:18:44 -0400 |
parents | a54032ac6a55 |
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) |