Mercurial > repos > estrain > data_manager_mlst
annotate data_manager/data_manager_mlst.py @ 0:a9ff6184213f draft default tip
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
| author | estrain |
|---|---|
| date | Thu, 12 Mar 2026 20:06:31 +0000 |
| parents | |
| children |
| rev | line source |
|---|---|
|
0
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
1 #!/usr/bin/env python3 |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
2 """ |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
3 Galaxy Data Manager for PubMLST. |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
4 Downloads all PubMLST databases, creates a combined BLAST database, |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
5 and writes a Galaxy-compatible data table JSON. |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
6 """ |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
7 |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
8 import argparse |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
9 import json |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
10 import os |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
11 import shutil |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
12 import subprocess |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
13 import sys |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
14 import datetime |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
15 from urllib.request import urlopen |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
16 |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
17 |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
18 class MLSTDataManager: |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
19 def __init__(self, json_path: str): |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
20 self.json_path = json_path |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
21 self.extra_files_path = None |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
22 self.output_dir = None |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
23 self.timestamp = datetime.datetime.now().strftime("%Y%m%d_%H%M%S") |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
24 self.db_name = f"mlst_database_{self.timestamp}" |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
25 |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
26 # ---------------------------------------------------------------------- |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
27 # Galaxy JSON I/O |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
28 # ---------------------------------------------------------------------- |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
29 |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
30 def read_input_json(self): |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
31 """Read Galaxy input JSON and create the output directory.""" |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
32 with open(self.json_path) as fh: |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
33 params = json.load(fh) |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
34 self.extra_files_path = params["output_data"][0]["extra_files_path"] |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
35 os.makedirs(self.extra_files_path, exist_ok=True) |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
36 self.output_dir = os.path.abspath(self.extra_files_path) |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
37 |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
38 def write_output_json(self): |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
39 """Write the final Galaxy data manager JSON.""" |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
40 entry = { |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
41 "data_tables": { |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
42 "mlst": [ |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
43 { |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
44 "value": self.db_name, |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
45 "name": self.db_name, |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
46 "path": "mlst-db" |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
47 } |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
48 ] |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
49 } |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
50 } |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
51 |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
52 with open(self.json_path, "w") as fh: |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
53 json.dump(entry, fh, indent=2, sort_keys=True) |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
54 fh.flush() |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
55 os.fsync(fh.fileno()) |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
56 |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
57 # ---------------------------------------------------------------------- |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
58 # Database steps |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
59 # ---------------------------------------------------------------------- |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
60 |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
61 def download_pubmlst_databases(self): |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
62 """Download all PubMLST databases.""" |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
63 print("Downloading PubMLST databases...") |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
64 try: |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
65 subprocess.run(["mlst-download_pub_mlst", "-d", "pubmlst"], check=True) |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
66 except subprocess.CalledProcessError as e: |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
67 print(f"Error downloading databases: {e}") |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
68 sys.exit(1) |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
69 |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
70 def make_blast_database(self): |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
71 """Build a BLAST database from the downloaded data.""" |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
72 cwd = os.getcwd() |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
73 src_dir = os.path.join(cwd, "pubmlst") |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
74 dst_dir = os.path.join(self.output_dir, "pubmlst") |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
75 |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
76 if os.path.exists(dst_dir): |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
77 shutil.rmtree(dst_dir) |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
78 shutil.move(src_dir, dst_dir) |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
79 |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
80 blast_dir = os.path.join(self.output_dir, "blast") |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
81 os.makedirs(blast_dir, exist_ok=True) |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
82 blast_file = os.path.join(blast_dir, "mlst.fa") |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
83 |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
84 print("Building combined FASTA for BLAST database...") |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
85 with open(blast_file, "a") as outfile: |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
86 for scheme in os.listdir(dst_dir): |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
87 scheme_path = os.path.join(dst_dir, scheme) |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
88 if os.path.isdir(scheme_path): |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
89 for f in os.listdir(scheme_path): |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
90 if f.endswith(".tfa"): |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
91 with open(os.path.join(scheme_path, f)) as infile: |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
92 for line in infile: |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
93 if "not a locus" not in line: |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
94 if line.startswith(">"): |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
95 outfile.write(f">{scheme}.{line[1:]}") |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
96 else: |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
97 outfile.write(line) |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
98 |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
99 print("Running makeblastdb...") |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
100 subprocess.run([ |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
101 "makeblastdb", "-hash_index", |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
102 "-in", blast_file, "-dbtype", "nucl", |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
103 "-title", "PubMLST", "-parse_seqids" |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
104 ], check=True) |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
105 |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
106 def download_scheme_species_map(self): |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
107 """Fetch the scheme_species_map.tab file from GitHub.""" |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
108 url = "https://raw.githubusercontent.com/tseemann/mlst/master/db/scheme_species_map.tab" |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
109 dst_file = os.path.join(self.output_dir, "scheme_species_map.tab") |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
110 print("Downloading scheme_species_map.tab...") |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
111 try: |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
112 with urlopen(url) as response, open(dst_file, "w") as out: |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
113 out.write(response.read().decode("utf-8")) |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
114 print("scheme_species_map.tab downloaded successfully") |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
115 except Exception as e: |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
116 print(f"Failed to retrieve scheme_species_map.tab: {e}") |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
117 |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
118 # ---------------------------------------------------------------------- |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
119 # Run |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
120 # ---------------------------------------------------------------------- |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
121 |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
122 def run(self): |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
123 try: |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
124 self.read_input_json() |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
125 self.download_pubmlst_databases() |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
126 self.make_blast_database() |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
127 self.download_scheme_species_map() |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
128 except Exception as e: |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
129 print(f"MLST Data Manager failed: {e}") |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
130 finally: |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
131 self.write_output_json() |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
132 |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
133 |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
134 # ---------------------------------------------------------------------- |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
135 # CLI |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
136 # ---------------------------------------------------------------------- |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
137 |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
138 def parse_args(): |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
139 parser = argparse.ArgumentParser(description="Galaxy Data Manager for PubMLST") |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
140 parser.add_argument("data_manager_json", help="Galaxy data manager JSON file") |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
141 return parser.parse_args() |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
142 |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
143 |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
144 def main(): |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
145 args = parse_args() |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
146 mgr = MLSTDataManager(args.data_manager_json) |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
147 mgr.run() |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
148 |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
149 |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
150 if __name__ == "__main__": |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
151 main() |
|
a9ff6184213f
planemo upload commit bdb45cf3a98e21f5002866b6789a1457f521bf5d
estrain
parents:
diff
changeset
|
152 |
