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