Mercurial > repos > iuc > data_manager_primer_scheme_bedfiles
annotate data_manager/install_primer_scheme_bedfiles.py @ 0:ae730ecdc7e7 draft
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
author | iuc |
---|---|
date | Sun, 19 Apr 2020 09:22:19 -0400 |
parents | |
children | cce5d9327cd6 |
rev | line source |
---|---|
0
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
1 #!/usr/bin/env python |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
2 |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
3 from __future__ import print_function, division |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
4 |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
5 import argparse |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
6 import json |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
7 import os |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
8 import os.path |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
9 import re |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
10 import sys |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
11 import shutil |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
12 |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
13 import requests |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
14 |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
15 DATA_TABLE_NAME = "primer_scheme_bedfiles" |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
16 |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
17 |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
18 def fetch_artic_primers(output_directory, primers): |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
19 primer_sets = { |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
20 "ARTICv1": "https://raw.githubusercontent.com/artic-network/artic-ncov2019/master/primer_schemes/nCoV-2019/V1/nCoV-2019.bed", |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
21 "ARTICv2": "https://raw.githubusercontent.com/artic-network/artic-ncov2019/master/primer_schemes/nCoV-2019/V2/nCoV-2019.bed", |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
22 "ARTICv3": "https://raw.githubusercontent.com/artic-network/artic-ncov2019/master/primer_schemes/nCoV-2019/V3/nCoV-2019.bed", |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
23 } |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
24 |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
25 data = [] |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
26 for name, url in primer_sets.items(): |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
27 if name not in primers: |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
28 continue |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
29 response = requests.get(url) |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
30 if response.status_code != 200: |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
31 print( |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
32 "Error: download of", |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
33 url, |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
34 "failed with code", |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
35 response.status_code, |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
36 file=sys.stderr, |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
37 ) |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
38 exit(response.status_code) |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
39 bed_output_filename = os.path.join(output_directory, name + ".bed") |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
40 open(bed_output_filename, "w").write(response.text) |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
41 description = name[:-2] + " " + name[-2:] + " primer set" |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
42 data.append(dict(value=name, path=bed_output_filename, description=description)) |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
43 return data |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
44 |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
45 |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
46 def install_primer_file( |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
47 output_directory, input_filename, primer_name, primer_description |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
48 ): |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
49 name = re.sub(r"\W", "", str(primer_name).replace(" ", "_")) |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
50 output_filename = os.path.join(output_directory, name + ".bed") |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
51 shutil.copyfile(input_filename, output_filename) |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
52 data = [dict(value=name, description=primer_description, path=output_filename)] |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
53 return data |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
54 |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
55 |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
56 class SplitArgs(argparse.Action): |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
57 def __call__(self, parser, namespace, values, option_string=None): |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
58 setattr(namespace, self.dest, values.split(",")) |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
59 |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
60 |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
61 if __name__ == "__main__": |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
62 parser = argparse.ArgumentParser( |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
63 description="Fetch ARTIC SARS-CoV-2 primer files for Galaxy/IRIDA use" |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
64 ) |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
65 parser.add_argument( |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
66 "--output_directory", default="tmp", help="Directory to write output to" |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
67 ) |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
68 primer_file = parser.add_argument_group() |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
69 primer_file.add_argument( |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
70 "--primer_file", help="BED format file containing primer scheme" |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
71 ) |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
72 primer_file.add_argument( |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
73 "--primer_name", |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
74 help="Name of primer scheme (one word). Required if --primer_file is used", |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
75 ) |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
76 primer_file.add_argument( |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
77 "--primer_description", |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
78 help="Description of primer scheme. Required if --primer_file is used", |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
79 ) |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
80 artic = parser.add_argument_group() |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
81 artic.add_argument( |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
82 "--artic_primers", |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
83 action=SplitArgs, |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
84 help="Comma separated list of primers to fetch", |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
85 ) |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
86 parser.add_argument( |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
87 "galaxy_datamanager_filename", |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
88 help="Galaxy JSON format file describing data manager inputs", |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
89 ) |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
90 args = parser.parse_args() |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
91 |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
92 if args.artic_primers is None and args.primer_file is None: |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
93 print( |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
94 "One of --artic_primers or --primer_file + --primer_name + --primer_description is required.", |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
95 file=sys.stderr, |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
96 ) |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
97 exit(1) |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
98 elif args.primer_file is not None and ( |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
99 args.primer_name is None or args.primer_description is None |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
100 ): |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
101 print( |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
102 "If --primer_file is used --primer_name and --primer_description is also required", |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
103 file=sys.stderr, |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
104 ) |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
105 exit(1) |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
106 elif args.primer_file is not None and args.artic_primers is not None: |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
107 print( |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
108 "Only one of --artic_primers or --primer_file + --primer_name + --primer_description can be chosen" |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
109 ) |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
110 exit(1) |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
111 |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
112 config = json.load(open(args.galaxy_datamanager_filename)) |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
113 output_directory = config.get("output_data", [{}])[0].get("extra_files_path", None) |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
114 if output_directory is None: |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
115 output_directory = args.output_directory |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
116 |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
117 if not os.path.isdir(output_directory): |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
118 os.makedirs(output_directory) |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
119 |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
120 data_manager_dict = {} |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
121 data_manager_dict["data_tables"] = json.load( |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
122 open(args.galaxy_datamanager_filename) |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
123 ).get("data_tables", {}) |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
124 data_manager_dict["data_tables"] = data_manager_dict.get("data_tables", {}) |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
125 data_manager_dict["data_tables"][DATA_TABLE_NAME] = data_manager_dict[ |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
126 "data_tables" |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
127 ].get(DATA_TABLE_NAME, []) |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
128 |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
129 if args.artic_primers: |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
130 data = fetch_artic_primers(output_directory, args.artic_primers) |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
131 else: |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
132 data = install_primer_file( |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
133 output_directory, |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
134 args.primer_file, |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
135 args.primer_name, |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
136 args.primer_description, |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
137 ) |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
138 |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
139 data_manager_dict["data_tables"][DATA_TABLE_NAME].extend(data) |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
140 print(data_manager_dict) |
ae730ecdc7e7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_primer_scheme_bedfiles commit f78536f45aa5ce801251a9725e468a47de1be44a"
iuc
parents:
diff
changeset
|
141 json.dump(data_manager_dict, open(args.galaxy_datamanager_filename, "w")) |