Mercurial > repos > iuc > data_manager_homer_preparse
changeset 1:d9c177013aba draft
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_homer_preparse commit 16a919905f336e34e237388c1921d0f4f8a368af
author | iuc |
---|---|
date | Thu, 06 Apr 2023 16:20:54 +0000 |
parents | e6a2110ac3b9 |
children | b9a3afc8de21 |
files | data_manager/homer_install_promoters.py data_manager/homer_install_promoters.xml data_manager_conf.xml test-data/homer_promoters.loc tool-data/homer_promoters.sample tool_data_table_conf.xml.sample tool_data_table_conf.xml.test |
diffstat | 7 files changed, 147 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/data_manager/homer_install_promoters.py Thu Apr 06 16:20:54 2023 +0000 @@ -0,0 +1,45 @@ +#!/usr/bin/env python + +import json +import optparse +import shutil + + +def _add_data_table_entry(data_manager_dict, data_table_name, data_table_entry): + data_manager_dict['data_tables'] = data_manager_dict.get('data_tables', {}) + data_manager_dict['data_tables'][data_table_name] = data_manager_dict['data_tables'].get(data_table_name, []) + data_manager_dict['data_tables'][data_table_name].append(data_table_entry) + return data_manager_dict + + +def main(): + parser = optparse.OptionParser() + parser.add_option('-o', '--organism', dest='organism', action='store', type="string", default=None, help='organism') + parser.add_option('-n', '--data_table_name', dest='data_table_name', action='store', type="string", default=None, help='data_table_name') + parser.add_option('-d', '--DB_path', dest='DB_path', action='store', type="string", default=None, help='DB_path') + parser.add_option('--organism_version', dest='organism_version', action='store', type="string", default=None, help='organism_version') + parser.add_option('--promoter_version', dest='promoter_version', action='store', type="string", default=None, help='promoter_version') + (options, args) = parser.parse_args() + + # Get the target directory and move the data folder there + filename = args[0] + with open(filename) as fh: + params = json.load(fh) + + target_directory = params['output_data'][0]['extra_files_path'] + shutil.copytree(options.DB_path + '/data/accession', target_directory + '/accession') + shutil.copytree(options.DB_path + '/data/promoters', target_directory + '/promoters') + shutil.copyfile(options.DB_path + '/config.txt', target_directory + '/config.txt') + + dbkey = str(options.organism) + '_o' + str(options.organism_version) + '_p' + str(options.promoter_version) + data_manager_dict = {} + data_table_entry = dict(value=dbkey, dbkey=dbkey, organism=options.organism, path=options.DB_path, organism_version=options.organism_version, promoter_version=options.promoter_version) + _add_data_table_entry(data_manager_dict, options.data_table_name, data_table_entry) + + # Save info to json file + with open(filename, 'w') as fh: + json.dump(data_manager_dict, fh, sort_keys=True) + + +if __name__ == "__main__": + main()
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/data_manager/homer_install_promoters.xml Thu Apr 06 16:20:54 2023 +0000 @@ -0,0 +1,57 @@ +<tool id="homer_install_promoters_data_manager" name="Homer install promoter DB" tool_type="manage_data" version="@TOOL_VERSION@" profile="22.01"> + <requirements> + <requirement type="package" version="@TOOL_VERSION@">homer</requirement> + <requirement type="package" version="3.11">python</requirement> + </requirements> + <macros> + <token name="@TOOL_VERSION@">4.11</token> + </macros> + <command detect_errors="exit_code"><![CDATA[ + cp -r \$(dirname \$(which findMotifs.pl))/../share/homer ./ && + perl ./homer/configureHomer.pl -install ${organism}-p ${organism}-o -keepScript && + + organism_version=\$(cat homer/config.txt | grep "accession and ontology information" | grep $organism | cut -f 2) && + promoter_version=\$(cat homer/config.txt | grep promoters | grep $organism | cut -f 2) && + + python '$__tool_directory__/homer_install_promoters.py' + '${out_file}' + --organism $organism + --organism_version \${organism_version} + --promoter_version \${promoter_version} + --data_table_name homer_promoters + --DB_path homer + ]]></command> + <inputs> + <param name="organism" type="select" label="Select a target organism to download" help="Promoter, GO and accession information will be downloaded and the data dir will be stored to reduce the network bandwidth during execution of the tool. Always the newest available version will be downloaded."> + <option value="arabidopsis">arabidopsis (Arabidopsis thaliana)</option> + <option value="chicken">chicken (Gallus gallus)</option> + <option value="fly">fly (Drosophila melanogaster)</option> + <option value="frog">frog (Xenopus tropicalis)</option> + <option value="human">human (Homo sapiens)</option> + <option value="mouse">mouse (Mus musculus)</option> + <option value="rat">rat (Rattus norvegicus)</option> + <option value="worm" selected="true">worm (Caenorhabditis elegans)</option> + <option value="yeast">yeast (Saccharomyces cerevisiae)</option> + <option value="zebrafish">zebrafish (Danio rerio)</option> + </param> + </inputs> + <outputs> + <data name="out_file" format="data_manager_json"/> + </outputs> + <tests> + <test> + <param name="organism" value="worm"/> + <output name="out_file"> + <assert_contents> + <has_text text="{"data_tables": {"homer_promoters": [{"dbkey": "worm_"/> + <has_text text=""organism_version": "v"/> + <has_text text=""promoter_version": "v"/> + <has_text text=""organism": "worm""/> + <has_text text=""path": ""/> + </assert_contents> + </output> + </test> + </tests> + <help> + </help> +</tool>
--- a/data_manager_conf.xml Sun Aug 08 11:01:47 2021 +0000 +++ b/data_manager_conf.xml Thu Apr 06 16:20:54 2023 +0000 @@ -20,4 +20,22 @@ </output> </data_table> </data_manager> + <data_manager tool_file="data_manager/homer_install_promoters.xml" id="homer_install_promoters" version="4.11"> + <data_table name="homer_promoters"> + <output> + <column name="value"/> + <column name="dbkey"/> + <column name="organism"/> + <column name="path" output_ref="out_file" > + <move type="directory" relativize_symlinks="True"> + <target base="${GALAXY_DATA_MANAGER_DATA_PATH}">homer_promoters/${value}</target> + </move> + <value_translation>${GALAXY_DATA_MANAGER_DATA_PATH}/homer_promoters/${value}</value_translation> + <value_translation type="function">abspath</value_translation> + </column> + <column name="organism_version"/> + <column name="promoter_version"/> + </output> + </data_table> + </data_manager> </data_managers>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/homer_promoters.loc Thu Apr 06 16:20:54 2023 +0000 @@ -0,0 +1,6 @@ +# homer_preparse.loc +# This is a *.loc file distributed with Galaxy that enables tools +# to use a directory of indexed data files. This one is for promoter DBs distributed by Homer. +# The file should include an one line entry for each set and has 6 text columns seperated by TABS. +# +# <value> <dbkey> <organism> <path> <organism_version> <promoter_version>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tool-data/homer_promoters.sample Thu Apr 06 16:20:54 2023 +0000 @@ -0,0 +1,6 @@ +# homer_preparse.loc +# This is a *.loc file distributed with Galaxy that enables tools +# to use a directory of indexed data files. This one is for promoter DBs distributed by Homer. +# The file should include an one line entry for each set and has 6 text columns seperated by TABS. +# +# <value> <dbkey> <organism> <path> <organism_version> <promoter_version>
--- a/tool_data_table_conf.xml.sample Sun Aug 08 11:01:47 2021 +0000 +++ b/tool_data_table_conf.xml.sample Thu Apr 06 16:20:54 2023 +0000 @@ -1,12 +1,17 @@ <tables> + <!-- Locations of preparsed genomes --> + <table name="homer_preparse" comment_char="#"> + <columns>value, dbkey, mask, size, name, path, path_fasta, version</columns> + <file path="tool-data/homer_preparse.loc"/> + </table> <!-- Locations of all fasta files under genome directory --> <table name="all_fasta" comment_char="#"> <columns>value, dbkey, name, path</columns> - <file path="tool-data/all_fasta.loc" /> + <file path="tool-data/all_fasta.loc"/> </table> - <!-- Locations of preparsed genomes --> - <table name="homer_preparse" comment_char="#"> - <columns>value, dbkey, mask, size, name, path, path_fasta, version</columns> - <file path="tool-data/homer_preparse.loc" /> + <!-- Built-in homer promoter and ID DBs (dir of <env>/share/data, 1 per organism) --> + <table name="homer_promoters" comment_char="#"> + <columns>value, dbkey, organism, path, organism_version, promoter_version</columns> + <file path="tool-data/homer_promoters.loc"/> </table> </tables>
--- a/tool_data_table_conf.xml.test Sun Aug 08 11:01:47 2021 +0000 +++ b/tool_data_table_conf.xml.test Thu Apr 06 16:20:54 2023 +0000 @@ -9,4 +9,9 @@ <columns>value, dbkey, name, path</columns> <file path="${__HERE__}/test-data/all_fasta.loc" /> </table> + <!-- Built-in homer promoter and ID DBs (dir of <env>/share/data, 1 per organism) --> + <table name="homer_promoters" comment_char="#"> + <columns>value, dbkey, organism, path, organism_version, promoter_version</columns> + <file path="${__HERE__}/test-data/homer_promoters.loc"/> + </table> </tables>