# HG changeset patch # User pimarin # Date 1668435722 0 # Node ID f1ec3a39ffec7754aa83750fbee241f4f5c02323 # Parent 254479b50f86ff0cc3e35de65e9124b663eb8662 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_amrfinderplus commit 25a0413337c540dc9f26bc7ee097d493f0d148ca-dirty diff -r 254479b50f86 -r f1ec3a39ffec data_manager/amrfinderplus_data_manager.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/data_manager/amrfinderplus_data_manager.py Mon Nov 14 14:22:02 2022 +0000 @@ -0,0 +1,107 @@ +import argparse +import json +import os +import re +import subprocess as sp + +from datetime import datetime +from pathlib import Path + + +class GetDataManager: + + def __init__(self): + self.data_table_name = "amrfinderplus_database" + self._db_name = "amrfinderplus-db" + self._db_path = Path().absolute() + self._today = datetime.now().strftime("%Y-%m-%d_%H:%M") + + def get_data_table_format(self): + """ + Skeleton of a data_table format + return: a data table formatted for json output + """ + self.data_table_entry = { + "data_tables": { + self.data_table_name: {} + } + } + return self.data_table_entry + + def get_data_manager(self, amrfinderplus_version): + self.amrfinderplus_table_list = self.get_data_table_format() + + data_info = dict(value=self._today, + name=amrfinderplus_version, + path=self._db_name) + self.amrfinderplus_table_list["data_tables"][self.data_table_name] = [data_info] + return self.amrfinderplus_table_list + + def update_amrfinderplus_db(self): + amrfinderplus_db_path = Path(self._db_path).joinpath(self._db_name) + cmd = [ + 'amrfinder_update', + '--database', str(amrfinderplus_db_path), + '--force_update' + ] + print(cmd) + proc = sp.run( + cmd, + stdout=sp.PIPE, + stderr=sp.PIPE, + universal_newlines=True + ) + if (proc.returncode != 0): + print( + f"ERROR: AMRFinderPlus failed! command: 'amrfinder_update --force_update --database {amrfinderplus_db_path}', error code: {proc.returncode}") + else: + return amrfinderplus_db_path + + def get_amrfinderplus_version(self, amrfinderplus_path): + version_file = Path(f'{amrfinderplus_path}/latest/version.txt') + with open(version_file, "r") as version: + version_value = version.read() + version_value = re.sub("\n", "", version_value) + return version_value + + def parse_arguments(self): + # parse options and arguments + arg_parser = argparse.ArgumentParser() + arg_parser.add_argument("data_manager_json") + arg_parser.add_argument("-t", "--test", action='store_true', + help="option to test the script with an lighted database") + return arg_parser.parse_args() + + def read_json_input_file(self, json_file_path): + with open(json_file_path) as fh: + params = json.load(fh) + target_dir = params['output_data'][0]['extra_files_path'] + os.makedirs(target_dir) + return Path(target_dir) + + def write_json_infos(self, json_file_path, data_manager_infos): + with open(json_file_path, 'w') as fh: + json.dump(data_manager_infos, fh, sort_keys=True) + + +def main(): + # init the class + amrfinderplus_download = GetDataManager() + # import the arguments + all_args = amrfinderplus_download.parse_arguments() + # read the json input from galaxy to define the db path + path_to_download = amrfinderplus_download.read_json_input_file(json_file_path=all_args.data_manager_json) + # change the path to th json information + amrfinderplus_download._db_path = path_to_download + # download the last amrfinderplus database + amrfinder_output = amrfinderplus_download.update_amrfinderplus_db() + # extract the version number of the database + amrfinder_version = amrfinderplus_download.get_amrfinderplus_version(amrfinder_output) + # make a dic with database information + amrfinderplus_json_output = amrfinderplus_download.get_data_manager(amrfinder_version) + amrfinderplus_download.write_json_infos(json_file_path=all_args.data_manager_json, + data_manager_infos=amrfinderplus_json_output) + + +if __name__ == '__main__': + main() diff -r 254479b50f86 -r f1ec3a39ffec data_manager/amrfinderplus_data_manager.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/data_manager/amrfinderplus_data_manager.xml Mon Nov 14 14:22:02 2022 +0000 @@ -0,0 +1,32 @@ + + AMRfinderplus database builder + + macro.xml + + + + + + + + + + + + + + + + + + + + + 10.1038/s41598-021-91456-0 + + diff -r 254479b50f86 -r f1ec3a39ffec data_manager/data_manager_amrfinderplus.py --- a/data_manager/data_manager_amrfinderplus.py Mon Nov 14 13:40:22 2022 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,107 +0,0 @@ -import argparse -import json -import os -import re -import subprocess as sp - -from datetime import datetime -from pathlib import Path - - -class GetDataManager: - - def __init__(self): - self.data_table_name = "amrfinderplus_database" - self._db_name = "amrfinderplus-db" - self._db_path = Path().absolute() - self._today = datetime.now().strftime("%Y-%m-%d_%H:%M") - - def get_data_table_format(self): - """ - Skeleton of a data_table format - return: a data table formatted for json output - """ - self.data_table_entry = { - "data_tables": { - self.data_table_name: {} - } - } - return self.data_table_entry - - def get_data_manager(self, amrfinderplus_version): - self.amrfinderplus_table_list = self.get_data_table_format() - - data_info = dict(value=self._today, - name=amrfinderplus_version, - path=self._db_name) - self.amrfinderplus_table_list["data_tables"][self.data_table_name] = [data_info] - return self.amrfinderplus_table_list - - def update_amrfinderplus_db(self): - amrfinderplus_db_path = Path(self._db_path).joinpath(self._db_name) - cmd = [ - 'amrfinder_update', - '--database', str(amrfinderplus_db_path), - '--force_update' - ] - print(cmd) - proc = sp.run( - cmd, - stdout=sp.PIPE, - stderr=sp.PIPE, - universal_newlines=True - ) - if (proc.returncode != 0): - print( - f"ERROR: AMRFinderPlus failed! command: 'amrfinder_update --force_update --database {amrfinderplus_db_path}', error code: {proc.returncode}") - else: - return amrfinderplus_db_path - - def get_amrfinderplus_version(self, amrfinderplus_path): - version_file = Path(f'{amrfinderplus_path}/latest/version.txt') - with open(version_file, "r") as version: - version_value = version.read() - version_value = re.sub("\n", "", version_value) - return version_value - - def parse_arguments(self): - # parse options and arguments - arg_parser = argparse.ArgumentParser() - arg_parser.add_argument("data_manager_json") - arg_parser.add_argument("-t", "--test", action='store_true', - help="option to test the script with an lighted database") - return arg_parser.parse_args() - - def read_json_input_file(self, json_file_path): - with open(json_file_path) as fh: - params = json.load(fh) - target_dir = params['output_data'][0]['extra_files_path'] - os.makedirs(target_dir) - return Path(target_dir) - - def write_json_infos(self, json_file_path, data_manager_infos): - with open(json_file_path, 'w') as fh: - json.dump(data_manager_infos, fh, sort_keys=True) - - -def main(): - # init the class - amrfinderplus_download = GetDataManager() - # import the arguments - all_args = amrfinderplus_download.parse_arguments() - # read the json input from galaxy to define the db path - path_to_download = amrfinderplus_download.read_json_input_file(json_file_path=all_args.data_manager_json) - # change the path to th json information - amrfinderplus_download._db_path = path_to_download - # download the last amrfinderplus database - amrfinder_output = amrfinderplus_download.update_amrfinderplus_db() - # extract the version number of the database - amrfinder_version = amrfinderplus_download.get_amrfinderplus_version(amrfinder_output) - # make a dic with database information - amrfinderplus_json_output = amrfinderplus_download.get_data_manager(amrfinder_version) - amrfinderplus_download.write_json_infos(json_file_path=all_args.data_manager_json, - data_manager_infos=amrfinderplus_json_output) - - -if __name__ == '__main__': - main() diff -r 254479b50f86 -r f1ec3a39ffec data_manager/data_manager_amrfinderplus.xml --- a/data_manager/data_manager_amrfinderplus.xml Mon Nov 14 13:40:22 2022 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,32 +0,0 @@ - - AMRfinderplus database builder - - macro.xml - - - - - - - - - - - - - - - - - - - - - 10.1038/s41598-021-91456-0 - - \ No newline at end of file diff -r 254479b50f86 -r f1ec3a39ffec data_manager_conf.xml --- a/data_manager_conf.xml Mon Nov 14 13:40:22 2022 +0000 +++ b/data_manager_conf.xml Mon Nov 14 14:22:02 2022 +0000 @@ -1,6 +1,6 @@ - + @@ -16,4 +16,4 @@ - \ No newline at end of file +