# HG changeset patch # User diego # Date 1335058575 14400 # Node ID 8593828f91e79a9fe23928e28d1d9f1d9bb2534b # Parent d50638ebd809cfbed4946a9190c10f5b77a225b9 Full galaxy wrapper diff -r d50638ebd809 -r 8593828f91e7 README --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/README Sat Apr 21 21:36:15 2012 -0400 @@ -0,0 +1,56 @@ +RTG Galaxy tools +---------------- + +Install: + +Copy lib/galaxy/datatypes/rtg.py and the tools/rtg directory to the same locations in your galaxy distribution. + +Then edit the following files: + +galaxy_dist/tools/rtg/rtg-galaxy.cfg + + change the rtg variable to point at the rtg file in your RTG installation directory + +galaxy_dist/lib/galaxy/datatypes/registry.py + add + , rtg + to the list of imports beginning with data, tabular, interval... + + +galaxy_dist/tool_conf.xml + Within the node, add + +
+
+ +galaxy_dist/datatypes_config.xml + Within the node, add + + + + + + + + Within the node, add + + diff -r d50638ebd809 -r 8593828f91e7 lib/galaxy/datatypes/rtg.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/lib/galaxy/datatypes/rtg.py Sat Apr 21 21:36:15 2012 -0400 @@ -0,0 +1,239 @@ +""" +rtg datatypes +""" + +import data +from galaxy.datatypes import sequence +import logging, os, sys, time, tempfile, shutil, string, glob, re, subprocess +import galaxy.model +from galaxy.datatypes import metadata +from galaxy.datatypes.metadata import MetadataElement +from galaxy import util +from galaxy.datatypes.images import Html +from galaxy.datatypes.sequence import Sequence +from galaxy.datatypes.binary import Binary +from sniff import * +from pprint import pprint +from ConfigParser import ConfigParser + +log = logging.getLogger(__name__) +basepath = os.path.dirname(__file__) +rtgcfg = os.path.abspath(os.path.join(basepath, "..", "..", "..", "tools", "rtg", "rtg-galaxy.cfg")) + +class FakeSecHead(object): + def __init__(self, fp): + self.fp = fp + self.sechead = '[asection]\n' + def readline(self): + if self.sechead: + try: return self.sechead + finally: self.sechead = None + else: return self.fp.readline() + +cfg = ConfigParser() +cfg.readfp(FakeSecHead(open(rtgcfg))) + +class Sdf( Html ): + composite_type = 'auto_primary_file' + allow_datatype_change = False + file_ext = 'sdf' + + MetadataElement(name="sdfId", desc="SDF Id", readonly="true", param=metadata.MetadataParameter) + MetadataElement(name="source", desc="Source", readonly="true", values=[('UNKNOWN', 'Unknown'), ('CG', 'Complete Genomics'), ('SOLEXA', 'Solexa')], param=metadata.SelectParameter) + MetadataElement(name="sequences", desc="Number of Sequences", readonly="true", param=metadata.MetadataParameter) + MetadataElement(name="hasQuality", desc="Has Quality", readonly="true", values=[('FALSE', 'False'), ('TRUE', 'True')], param=metadata.SelectParameter) + MetadataElement(name="type", desc="Type", readonly="true", values=[('DNA', 'DNA'), ('PROTEIN', 'Protein')], param=metadata.SelectParameter) + MetadataElement(name="paired", desc="Paired-End", readonly="true", values=[('FALSE', 'False'), ('TRUE', 'True')], param=metadata.SelectParameter) + MetadataElement(name="maxLength", desc="Maximum sequence length", readonly="true", param=metadata.MetadataParameter) + MetadataElement(name="minLength", desc="Minimum sequence length", readonly="true", param=metadata.MetadataParameter) + + def __init__( self, **kwd ): + Html.__init__( self, **kwd ) + log.debug( "Rtg log info %s" % ' __init__') + self.add_composite_file( 'format.log', mimetype = 'text/plain', description = 'Log', substitute_name_with_metadata = None, is_binary = False ) + self.add_composite_file( 'done', mimetype = 'text/plain', description = 'Completion', substitute_name_with_metadata = None, is_binary = False ) + self.add_composite_file( 'progress', mimetype = 'text/plain', description = 'Progress', substitute_name_with_metadata = None, is_binary = False ) + self.add_composite_file( 'mainIndex', mimetype = 'application/octet-stream', description = 'Index', substitute_name_with_metadata = None, is_binary = True ) + self.add_composite_file( 'nameIndex0', mimetype = 'application/octet-stream', description = 'Index', substitute_name_with_metadata = None, is_binary = True ) + self.add_composite_file( 'namedata0', mimetype = 'application/octet-stream', description = 'Index', substitute_name_with_metadata = None, is_binary = True ) + self.add_composite_file( 'namepointer0', mimetype = 'application/octet-stream', description = 'Index', substitute_name_with_metadata = None, is_binary = True ) + self.add_composite_file( 'seqdata0', mimetype = 'application/octet-stream', description = 'Index', substitute_name_with_metadata = None, is_binary = True ) + self.add_composite_file( 'seqpointer0', mimetype = 'application/octet-stream', description = 'Index', substitute_name_with_metadata = None, is_binary = True ) + + def generate_primary_file( self, dataset = None ): + log.debug( "Rtg log info %s %s" % ('generate_primary_file',dataset)) + rval = ['RTG SDF Dataset

'] + rval.append('

This SDF dataset is composed of the following files:

    ') + for composite_name, composite_file in self.get_composite_files( dataset = dataset ).iteritems(): + fn = composite_name + log.debug( "Rtg log info %s %s %s" % ('generate_primary_file',fn,composite_file)) + opt_text = '' + if composite_file.optional: + opt_text = ' (optional)' + if composite_file.get('description'): + rval.append( '
  • %s (%s)%s
  • ' % ( fn, fn, composite_file.get('description'), opt_text ) ) + else: + rval.append( '
  • %s%s
  • ' % ( fn, fn, opt_text ) ) + rval.append( '
' ) + return "\n".join( rval ) + + def regenerate_primary_file(self,dataset): + """ + cannot do this until we are setting metadata + """ + log.debug( "Rtg log info %s %s" % ('regenerate_primary_file',dataset)) + bn = dataset.metadata.base_name + flist = os.listdir(dataset.extra_files_path) + rval = ['Files for RTG SDF Dataset %s

Comprises the following files:

    ' % (bn)] + for i,fname in enumerate(flist): + sfname = os.path.split(fname)[-1] + rval.append( '
  • %s' % ( sfname, sfname ) ) + rval.append( '
' ) + f = file(dataset.file_name,'w') + f.write("\n".join( rval )) + f.write('\n') + f.close() + + def set_meta( self, dataset, **kwd ): + Html.set_meta( self, dataset, **kwd ) + self.regenerate_primary_file(dataset) + if (os.path.isdir(dataset.extra_files_path + '/left')): + sdfDir = dataset.extra_files_path + '/left' + dataset.metadata.paired = 'TRUE' + else: + sdfDir = dataset.extra_files_path + dataset.metadata.paired = 'FALSE' + p = os.popen(cfg.get('asection', 'rtg') + ' sdfstats ' + sdfDir,"r") + while 1: + line = p.readline() + if not line: + break + if line.startswith('SDF-ID'): + dataset.metadata.sdfId = line.split(':', 1)[1].strip() + elif line.startswith('Number of sequences'): + dataset.metadata.sequences = line.split(':', 1)[1].strip() + elif line.startswith('Type'): + dataset.metadata.type = line.split(':', 1)[1].strip() + elif line.startswith('Source'): + dataset.metadata.source = line.split(':', 1)[1].strip() + elif line.startswith('Quality scores available'): + dataset.metadata.hasQuality = 'TRUE' + elif line.startswith('Maximum length'): + dataset.metadata.maxLength = line.split(':', 1)[1].strip() + elif line.startswith('Minimum length'): + dataset.metadata.minLength = line.split(':', 1)[1].strip() + if dataset.metadata.hasQuality != 'TRUE': + dataset.metadata.hasQuality = 'FALSE' + + if __name__ == '__main__': + import doctest, sys + doctest.testmod(sys.modules[__name__]) + +class Cgtsv ( Sequence ): + """Class representing a generic CG TSV sequence""" + file_ext = "tsvcg" + + def set_meta( self, dataset, **kwd ): + """ + Set the number of sequences and the number of data lines + in dataset. + """ + if self.max_optional_metadata_filesize >= 0 and dataset.get_size() > self.max_optional_metadata_filesize: + dataset.metadata.sequences = None + return + sequences = 0 + for line in file( dataset.file_name ): + line = line.strip() + if line: + if len(line) == 0 or line.startswith( '#' ) or line.startswith( '>' ): + # We don't count comment lines for sequence data types + continue + sequences += 1 + dataset.metadata.sequences = sequences + def sniff ( self, filename ): + """ + Determines whether the file is in CG TSV format + For details, see http://media.completegenomics.com/documents/DataFileFormats.pdf + """ + bases_regexp = re.compile( "^[NGTAC]*" ) + headers = get_headers( filename, '\t' ) + try: + count = 0 + if len(headers) < 2: + return False + for hdr in headers: + if len( hdr ) > 1 and hdr[0]: + if hdr[0].startswith( '#' ): + continue + if len(hdr) != 3: + return False + if hdr[0].startswith( '>' ): + if hdr[0] != ">flags": + return False + if hdr[1] != "reads": + return False + else: + try: + map( int, [hdr[0]] ) + if not bases_regexp.match(hdr[1]): + return False + except: + return False + count += 1 + if count >= 5: + return True + # Do other necessary checking here... + except: + return False + # If we haven't yet returned False, then... + return True + +class Samix( Binary ): + """Class describing a tabix-ed SAM file""" + file_ext = "sam.gz" + MetadataElement( name="sam_index", desc="SAM Index File", param=metadata.FileParameter, readonly=True, no_value=None, visible=False, optional=True ) + def init_meta( self, dataset, copy_from=None ): + Binary.init_meta( self, dataset, copy_from=copy_from ) + def set_meta( self, dataset, overwrite = True, **kwd ): + """ Creates the index for the SAM file. """ + # These metadata values are not accessible by users, always overwrite + #f = open('/home/alan/galtmp', 'w') + + index_file = dataset.metadata.sam_index + if not index_file: + index_file = dataset.metadata.spec['sam_index'].param.new_file( dataset = dataset ) + # print >>f, 'idx file ', index_file, '\n' + # Create the Sam index + stderr_name = tempfile.NamedTemporaryFile( prefix = "sam_index_stderr" ).name + command = cfg.get('asection', 'rtg') + (' index -f sam %s' % ( dataset.file_name)) + #print >>f, 'idx cmd ', command, '\n' + proc = subprocess.Popen( args=command, shell=True, stderr=open( stderr_name, 'wb' ) ) + exit_code = proc.wait() + #Did index succeed? + stderr = open( stderr_name ).read().strip() + if stderr: + if exit_code != 0: + os.unlink( stderr_name ) #clean up + f.close(); + raise Exception, "Error Setting tabix-ed SAM Metadata: %s" % stderr + else: + print stderr + #print >>f, 'move ', dataset.file_name, '.tbi to ', index_file.file_name + shutil.move(dataset.file_name + '.tbi', index_file.file_name) + dataset.metadata.sam_index = index_file + # f.close(); + # Remove temp file + os.unlink( stderr_name ) + def set_peek( self, dataset, is_multi_byte=False ): + if not dataset.dataset.purged: + dataset.peek = "Tabix-ed sam alignments file" + dataset.blurb = data.nice_size( dataset.get_size() ) + else: + dataset.peek = 'file does not exist' + dataset.blurb = 'file purged from disk' + def display_peek( self, dataset ): + try: + return dataset.peek + except: + return "Tabix-ed sam alignments file (%s)" % ( data.nice_size( dataset.get_size() ) ) + diff -r d50638ebd809 -r 8593828f91e7 rtg.py --- a/rtg.py Sat Apr 21 21:32:21 2012 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,239 +0,0 @@ -""" -rtg datatypes -""" - -import data -from galaxy.datatypes import sequence -import logging, os, sys, time, tempfile, shutil, string, glob, re, subprocess -import galaxy.model -from galaxy.datatypes import metadata -from galaxy.datatypes.metadata import MetadataElement -from galaxy import util -from galaxy.datatypes.images import Html -from galaxy.datatypes.sequence import Sequence -from galaxy.datatypes.binary import Binary -from sniff import * -from pprint import pprint -from ConfigParser import ConfigParser - -log = logging.getLogger(__name__) -basepath = os.path.dirname(__file__) -rtgcfg = os.path.abspath(os.path.join(basepath, "..", "..", "..", "tools", "rtg", "rtg-galaxy.cfg")) - -class FakeSecHead(object): - def __init__(self, fp): - self.fp = fp - self.sechead = '[asection]\n' - def readline(self): - if self.sechead: - try: return self.sechead - finally: self.sechead = None - else: return self.fp.readline() - -cfg = ConfigParser() -cfg.readfp(FakeSecHead(open(rtgcfg))) - -class Sdf( Html ): - composite_type = 'auto_primary_file' - allow_datatype_change = False - file_ext = 'sdf' - - MetadataElement(name="sdfId", desc="SDF Id", readonly="true", param=metadata.MetadataParameter) - MetadataElement(name="source", desc="Source", readonly="true", values=[('UNKNOWN', 'Unknown'), ('CG', 'Complete Genomics'), ('SOLEXA', 'Solexa')], param=metadata.SelectParameter) - MetadataElement(name="sequences", desc="Number of Sequences", readonly="true", param=metadata.MetadataParameter) - MetadataElement(name="hasQuality", desc="Has Quality", readonly="true", values=[('FALSE', 'False'), ('TRUE', 'True')], param=metadata.SelectParameter) - MetadataElement(name="type", desc="Type", readonly="true", values=[('DNA', 'DNA'), ('PROTEIN', 'Protein')], param=metadata.SelectParameter) - MetadataElement(name="paired", desc="Paired-End", readonly="true", values=[('FALSE', 'False'), ('TRUE', 'True')], param=metadata.SelectParameter) - MetadataElement(name="maxLength", desc="Maximum sequence length", readonly="true", param=metadata.MetadataParameter) - MetadataElement(name="minLength", desc="Minimum sequence length", readonly="true", param=metadata.MetadataParameter) - - def __init__( self, **kwd ): - Html.__init__( self, **kwd ) - log.debug( "Rtg log info %s" % ' __init__') - self.add_composite_file( 'format.log', mimetype = 'text/plain', description = 'Log', substitute_name_with_metadata = None, is_binary = False ) - self.add_composite_file( 'done', mimetype = 'text/plain', description = 'Completion', substitute_name_with_metadata = None, is_binary = False ) - self.add_composite_file( 'progress', mimetype = 'text/plain', description = 'Progress', substitute_name_with_metadata = None, is_binary = False ) - self.add_composite_file( 'mainIndex', mimetype = 'application/octet-stream', description = 'Index', substitute_name_with_metadata = None, is_binary = True ) - self.add_composite_file( 'nameIndex0', mimetype = 'application/octet-stream', description = 'Index', substitute_name_with_metadata = None, is_binary = True ) - self.add_composite_file( 'namedata0', mimetype = 'application/octet-stream', description = 'Index', substitute_name_with_metadata = None, is_binary = True ) - self.add_composite_file( 'namepointer0', mimetype = 'application/octet-stream', description = 'Index', substitute_name_with_metadata = None, is_binary = True ) - self.add_composite_file( 'seqdata0', mimetype = 'application/octet-stream', description = 'Index', substitute_name_with_metadata = None, is_binary = True ) - self.add_composite_file( 'seqpointer0', mimetype = 'application/octet-stream', description = 'Index', substitute_name_with_metadata = None, is_binary = True ) - - def generate_primary_file( self, dataset = None ): - log.debug( "Rtg log info %s %s" % ('generate_primary_file',dataset)) - rval = ['RTG SDF Dataset

'] - rval.append('

This SDF dataset is composed of the following files:

    ') - for composite_name, composite_file in self.get_composite_files( dataset = dataset ).iteritems(): - fn = composite_name - log.debug( "Rtg log info %s %s %s" % ('generate_primary_file',fn,composite_file)) - opt_text = '' - if composite_file.optional: - opt_text = ' (optional)' - if composite_file.get('description'): - rval.append( '
  • %s (%s)%s
  • ' % ( fn, fn, composite_file.get('description'), opt_text ) ) - else: - rval.append( '
  • %s%s
  • ' % ( fn, fn, opt_text ) ) - rval.append( '
' ) - return "\n".join( rval ) - - def regenerate_primary_file(self,dataset): - """ - cannot do this until we are setting metadata - """ - log.debug( "Rtg log info %s %s" % ('regenerate_primary_file',dataset)) - bn = dataset.metadata.base_name - flist = os.listdir(dataset.extra_files_path) - rval = ['Files for RTG SDF Dataset %s

Comprises the following files:

    ' % (bn)] - for i,fname in enumerate(flist): - sfname = os.path.split(fname)[-1] - rval.append( '
  • %s' % ( sfname, sfname ) ) - rval.append( '
' ) - f = file(dataset.file_name,'w') - f.write("\n".join( rval )) - f.write('\n') - f.close() - - def set_meta( self, dataset, **kwd ): - Html.set_meta( self, dataset, **kwd ) - self.regenerate_primary_file(dataset) - if (os.path.isdir(dataset.extra_files_path + '/left')): - sdfDir = dataset.extra_files_path + '/left' - dataset.metadata.paired = 'TRUE' - else: - sdfDir = dataset.extra_files_path - dataset.metadata.paired = 'FALSE' - p = os.popen(cfg.get('asection', 'rtg') + ' sdfstats ' + sdfDir,"r") - while 1: - line = p.readline() - if not line: - break - if line.startswith('SDF-ID'): - dataset.metadata.sdfId = line.split(':', 1)[1].strip() - elif line.startswith('Number of sequences'): - dataset.metadata.sequences = line.split(':', 1)[1].strip() - elif line.startswith('Type'): - dataset.metadata.type = line.split(':', 1)[1].strip() - elif line.startswith('Source'): - dataset.metadata.source = line.split(':', 1)[1].strip() - elif line.startswith('Quality scores available'): - dataset.metadata.hasQuality = 'TRUE' - elif line.startswith('Maximum length'): - dataset.metadata.maxLength = line.split(':', 1)[1].strip() - elif line.startswith('Minimum length'): - dataset.metadata.minLength = line.split(':', 1)[1].strip() - if dataset.metadata.hasQuality != 'TRUE': - dataset.metadata.hasQuality = 'FALSE' - - if __name__ == '__main__': - import doctest, sys - doctest.testmod(sys.modules[__name__]) - -class Cgtsv ( Sequence ): - """Class representing a generic CG TSV sequence""" - file_ext = "tsvcg" - - def set_meta( self, dataset, **kwd ): - """ - Set the number of sequences and the number of data lines - in dataset. - """ - if self.max_optional_metadata_filesize >= 0 and dataset.get_size() > self.max_optional_metadata_filesize: - dataset.metadata.sequences = None - return - sequences = 0 - for line in file( dataset.file_name ): - line = line.strip() - if line: - if len(line) == 0 or line.startswith( '#' ) or line.startswith( '>' ): - # We don't count comment lines for sequence data types - continue - sequences += 1 - dataset.metadata.sequences = sequences - def sniff ( self, filename ): - """ - Determines whether the file is in CG TSV format - For details, see http://media.completegenomics.com/documents/DataFileFormats.pdf - """ - bases_regexp = re.compile( "^[NGTAC]*" ) - headers = get_headers( filename, '\t' ) - try: - count = 0 - if len(headers) < 2: - return False - for hdr in headers: - if len( hdr ) > 1 and hdr[0]: - if hdr[0].startswith( '#' ): - continue - if len(hdr) != 3: - return False - if hdr[0].startswith( '>' ): - if hdr[0] != ">flags": - return False - if hdr[1] != "reads": - return False - else: - try: - map( int, [hdr[0]] ) - if not bases_regexp.match(hdr[1]): - return False - except: - return False - count += 1 - if count >= 5: - return True - # Do other necessary checking here... - except: - return False - # If we haven't yet returned False, then... - return True - -class Samix( Binary ): - """Class describing a tabix-ed SAM file""" - file_ext = "sam.gz" - MetadataElement( name="sam_index", desc="SAM Index File", param=metadata.FileParameter, readonly=True, no_value=None, visible=False, optional=True ) - def init_meta( self, dataset, copy_from=None ): - Binary.init_meta( self, dataset, copy_from=copy_from ) - def set_meta( self, dataset, overwrite = True, **kwd ): - """ Creates the index for the SAM file. """ - # These metadata values are not accessible by users, always overwrite - #f = open('/home/alan/galtmp', 'w') - - index_file = dataset.metadata.sam_index - if not index_file: - index_file = dataset.metadata.spec['sam_index'].param.new_file( dataset = dataset ) - # print >>f, 'idx file ', index_file, '\n' - # Create the Sam index - stderr_name = tempfile.NamedTemporaryFile( prefix = "sam_index_stderr" ).name - command = cfg.get('asection', 'rtg') + (' index -f sam %s' % ( dataset.file_name)) - #print >>f, 'idx cmd ', command, '\n' - proc = subprocess.Popen( args=command, shell=True, stderr=open( stderr_name, 'wb' ) ) - exit_code = proc.wait() - #Did index succeed? - stderr = open( stderr_name ).read().strip() - if stderr: - if exit_code != 0: - os.unlink( stderr_name ) #clean up - f.close(); - raise Exception, "Error Setting tabix-ed SAM Metadata: %s" % stderr - else: - print stderr - #print >>f, 'move ', dataset.file_name, '.tbi to ', index_file.file_name - shutil.move(dataset.file_name + '.tbi', index_file.file_name) - dataset.metadata.sam_index = index_file - # f.close(); - # Remove temp file - os.unlink( stderr_name ) - def set_peek( self, dataset, is_multi_byte=False ): - if not dataset.dataset.purged: - dataset.peek = "Tabix-ed sam alignments file" - dataset.blurb = data.nice_size( dataset.get_size() ) - else: - dataset.peek = 'file does not exist' - dataset.blurb = 'file purged from disk' - def display_peek( self, dataset ): - try: - return dataset.peek - except: - return "Tabix-ed sam alignments file (%s)" % ( data.nice_size( dataset.get_size() ) ) - diff -r d50638ebd809 -r 8593828f91e7 tools/rtg/cg2sdf.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tools/rtg/cg2sdf.xml Sat Apr 21 21:36:15 2012 -0400 @@ -0,0 +1,17 @@ + + to SDF with rtg cg2sdf + galaxy-rtg-wrapper.sh cg2sdf +$input1 +-o ${output.extra_files_path} >$output + + + + + + + + +This tool formats a CG TSV file to RTG SDF. + + + diff -r d50638ebd809 -r 8593828f91e7 tools/rtg/cgmap.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tools/rtg/cgmap.xml Sat Apr 21 21:36:15 2012 -0400 @@ -0,0 +1,36 @@ + + reads with rtg cg map + galaxy-rtg-map-wrapper.sh paired $output1 $output2 $__new_file_path__ +cgmap -t ${template.extra_files_path} +--repeat-freq ${repeat} +-i ${reads.extra_files_path} +--min-insert-size $minlength --max-insert-size $maxlength +--max-mated-score $maxscore --max-unmated-score $maxuscore + + + + + + + + + + + + + + + + + + + + + + + + +This tool performs a NGS read mapping using rtg cgmap + + + diff -r d50638ebd809 -r 8593828f91e7 tools/rtg/cgsim.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tools/rtg/cgsim.xml Sat Apr 21 21:36:15 2012 -0400 @@ -0,0 +1,43 @@ + + with RTG cgsim + galaxy-rtg-wrapper.sh cgsim +-t ${input.extra_files_path} +#if $limit.sType == "numreads": +-n $limit.n +#else +-c $limit.c +#end if +-m $m +-M $M +--seed $seed +-o ${output.extra_files_path} >$output + + + + + + + + + + + + + + + + + + + + + + + + + + +This tool creates an SDF containing randomly generated CG reads. + + + diff -r d50638ebd809 -r 8593828f91e7 tools/rtg/coverage.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tools/rtg/coverage.xml Sat Apr 21 21:36:15 2012 -0400 @@ -0,0 +1,26 @@ + + coverage + galaxy-rtg-singleoutput-wrapper.sh $output $output.id $__new_file_path__ coverage.bed +coverage -t ${template.extra_files_path} +$input1 +#for $i in $inputs + ${i.input} +#end for +-Z + + + + + + + + + + + + + +This tool calculates coverage using rtg coverage + + + diff -r d50638ebd809 -r 8593828f91e7 tools/rtg/format_fasta.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tools/rtg/format_fasta.xml Sat Apr 21 21:36:15 2012 -0400 @@ -0,0 +1,41 @@ + + to SDF with rtg format + galaxy-rtg-wrapper.sh format +#if $paired.sPaired == "paired": +-l $paired.input1 +-r $paired.input2 +#else: +$paired.input1 +#end if +#if str($protein) == "true": +-p +#end if +-o ${output.extra_files_path} >$output + + + + + + + + + + + + + + + + + + + + + + + + +This tool formats a FASTA file to RTG SDF. + + + diff -r d50638ebd809 -r 8593828f91e7 tools/rtg/format_fastq.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tools/rtg/format_fastq.xml Sat Apr 21 21:36:15 2012 -0400 @@ -0,0 +1,48 @@ + + to SDF with rtg format + galaxy-rtg-wrapper.sh format +-f fastq +#if $paired.sPaired == "paired": +-l $paired.input1 +-r $paired.input2 +#else: +$paired.input1 +#end if +#if str($protein) == "true": +-p +#end if +-q $quality_format +-o ${output.extra_files_path} >$output + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +This tool formats a FASTQ file to RTG SDF. + + + diff -r d50638ebd809 -r 8593828f91e7 tools/rtg/galaxy-rtg-map-wrapper.sh --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tools/rtg/galaxy-rtg-map-wrapper.sh Sat Apr 21 21:36:15 2012 -0400 @@ -0,0 +1,50 @@ +#!/bin/sh + +DIR="$( cd "$( dirname "$0" )" && pwd )" +source $DIR/rtg-galaxy.cfg + +# Temporary storage for STDERR +# Temporary storage for mapping output +TMP_STDERR=$(mktemp) || exit 1 + +#echo "$(date) START $@" >>~/galaxy-rtg-wrapper.log + +paired=$1 +shift +outputfile=$1 +shift +if [ $paired == "paired" ]; then + outputfile2=$1 +fi +shift +outputdir=$1 +shift + +# Run the program, send STDERR to temporary file +tmpout=$outputdir/tmpout$$ +$rtg "$@" -o $tmpout --legacy-cigars 2> $TMP_STDERR + +#check program's exit code +if (( $? )); then + #echo "$(date) FAIL $@" >>~/galaxy-rtg-wrapper.log + #cat $TMP_STDERR >>~/galaxy-rtg-wrapper.log + #Program failed, send STDERR to real STDERR + cat $TMP_STDERR >&2 + rm $TMP_STDERR + rm -rf $tmpout + exit 1 +fi + +if [ -f $tmpout/mated.sam.gz ]; then + mv $tmpout/mated.sam.gz $outputfile + [ "$outputfile2" ] && mv $tmpout/unmated.sam.gz $outputfile2 +else + mv $tmpout/alignments.sam.gz $outputfile +fi + +#echo "$(date) DONE $@" >>~/galaxy-rtg-wrapper.log + +#Program succeeded, delete STDERR file +rm $TMP_STDERR +rm -rf $tmpout +exit 0 diff -r d50638ebd809 -r 8593828f91e7 tools/rtg/galaxy-rtg-mapx-wrapper.sh --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tools/rtg/galaxy-rtg-mapx-wrapper.sh Sat Apr 21 21:36:15 2012 -0400 @@ -0,0 +1,39 @@ +#!/bin/sh + +DIR="$( cd "$( dirname "$0" )" && pwd )" +source $DIR/rtg-galaxy.cfg + +# Temporary storage for STDERR +# Temporary storage for mapping output +TMP_STDERR=$(mktemp) || exit 1 + +#echo "$(date) START $@" >>~/galaxy-rtg-wrapper.log + +outputfile=$1 +shift +outputdir=$1 +shift + +# Run the program, send STDERR to temporary file +tmpout=$outputdir/tmpout$$ +$rtg "$@" -Z -o $tmpout 2> $TMP_STDERR + +#check program's exit code +if (( $? )); then + #echo "$(date) FAIL $@" >>~/galaxy-rtg-wrapper.log + #cat $TMP_STDERR >>~/galaxy-rtg-wrapper.log + #Program failed, send STDERR to real STDERR + cat $TMP_STDERR >&2 + rm $TMP_STDERR + rm -rf $tmpout + exit 1 +fi + +mv $tmpout/alignments.txt $outputfile + +#echo "$(date) DONE $@" >>~/galaxy-rtg-wrapper.log + +#Program succeeded, delete STDERR file +rm $TMP_STDERR +rm -rf $tmpout +exit 0 diff -r d50638ebd809 -r 8593828f91e7 tools/rtg/galaxy-rtg-sdf2fasta-wrapper.sh --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tools/rtg/galaxy-rtg-sdf2fasta-wrapper.sh Sat Apr 21 21:36:15 2012 -0400 @@ -0,0 +1,46 @@ +#!/bin/sh + +DIR="$( cd "$( dirname "$0" )" && pwd )" +source $DIR/rtg-galaxy.cfg + +# Temporary storage for STDERR +# Temporary storage for mapping output +TMP_STDERR=$(mktemp) || exit 1 + +#echo "$(date) START $@" >>~/galaxy-rtg-wrapper.log + +outputfile=$1 +shift +outputid=$1 +shift +outputdir=$1 +shift + +# Run the program, send STDERR to temporary file +tmpout=$outputdir/tmpout$$ +$rtg sdf2fasta "$@" -o $tmpout 2> $TMP_STDERR + +#check program's exit code +if (( $? )); then + #echo "$(date) FAIL $@" >>~/galaxy-rtg-wrapper.log + #cat $TMP_STDERR >>~/galaxy-rtg-wrapper.log + #Program failed, send STDERR to real STDERR + cat $TMP_STDERR >&2 + rm $TMP_STDERR + rm -rf $tmpout + exit 1 +fi + +if [ -f ${tmpout}_1.fasta ]; then + mv ${tmpout}_1.fasta $outputfile + mv ${tmpout}_2.fasta $outputdir/primary_${outputid}_output2_visible_fasta +else + mv ${tmpout}.fasta $outputfile +fi + +#echo "$(date) DONE $@" >>~/galaxy-rtg-wrapper.log + +#Program succeeded, delete STDERR file +rm $TMP_STDERR +rm -rf $tmpout +exit 0 diff -r d50638ebd809 -r 8593828f91e7 tools/rtg/galaxy-rtg-singleoutput-wrapper.sh --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tools/rtg/galaxy-rtg-singleoutput-wrapper.sh Sat Apr 21 21:36:15 2012 -0400 @@ -0,0 +1,43 @@ +#!/bin/sh + +DIR="$( cd "$( dirname "$0" )" && pwd )" +source $DIR/rtg-galaxy.cfg + +# Temporary storage for STDERR +# Temporary storage for mapping output +TMP_STDERR=$(mktemp) || exit 1 + +#echo "$(date) START $@" >>~/galaxy-rtg-wrapper.log + +outputfile=$1 +shift +outputid=$1 +shift +outputdir=$1 +shift +outputfilename=$1 +shift + +# Run the program, send STDERR to temporary file +tmpout=$outputdir/tmpout$$ +$rtg "$@" -o $tmpout 2> $TMP_STDERR + +#check program's exit code +if (( $? )); then + #echo "$(date) FAIL $@" >>~/galaxy-rtg-wrapper.log + #cat $TMP_STDERR >>~/galaxy-rtg-wrapper.log + #Program failed, send STDERR to real STDERR + cat $TMP_STDERR >&2 + rm $TMP_STDERR + rm -rf $tmpout + exit 1 +fi + +mv $tmpout/$outputfilename $outputfile + +#echo "$(date) DONE $@" >>~/galaxy-rtg-wrapper.log + +#Program succeeded, delete STDERR file +rm $TMP_STDERR +rm -rf $tmpout +exit 0 diff -r d50638ebd809 -r 8593828f91e7 tools/rtg/galaxy-rtg-snpintersect-wrapper.sh --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tools/rtg/galaxy-rtg-snpintersect-wrapper.sh Sat Apr 21 21:36:15 2012 -0400 @@ -0,0 +1,26 @@ +#!/bin/sh + +DIR="$( cd "$( dirname "$0" )" && pwd )" +source $DIR/rtg-galaxy.cfg + +# Temporary storage for STDERR +TMP_STDERR=$(mktemp) || exit 1 + +#echo "$(date) START $@" >>~/galaxy-rtg-wrapper.log +# Run the program, send STDERR to temporary file +$rtg snpintersect "$@" 2> $TMP_STDERR + +#check program's exit code +if (( $? )); then + #echo "$(date) FAIL $@" >>~/galaxy-rtg-wrapper.log + #cat $TMP_STDERR >>~/galaxy-rtg-wrapper.log + #Program failed, send STDERR to real STDERR + cat $TMP_STDERR >&2 + rm $TMP_STDERR + exit 1 +fi +#echo "$(date) DONE $@" >>~/galaxy-rtg-wrapper.log + +#Program succeeded, delete STDERR file +rm $TMP_STDERR +exit 0 diff -r d50638ebd809 -r 8593828f91e7 tools/rtg/galaxy-rtg-snpsim-wrapper.sh --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tools/rtg/galaxy-rtg-snpsim-wrapper.sh Sat Apr 21 21:36:15 2012 -0400 @@ -0,0 +1,40 @@ +#!/bin/sh + +DIR="$( cd "$( dirname "$0" )" && pwd )" +source $DIR/rtg-galaxy.cfg + +# Temporary storage for STDERR +# Temporary storage for mapping output +TMP_STDERR=$(mktemp) || exit 1 + +#echo "$(date) START $@" >>~/galaxy-rtg-wrapper.log + +snpfile=$1 +shift +snpoutputdir=$1 +shift + +# Run the program, send STDERR to temporary file +mkdir $snpoutputdir +tmpout=$snpoutputdir/snps.vcf +$rtg "$@" -s $tmpout -Z 2> $TMP_STDERR + +#check program's exit code +if (( $? )); then + #echo "$(date) FAIL $@" >>~/galaxy-rtg-wrapper.log + #cat $TMP_STDERR >>~/galaxy-rtg-wrapper.log + #Program failed, send STDERR to real STDERR + cat $TMP_STDERR >&2 + rm $TMP_STDERR + rm -rf $tmpout + exit 1 +fi + +mv $tmpout $snpfile + +#echo "$(date) DONE $@" >>~/galaxy-rtg-wrapper.log + +#Program succeeded, delete STDERR file +rm $TMP_STDERR +rm -rf $snpoutputdir +exit 0 diff -r d50638ebd809 -r 8593828f91e7 tools/rtg/galaxy-rtg-wrapper.sh --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tools/rtg/galaxy-rtg-wrapper.sh Sat Apr 21 21:36:15 2012 -0400 @@ -0,0 +1,26 @@ +#!/bin/sh + +DIR="$( cd "$( dirname "$0" )" && pwd )" +source $DIR/rtg-galaxy.cfg + +# Temporary storage for STDERR +TMP_STDERR=$(mktemp) || exit 1 + +#echo "$(date) START $@" >>~/galaxy-rtg-wrapper.log +# Run the program, send STDERR to temporary file +$rtg "$@" 2> $TMP_STDERR + +#check program's exit code +if (( $? )); then + #echo "$(date) FAIL $@" >>~/galaxy-rtg-wrapper.log + #cat $TMP_STDERR >>~/galaxy-rtg-wrapper.log + #Program failed, send STDERR to real STDERR + cat $TMP_STDERR >&2 + rm $TMP_STDERR + exit 1 +fi +#echo "$(date) DONE $@" >>~/galaxy-rtg-wrapper.log + +#Program succeeded, delete STDERR file +rm $TMP_STDERR +exit 0 diff -r d50638ebd809 -r 8593828f91e7 tools/rtg/genomesim.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tools/rtg/genomesim.xml Sat Apr 21 21:36:15 2012 -0400 @@ -0,0 +1,20 @@ + + with rtg genomesim + galaxy-rtg-wrapper.sh genomesim +--min-length $minlength --max-length $maxlength -n $numseqs --seed $seed +-o ${output.extra_files_path} >$output + + + + + + + + + + + +This tool creates an SDF containing randomly generated contigs representing a genome. + + + diff -r d50638ebd809 -r 8593828f91e7 tools/rtg/map.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tools/rtg/map.xml Sat Apr 21 21:36:15 2012 -0400 @@ -0,0 +1,55 @@ + + reads with rtg map + galaxy-rtg-map-wrapper.sh $paired.sPaired $output1 $output2 $__new_file_path__ +map -t ${template.extra_files_path} +--repeat-freq ${repeat} +-i ${reads.extra_files_path} +#if $paired.sPaired == "paired": +--min-insert-size $paired.minlength --max-insert-size $paired.maxlength +--max-mated-score $paired.maxscore --max-unmated-score $paired.maxuscore +#else: +--max-alignment-score $paired.maxscore +#end if + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + paired['sPaired'] == "paired" + + + + +This tool performs a NGS read mapping using rtg map + + + diff -r d50638ebd809 -r 8593828f91e7 tools/rtg/mapf.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tools/rtg/mapf.xml Sat Apr 21 21:36:15 2012 -0400 @@ -0,0 +1,53 @@ + + reads with rtg mapf + galaxy-rtg-map-wrapper.sh $paired.sPaired $output1 $output2 $__new_file_path__ +mapf -t ${template.extra_files_path} +--repeat-freq ${repeat} +-i ${reads.extra_files_path} +#if $paired.sPaired == "paired": +--min-insert-size $paired.minlength --max-insert-size $paired.maxlength +--max-mated-score $paired.maxscore --max-unmated-score $paired.maxuscore +#else: +--max-alignment-score $paired.maxscore +#end if +--sam + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +This tool filters reads for contaminant sequences by mapping them against the contaminant template using rtg mapf + + + diff -r d50638ebd809 -r 8593828f91e7 tools/rtg/mapx.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tools/rtg/mapx.xml Sat Apr 21 21:36:15 2012 -0400 @@ -0,0 +1,29 @@ + + protein reads with rtg mapx + galaxy-rtg-mapx-wrapper.sh $output1 $__new_file_path__ +mapx -t ${template.extra_files_path} +--repeat-freq ${repeat} +-i ${reads.extra_files_path} +--max-alignment-score $maxscore + + + + + + + + + + + + + + + + + + +This tool performs a NGS protein read mapping using rtg mapx + + + diff -r d50638ebd809 -r 8593828f91e7 tools/rtg/readsim.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tools/rtg/readsim.xml Sat Apr 21 21:36:15 2012 -0400 @@ -0,0 +1,75 @@ + + with RTG readsim + galaxy-rtg-wrapper.sh readsim +-t ${input.extra_files_path} +#if str($input2) != "None": +-T ${input2.extra_files_path} +#end if +#if $limit.sType == "numreads": +-n $limit.n +#else +-c $limit.c +#end if +-m $m +-M $M +--machine $machine.sMachine +#if $machine.sMachine == "illumina_se": +-r $machine.r +#else if $machine.sMachine == "illumina_pe": +-L $machine.L +-R $machine.R +#else if $machine.sMachine == "454_pe": +--454-min-total-size $machine.454-min +--454-max-total-size $machine.454-max +#end if +--seed $seed +-o ${output.extra_files_path} >$output + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +This tool creates an SDF containing randomly generated reads. + + + diff -r d50638ebd809 -r 8593828f91e7 tools/rtg/rtg-galaxy.cfg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tools/rtg/rtg-galaxy.cfg Sat Apr 21 21:36:15 2012 -0400 @@ -0,0 +1,2 @@ +rtg=/rtgshare/tools/rtg-latest/rtg + diff -r d50638ebd809 -r 8593828f91e7 tools/rtg/sdf2fasta.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tools/rtg/sdf2fasta.xml Sat Apr 21 21:36:15 2012 -0400 @@ -0,0 +1,20 @@ + + from SDF with sdf2fasta + galaxy-rtg-sdf2fasta-wrapper.sh $output1 $output1.id $__new_file_path__ +-l $l +-i ${input.extra_files_path} +-Z + + + + + + + + + + +This tool converts an RTG SDF to FASTA. + + + diff -r d50638ebd809 -r 8593828f91e7 tools/rtg/snp.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tools/rtg/snp.xml Sat Apr 21 21:36:15 2012 -0400 @@ -0,0 +1,37 @@ + + from SAM files with rtg snp + galaxy-rtg-singleoutput-wrapper.sh $output $output.id $__new_file_path__ snps.vcf +snp -t ${template.extra_files_path} +--max-as-mated $maxscore +--max-as-unmated $maxuscore +--machine-errors $machine +$input1 +#for $i in $inputs + ${i.input} +#end for +-Z + + + + + + + + + + + + + + + + + + + + + +This tool calls snps from SAM files + + + diff -r d50638ebd809 -r 8593828f91e7 tools/rtg/snpintersection.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tools/rtg/snpintersection.xml Sat Apr 21 21:36:15 2012 -0400 @@ -0,0 +1,19 @@ + + with RTG SNP intersection + galaxy-rtg-snpintersect-wrapper.sh +-Z -i ${input} +-I ${input2} +-o ${output.extra_files_path} >$output + + + + + + + + + +This tool creates an SNP intersection. + + + diff -r d50638ebd809 -r 8593828f91e7 tools/rtg/snpsim.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tools/rtg/snpsim.xml Sat Apr 21 21:36:15 2012 -0400 @@ -0,0 +1,30 @@ + + with rtg snpsim + galaxy-rtg-snpsim-wrapper.sh ${output3} ${output3.extra_files_path} snpsim + --seed $seed -i ${input.extra_files_path} +-o ${output.extra_files_path} +#if $str($diploid) == "true": +-O ${output2.extra_files_path} +#end if +>$output + + + + + + + + + + + + diploid == "true" + + + + + +This tool creates a simulated mutation of a reference genome. Can generate either haploid or diploid mutations. + + +