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) | 
