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