annotate data_manager/data_manager_build_amrfinderplus.py @ 3:dfa1eb2941b0 draft default tip

planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
author iuc
date Sun, 23 Nov 2025 12:21:34 +0000
parents a5921c09b7b7
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
1 import argparse
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
2 import json
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
3 import os
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
4 import subprocess as sp
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
5 from ftplib import FTP
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
6 from io import BytesIO
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
7 from pathlib import Path
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
8
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
9 import pandas as pd
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
10
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
11
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
12 class GetAmrFinderPlusDataManager:
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
13 """
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
14 Create the json file with database information for galaxy data manager
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
15 """
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
16
3
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
17 def __init__(
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
18 self,
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
19 amrfinderplus_database="amrfinderplus_versioned_database",
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
20 db_name="amrfinderplus-db",
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
21 amrfinderplus_version="latest",
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
22 date_version=None,
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
23 ):
0
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
24 self.data_table_name = amrfinderplus_database
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
25 self._db_name = db_name
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
26 self._amrfinderplus_version = amrfinderplus_version
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
27 self._amrfinderplus_date_version = date_version
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
28 self.data_table_entry = None
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
29 self.amrfinderplus_table_list = None
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
30
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
31 def get_data_table_format(self):
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
32 """
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
33 Skeleton of a data_table format
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
34 return: a data table formatted for json output
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
35 """
3
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
36 self.data_table_entry = {"data_tables": {self.data_table_name: {}}}
0
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
37 return self.data_table_entry
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
38
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
39 def get_data_manager(self):
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
40 """
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
41 Create the empty data table format and add all the information into
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
42 return: The data table with database information
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
43 """
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
44 self.amrfinderplus_table_list = self.get_data_table_format()
3
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
45 amrfinderplus_value = (
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
46 f"amrfinderplus_V{self._amrfinderplus_version}"
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
47 f"_{self._amrfinderplus_date_version}"
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
48 )
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
49 amrfinderplus_name = (
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
50 f"V{self._amrfinderplus_version}" f"-{self._amrfinderplus_date_version}"
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
51 )
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
52 data_info = dict(
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
53 value=amrfinderplus_value,
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
54 name=amrfinderplus_name,
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
55 db_version=self._amrfinderplus_version,
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
56 path=self._db_name,
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
57 )
0
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
58 self.amrfinderplus_table_list["data_tables"][self.data_table_name] = [data_info]
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
59 return self.amrfinderplus_table_list
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
60
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
61
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
62 class DownloadAmrFinderPlusDatabase(GetAmrFinderPlusDataManager):
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
63 """
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
64 Download the amrfinderplus database from the ncbi.
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
65 Make the database available with hmm and indexed files
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
66 Build the data manager infos for galaxy
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
67 """
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
68
3
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
69 def __init__(
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
70 self,
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
71 output_dir=Path.cwd(),
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
72 ncbi_url="ftp.ncbi.nlm.nih.gov",
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
73 ftp_login="anonymous",
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
74 ftp_password="anonymous",
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
75 amrfinderplus_database="amrfinderplus_database",
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
76 db_name="amrfinderplus-db",
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
77 amrfinderplus_version="latest",
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
78 json_file_path=None,
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
79 date_version=None,
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
80 amrfinderplus_db_path=None,
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
81 test_mode=False,
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
82 ):
0
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
83
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
84 super().__init__()
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
85 self.json_file_path = json_file_path
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
86 self._output_dir = output_dir
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
87 self._ncbi_ftp_url = ncbi_url
3
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
88 self._ncbi_database_path = (
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
89 "pathogen/Antimicrobial_resistance/AMRFinderPlus/database"
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
90 )
0
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
91 self._login = ftp_login
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
92 self._password = ftp_password
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
93 self._amrfinderplus_database = amrfinderplus_database
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
94 self._db_name = db_name
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
95 self._amrfinderplus_version = amrfinderplus_version
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
96 self._amrfinderplus_date_version = date_version
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
97 self.species_list = None
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
98 self.test_mode = test_mode
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
99 self.amrfinderplus_db_path = amrfinderplus_db_path
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
100
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
101 @staticmethod
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
102 def subprocess_cmd(command, *args):
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
103 """
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
104 Method to call external tools with any parameters
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
105 :param command: command name from the tool used (e.g. wget or makeblastdb)
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
106 :param args: free number of argument need for the command tool (e.g. -r, -P ...)
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
107 :return: launch the command line from the system
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
108 """
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
109 cmd = [command]
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
110 [cmd.append(i) for i in args]
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
111 proc = sp.run(cmd, stdout=sp.PIPE, stderr=sp.PIPE)
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
112 if proc.returncode != 0:
3
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
113 print(f"Error type {proc.returncode} with : \n {proc}")
0
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
114
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
115 def download_amrfinderplus_db(self):
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
116 """
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
117 Download the amrfinderplus database from the ncbi ftp server
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
118 """
3
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
119 self.amrfinderplus_db_path = f"{self._output_dir}/{self._db_name}"
0
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
120 os.makedirs(self.amrfinderplus_db_path)
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
121
3
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
122 if self._amrfinderplus_version == "latest":
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
123 self.get_amrfinderplus_version()
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
124
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
125 amrfinderplus_ftp_path = (
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
126 f"ftp://{self._login}:"
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
127 f"{self._password}@{self._ncbi_ftp_url}/"
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
128 f"{self._ncbi_database_path}/"
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
129 f"{self._amrfinderplus_version}/"
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
130 f"{self._amrfinderplus_date_version}"
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
131 )
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
132
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
133 if self._amrfinderplus_version == "3.12":
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
134 taxa_group_file = "taxgroup.tab"
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
135 test_dna_fasta = "AMR_DNA-Escherichia"
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
136 else:
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
137 taxa_group_file = "taxgroup.tsv"
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
138 test_dna_fasta = "AMR_DNA-Escherichia.fa"
0
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
139 if self.test_mode is True:
3
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
140 file_list = [
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
141 test_dna_fasta,
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
142 "version.txt",
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
143 taxa_group_file,
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
144 "database_format_version.txt",
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
145 ]
0
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
146 output_option = "-O"
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
147 for file in file_list:
3
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
148 self.subprocess_cmd(
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
149 "wget",
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
150 "-nd",
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
151 "-np",
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
152 "-r",
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
153 f"{amrfinderplus_ftp_path}/{file}",
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
154 output_option,
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
155 f"{self.amrfinderplus_db_path}/{file}",
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
156 )
0
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
157 else:
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
158 output_option = "-P"
3
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
159 self.subprocess_cmd(
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
160 "wget",
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
161 "-nd",
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
162 "-np",
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
163 "-r",
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
164 amrfinderplus_ftp_path,
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
165 output_option,
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
166 self.amrfinderplus_db_path,
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
167 )
0
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
168
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
169 def make_hmm_profile(self):
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
170 """
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
171 Make the hmm profile using the AMR.LIB file previously download
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
172 """
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
173 hmm_file = Path(f"{self.amrfinderplus_db_path}/AMR.LIB")
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
174 if Path.exists(hmm_file) and self.test_mode is False:
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
175 self.subprocess_cmd("hmmpress", "-f", hmm_file)
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
176 else:
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
177 print("hmm_file file is missing to make hmm profiles")
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
178
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
179 def extract_filelist_makeblast(self):
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
180 """
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
181 Extract le list of species which have file in the database
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
182 return: a filtered species list of available species in the database
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
183 """
3
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
184 if self._amrfinderplus_version == "3.12":
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
185 taxa_group_file = "taxgroup.tab"
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
186 else:
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
187 taxa_group_file = "taxgroup.tsv"
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
188 taxa_group_path = Path(f"{self.amrfinderplus_db_path}/{taxa_group_file}")
0
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
189 if Path.exists(taxa_group_path):
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
190 taxa_table = pd.read_table(taxa_group_path)
3
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
191 taxa_table.columns = [
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
192 "taxgroup",
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
193 "gpipe_taxgroup",
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
194 "number_of_nucl_ref_genes",
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
195 ]
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
196 taxa_df = taxa_table[taxa_table.number_of_nucl_ref_genes > 0].filter(
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
197 items=["taxgroup"], axis=1
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
198 )
0
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
199 if self.test_mode is True:
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
200 taxa_df = taxa_df[taxa_df.taxgroup == "Escherichia"].taxgroup
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
201 else:
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
202 taxa_df = taxa_df.taxgroup
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
203 self.species_list = list(taxa_df)
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
204 else:
3
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
205 print(f"{taxa_group_file} file is missing to list available species")
0
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
206
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
207 def make_blastdb(self):
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
208 """
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
209 Index fasta file for blast
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
210 """
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
211 self.extract_filelist_makeblast()
3
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
212 if self._amrfinderplus_version == "3.12":
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
213 nucl_file_db_list = [
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
214 f"{self.amrfinderplus_db_path}/AMR_DNA-{specie}"
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
215 for specie in self.species_list
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
216 ]
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
217 amr_dna = f"{self.amrfinderplus_db_path}/AMR_CDS"
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
218 amr_prot = f"{self.amrfinderplus_db_path}/AMRProt"
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
219 else:
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
220 nucl_file_db_list = [
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
221 f"{self.amrfinderplus_db_path}/AMR_DNA-{specie}.fa"
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
222 for specie in self.species_list
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
223 ]
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
224 amr_dna = f"{self.amrfinderplus_db_path}/AMR_CDS.fa"
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
225 amr_prot = f"{self.amrfinderplus_db_path}/AMRProt.fa"
0
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
226 os.chdir(self.amrfinderplus_db_path)
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
227 if Path(amr_dna).exists():
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
228 nucl_file_db_list.append(amr_dna)
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
229 else:
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
230 print("No file AMR_CDS detected for indexing")
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
231 if Path(amr_prot).exists():
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
232 self.subprocess_cmd("makeblastdb", "-in", amr_prot, "-dbtype", "prot")
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
233 else:
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
234 print("No file AMRProt detected for indexing")
3
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
235 [
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
236 self.subprocess_cmd("makeblastdb", "-in", file, "-dbtype", "nucl")
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
237 for file in nucl_file_db_list
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
238 ]
0
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
239
3
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
240 def get_amrfinderplus_version(
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
241 self,
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
242 version_file="version.txt",
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
243 database_version_file="database_format_version.txt",
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
244 ):
0
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
245 """
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
246 Check the version when latest if provided and update the number
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
247 param version_file: name of the file containing version information
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
248 param database_version_file: name of the file containing date version information
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
249 """
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
250 ftp = FTP(self._ncbi_ftp_url)
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
251 ftp.login(self._login, self._password)
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
252 ftp.cwd(f"{self._ncbi_database_path}/{self._amrfinderplus_version}")
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
253 db_version = BytesIO()
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
254 db_date_version = BytesIO()
3
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
255 ftp.retrbinary(f"RETR {version_file}", db_version.write)
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
256 ftp.retrbinary(f"RETR {database_version_file}", db_date_version.write)
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
257 self._amrfinderplus_date_version = (
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
258 db_version.getvalue().decode("utf-8").splitlines()[0]
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
259 )
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
260 self._amrfinderplus_version = ".".join(
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
261 db_date_version.getvalue().decode("utf-8").splitlines()[0].split(".")[:2]
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
262 )
0
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
263
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
264 def read_json_input_file(self):
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
265 """
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
266 Import the json file
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
267 """
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
268 with open(self.json_file_path) as fh:
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
269 params = json.load(fh)
3
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
270 target_dir = params["output_data"][0]["extra_files_path"]
0
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
271 os.makedirs(target_dir)
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
272 self._output_dir = target_dir
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
273
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
274 def write_json_infos(self):
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
275 """
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
276 Write in the imported json file
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
277 """
3
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
278 with open(self.json_file_path, "w") as fh:
0
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
279 json.dump(self.get_data_manager(), fh, sort_keys=True)
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
280
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
281
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
282 def parse_arguments():
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
283 """
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
284 List of arguments provided by the user
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
285 return: parsed arguments
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
286 """
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
287 # parse options and arguments
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
288 arg_parser = argparse.ArgumentParser()
3
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
289 arg_parser.add_argument("data_manager_json", help="json file from galaxy")
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
290 arg_parser.add_argument(
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
291 "--db_version",
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
292 default="latest",
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
293 help="select the major version of the database (e.g. 3.10, 3.8), default is latest",
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
294 )
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
295 arg_parser.add_argument(
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
296 "--db_date",
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
297 help="select the date into the database version (e.g. 2022-10-11.2)",
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
298 )
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
299 arg_parser.add_argument(
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
300 "--test",
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
301 action="store_true",
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
302 help="option to test the script with an lighted database",
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
303 )
0
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
304 return arg_parser.parse_args()
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
305
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
306
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
307 def main():
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
308 all_args = parse_arguments()
3
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
309 amrfinderplus_download = DownloadAmrFinderPlusDatabase(
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
310 amrfinderplus_version=all_args.db_version,
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
311 date_version=all_args.db_date,
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
312 json_file_path=all_args.data_manager_json,
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
313 test_mode=all_args.test,
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
314 )
0
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
315 amrfinderplus_download.read_json_input_file()
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
316 amrfinderplus_download.download_amrfinderplus_db()
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
317 amrfinderplus_download.make_hmm_profile()
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
318 amrfinderplus_download.make_blastdb()
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
319 amrfinderplus_download.write_json_infos()
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
320
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
321
3
dfa1eb2941b0 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_build_amrfinderplus commit 45dbbf06a59df43da2c321c272de11cc41e17d43
iuc
parents: 2
diff changeset
322 if __name__ == "__main__":
0
eea0c38a9afd planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_build_amrfinderplus commit 59077a173599fc9d355a5d36ad7875050dbe3e19
iuc
parents:
diff changeset
323 main()