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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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"))