Mercurial > repos > pimarin > data_manager_amrfinderplus
comparison data_manager/data_manager_amrfinderplus.py @ 1:254479b50f86 draft
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_amrfinderplus commit 25a0413337c540dc9f26bc7ee097d493f0d148ca-dirty
author | pimarin |
---|---|
date | Mon, 14 Nov 2022 13:40:22 +0000 |
parents | 8e1bbef44e19 |
children |
comparison
equal
deleted
inserted
replaced
0:8e1bbef44e19 | 1:254479b50f86 |
---|---|
1 import argparse | 1 import argparse |
2 import json | 2 import json |
3 import os | 3 import os |
4 import re | 4 import re |
5 import subprocess as sp | |
6 | |
5 from datetime import datetime | 7 from datetime import datetime |
6 from pathlib import Path | 8 from pathlib import Path |
7 import subprocess as sp | |
8 | 9 |
9 | 10 |
10 class GetDataManager: | 11 class GetDataManager: |
11 | 12 |
12 def __init__(self): | 13 def __init__(self): |
34 name=amrfinderplus_version, | 35 name=amrfinderplus_version, |
35 path=self._db_name) | 36 path=self._db_name) |
36 self.amrfinderplus_table_list["data_tables"][self.data_table_name] = [data_info] | 37 self.amrfinderplus_table_list["data_tables"][self.data_table_name] = [data_info] |
37 return self.amrfinderplus_table_list | 38 return self.amrfinderplus_table_list |
38 | 39 |
39 def update_amrfinderplus_db(self, path): | 40 def update_amrfinderplus_db(self): |
40 amrfinderplus_db_path = path.joinpath(self._db_name) | 41 amrfinderplus_db_path = Path(self._db_path).joinpath(self._db_name) |
41 cmd = [ | 42 cmd = [ |
42 'amrfinder_update', | 43 'amrfinder_update', |
43 '--database', str(amrfinderplus_db_path), | 44 '--database', str(amrfinderplus_db_path), |
44 '--force_update' | 45 '--force_update' |
45 ] | 46 ] |
46 print('cmd=%s', cmd) | 47 print(cmd) |
47 proc = sp.run( | 48 proc = sp.run( |
48 cmd, | 49 cmd, |
49 stdout=sp.PIPE, | 50 stdout=sp.PIPE, |
50 stderr=sp.PIPE, | 51 stderr=sp.PIPE, |
51 universal_newlines=True | 52 universal_newlines=True |
52 ) | 53 ) |
53 if(proc.returncode != 0): | 54 if (proc.returncode != 0): |
54 print(f"ERROR: AMRFinderPlus failed! command: 'amrfinder_update --force_update --database {amrfinderplus_db_path}', error code: {proc.returncode}") | 55 print( |
56 f"ERROR: AMRFinderPlus failed! command: 'amrfinder_update --force_update --database {amrfinderplus_db_path}', error code: {proc.returncode}") | |
55 else: | 57 else: |
56 return amrfinderplus_db_path | 58 return amrfinderplus_db_path |
57 | 59 |
58 def get_amrfinderplus_version(self, amrfinderplus_path): | 60 def get_amrfinderplus_version(self, amrfinderplus_path): |
59 version_file = Path(f'{amrfinderplus_path}/latest/version.txt') | 61 version_file = Path(f'{amrfinderplus_path}/latest/version.txt') |
73 def read_json_input_file(self, json_file_path): | 75 def read_json_input_file(self, json_file_path): |
74 with open(json_file_path) as fh: | 76 with open(json_file_path) as fh: |
75 params = json.load(fh) | 77 params = json.load(fh) |
76 target_dir = params['output_data'][0]['extra_files_path'] | 78 target_dir = params['output_data'][0]['extra_files_path'] |
77 os.makedirs(target_dir) | 79 os.makedirs(target_dir) |
78 return target_dir | 80 return Path(target_dir) |
79 | 81 |
80 def write_json_infos(self, json_file_path, data_manager_infos): | 82 def write_json_infos(self, json_file_path, data_manager_infos): |
81 with open(json_file_path, 'w') as fh: | 83 with open(json_file_path, 'w') as fh: |
82 json.dump(data_manager_infos, fh, sort_keys=True) | 84 json.dump(data_manager_infos, fh, sort_keys=True) |
83 | 85 |
90 # read the json input from galaxy to define the db path | 92 # read the json input from galaxy to define the db path |
91 path_to_download = amrfinderplus_download.read_json_input_file(json_file_path=all_args.data_manager_json) | 93 path_to_download = amrfinderplus_download.read_json_input_file(json_file_path=all_args.data_manager_json) |
92 # change the path to th json information | 94 # change the path to th json information |
93 amrfinderplus_download._db_path = path_to_download | 95 amrfinderplus_download._db_path = path_to_download |
94 # download the last amrfinderplus database | 96 # download the last amrfinderplus database |
95 amrfinder_output = amrfinderplus_download.update_amrfinderplus_db(amrfinderplus_download._db_path) | 97 amrfinder_output = amrfinderplus_download.update_amrfinderplus_db() |
96 # extract the version number of the database | 98 # extract the version number of the database |
97 amrfinder_version = amrfinderplus_download.get_amrfinderplus_version(amrfinder_output) | 99 amrfinder_version = amrfinderplus_download.get_amrfinderplus_version(amrfinder_output) |
98 # make a dic with database information | 100 # make a dic with database information |
99 amrfinderplus_json_output = amrfinderplus_download.get_data_manager(amrfinder_version) | 101 amrfinderplus_json_output = amrfinderplus_download.get_data_manager(amrfinder_version) |
100 amrfinderplus_download.write_json_infos(json_file_path=all_args.data_manager_json, | 102 amrfinderplus_download.write_json_infos(json_file_path=all_args.data_manager_json, |