comparison data_manager/recetox_metabolite_fetcher.py @ 0:953dd78a34d3 draft default tip

"planemo upload commit be4b24b2dacc3f23538068d5a6082bca246f6887"
author recetox
date Tue, 25 Aug 2020 11:15:49 +0000
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:953dd78a34d3
1 import os
2 import errno
3
4 from argparse import ArgumentParser
5 from datetime import datetime
6 from json import dumps, loads
7 from urllib.parse import urlparse
8 from shutil import copy
9
10
11 def main(args):
12 with open(args.data_manager_json, 'r') as json_in:
13 data_manager_input = loads(json_in.read())
14 target_directory = data_manager_input['output_data'][0]['extra_files_path']
15
16 try:
17 os.mkdir(target_directory)
18 except OSError as exc:
19 if exc.errno == errno.EEXIST and os.path.isdir(target_directory):
20 pass
21 else:
22 raise
23
24 date = str(datetime.now())
25 base = urlparse(args.database_url).hostname.split('.')[-2]
26 name = f'{base}_{date}'.replace(' ', '_')
27
28 if base not in ['hmdb', 't3db']:
29 raise NameError('Unknown database')
30
31 src = os.path.join(args.tool_data_dir, f'{base}.h5')
32 dst = os.path.join(target_directory, f'{name}.h5')
33 copy(src, dst)
34
35 data_table_entry = {
36 'data_tables': {
37 'recetox_metabolite_databases' : [
38 {
39 "value": name,
40 "name": name,
41 "date": date,
42 "path": f'{name}.h5',
43 }
44 ]
45 }
46 }
47
48 with open(args.data_manager_json, 'w') as json_out:
49 json_out.write(dumps(data_table_entry))
50
51
52 if __name__ == "__main__":
53 parser = ArgumentParser()
54 parser.add_argument('--tool_data_dir')
55 parser.add_argument('--database_url')
56 parser.add_argument('--data_manager_json')
57 main(parser.parse_args())