Mercurial > repos > sanbi-uwc > data_manager_rnastar_index_builder
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>