changeset 3:350da4807491 draft

planemo upload for repository https://github.com/dfornika/galaxytools/tree/master/data_managers/data_manager_build_mash_sketch/ commit 34a1400396f10e63e79511a4b28501fdaa03e77d-dirty
author dfornika
date Fri, 14 Jun 2019 19:08:05 -0400
parents a6b8ec872e3c
children 77d6638116d0
files data_manager/mash_build_sketch.py data_manager/mash_build_sketch.xml data_manager/mash_build_sketch_refseq.py data_manager/mash_build_sketch_refseq.xml
diffstat 4 files changed, 139 insertions(+), 130 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/data_manager/mash_build_sketch.py	Fri Jun 14 19:08:05 2019 -0400
@@ -0,0 +1,109 @@
+#!/usr/bin/env python
+
+from __future__ import print_function
+
+import argparse
+import datetime
+import errno
+import json
+import os
+import string
+import subprocess
+import sys
+
+
+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):
+
+    now = datetime.datetime.utcnow().strftime("%Y-%m-%dT%H%M%SZ")
+
+    database_value = "_".join([
+        now,
+        "refseq" + "." +
+        sketch_type + "." +
+        "k21.s1000.msh",
+    ])
+
+    database_name = " ".join([
+        "refseq" + "." +
+        sketch_type + "." +
+        "k21.s1000.msh"
+        "(Created:",
+        now + ")"
+    ])
+
+    database_path = database_value
+
+    args = [
+        '-p', mash_args['threads'],
+        '-k', mash_args['kmer_size'],
+        '-s', mash_args['sketch_size'],
+        '-o', 'sketch'
+    ]
+
+    subprocess.check_call(['mash', 'sketch'] + args, target_directory)
+
+    data_table_entry = {
+        "value": database_value,
+        "name": database_name,
+        "path": database_path,
+    }
+
+    _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
+
+
+def main():
+    parser = argparse.ArgumentParser()
+    parser.add_argument('data_manager_json')
+    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())
+
+    target_directory = data_manager_input['output_data'][0]['extra_files_path']
+
+    mash_args = {
+        'kmer_size': args.kmer_size,
+        'sketch_size': args.kmer_size,
+        'threads': args.threads,
+    }
+
+    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_output = {}
+
+    mash_build_sketch(
+        data_manager_output,
+        mash_args,
+        target_directory,
+    )
+
+    open(args.data_manager_json, 'wb').write(json.dumps(data_manager_output))
+
+
+if __name__ == "__main__":
+    main()
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/data_manager/mash_build_sketch.xml	Fri Jun 14 19:08:05 2019 -0400
@@ -0,0 +1,30 @@
+<?xml version="1.0"?>
+<tool id="mash_build_sketch" name="Mash Sketch Builder" tool_type="manage_data" version="2.1">
+    <description>mash sketch builder</description>
+    <requirements>
+        <requirement type="package" version="2.1">mash</requirement>
+    </requirements>
+    <version_command>mash --version</version_command>
+    <command detect_errors="exit_code">
+    <![CDATA[
+        python '$__tool_directory__/mash_build_sketch.py'
+          '${out_file}'
+          --threads \${GALAXY_SLOTS:-1}
+          --kmer-size ${kmer_size}
+	      --sketch-size ${sketch_size}
+    ]]>
+    </command>
+    <inputs>
+        <param name="input" type="data" multiple="true" label="Sequences to sketch" />
+        <param name="kmer_size" type="integer" default="21" label="K-mer size" />
+        <param name="sketch_size" type="integer" default="1000" label="Sketch size" />
+    </inputs>
+    <outputs>
+        <data name="out_file" format="data_manager_json" />
+    </outputs>
+    <help>
+    </help>
+    <citations>
+        <citation type="doi">10.1186/gb-2014-15-3-r46</citation>
+    </citations>
+</tool>
--- a/data_manager/mash_build_sketch_refseq.py	Wed Mar 06 19:52:04 2019 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,99 +0,0 @@
-#!/usr/bin/env python
-
-from __future__ import print_function
-
-import argparse
-import datetime
-import errno
-import json
-import os
-import string
-import subprocess
-import sys
-
-
-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_refseq(data_manager_dict, sketch_type, target_directory, 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_name = " ".join([
-        "refseq" + "." +
-        sketch_type + "." +
-        "k21.s1000.msh"
-        "(Created:",
-        now + ")"
-    ])
-
-    database_path = database_value
-    
-    args = [
-        'https://gembox.cbcb.umd.edu/mash/refseq.' + sketch_type + '.k21s1000.msh'
-    ]
-
-    run(['wget'] + args, target_directory)
-
-    data_table_entry = {
-        "value": database_value,
-        "name": database_name,
-        "path": database_path,
-    }
-    
-    _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
-
-
-def main():
-    parser = argparse.ArgumentParser()
-    parser.add_argument('data_manager_json')
-    parser.add_argument('--sketch-type', dest='sketch_type', help='Sketch Type (genome or plasmid or genome+plasmid)' )
-    parser.add_argument( '-t', '--threads', dest='threads', default=1, help='threads' )
-
-    args = parser.parse_args()
-    
-    data_manager_input = json.loads(open(args.data_manager_json).read())
-
-    target_directory = data_manager_input['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_output = {}
-    
-    mash_build_sketch_refseq(
-        data_manager_output,
-        args.sketch_type,
-        target_directory,
-    )
-
-    open(args.data_manager_json, 'wb').write(json.dumps(data_manager_output))
-
-
-if __name__ == "__main__":
-    main()
--- a/data_manager/mash_build_sketch_refseq.xml	Wed Mar 06 19:52:04 2019 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,31 +0,0 @@
-<?xml version="1.0"?>
-<tool id="mash_build_sketch_refseq" name="Mash RefSeq Sketch Builder" tool_type="manage_data" version="2.0">
-    <description>database builder</description>
-    <requirements>
-        <requirement type="package" version="2.1">mash</requirement>
-    </requirements>
-    <version_command>mash --version</version_command>
-    <command detect_errors="exit_code">
-    <![CDATA[
-        python '$__tool_directory__/mash_build_sketch_refseq.py'
-          '${out_file}'
-          --threads \${GALAXY_SLOTS:-1}
-	  --sketch-type ${sketch_type}
-    ]]>
-    </command>
-    <inputs>
-      <param name="sketch_type" type="select" multiple="false" label="Select MiniKraken2 database version to download">
-	    <option value="genome">genome</option>
-            <option value="plasmid">plasmid</option>
-	    <option value="genome+plasmid">genome+plasmid</option>
-        </param>
-    </inputs>
-    <outputs>
-        <data name="out_file" format="data_manager_json" />
-    </outputs>
-    <help>
-    </help>
-    <citations>
-        <citation type="doi">10.1186/gb-2014-15-3-r46</citation>
-    </citations>
-</tool>