Mercurial > repos > dfornika > mentalist
changeset 2:0f74aa0cfb68 draft
planemo upload for repository https://github.com/WGS-TB/MentaLiST/tree/master/galaxy
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/README Fri Oct 06 19:02:53 2017 -0400 @@ -0,0 +1,1 @@ +TODO: Fill in README file. \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/data_managers/data_manager_mentalist_build_db/data_manager/mentalist_build_db.py Fri Oct 06 19:02:53 2017 -0400 @@ -0,0 +1,67 @@ +#!/usr/bin/env python +from __future__ import print_function + +import argparse +import os +import subprocess +import sys +import errno +from json import dumps, loads + +DEFAULT_DATA_TABLE_NAMES = ["mentalist_databases"] + + +def build_mentalist_database( data_manager_dict, database_name, kmer_size, profile, fasta_files, params, target_directory, data_table_names=DEFAULT_DATA_TABLE_NAMES ): + args = [ 'mentalist', 'build_db', '--db', database_name, '-k', str(kmer_size)] + if profile: + args += ['--profile', profile] + print(args) + args += ['--fasta_files'] + fasta_files + proc = subprocess.Popen( args=args, shell=False, cwd=target_directory ) + return_code = proc.wait() + if return_code: + print("Error building database.", file=sys.stderr) + sys.exit( return_code ) + data_table_entry = dict( value=database_name, dbkey=database_name, name=database_name, path=(database_name + '/' + database_name) ) + for data_table_name in data_table_names: + _add_data_table_entry( data_manager_dict, data_table_name, data_table_entry ) + + +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 = argparse.ArgumentParser() + parser.add_argument('params') + parser.add_argument( '-d', '--db', dest='database_name', default=None, help='fasta_filenames' ) + parser.add_argument( '-f', '--fasta_files', dest='fasta_files', nargs='+', default=None, help='fasta_filenames' ) + parser.add_argument( '-k', '--kmer_size', dest='kmer_size', type=int, default=None, help='kmer_size' ) + parser.add_argument( '-p', '--profile', dest='profile', type=int, default=None, help='kmer_size' ) + args = parser.parse_args() + + params = loads( open( args.params ).read() ) + target_directory = params[ '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 + + data_manager_dict = {} + + # build the index + build_mentalist_database( data_manager_dict, args.database_name, args.kmer_size, args.profile, args.fasta_files, params, target_directory, DEFAULT_DATA_TABLE_NAMES ) + + # save info to json file + open( args.params, 'wb' ).write( dumps( data_manager_dict ) ) + + +if __name__ == "__main__": + main()
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/data_managers/data_manager_mentalist_build_db/data_manager/mentalist_build_db.xml Fri Oct 06 19:02:53 2017 -0400 @@ -0,0 +1,35 @@ +<?xml version="1.0"?> +<tool id="mentalist_build_db" name="MentaLiST Build DB" tool_type="manage_data" version="0.1.2"> + <requirements> + <requirement type="package" version="0.1.2">mentalist</requirement> + </requirements> + <command detect_errors="exit_code"> + <![CDATA[ + python '$__tool_directory__/mentalist_build_db.py' + '${out_file}' + --db '$database_name' + -k '$kmer_size' + #if $profile + --profile '$profile' + #end if + --fasta_files ${" ".join(map(str, $input_fastas))} + ]]> + </command> + <inputs> + <param name="database_name" type="text" + label="Database Name" help="Database Name" /> + <param name="kmer_size" type="integer" + label="Kmer size" help="Kmer size" + value="31" min="1" max="32" /> + <param name="input_fastas" type="data_collection" collection_type="list" format="fasta" multiple="true" + label="Input Fasta" help="Fasta input files" /> + <param name="profile" type="data" format="tsv" optional="true" + label="Profile" help="Profile for known genotypes" /> + </inputs> + <outputs> + <data name="out_file" format="data_manager_json" /> + </outputs> + <citations> + <citation type="doi">10.1101/172858</citation> + </citations> +</tool>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/data_managers/data_manager_mentalist_build_db/data_manager_conf.xml Fri Oct 06 19:02:53 2017 -0400 @@ -0,0 +1,18 @@ +<?xml version="1.0"?> +<data_managers> + <data_manager tool_file="data_manager/mentalist_build_db.xml" id="mentalist_build_db" version="0.1.2"> + <data_table name="mentalist_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}">mentalist_databases/${value}</target> + </move> + <value_translation>${GALAXY_DATA_MANAGER_DATA_PATH}/mentalist_databases/${value}/${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/data_managers/data_manager_mentalist_build_db/tool_data_table_conf.xml.sample Fri Oct 06 19:02:53 2017 -0400 @@ -0,0 +1,8 @@ +<?xml version="1.0"?> +<tables> + <!--Locations of MentaLiST database in the required format --> + <table name="mentalist_databases" comment_char="#"> + <columns>value, name, path</columns> + <file path="tool-data/mentalist_databases.loc" /> + </table> +</tables> \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/data_managers/data_manager_mentalist_download_cgmlst/data_manager/make_json.py Fri Oct 06 19:02:53 2017 -0400 @@ -0,0 +1,27 @@ +import argparse +import json +import os +import shutil + + +def main(args): + data_manager_entry = {} + data_manager_entry['value'] = args.database.lower() + data_manager_entry['name'] = args.database + data_manager_entry['path'] = '.' + data_manager_json = dict(data_tables = dict(mentalist_databases = data_manager_entry)) + params = json.loads(open(args.output).read()) + target_directory = params['output_data'][0]['extra_files_path'] + os.mkdir(target_directory) + output_path = os.path.join(os.getcwd(), 'mentalist-database/cgmlst') + for filename in os.listdir(output_path): + shutil.move(os.path.join(output_path, filename), target_directory) + file(args.output, 'w').write(json.dumps(data_manager_json)) + + +if __name__ == '__main__': + parser = argparse.ArgumentParser(description='Create data manager json.') + parser.add_argument('--db', dest='database', action='store', help='Database name') + parser.add_argument('--out', dest='output', action='store', help='JSON filename') + args = parser.parse_args() + main(args)
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/data_managers/data_manager_mentalist_download_cgmlst/data_manager/mentalist_download_cgmlst.xml Fri Oct 06 19:02:53 2017 -0400 @@ -0,0 +1,38 @@ +<?xml version="1.0"?> +<tool id="mentalist_download_cgmlst" name="MentaLiST Download cgMLST Data" tool_type="manage_data" version="0.1.2"> + <requirements> + <requirement type="package" version="0.1.2">mentalist</requirement> + </requirements> + <command detect_errors="exit_code"> + <![CDATA[ + mkdir -p mentalist-database/cgmlst && cd mentalist-database/cgmlst && + mentalist + download_cgmlst + --db '$scheme' + --scheme '$scheme' + -k '$kmer_size' + cd .. && + python '$__tool_directory__/make_json.py' --db '${scheme}' --out '${out_file}' + ]]> + </command> + <inputs> + <param name="kmer_size" type="integer" + label="Kmer size" help="Kmer size" + value="31" min="1" max="32" /> + <param name="scheme" type="select" multiple="false" label="Select scheme to download"> + <option value="">Acinetobacter baumannii</option> + <option value="">Clostridioides difficile</option> + <option value="">Enterococcus faecium</option> + <option value="">Francisella tularensis</option> + <option value="">Legionella pneumophila</option> + <option value="">Listeria monocytogenes</option> + <option value="">Staphylococcus aureus</option> + </param> + </inputs> + <outputs> + <data name="out_file" format="data_manager_json" /> + </outputs> + <citations> + <citation type="doi">10.1101/172858</citation> + </citations> +</tool>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/data_managers/data_manager_mentalist_download_cgmlst/data_manager_conf.xml Fri Oct 06 19:02:53 2017 -0400 @@ -0,0 +1,18 @@ +<?xml version="1.0"?> +<data_managers> + <data_manager tool_file="data_manager/mentalist_download_cgmlst.xml" id="mentalist_download_cgmlst" version="0.1.2"> + <data_table name="mentalist_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}">mentalist_database/${value}</target> + </move> + <value_translation>${GALAXY_DATA_MANAGER_DATA_PATH}/mentalist_database/${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/data_managers/data_manager_mentalist_download_cgmlst/tool_data_table_conf.xml.sample Fri Oct 06 19:02:53 2017 -0400 @@ -0,0 +1,8 @@ +<?xml version="1.0"?> +<tables> + <!--Locations of MentaLiST database in the required format --> + <table name="mentalist_databases" comment_char="#"> + <columns>value, name, path</columns> + <file path="tool-data/mentalist_databases.loc" /> + </table> +</tables> \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/data_managers/data_manager_mentalist_download_pubmlst/data_manager/mentalist_download_pubmlst.xml Fri Oct 06 19:02:53 2017 -0400 @@ -0,0 +1,30 @@ +<?xml version="1.0"?> +<tool id="mentalist_download_pubmlst" name="MentaLiST Download pubMLST" tool_type="manage_data" version="0.1.2"> + <requirements> + <requirement type="package" version="0.1.2">mentalist</requirement> + </requirements> + <command detect_errors="exit_code"> + <![CDATA[ + mkdir mentalist-database && cd mentalist-database && + MentaLiST.jl + download_pubmlst + --db '$kmer_database' + --scheme '$scheme' + -k '$kmer_size' + cd .. && + python '$__tool_directory__/make_json.py' --db '${database_name}' --out '${out_file}' + ]]> + </command> + <inputs> + <param name="kmer_size" type="integer" + label="Kmer size" help="Kmer size" + value="31" min="1" max="32" /> + <param name="scheme" type="text" label="Species name or ID of scheme" /> + </inputs> + <outputs> + <data name="out_file" format="data_manager_json" /> + </outputs> + <citations> + <citation type="doi">10.1101/172858</citation> + </citations> +</tool>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/data_managers/data_manager_mentalist_download_pubmlst/data_manager_conf.xml Fri Oct 06 19:02:53 2017 -0400 @@ -0,0 +1,18 @@ +<?xml version="1.0"?> +<data_managers> + <data_manager tool_file="data_manager/mentalist_download_pubmlst.xml" id="mentalist_download_pubmlst" version="0.1.2"> + <data_table name="mentalist_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}">mentalist_database/${value}</target> + </move> + <value_translation>${GALAXY_DATA_MANAGER_DATA_PATH}/mentalist_database/${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/data_managers/data_manager_mentalist_download_pubmlst/tool_data_table_conf.xml.sample Fri Oct 06 19:02:53 2017 -0400 @@ -0,0 +1,8 @@ +<?xml version="1.0"?> +<tables> + <!--Locations of MentaLiST database in the required format --> + <table name="mentalist_databases" comment_char="#"> + <columns>value, name, path</columns> + <file path="tool-data/mentalist_databases.loc" /> + </table> +</tables> \ No newline at end of file
--- a/tools/mentalist_build.xml Thu Sep 14 17:16:16 2017 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,33 +0,0 @@ -<?xml version="1.0"?> -<tool id="mentalist_build" name="MentaLiST Build DB" version="0.1.2"> - <requirements> - <requirement type="package" version="0.1.2">mentalist</requirement> - </requirements> - <command detect_errors="exit_code"> - <![CDATA[ - MentaLiST.jl - build_db - --db '$kmer_database' - -k '$kmer_size' - #if $profile - -p '$profile' - #end if - -f ${" ".join(map(str, $input_fastas))} - ]]> - </command> - <inputs> - <param name="kmer_size" type="integer" - label="Kmer size" help="Kmer size" - value="31" min="1" max="32" /> - <param name="input_fastas" type="data_collection" collection_type="list" format="fasta" multiple="true" - label="Input Fasta" help="Fasta input files" /> - <param name="profile" type="data" format="tsv" optional="true" - label="Profile" help="Profile for known genotypes" /> - </inputs> - <outputs> - <data name="kmer_database" format="h5" /> - </outputs> - <citations> - <citation type="doi">10.1101/172858</citation> - </citations> -</tool>
--- a/tools/mentalist_call.xml Thu Sep 14 17:16:16 2017 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,72 +0,0 @@ -<tool id="mentalist_call" name="MentaLiST MLST Analysis" version="0.1.2"> - <requirements> - <requirement type="package" version="0.1.2">mentalist</requirement> - </requirements> - <command detect_errors="exit_code"><![CDATA[ - 'MentaLiST.jl' - call - -o '$output_file' - -s '$sample_name' - --db '$kmer_db' - #if $discard_threshold - -t '$discard_threshold' - #end if - #if $quick_filter - '$quick_filter' - #end if - #if $external_counter - '$external_counter' - #end if - #if $skip_length - -j '$skip_length' - #end if - $input_fastqs.forward $input_fastqs.reverse - ]]></command> - <inputs> - <param name="sample_name" type="text" - label="Sample Name" help="Sample Name" /> - <param name="kmer_db" type="data" format="h5" - label="Kmer DB" help="Kmer database" /> - <param name="discard_threshold" type="float" - label="Discard Threshold" help="A read of length L is discarded if it has at less than (L - k) * t hits to the same locus in the kmer database, where k is the kmer length. 0 <= t <= 1" - value="0.3" min="0" max="1" /> - <param name="quick_filter" type="boolean" - label="Quick Filter" help="Quick filter; if the first, middle and last kmers of a read are not in the kmer DB, the read is discarded. Disabled by default." - truevalue="-q" falsevalue="" optional="true" /> - <param name="external_counter" type="boolean" - label="External Kmer Counter" help="Use external kmc kmer counter. Disabled by default." - truevalue="-e" falsevalue="" optional="true" /> - <param name="skip_length" type="integer" - label="Skip Length" help="Skip length between consecutive k-mers." - value="1" min="1" max="32" /> - <param name="input_fastqs" type="data_collection" collection_type="paired" format="fastq" - label="Input FastQ" help="FastQ input files" /> - </inputs> - <outputs> - <data name="output_file" format="tsv"/> - </outputs> - <help><![CDATA[ - usage: MentaLiST.jl call -o O -s S --db DB [-t T] [-q] [-e] [-j J] [-h] files... - - positional arguments: - files FastQ input files - - optional arguments: - -o O Output file with MLST call - -s S Sample name - --db DB Kmer database - -t T A read of length L is discarded if it has at less than - (L - k) * t hits to the same locus in the kmer database, - where k is the kmer length. 0 <= t <= 1 (type: Float64, - default: 0.3 - -q Quick filter; if the first, middle and last kmers of a - read are not in the kmer DB, the read is discarded. - Disabled by default. - -e Use external kmc kmer counter. Disabled by default. - -j J Skip length between consecutive k-mers. Defaults to 1. - -h, --help show this help message and exit - ]]></help> - <citations> - <citation type="doi">10.1101/172858</citation> - </citations> -</tool>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tools/mentalist_call/mentalist_call.xml Fri Oct 06 19:02:53 2017 -0400 @@ -0,0 +1,41 @@ +<tool id="mentalist_call" name="MentaLiST MLST Analysis" version="0.1.2"> + <requirements> + <requirement type="package" version="0.1.2">mentalist</requirement> + </requirements> + <command detect_errors="exit_code"><![CDATA[ + mentalist + call + -o '$output_file' + -s '$sample_name' + --db '$kmer_db.fields.path' + #if $discard_threshold + -t '$discard_threshold' + #end if + $input_fastqs.forward $input_fastqs.reverse + ]]></command> + <inputs> + <param name="sample_name" type="text" + label="Sample Name" help="Sample Name" /> + <param name="kmer_db" type="select"> + <options from_data_table="mentalist_databases"> + <validator type="no_options" message="No MentaLiST databases are available" /> + </options> + </param> + <param name="discard_threshold" type="float" + label="Discard Threshold" help="A read of length L is discarded if it has at less than (L - k) * t hits to the same locus in the kmer database, where k is the kmer length. 0 <= t <= 1" + value="0.3" min="0" max="1" /> + <param name="skip_length" type="integer" + label="Skip Length" help="Skip length between consecutive k-mers." + value="1" min="1" max="32" /> + <param name="input_fastqs" type="data_collection" collection_type="paired" format="fastq" + label="Input FastQ" help="FastQ input files" /> + </inputs> + <outputs> + <data name="output_file" format="tsv"/> + </outputs> + <help><![CDATA[ + ]]></help> + <citations> + <citation type="doi">10.1101/172858</citation> + </citations> +</tool>