changeset 1:7aea7633ec0b draft

planemo upload for repository https://github.com/dfornika/galaxytools/tree/master/data_managers/data_manager_build_mash_sketch/ commit 423cf96266f6ac433052ff72edb1397502313010-dirty
author dfornika
date Thu, 25 Jul 2019 13:32:46 -0400
parents 6e90d7d564ee
children ea2cee927c04
files data_manager/mash_build_sketch.py data_manager/mash_build_sketch.xml
diffstat 2 files changed, 46 insertions(+), 44 deletions(-) [+]
line wrap: on
line diff
--- 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))
--- 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 @@
 <?xml version="1.0"?>
-<tool id="mash_build_sketch" name="Mash Sketch Builder" tool_type="manage_data" version="2.1">
+<tool id="mash_build_sketch" name="Mash Sketch Builder" tool_type="manage_data" version="2.1+galaxy0">
     <description>mash sketch builder</description>
     <requirements>
         <requirement type="package" version="2.1">mash</requirement>
+        <requirement type="package" version="1.7.0">bagit</requirement>
     </requirements>
     <version_command>mash --version</version_command>
     <command detect_errors="exit_code">
@@ -11,7 +12,7 @@
           '${out_file}'
           --threads \${GALAXY_SLOTS:-1}
           --kmer-size ${kmer_size}
-	      --sketch-size ${sketch_size}
+          --sketch-size ${sketch_size}
     ]]>
     </command>
     <inputs>