changeset 0:2883a3b7dc56 draft

planemo upload for repository https://github.com/pvanheus/data_manager_rnastar_index_builder commit 265fa1966ea606ebccea8c2865043c014959c10c-dirty
author sanbi-uwc
date Mon, 08 Feb 2016 03:23:34 -0500
parents
children 316b24a15236
files data_manager/rnastar_index_builder.py data_manager/rnastar_index_builder.xml data_manager_conf.xml tool-data/rnastar_indexes.loc.sample tool_dependencies.xml
diffstat 5 files changed, 134 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/data_manager/rnastar_index_builder.py	Mon Feb 08 03:23:34 2016 -0500
@@ -0,0 +1,71 @@
+#!/usr/bin/env python
+
+from __future__ import print_function
+import argparse
+from subprocess import check_call, CalledProcessError
+from json import load, dump
+from os import environ, mkdir
+from os.path import isdir, exists
+import shlex
+import sys
+
+def get_id_name( params, dbkey, fasta_description=None):
+    #TODO: ensure sequence_id is unique and does not already appear in location file
+    sequence_id = params['param_dict']['sequence_id']
+    if not sequence_id:
+        sequence_id = dbkey
+
+    sequence_name = params['param_dict']['sequence_name']
+    if not sequence_name:
+        sequence_name = fasta_description
+        if not sequence_name:
+            sequence_name = dbkey
+    return sequence_id, sequence_name
+
+def make_rnastar_index(output_directory, fasta_filename):
+#     STAR
+#         --runMode genomeGenerate
+#         --genomeDir tempstargenomedir
+#         --genomeFastaFiles $input1
+#         --runThreadsN \${GALAXY_SLOTS:-1}
+#         --genomeChrBinNbits $advanced_options.chr_bin_nbits
+
+    if exists(output_directory) and not isdir(output_directory):
+        print("Output directory path already exists but is not a directory: {}".format(output_directory), file=sys.stderr)
+    elif not exists(output_directory):
+        mkdir(output_directory)
+
+    if 'GALAXY_SLOTS' in environ:
+        nslots = environ['GALAXY_SLOTS']
+    else:
+        nslots = 1
+
+    # cmdline_str = 'STAR --runMode genomeGenerate --genomeDir {} --genomeFastaFiles {} --runThreadsN {}'.format(output_directory,
+    #                                                                                                            fasta_filename,
+    #                                                                                                            nslots)
+    # cmdline = shlex.split(cmdline_str)
+    cmdline = ('touch', '{}/foo'.format(output_directory))
+    try:
+        check_call(cmdline)
+    except CalledProcessError:
+        print("Error building RNA STAR index", file=sys.stderr)
+    return(output_directory)
+
+parser = argparse.ArgumentParser(description="Generate RNA STAR genome index and JSON describing this")
+parser.add_argument('output_filename')
+parser.add_argument('--fasta_filename')
+parser.add_argument('--fasta_dbkey')
+parser.add_argument('--fasta_description', default=None)
+parser.add_argument('--data_table_name', default='rnastar_indexes')
+args = parser.parse_args()
+
+params = load(open(args.output_filename, 'rb'))
+
+output_directory = params['output_data'][0]['extra_files_path']
+
+make_rnastar_index(output_directory, args.fasta_filename)
+(sequence_id, sequence_name) = get_id_name(params, args.fasta_dbkey, args.fasta_description)
+data_table_entry = dict(value=sequence_id, dbkey=args.fasta_dbkey, name=sequence_name, path=output_directory)
+output_datatable_dict = dict('data_tables', dict(args.data_table_name, [data_table_entry]))
+
+dump(output_datatable_dict(open(args.output_file, 'wb')))
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/data_manager/rnastar_index_builder.xml	Mon Feb 08 03:23:34 2016 -0500
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<tool id="rnastar_index_builder" name="RNA STAR index" tool_type="manage_data" version="0.0.1">
+    <description>Build an index for use by the RNA STAR mapping tool</description>
+    <requirements>
+        <requirement type="package" version="2.4.0d">rnastar</requirement>
+    </requirements>
+    <command interpreter="python">bwa_index_builder.py "${out_file}" --fasta_filename "${input1.fields.path}" --fasta_dbkey "${input1.fields.dbkey}" --fasta_description "${input1.fields.name}" --data_table_name "rnastar_indexes"</command>
+    <inputs>
+        <param name="input1" type="data" format="fasta" label="Genome to index(FASTA format)">
+            <option from_data_table="all_fasta"/>
+        </param>
+        <param type="text" name="sequence_name" value="" label="Name of sequence" />
+        <param type="text" name="sequence_id" value="" label="ID for sequence" />
+        <conditional name="advanced_options">
+            <param name="show_advanced_options" type="boolean" label="Show advanced options?"
+                   truevalue="yes" falsevalue="no" checked="false" />
+            <when value="yes">
+                <param name="chr_bin_nbits" type="integer" label="Scale of chromosome bins"
+                       help="value is log2(chrBin), where chrBin is the size of the bins for genome storage: each chromosome will occupy an integer number of bins" default="18" />
+            </when>
+            <when value="no" />
+        </conditional>
+    </inputs>
+    <outputs>
+        <!-- <data from_work_dir="tempstargenomedir" auto_format="false"></data>-->
+        <data name="out_file" format="data_manager_json" />
+    </outputs>
+    <help>Help!</help>
+    <citations><citation></citation>
+    </citations>
+    <tests>
+
+    </tests>
+</tool>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/data_manager_conf.xml	Mon Feb 08 03:23:34 2016 -0500
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<data_managers>
+    <data_manager tool_file="data_manager/rnastar_index_builder.xml" id="rnastar_index_builder" version="0.0.1">
+        <data_table name="rnastar_indexes">
+            <column name="value" />
+            <column name="dbkey" />
+            <column name="path" output_ref="out_dir">
+                <move type="directory" relative_symlinks="True">
+                    <!-- no need to set source, gets taken from out_dir.extra_files_path -->
+                    <target base="${GALAXY_DATA_MANAGER_DATA_PATH}">${dbkey}/rnastar_index/${value}</target>
+                </move>
+                <value_translation>${GALAXY_DATA_MANAGER_DATA_PATH}/{$dbkey}/rnastar_index/${value}/${path}</value_translation>
+                <value_translation type="function">abspath</value_translation>
+            </column>
+        </data_table>
+    </data_manager>
+</data_managers>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tool-data/rnastar_indexes.loc.sample	Mon Feb 08 03:23:34 2016 -0500
@@ -0,0 +1,2 @@
+#TODO: Document
+#<unique_build_id>  <dbkey> <display_name>  <directory_path>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tool_dependencies.xml	Mon Feb 08 03:23:34 2016 -0500
@@ -0,0 +1,10 @@
+<?xml version="1.0"?>
+<tool_dependency>
+    <package name="rnastar" version="2.4.0d">
+        <repository changeset_revision="8562398cb154" name="package_rnastar_2_4_0d" owner="iuc" prior_installation_required="True" toolshed="https://testtoolshed.g2.bx.psu.edu" />
+        <readme>
+            Installs the STAR wrapper and dependency package star - see https://github.com/alexdobin/STAR
+            STAR is a very fast mapper for rna-seq giving junctions if the indexes are constructed with a junction library
+        </readme>
+    </package>
+</tool_dependency>