# HG changeset patch # User dfornika # Date 1564075966 14400 # Node ID 7aea7633ec0b91c34734a7992b76a5da875649c1 # Parent 6e90d7d564eef8afe473af69f5a60f3f993dfbb1 planemo upload for repository https://github.com/dfornika/galaxytools/tree/master/data_managers/data_manager_build_mash_sketch/ commit 423cf96266f6ac433052ff72edb1397502313010-dirty diff -r 6e90d7d564ee -r 7aea7633ec0b data_manager/mash_build_sketch.py --- a/data_manager/mash_build_sketch.py Fri Jun 14 19:20:47 2019 -0400 +++ b/data_manager/mash_build_sketch.py Thu Jul 25 13:32:46 2019 -0400 @@ -10,70 +10,71 @@ import string import subprocess import sys +import uuid DATA_TABLE_NAME = "mash_sketches" -def run(args, cwd): - proc = subprocess.Popen(args=args, shell=False, cwd=cwd) - return_code = proc.wait() - if return_code: - print("Error building sketch.", file=sys.stderr) - sys.exit( return_code ) -def mash_build_sketch(data_manager_dict, mash_args, target_directory, data_table_name=DATA_TABLE_NAME): +def mash_build_sketch(target_directory, mash_args, database_name, data_table_name=DATA_TABLE_NAME): now = datetime.datetime.utcnow().strftime("%Y-%m-%dT%H%M%SZ") - database_value = "_".join([ - now, - "refseq" + "." + - sketch_type + "." + - "k21.s1000.msh", - ]) + database_value = str(uuid.uuid4()) - database_name = " ".join([ - "refseq" + "." + - sketch_type + "." + - "k21.s1000.msh" - "(Created:", - now + ")" - ]) + database_name = database_name database_path = database_value - args = [ - '-p', mash_args['threads'], - '-k', mash_args['kmer_size'], - '-s', mash_args['sketch_size'], - '-o', 'sketch' + for input_seq in mash_args['input_seqs']: + mash_sketch_args_list = [ + '-p', mash_args['threads'], + '-k', mash_args['kmer_size'], + '-s', mash_args['sketch_size'], + input_seq, + ] + + subprocess.check_call(['mash', 'sketch'] + mash_sketch_args_list, + cwd=os.path.join(target_directory, database_path, 'tmp')) + + mash_paste_args_list = [ + 'sketch', + 'tmp/*.msh' ] - subprocess.check_call(['mash', 'sketch'] + args, target_directory) + subprocess.check_call(['mash', 'paste'] + mash_sketch_args_list, + cwd=os.path.join(target_directory, database_path)) + subprocess.check_call(['rm' '-r' 'tmp'] + cwd=os.path.join(target_directory, database_path))) + + bagit_args_list = [ + database_path, + ] + + subprocess.call(['bagit.py'] + bagit_args_list, cwd=target_directory) + data_table_entry = { - "value": database_value, - "name": database_name, - "path": database_path, + "data_tables": { + data_table_name: [ + { + "value": database_value, + "name": database_name, + "path": os.path.join(database_path, 'data'), + } + ] + } } - _add_data_table_entry(data_manager_dict, data_table_entry) - - -def _add_data_table_entry(data_manager_dict, data_table_entry, data_table_name=DATA_TABLE_NAME): - 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 + return data_table_entry def main(): parser = argparse.ArgumentParser() parser.add_argument('data_manager_json') + parser.add_argument('--threads', dest='threads', default=1, help='threads' ) parser.add_argument('--kmer-size', dest='kmer_size', help='K-mer size' ) parser.add_argument('--sketch-size', dest='sketch_size', help='Sketch size' ) - parser.add_argument( '--threads', dest='threads', default=1, help='threads' ) - args = parser.parse_args() data_manager_input = json.loads(open(args.data_manager_json).read()) @@ -96,10 +97,10 @@ data_manager_output = {} - mash_build_sketch( - data_manager_output, + data_manager_output = mash_build_sketch( + target_directory, mash_args, - target_directory, + args.database_name, ) open(args.data_manager_json, 'wb').write(json.dumps(data_manager_output)) diff -r 6e90d7d564ee -r 7aea7633ec0b data_manager/mash_build_sketch.xml --- a/data_manager/mash_build_sketch.xml Fri Jun 14 19:20:47 2019 -0400 +++ b/data_manager/mash_build_sketch.xml Thu Jul 25 13:32:46 2019 -0400 @@ -1,8 +1,9 @@ - + mash sketch builder mash + bagit mash --version @@ -11,7 +12,7 @@ '${out_file}' --threads \${GALAXY_SLOTS:-1} --kmer-size ${kmer_size} - --sketch-size ${sketch_size} + --sketch-size ${sketch_size} ]]>