Mercurial > repos > thanhlv > data_manager_build_ariba_database
changeset 0:a8bb47cc7625 draft
planemo upload for repository tbd commit 0af229dbbda0496819ca95938c2e0628db689134
| author | thanhlv |
|---|---|
| date | Tue, 08 Jan 2019 11:04:25 -0500 |
| parents | |
| children | 8352ffae5413 |
| files | data_manager/ariba_database_builder.py data_manager/ariba_database_builder.xml data_manager/ariba_database_builder.xml.bk data_manager/macros.xml data_manager_conf.xml tool-data/ariba_databases.loc.sample tool_data_table_conf.xml.sample |
| diffstat | 7 files changed, 181 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/data_manager/ariba_database_builder.py Tue Jan 08 11:04:25 2019 -0500 @@ -0,0 +1,33 @@ +# Thanh Le Viet +# 7-Jan-2019 + +import argparse +import json +import os +import shutil + + +def main(args): + output_path = os.getcwd() + db_folder = [d for d in os.listdir(output_path) if os.path.isdir(d)] + params = json.loads(open(args.output).read()) + target_directory = params['output_data'][0]['extra_files_path'] + os.mkdir(target_directory) + data_manager_entry = [] + for db in db_folder: + # print("Current: ".format(os.path.join(output_path, d))) + # print("Target: {}".format(target_directory)) + shutil.move(os.path.join(output_path, d), os.path.join(target_directory, d)) + data_manager_entry.append(dict(value=db.lower(), + name=db, + path=target_directory) + ) + data_manager_json = dict(data_tables=dict(ariba_databases=data_manager_entry)) + file(args.output, 'w').write(json.dumps(data_manager_json)) + + +if __name__ == '__main__': + parser = argparse.ArgumentParser(description='Create data manager json.') + parser.add_argument('--out', dest='output', action='store', help='JSON filename') + args = parser.parse_args() + main(args) \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/data_manager/ariba_database_builder.xml Tue Jan 08 11:04:25 2019 -0500 @@ -0,0 +1,59 @@ +<?xml version="1.0"?> +<tool id="ariba_database_builder" name="ARIBA build database" tool_type="manage_data" version="@VERSION@"> + <description>database builder</description> + <expand macro="requirements" /> + <version_command>ariba version | head head -n 1</version_command> + <command detect_errors="exit_code"> + <![CDATA[ + #if str($library.lib_type) == "curated" + #set $library_list = str($library.curated).split(',') + #for $library_ in $library_list: + #if str($library_) != 'None': + ariba getref '$library_' _tmp_db && ariba prepareref -f _tmp_db.fa -m _tmp_db.tsv '$library_' && + #end if + #end for + #end if + + #if str($library.lib_type) == "fasta" + #if str($library).fasta != 'None': + ariba prepareref --all_coding '$coding' -f '$library.fasta' '$library.db_name' + #end if + #end if + + python '$__tool_directory__/ariba_database_builder.py' --out '${out_file}' + ]]> + </command> + <inputs> + <conditional name="library"> + <param name="lib_type" type="select" label="Input reads type or collection" help="Select a curated database or a fasta from the history"> + <option value="curated" selected="true">Curated Database</option> + <option value="fasta">A fasta file</option> + </param> + <when value="curated"> + <param name="curated" type="select" multiple="true" label="Select partial library to download"> + <option value="card">CARD</option> + <option value="resfinder">Resfinder</option> + <option value="plasmidfinder">Plasmidfinder</option> + <option value="megares">Megares</option> + <option value="argannot">Argannot</option> + <option value="vfdb_core">vfdb_core</option> + <option value="vfdb_full">vfdb_full</option> + <option value="virulencefinder">virulencefinder</option> + </param> + </when> + <when value="fasta"> + <param name="fasta" type="data" format="fasta" optional="false" /> + <param name="db_name" type="text" label="DB name" help = "The DB name should include no space and special characters" /> + <param name="coding" type="boolean" truevalue="yes" falsevalue="no" checked="False" label="Coding sequence?" /> + </when> + </conditional> + </inputs> + <outputs> + <data name="out_file" format="data_manager_json" /> + </outputs> + <help> + </help> + <citations> + <citation type="doi">110.1099/mgen.0.000131</citation> + </citations> +</tool>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/data_manager/ariba_database_builder.xml.bk Tue Jan 08 11:04:25 2019 -0500 @@ -0,0 +1,41 @@ +<?xml version="1.0"?> +<tool id="ariba_database_builder" name="ARIBA build database" tool_type="manage_data" version="@VERSION@"> + <description>database builder</description> + <expand macro="requirements" /> + <version_command>ariba version | head head -n 1</version_command> + <command detect_errors="exit_code"> + <![CDATA[ + #set $library_list = str($libraries).split(',') + mkdir ariba-database && cd ariba-database && + #for $library in $library_list: + #if str($library) != 'None': + ariba getref $library _tmp_db && ariba prepareref -f _tmp_db.fa -m _tmp_db.tsv $library && + #end if + #end for + #for $fasta in $input_fasta: + #if str($fasta) != 'None': + ariba preparef --all_coding no $fasta $fasta && + #end if + #end for + cd .. && + python '$__tool_directory__/ariba_data_base_builder.py' --db '${database_name}' --out '${out_file}' + ]]> + </command> + <inputs> + <param name="database_name" type="text" label="Name for this database" /> + <param name="libraries" type="select" multiple="true" label="Select partial library to download"> + <option value="card">CARD</option> + <option value="resfinder">Resfinder</option> + <option value="plasmidfinder">Plasmidfinder</option> + </param> + <param name="input_fasta" type="data" format="fasta" multiple="True" optional="true" label="Select history item" /> + </inputs> + <outputs> + <data name="out_file" format="data_manager_json" /> + </outputs> + <help> + </help> + <citations> + <citation type="doi">110.1099/mgen.0.000131</citation> + </citations> +</tool>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/data_manager/macros.xml Tue Jan 08 11:04:25 2019 -0500 @@ -0,0 +1,18 @@ +<macros> + <token name="@VERSION@">0.1.0</token> + <xml name="requirements"> + <requirements> + <requirement type="package" version="2.13.2">ariba</requirement> + </requirements> + </xml> + + <xml name="version_command"> + <version_command>ariba version | head -n 1</version_command> + </xml> + + <xml name="citations"> + <citations> + <citation type="doi">10.1099/mgen.0.000131</citation> + </citations> + </xml> +</macros> \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/data_manager_conf.xml Tue Jan 08 11:04:25 2019 -0500 @@ -0,0 +1,18 @@ +<?xml version="1.0"?> +<data_managers> + <data_manager tool_file="data_manager/ariba_database_builder.xml" id="ariba_database_builder" version="0.1.0"> + <data_table name="ariba_databases"> + <output> + <column name="value" /> + <column name="name" /> + <column name="path" output_ref="out_file"> + <move type="directory" relativize_symlinks="True"> + <target base="${GALAXY_DATA_MANAGER_DATA_PATH}">ariba_databases</target> + </move> + <value_translation>${GALAXY_DATA_MANAGER_DATA_PATH}/ariba_databases/${value}</value_translation> + <value_translation type="function">abspath</value_translation> + </column> + </output> + </data_table> + </data_manager> +</data_managers>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tool-data/ariba_databases.loc.sample Tue Jan 08 11:04:25 2019 -0500 @@ -0,0 +1,4 @@ +# This file defines databases and their folder location. Each database is a line with +# three columns: value{tab}{name}{/path/to/database-folder} +# E.g. card{tab}card{tab}/home/user/ariba_databases/card +# The database folder is created by the command ariba preparef \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tool_data_table_conf.xml.sample Tue Jan 08 11:04:25 2019 -0500 @@ -0,0 +1,8 @@ +<?xml version="1.0"?> +<tables> + <!-- Locations of ARIBA database in the required format --> + <table name="ariba_databases" comment_char="#" allow_duplicate_entries="False"> + <columns>value, name, path</columns> + <file path="tool-data/ariba_databases.loc" /> + </table> +</tables>
