Mercurial > repos > pimarin > data_manager_bakta
annotate data_manager/bakta_build_database.py @ 25:9adbf01a8929 draft
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_bakta_database commit ed22b0f3b7b651e240154a08c9313585def1cfe5
author | pimarin |
---|---|
date | Mon, 13 Feb 2023 11:36:50 +0000 |
parents | 9d4bc7853eca |
children | 0408796bce2a |
rev | line source |
---|---|
1
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
1 import argparse |
0
9d08486abf8e
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 5f320f165a7f454193df36cc2ec77a87d50ec80f-dirty"
pimarin
parents:
diff
changeset
|
2 import hashlib |
9d08486abf8e
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 5f320f165a7f454193df36cc2ec77a87d50ec80f-dirty"
pimarin
parents:
diff
changeset
|
3 import json |
9d08486abf8e
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 5f320f165a7f454193df36cc2ec77a87d50ec80f-dirty"
pimarin
parents:
diff
changeset
|
4 import os |
9d08486abf8e
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 5f320f165a7f454193df36cc2ec77a87d50ec80f-dirty"
pimarin
parents:
diff
changeset
|
5 import sys |
9d08486abf8e
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 5f320f165a7f454193df36cc2ec77a87d50ec80f-dirty"
pimarin
parents:
diff
changeset
|
6 import tarfile |
1
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
7 from datetime import datetime |
0
9d08486abf8e
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 5f320f165a7f454193df36cc2ec77a87d50ec80f-dirty"
pimarin
parents:
diff
changeset
|
8 from pathlib import Path |
19
c90380f8bbbc
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_bakta_database commit 8eb28a93e6f2688bb2f3f85aea0389e1b1148816-dirty
pimarin
parents:
18
diff
changeset
|
9 |
17
ecb7d3d41366
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit e7c35e529ae95a2c9f2ecd87a3716e6866feabfa-dirty
pimarin
parents:
16
diff
changeset
|
10 |
1
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
11 import requests |
16
718080c30a76
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit e7c35e529ae95a2c9f2ecd87a3716e6866feabfa
pimarin
parents:
15
diff
changeset
|
12 |
718080c30a76
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit e7c35e529ae95a2c9f2ecd87a3716e6866feabfa
pimarin
parents:
15
diff
changeset
|
13 |
1
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
14 class GetBaktaDatabaseInfo: |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
15 """ |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
16 Extract bakta database information to make a json file for data_manager |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
17 """ |
0
9d08486abf8e
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 5f320f165a7f454193df36cc2ec77a87d50ec80f-dirty"
pimarin
parents:
diff
changeset
|
18 |
1
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
19 def __init__(self, |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
20 data_table_name="bakta_database", |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
21 db_name=Path.cwd().joinpath("db"), |
19
c90380f8bbbc
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_bakta_database commit 8eb28a93e6f2688bb2f3f85aea0389e1b1148816-dirty
pimarin
parents:
18
diff
changeset
|
22 db_version="latest", |
c90380f8bbbc
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_bakta_database commit 8eb28a93e6f2688bb2f3f85aea0389e1b1148816-dirty
pimarin
parents:
18
diff
changeset
|
23 test_mode=False): |
1
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
24 self.bakta_table_list = None |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
25 self.db_url = None |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
26 self.data_table_entry = None |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
27 self.data_table_name = data_table_name |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
28 self.db_name = db_name |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
29 self.db_version = db_version |
11
c50e8b4f74d7
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 572bbceeba9a22cdb591d526abda362595f8f0c4
pimarin
parents:
10
diff
changeset
|
30 self.DB_VERSIONS_URL = 'https://raw.githubusercontent.com/oschwengers/bakta/master/db-versions.json' |
19
c90380f8bbbc
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_bakta_database commit 8eb28a93e6f2688bb2f3f85aea0389e1b1148816-dirty
pimarin
parents:
18
diff
changeset
|
31 self.DB_TEST_URL = 'https://zenodo.org/record/7360542/files/db-versions.json' |
c90380f8bbbc
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_bakta_database commit 8eb28a93e6f2688bb2f3f85aea0389e1b1148816-dirty
pimarin
parents:
18
diff
changeset
|
32 self.test_mode = test_mode |
0
9d08486abf8e
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 5f320f165a7f454193df36cc2ec77a87d50ec80f-dirty"
pimarin
parents:
diff
changeset
|
33 |
1
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
34 def get_data_table_format(self): |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
35 """ |
18
04bee0f935a2
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 476cb50265f7dcb492fa2d0f03f595b1363faf7a
pimarin
parents:
17
diff
changeset
|
36 Skeleton of a data_table format |
04bee0f935a2
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 476cb50265f7dcb492fa2d0f03f595b1363faf7a
pimarin
parents:
17
diff
changeset
|
37 return: a data table formated for json output |
1
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
38 """ |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
39 self.data_table_entry = { |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
40 "data_tables": { |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
41 self.data_table_name: {} |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
42 } |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
43 } |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
44 return self.data_table_entry |
0
9d08486abf8e
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 5f320f165a7f454193df36cc2ec77a87d50ec80f-dirty"
pimarin
parents:
diff
changeset
|
45 |
1
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
46 def fetch_db_versions(self, db_version="latest"): |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
47 """ |
19
c90380f8bbbc
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_bakta_database commit 8eb28a93e6f2688bb2f3f85aea0389e1b1148816-dirty
pimarin
parents:
18
diff
changeset
|
48 List bakta database info related to the db_version selected |
1
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
49 """ |
19
c90380f8bbbc
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_bakta_database commit 8eb28a93e6f2688bb2f3f85aea0389e1b1148816-dirty
pimarin
parents:
18
diff
changeset
|
50 if self.test_mode is True: |
c90380f8bbbc
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_bakta_database commit 8eb28a93e6f2688bb2f3f85aea0389e1b1148816-dirty
pimarin
parents:
18
diff
changeset
|
51 self.DB_VERSIONS_URL = self.DB_TEST_URL |
1
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
52 try: |
11
c50e8b4f74d7
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 572bbceeba9a22cdb591d526abda362595f8f0c4
pimarin
parents:
10
diff
changeset
|
53 with requests.get(self.DB_VERSIONS_URL) as resp: |
1
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
54 versions = json.loads(resp.content) |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
55 except IOError as e: |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
56 print(e, file=sys.stderr) |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
57 raise e |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
58 else: |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
59 if db_version == "latest": |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
60 db_date_list = [] |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
61 for db_dic in versions: |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
62 db_date_list.append(datetime.strptime(db_dic["date"], |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
63 '%Y-%m-%d').date()) |
18
04bee0f935a2
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 476cb50265f7dcb492fa2d0f03f595b1363faf7a
pimarin
parents:
17
diff
changeset
|
64 filtered_version = max(versions, key=lambda x: x['date']) |
1
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
65 else: |
18
04bee0f935a2
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 476cb50265f7dcb492fa2d0f03f595b1363faf7a
pimarin
parents:
17
diff
changeset
|
66 filtered_version = None |
04bee0f935a2
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 476cb50265f7dcb492fa2d0f03f595b1363faf7a
pimarin
parents:
17
diff
changeset
|
67 for item in versions: |
04bee0f935a2
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 476cb50265f7dcb492fa2d0f03f595b1363faf7a
pimarin
parents:
17
diff
changeset
|
68 if '{0}.{1}'.format(item["major"], item["minor"]) == db_version: |
04bee0f935a2
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 476cb50265f7dcb492fa2d0f03f595b1363faf7a
pimarin
parents:
17
diff
changeset
|
69 filtered_version = item |
04bee0f935a2
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 476cb50265f7dcb492fa2d0f03f595b1363faf7a
pimarin
parents:
17
diff
changeset
|
70 break |
04bee0f935a2
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 476cb50265f7dcb492fa2d0f03f595b1363faf7a
pimarin
parents:
17
diff
changeset
|
71 if filtered_version is None: |
04bee0f935a2
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 476cb50265f7dcb492fa2d0f03f595b1363faf7a
pimarin
parents:
17
diff
changeset
|
72 print("No matching version detected in the list") |
1
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
73 if filtered_version is not None: |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
74 self.db_url = f"https://zenodo.org/record/" \ |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
75 f"{filtered_version['record']}/files/db.tar.gz" |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
76 self.db_version = db_version |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
77 return filtered_version |
0
9d08486abf8e
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 5f320f165a7f454193df36cc2ec77a87d50ec80f-dirty"
pimarin
parents:
diff
changeset
|
78 |
19
c90380f8bbbc
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_bakta_database commit 8eb28a93e6f2688bb2f3f85aea0389e1b1148816-dirty
pimarin
parents:
18
diff
changeset
|
79 def get_data_manager(self, bakta_database_info): |
1
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
80 self.bakta_table_list = self.get_data_table_format() |
25
9adbf01a8929
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_bakta_database commit ed22b0f3b7b651e240154a08c9313585def1cfe5
pimarin
parents:
24
diff
changeset
|
81 bakta_value = f"V{bakta_database_info['major']}." \ |
9adbf01a8929
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_bakta_database commit ed22b0f3b7b651e240154a08c9313585def1cfe5
pimarin
parents:
24
diff
changeset
|
82 f"{bakta_database_info['minor']}_" \ |
9adbf01a8929
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_bakta_database commit ed22b0f3b7b651e240154a08c9313585def1cfe5
pimarin
parents:
24
diff
changeset
|
83 f"{bakta_database_info['date']}" |
16
718080c30a76
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit e7c35e529ae95a2c9f2ecd87a3716e6866feabfa
pimarin
parents:
15
diff
changeset
|
84 tool_version = str(f"{bakta_database_info['software-min']['major']}." |
718080c30a76
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit e7c35e529ae95a2c9f2ecd87a3716e6866feabfa
pimarin
parents:
15
diff
changeset
|
85 f"{bakta_database_info['software-min']['minor']}") |
25
9adbf01a8929
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_bakta_database commit ed22b0f3b7b651e240154a08c9313585def1cfe5
pimarin
parents:
24
diff
changeset
|
86 data_info = dict(value=bakta_database_info['record'], |
9adbf01a8929
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_bakta_database commit ed22b0f3b7b651e240154a08c9313585def1cfe5
pimarin
parents:
24
diff
changeset
|
87 dbkey=bakta_value, |
16
718080c30a76
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit e7c35e529ae95a2c9f2ecd87a3716e6866feabfa
pimarin
parents:
15
diff
changeset
|
88 bakta_version=tool_version, |
718080c30a76
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit e7c35e529ae95a2c9f2ecd87a3716e6866feabfa
pimarin
parents:
15
diff
changeset
|
89 path="db") |
718080c30a76
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit e7c35e529ae95a2c9f2ecd87a3716e6866feabfa
pimarin
parents:
15
diff
changeset
|
90 self.bakta_table_list["data_tables"][self.data_table_name] = [data_info] |
1
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
91 return self.bakta_table_list |
0
9d08486abf8e
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 5f320f165a7f454193df36cc2ec77a87d50ec80f-dirty"
pimarin
parents:
diff
changeset
|
92 |
9d08486abf8e
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 5f320f165a7f454193df36cc2ec77a87d50ec80f-dirty"
pimarin
parents:
diff
changeset
|
93 |
1
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
94 class InstallBaktaDatabase(GetBaktaDatabaseInfo): |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
95 """ |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
96 Download the bakta database, |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
97 check md5 sum, |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
98 untar the download db and update for the amrfinderplus database |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
99 """ |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
100 |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
101 def __init__(self, |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
102 db_dir=Path.cwd(), |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
103 db_name="bakta", |
19
c90380f8bbbc
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_bakta_database commit 8eb28a93e6f2688bb2f3f85aea0389e1b1148816-dirty
pimarin
parents:
18
diff
changeset
|
104 tarball_name="db.tar.gz", |
c90380f8bbbc
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_bakta_database commit 8eb28a93e6f2688bb2f3f85aea0389e1b1148816-dirty
pimarin
parents:
18
diff
changeset
|
105 test_mode=False): |
1
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
106 super().__init__() |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
107 self.md5 = None |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
108 self.db_dir = db_dir |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
109 self.db_name = db_name |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
110 self.tarball_name = tarball_name |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
111 self.tarball_path = None |
19
c90380f8bbbc
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_bakta_database commit 8eb28a93e6f2688bb2f3f85aea0389e1b1148816-dirty
pimarin
parents:
18
diff
changeset
|
112 self.test_mode = test_mode |
1
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
113 |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
114 def download(self): |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
115 self.db_name = f'{self.db_name}_{self.db_version}' |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
116 bakta_path = Path(self.db_dir).joinpath(self.tarball_name) |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
117 try: |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
118 with bakta_path.open('wb') as fh_out, \ |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
119 requests.get(self.db_url, stream=True) as resp: |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
120 total_length = resp.headers.get('content-length') |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
121 if total_length is None: # no content length header |
15
ac4d5e1d1421
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit b082e89a0090f9c4b2a257bb06b7c6f141b42650-dirty
pimarin
parents:
14
diff
changeset
|
122 for data in resp.iter_content(chunk_size=1024 * 1024): |
ac4d5e1d1421
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit b082e89a0090f9c4b2a257bb06b7c6f141b42650-dirty
pimarin
parents:
14
diff
changeset
|
123 fh_out.write(data) |
1
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
124 else: |
15
ac4d5e1d1421
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit b082e89a0090f9c4b2a257bb06b7c6f141b42650-dirty
pimarin
parents:
14
diff
changeset
|
125 for data in resp.iter_content(chunk_size=1024 * 1024): |
ac4d5e1d1421
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit b082e89a0090f9c4b2a257bb06b7c6f141b42650-dirty
pimarin
parents:
14
diff
changeset
|
126 fh_out.write(data) |
1
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
127 print(f'Download bakta database {self.db_version}') |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
128 self.tarball_path = bakta_path |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
129 except IOError: |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
130 print(f'ERROR: Could not download file from Zenodo!' |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
131 f' url={self.db_url}, path={self.tarball_name}') |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
132 |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
133 def untar(self): |
16
718080c30a76
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit e7c35e529ae95a2c9f2ecd87a3716e6866feabfa
pimarin
parents:
15
diff
changeset
|
134 db_path = Path(self.db_dir).as_posix() |
1
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
135 try: |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
136 with self.tarball_path.open('rb') as fh_in, \ |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
137 tarfile.open(fileobj=fh_in, mode='r:gz') as tar_file: |
16
718080c30a76
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit e7c35e529ae95a2c9f2ecd87a3716e6866feabfa
pimarin
parents:
15
diff
changeset
|
138 tar_file.extractall(path=db_path) |
1
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
139 print(f'Untar the database in {db_path}') |
16
718080c30a76
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit e7c35e529ae95a2c9f2ecd87a3716e6866feabfa
pimarin
parents:
15
diff
changeset
|
140 return db_path |
1
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
141 except OSError: |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
142 sys.exit(f'ERROR: Could not extract {self.tarball_name} ' |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
143 f'to {self.db_name}') |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
144 |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
145 def calc_md5_sum(self, buffer_size=1048576): |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
146 tarball_path = Path(self.db_dir).joinpath(self.tarball_name) |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
147 self.md5 = self.fetch_db_versions(db_version=self.db_version)["md5"] |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
148 md5 = hashlib.md5() |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
149 with tarball_path.open('rb') as fh: |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
150 data = fh.read(buffer_size) |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
151 while data: |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
152 md5.update(data) |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
153 data = fh.read(buffer_size) |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
154 if md5.hexdigest() == self.md5: |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
155 print('\t...md5 control database OK') |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
156 else: |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
157 print(f"Error: corrupt database file! " |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
158 f"calculated md5 = {md5.hexdigest()}" |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
159 f" different from {self.md5} ") |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
160 |
16
718080c30a76
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit e7c35e529ae95a2c9f2ecd87a3716e6866feabfa
pimarin
parents:
15
diff
changeset
|
161 |
718080c30a76
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit e7c35e529ae95a2c9f2ecd87a3716e6866feabfa
pimarin
parents:
15
diff
changeset
|
162 """ |
718080c30a76
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit e7c35e529ae95a2c9f2ecd87a3716e6866feabfa
pimarin
parents:
15
diff
changeset
|
163 This is the method to download the amrfinderplus database need by bakta. |
718080c30a76
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit e7c35e529ae95a2c9f2ecd87a3716e6866feabfa
pimarin
parents:
15
diff
changeset
|
164 Deprecated to use the amrfinderplus data_manager |
1
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
165 def update_amrfinderplus_db(self): |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
166 amrfinderplus_db_path = f"{self.db_dir}/{self.db_name}/db/amrfinderplus-db" |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
167 if self.db_version == "test": |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
168 cmd = [ |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
169 'amrfinder_update', |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
170 '--database', str(amrfinderplus_db_path), |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
171 '--force_update', |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
172 '--help' |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
173 ] |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
174 else: |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
175 cmd = [ |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
176 'amrfinder_update', |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
177 '--database', str(amrfinderplus_db_path), |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
178 '--force_update' |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
179 ] |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
180 proc = sp.run( |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
181 cmd, |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
182 universal_newlines=True |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
183 ) |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
184 if proc.returncode != 0: |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
185 print(f"ERROR: AMRFinderPlus failed! " |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
186 f"command: 'amrfinder_update --force_update" |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
187 f" --database {amrfinderplus_db_path}'") |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
188 else: |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
189 print("AMRFinderPlus database download") |
16
718080c30a76
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit e7c35e529ae95a2c9f2ecd87a3716e6866feabfa
pimarin
parents:
15
diff
changeset
|
190 """ |
0
9d08486abf8e
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 5f320f165a7f454193df36cc2ec77a87d50ec80f-dirty"
pimarin
parents:
diff
changeset
|
191 |
9d08486abf8e
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 5f320f165a7f454193df36cc2ec77a87d50ec80f-dirty"
pimarin
parents:
diff
changeset
|
192 |
1
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
193 def parse_arguments(): |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
194 # parse options and arguments |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
195 arg_parser = argparse.ArgumentParser() |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
196 arg_parser.add_argument("data_manager_json") |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
197 arg_parser.add_argument("-d", "--database_version", |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
198 help='Select the database version ' |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
199 '(major and minor eg. 4.0),' |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
200 'default is the latest version', |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
201 default="latest", |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
202 required=True) |
11
c50e8b4f74d7
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 572bbceeba9a22cdb591d526abda362595f8f0c4
pimarin
parents:
10
diff
changeset
|
203 arg_parser.add_argument("-t", "--test", action='store_true', |
c50e8b4f74d7
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 572bbceeba9a22cdb591d526abda362595f8f0c4
pimarin
parents:
10
diff
changeset
|
204 help="option to test the script with an empty database") |
1
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
205 return arg_parser.parse_args() |
0
9d08486abf8e
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 5f320f165a7f454193df36cc2ec77a87d50ec80f-dirty"
pimarin
parents:
diff
changeset
|
206 |
9d08486abf8e
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 5f320f165a7f454193df36cc2ec77a87d50ec80f-dirty"
pimarin
parents:
diff
changeset
|
207 |
9d08486abf8e
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 5f320f165a7f454193df36cc2ec77a87d50ec80f-dirty"
pimarin
parents:
diff
changeset
|
208 def main(): |
1
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
209 all_args = parse_arguments() |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
210 with open(all_args.data_manager_json) as fh: |
16
718080c30a76
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit e7c35e529ae95a2c9f2ecd87a3716e6866feabfa
pimarin
parents:
15
diff
changeset
|
211 params = json.load(fh) |
718080c30a76
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit e7c35e529ae95a2c9f2ecd87a3716e6866feabfa
pimarin
parents:
15
diff
changeset
|
212 target_dir = params['output_data'][0]['extra_files_path'] |
1
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
213 os.makedirs(target_dir) |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
214 # init the class to download bakta db |
19
c90380f8bbbc
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_bakta_database commit 8eb28a93e6f2688bb2f3f85aea0389e1b1148816-dirty
pimarin
parents:
18
diff
changeset
|
215 bakta_upload = InstallBaktaDatabase(test_mode=all_args.test) |
c90380f8bbbc
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_bakta_database commit 8eb28a93e6f2688bb2f3f85aea0389e1b1148816-dirty
pimarin
parents:
18
diff
changeset
|
216 bakta_db = bakta_upload.fetch_db_versions(db_version=all_args.database_version) |
1
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
217 # update the path for galaxy |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
218 bakta_upload.db_dir = target_dir |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
219 # download the database |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
220 bakta_upload.download() |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
221 # check md5 sum |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
222 bakta_upload.calc_md5_sum() |
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
223 # untar db |
16
718080c30a76
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit e7c35e529ae95a2c9f2ecd87a3716e6866feabfa
pimarin
parents:
15
diff
changeset
|
224 bakta_upload.untar() |
1
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
225 # make the data_manager metadata |
19
c90380f8bbbc
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_bakta_database commit 8eb28a93e6f2688bb2f3f85aea0389e1b1148816-dirty
pimarin
parents:
18
diff
changeset
|
226 bakta_data_manager = bakta_upload.get_data_manager(bakta_database_info=bakta_db) |
1
faae5d8ce0cb
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 4c11a77fb4c0bb74c0c4ae381c85971e01ed973e-dirty
pimarin
parents:
0
diff
changeset
|
227 with open(all_args.data_manager_json, 'w') as fh: |
11
c50e8b4f74d7
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 572bbceeba9a22cdb591d526abda362595f8f0c4
pimarin
parents:
10
diff
changeset
|
228 json.dump(bakta_data_manager, fh, sort_keys=True) |
0
9d08486abf8e
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 5f320f165a7f454193df36cc2ec77a87d50ec80f-dirty"
pimarin
parents:
diff
changeset
|
229 |
9d08486abf8e
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 5f320f165a7f454193df36cc2ec77a87d50ec80f-dirty"
pimarin
parents:
diff
changeset
|
230 |
9d08486abf8e
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 5f320f165a7f454193df36cc2ec77a87d50ec80f-dirty"
pimarin
parents:
diff
changeset
|
231 if __name__ == '__main__': |
9d08486abf8e
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_bakta commit 5f320f165a7f454193df36cc2ec77a87d50ec80f-dirty"
pimarin
parents:
diff
changeset
|
232 main() |