Mercurial > repos > recetox > data_manager_recetox_metabolite_fetcher
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()) |