annotate 1.0.0/bin/dl_pubmlst_profiles_and_schemes.py @ 0:801b85b03a17 draft default tip

planemo upload
author galaxytrakr
date Thu, 28 May 2026 20:31:42 +0000
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
1 #!/usr/bin/env python3
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
2
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
3 # Kranti Konganti
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
4
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
5 import argparse
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
6 import inspect
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
7 import json
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
8 import logging
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
9 import os
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
10 import shutil
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
11 import tempfile
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
12 from urllib.parse import urlparse
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
13 from urllib.request import urlopen
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
14
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
15 # Set logging format.
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
16 logging.basicConfig(
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
17 format="\n"
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
18 + "=" * 55
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
19 + "\n%(asctime)s - %(levelname)s\n"
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
20 + "=" * 55
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
21 + "\n%(message)s\n",
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
22 level=logging.DEBUG,
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
23 )
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
24
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
25
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
26 # Multiple inheritence for pretty printing of help text.
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
27 class MultiArgFormatClasses(
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
28 argparse.RawTextHelpFormatter, argparse.ArgumentDefaultsHelpFormatter
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
29 ):
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
30 pass
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
31
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
32
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
33 def dl_pubmlst(**kwargs) -> None:
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
34 """
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
35 Method to save the Raw Data from a URL.
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
36 """
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
37 outdir, url, suffix, parent, filename, expectjson = [
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
38 kwargs[k] for k in kwargs.keys()
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
39 ]
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
40
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
41 if (outdir or url) == None:
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
42 logging.error(
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
43 "Please provide absolute UNIX path\n" + "to store the result DB flat files."
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
44 )
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
45 exit(1)
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
46
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
47 logging.info(f"Downloading... Please wait...\n{url}")
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
48
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
49 with urlopen(url) as response:
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
50 with tempfile.NamedTemporaryFile(delete=False) as tmp_html_file:
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
51 shutil.copyfileobj(response, tmp_html_file)
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
52
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
53 if expectjson:
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
54 try:
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
55 jsonresponse = json.load(open(tmp_html_file.name, "r"))
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
56 except json.JSONDecodeError:
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
57 logging.error(f"The response from\n{url}\nwas not valid JSON!")
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
58 exit(1)
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
59
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
60 logging.info(f"Got a valid JSON response from:\n{url}")
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
61 return jsonresponse
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
62
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
63 if not parent:
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
64 if not filename:
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
65 save_to = os.path.join(
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
66 outdir, os.path.basename(urlparse(url).path) + suffix
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
67 )
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
68 else:
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
69 save_to = os.path.join(outdir, filename + suffix)
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
70
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
71 logging.info(f"Saving to:\n{os.path.basename(save_to)}")
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
72
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
73 with urlopen(url) as url_response:
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
74 with open(save_to, "w") as fout:
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
75 fout.writelines(url_response.read().decode("utf-8"))
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
76
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
77 fout.close()
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
78 url_response.close()
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
79
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
80
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
81 def main() -> None:
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
82 """
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
83 This script is part of the `cronology_db` Nextflow workflow and is only
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
84 tested on POSIX sytems.
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
85 It:
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
86 1. Downloads the MLST scheme in JSON format from PubMLST.
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
87 and then,
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
88 2. Downloads the alleles' FASTA and profile table
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
89 suitable to run MLST analysis.
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
90 """
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
91
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
92 prog_name = os.path.basename(inspect.stack()[0].filename)
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
93
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
94 parser = argparse.ArgumentParser(
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
95 prog=prog_name, description=main.__doc__, formatter_class=MultiArgFormatClasses
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
96 )
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
97
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
98 required = parser.add_argument_group("required arguments")
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
99
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
100 required.add_argument(
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
101 "-org",
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
102 dest="organism",
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
103 required=True,
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
104 help="The organism name to download the MLST alleles'\nFASTA and profile CSV for."
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
105 + "\nEx: -org salmonella",
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
106 )
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
107 parser.add_argument(
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
108 "-f",
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
109 dest="overwrite",
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
110 default=False,
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
111 required=False,
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
112 action="store_true",
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
113 help="Force overwrite the results directory\nmentioned with -out.",
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
114 )
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
115 parser.add_argument(
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
116 "-out",
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
117 dest="outdir",
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
118 default=os.getcwd(),
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
119 required=False,
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
120 help="The absolute UNIX path to store the MLST alleles'\nFASTA and profile CSV.\n",
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
121 )
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
122 parser.add_argument(
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
123 "-mlsts",
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
124 dest="schemes",
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
125 default="schemes/2",
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
126 required=False,
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
127 help="The MLST scheme ID to download.",
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
128 )
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
129 parser.add_argument(
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
130 "-profile",
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
131 dest="profile",
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
132 default="profiles_csv",
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
133 required=False,
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
134 help="The MLST profile name in the scheme.",
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
135 )
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
136 parser.add_argument(
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
137 "-loci",
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
138 dest="loci",
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
139 default="loci",
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
140 required=False,
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
141 help="The key name in the JSON response which lists the\nallele URLs to download.",
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
142 )
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
143 parser.add_argument(
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
144 "-suffix",
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
145 dest="asuffix",
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
146 default=".tfa",
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
147 required=False,
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
148 help="What should be the suffix of the downloaded allele\nFASTA.",
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
149 )
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
150 parser.add_argument(
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
151 "-akey",
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
152 dest="allele_fa_key",
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
153 default="alleles_fasta",
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
154 required=False,
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
155 help="What is the key in the JSON response that contains\nthe URL for allele FASTA.",
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
156 )
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
157 parser.add_argument(
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
158 "-id",
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
159 dest="id_key",
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
160 default="id",
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
161 required=False,
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
162 help="What is the key in the JSON response that contains\nthe name of the allele FASTA.",
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
163 )
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
164
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
165 args = parser.parse_args()
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
166 org = args.organism
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
167 outdir = os.path.join(args.outdir, org)
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
168 overwrite = args.overwrite
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
169 pubmlst_loc = "_".join(["https://rest.pubmlst.org/db/pubmlst", org, "seqdef"])
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
170 schemes = args.schemes
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
171 profile = args.profile
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
172 loci = args.loci
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
173 suffix = args.asuffix
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
174 allele_fa_key = args.allele_fa_key
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
175 id_key = args.id_key
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
176
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
177 if not overwrite and os.path.exists(outdir):
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
178 logging.error(
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
179 f"Output directory\n{os.path.basename(outdir)}\nexists. Please use -f to overwrite."
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
180 )
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
181 exit(1)
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
182 elif overwrite and os.path.exists(outdir):
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
183 shutil.rmtree(outdir, ignore_errors=True)
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
184
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
185 # Create required output directory.
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
186 os.makedirs(outdir)
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
187
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
188 # Query MLST scheme for an organism.
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
189 pubmlst_json = dl_pubmlst(
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
190 path=outdir,
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
191 url="/".join([pubmlst_loc, schemes]),
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
192 suffix=suffix,
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
193 parent=True,
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
194 filename=False,
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
195 expectjson=True,
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
196 )
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
197
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
198 # Save profile_csv as organism.txt.
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
199 if profile in pubmlst_json.keys():
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
200 dl_pubmlst(
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
201 path=outdir,
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
202 url=pubmlst_json[profile],
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
203 suffix=".txt",
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
204 parent=False,
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
205 filename=org,
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
206 expectjson=False,
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
207 )
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
208
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
209 # Save MLST alleles' FASTA
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
210 if loci in pubmlst_json.keys():
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
211 for allele in pubmlst_json[loci]:
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
212 allele_fa_json = dl_pubmlst(
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
213 path=outdir,
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
214 url=allele,
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
215 suffix=suffix,
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
216 parent=True,
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
217 filename=False,
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
218 expectJson=True,
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
219 )
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
220
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
221 dl_pubmlst(
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
222 path=outdir,
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
223 url=allele_fa_json[allele_fa_key],
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
224 suffix=suffix,
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
225 parent=False,
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
226 filename=allele_fa_json[id_key],
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
227 expectJson=False,
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
228 )
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
229
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
230 logging.info(f"Finished downloading MLST scheme and profile for {org}.")
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
231
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
232
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
233 if __name__ == "__main__":
801b85b03a17 planemo upload
galaxytrakr
parents:
diff changeset
234 main()