Mercurial > repos > dfornika > pathogist
changeset 5:c511745d5655 draft
planemo upload for repository https://github.com/dfornika/tools-pathogist/tree/master/tools
| author | dfornika |
|---|---|
| date | Thu, 05 Oct 2017 19:19:44 -0400 |
| parents | 7675e3475676 |
| children | 5f2bc984f931 |
| files | data_managers/data_manager_mentalist_build_database/data_manager/make_json.py data_managers/data_manager_mentalist_build_database/data_manager/mentalist_build.py data_managers/data_manager_mentalist_build_database/data_manager/mentalist_build.xml tools/mentalist_call/mentalist_call.xml |
| diffstat | 4 files changed, 77 insertions(+), 37 deletions(-) [+] |
line wrap: on
line diff
--- a/data_managers/data_manager_mentalist_build_database/data_manager/make_json.py Thu Oct 05 15:17:41 2017 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,27 +0,0 @@ -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') - 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_build_database/data_manager/mentalist_build.py Thu Oct 05 19:19:44 2017 -0400 @@ -0,0 +1,69 @@ +#!/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, dbkey, data_table_names=DEFAULT_DATA_TABLE_NAMES ): + args = [ 'mentalist', 'build_db', '--db', database_name, '-k', kmer_size, '--profile', profile, '--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=dbkey, name=database_name, path=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' ) + parser.add_argument( '-y', '--dbkey', dest='dbkey', default=None, help='dbkey' ) + 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 = {} + + dbkey = args.dbkey + + if dbkey in [ None, '', '?' ]: + raise Exception( '"%s" is not a valid dbkey. You must specify a valid dbkey.' % ( dbkey ) ) + + # build the index + build_mentalist_database( data_manager_dict, args.database_name, args.kmer_size, args.profile, args.fasta_files, params, target_directory, dbkey, DEFAULT_DATA_TABLE_NAMES ) + + # save info to json file + open( args.params, 'wb' ).write( dumps( data_manager_dict ) ) + + +if __name__ == "__main__": + main()
--- a/data_managers/data_manager_mentalist_build_database/data_manager/mentalist_build.xml Thu Oct 05 15:17:41 2017 -0400 +++ b/data_managers/data_manager_mentalist_build_database/data_manager/mentalist_build.xml Thu Oct 05 19:19:44 2017 -0400 @@ -5,17 +5,14 @@ </requirements> <command detect_errors="exit_code"> <![CDATA[ - mkdir mentalist-databases && cd mentalist-databases && - mentalist - build_db + python '$__tool_directory__/mentalist_build_db.py' + '${out_file}' --db '$database_name' -k '$kmer_size' #if $profile - -p '$profile' + --profile '$profile' #end if - -f ${" ".join(map(str, $input_fastas))} && - cd .. && - python '$__tool_directory__/make_json.py' --db '${database_name}' --out '${out_file}' + --fasta_files ${" ".join(map(str, $input_fastas))} ]]> </command> <inputs>
--- a/tools/mentalist_call/mentalist_call.xml Thu Oct 05 15:17:41 2017 -0400 +++ b/tools/mentalist_call/mentalist_call.xml Thu Oct 05 19:19:44 2017 -0400 @@ -3,7 +3,7 @@ <requirement type="package" version="0.1.2">mentalist</requirement> </requirements> <command detect_errors="exit_code"><