changeset 0:5e00d9417f68 draft

planemo upload for repository https://github.com/dfornika/galaxytools/tree/master/data_managers/data_manager_build_kma_index/ commit d9732cd3279d03dcc498bf2eb903f9e6120a9d85
author dfornika
date Thu, 03 Oct 2019 00:30:29 -0400
parents
children 5a64b8429b31
files data_manager/kma_build_index.py data_manager/kma_build_index.xml data_manager_conf.xml tool-data/kma_index.loc.sample tool_data_table_conf.xml.sample
diffstat 4 files changed, 166 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/data_manager/kma_build_index.py	Thu Oct 03 00:30:29 2019 -0400
@@ -0,0 +1,91 @@
+#!/usr/bin/env python
+
+from __future__ import print_function
+
+import argparse
+import errno
+import json
+import os
+import uuid
+import subprocess
+
+
+DATA_TABLE_NAME = "kma_index"
+
+def kma_build_index(kma_index_args, index_name, target_directory, data_table_name=DATA_TABLE_NAME):
+
+    args = [
+        '--k', str(kma_index_args["k"]),
+        '--k_t', str(kma_index_args["k_t"]),
+        '--k_i', str(kma_index_args["k_i"]),
+        '--ML', str(kma_index_args["ML"]),
+        '--ht', str(kma_index_args["ht"]),
+        '--hq', str(kma_index_args["hq"]),
+        str(kma_index_args["fasta"]),
+    ]
+
+    subprocess.check_call(['kma index'] + args, cwd=target_directory)
+
+    data_table_entry = {
+        'data_tables': {
+            data_table_name: [
+                {
+                    "value": uuid.uuid4(),
+                    "name": index_name,
+                    "path": "seq",
+                }
+            ]
+        }
+    }
+
+    return data_table_entry
+
+
+def main(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 = {}
+
+    kma_index_args = {
+        "k": args.k,
+        "k_t": args.k_t,
+        "k_i": args.k_i,
+        "ML": args.ML,
+        "ht": args.ht,
+        "hq": args.hq,
+        "fasta": args.fasta,
+    }
+
+    data_manager_output = kma_build_index(
+        kma_index_args,
+        args.index_name,
+        target_directory,
+    )
+
+    open(args.data_manager_json, 'w').write(json.dumps(data_manager_output))
+
+
+if __name__ == "__main__":
+    parser = argparse.ArgumentParser()
+    parser.add_argument('data_manager_json')
+    parser.add_argument('--k', dest='k', type=int, default=16, help='')
+    parser.add_argument('--k_t', dest='k_t', type=int, default=16, help='')
+    parser.add_argument('--k_i', dest='k_i', type=int, default=16, help='')
+    parser.add_argument('--ML', dest='ML', type=int, default=16, help='')
+    parser.add_argument('--ht', dest='ht', type=float, default=1.0, help='')
+    parser.add_argument('--hq', dest='hq', type=float, default=1.0, help='')
+    parser.add_argument('--name', dest='index_name',help='')
+    parser.add_argument('fasta', nargs='+', help='fasta file(s) to index')
+    args = parser.parse_args()
+    main(args)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/data_manager/kma_build_index.xml	Thu Oct 03 00:30:29 2019 -0400
@@ -0,0 +1,49 @@
+<?xml version="1.0"?>
+<tool id="kma_build_index" name="KMA Index Builder" tool_type="manage_data" version="1.2.12+galaxy0">
+    <description>kma index builder</description>
+    <requirements>
+        <requirement type="package" version="1.2.12">kma</requirement>
+    </requirements>
+    <version_command>kma -v</version_command>
+    <command detect_errors="exit_code">
+    <![CDATA[
+        python '$__tool_directory__/kma_build_index.py'
+          '${out_file}'
+          --k ${k}
+          --k_t ${k_t}
+          --k_i ${k_i}
+	  --ML ${ML}
+	  --ht ${ht}
+	  --hq ${hq}
+	  ${fasta}
+    ]]>
+    </command>
+    <inputs>
+        <param name="k" type="integer" value="16" min="8" max="32" label="kmer size used for indexing the database." />
+        <param name="k_t" type="integer" value="16" min="8" max="32" label="kmer size used to identify template candidates when running KMA." />
+        <param name="k_i" type="integer" value="16" min="8" max="32" label="kmer size used when performing alignments between two sequences." />
+        <param name="ML" type="integer" value="16" label="Minimum length of templates" />
+        <param name="ht" type="float" value="1.0" min="0.0" max="1.0" label="Homology template" />
+        <param name="hq" type="float" value="1.0" min="0.0" max="1.0" label="Homology query" />
+	<param name="fasta" type="data" format="fasta" label="Sequence to index (fasta)" />
+    </inputs>
+    <outputs>
+        <data name="out_file" format="data_manager_json" />
+    </outputs>
+    <help>
+    </help>
+    <citations>
+        <citation type="bibtex">
+	@article{clausen2018rapid,
+            title={Rapid and precise alignment of raw reads against redundant databases with KMA},
+            author={Clausen, Philip TLC and Aarestrup, Frank M and Lund, Ole},
+            journal={BMC bioinformatics},
+            volume={19},
+            number={1},
+            pages={307},
+            year={2018},
+            publisher={BioMed Central}
+        }
+        </citation>
+    </citations>
+</tool>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/data_manager_conf.xml	Thu Oct 03 00:30:29 2019 -0400
@@ -0,0 +1,18 @@
+<data_managers>
+    <data_manager tool_file="data_manager/kma_build_index.xml" id="kma_build_index" version="0.1.0">
+	<data_table name="kma_index">
+	    <output>
+		<column name="value"/>
+		<column name="name"/>
+		<column name="path" output_ref="out_file">
+		    <move type="directory">
+		        <source>${path}</source>
+			<target base="${GALAXY_DATA_MANAGER_DATA_PATH}">kraken2_databases/${path}</target>
+		    </move>
+                    <value_translation>${GALAXY_DATA_MANAGER_DATA_PATH}/kraken2_databases/${path}</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/tool_data_table_conf.xml.sample	Thu Oct 03 00:30:29 2019 -0400
@@ -0,0 +1,8 @@
+<?xml version="1.0"?>
+<tables>
+    <!-- Locations of kma indexes in the required format -->
+    <table name="kma_index" comment_char="#">
+        <columns>value, name, path</columns>
+        <file path="tool-data/kma_index.loc" />
+    </table>
+</tables>