Mercurial > repos > recetox > data_manager_recetox_metabolite_fetcher
diff 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 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/data_manager/recetox_metabolite_fetcher.py Tue Aug 25 11:15:49 2020 +0000 @@ -0,0 +1,57 @@ +import os +import errno + +from argparse import ArgumentParser +from datetime import datetime +from json import dumps, loads +from urllib.parse import urlparse +from shutil import copy + + +def main(args): + with open(args.data_manager_json, 'r') as json_in: + data_manager_input = loads(json_in.read()) + target_directory = data_manager_input['output_data'][0]['extra_files_path'] + + try: + os.mkdir(target_directory) + except OSError as exc: + if exc.errno == errno.EEXIST and os.path.isdir(target_directory): + pass + else: + raise + + date = str(datetime.now()) + base = urlparse(args.database_url).hostname.split('.')[-2] + name = f'{base}_{date}'.replace(' ', '_') + + if base not in ['hmdb', 't3db']: + raise NameError('Unknown database') + + src = os.path.join(args.tool_data_dir, f'{base}.h5') + dst = os.path.join(target_directory, f'{name}.h5') + copy(src, dst) + + data_table_entry = { + 'data_tables': { + 'recetox_metabolite_databases' : [ + { + "value": name, + "name": name, + "date": date, + "path": f'{name}.h5', + } + ] + } + } + + with open(args.data_manager_json, 'w') as json_out: + json_out.write(dumps(data_table_entry)) + + +if __name__ == "__main__": + parser = ArgumentParser() + parser.add_argument('--tool_data_dir') + parser.add_argument('--database_url') + parser.add_argument('--data_manager_json') + main(parser.parse_args()) \ No newline at end of file