changeset 0:953dd78a34d3 draft default tip

"planemo upload commit be4b24b2dacc3f23538068d5a6082bca246f6887"
author recetox
date Tue, 25 Aug 2020 11:15:49 +0000
parents
children
files data_manager/hmdb.h5 data_manager/recetox_metabolite_fetcher.py data_manager/recetox_metabolite_fetcher.xml data_manager/t3db.h5 data_manager_conf.xml
diffstat 5 files changed, 112 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
Binary file data_manager/hmdb.h5 has changed
--- /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
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/data_manager/recetox_metabolite_fetcher.xml	Tue Aug 25 11:15:49 2020 +0000
@@ -0,0 +1,35 @@
+<tool id="recetox_metabolite_fetcher" name="Metabolite Fetcher" version="1.0.0" tool_type="manage_data">
+    <requirements>
+        <requirement type="package" version="3.7">python</requirement>
+    </requirements>
+
+    <command detect_errors="exit_code"><![CDATA[
+        python '${__tool_directory__}/recetox_metabolite_fetcher.py'
+            --tool_data_dir '${__tool_directory__}'
+            --database_url '${url}'
+            --data_manager_json '${out_file}'
+    ]]></command>
+    
+    <inputs>
+        <param name="url" type="text" label="Database url" help="Type custom url or select url from a predefined list a metabolite databases.">
+            <option value="https://hmdb.ca/system/downloads/3.6/hmdb_metabolites.zip">HMDB 3.6</option>
+            <option value="https://hmdb.ca/system/downloads/current/hmdb_metabolites.zip">HMDB 4.0</option>
+            <option value="http://www.t3db.ca/system/downloads/current/toxins.xml.zip">T3DB</option>
+        </param>
+    </inputs>
+    
+    <outputs>
+        <data name="out_file" format="data_manager_json"/>
+    </outputs>
+    
+    <help><![CDATA[
+        Downloads a snapshot of a specified metabolite database and stores it withing the whole Galaxy instance.
+    ]]></help>
+    
+    <citations>
+        <citation type="doi">https://doi.org/10.1093/nar/gkl923</citation>
+        <citation type="doi">https://doi.org/10.1093/nar/gkn810</citation>
+        <citation type="doi">https://doi.org/10.1093/nar/gks1065</citation>
+        <citation type="doi">https://doi.org/10.1093/nar/gkx1089</citation>
+    </citations>
+</tool>
\ No newline at end of file
Binary file data_manager/t3db.h5 has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/data_manager_conf.xml	Tue Aug 25 11:15:49 2020 +0000
@@ -0,0 +1,20 @@
+<?xml version="1.0"?>
+<data_managers>
+    <data_manager tool_file="data_manager/recetox_metabolite_fetcher.xml" id="recetox_metabolite_fetcher">
+        <data_table name="recetox_metabolite_databases">
+            <output>
+                <column name="value"/>
+                <column name="name"/>
+                <column name="date"/>
+                <column name="path" output_ref="out_file">
+                    <move type="file">
+                        <source>${path}</source>
+                        <target base="${GALAXY_DATA_MANAGER_DATA_PATH}">metabolite_dbs/${path}</target>
+                    </move>
+                    <value_translation>${GALAXY_DATA_MANAGER_DATA_PATH}/metabolite_dbs/${path}</value_translation>
+		            <value_translation type="function">abspath</value_translation>
+                </column>
+            </output>
+        </data_table>
+    </data_manager>
+</data_managers>
\ No newline at end of file