changeset 1:14fb4b4872e3 draft

Uploaded
author jackcurragh
date Tue, 22 Mar 2022 12:34:36 +0000
parents 1b109d213a42
children cd79614871c2
files bowtie_transcriptome_wrapper/bowtie_transcriptome_wrapper.py bowtie_transcriptome_wrapper/bowtie_transcriptomic_wrapper.xml bowtie_transcriptome_wrapper/bowtie_wrapper.py bowtie_transcriptome_wrapper/test-data/bowtie_in2.fastqsanger bowtie_transcriptome_wrapper/test-data/bowtie_in5.fastqillumina bowtie_transcriptome_wrapper/test-data/bowtie_in5.fastqsanger bowtie_transcriptome_wrapper/test-data/bowtie_in5.fastqsolexa bowtie_transcriptome_wrapper/test-data/bowtie_in6.fastqillumina bowtie_transcriptome_wrapper/test-data/bowtie_in6.fastqsanger bowtie_transcriptome_wrapper/test-data/bowtie_in6.fastqsolexa bowtie_transcriptome_wrapper/test-data/bowtie_indices.loc bowtie_transcriptome_wrapper/test-data/bowtie_out10.sam bowtie_transcriptome_wrapper/test-data/bowtie_out11.txt bowtie_transcriptome_wrapper/test-data/bowtie_out6.sam bowtie_transcriptome_wrapper/test-data/bowtie_out7.sam bowtie_transcriptome_wrapper/test-data/bowtie_out8_1.fastq bowtie_transcriptome_wrapper/test-data/bowtie_out8_1.fastqillumina.sorted bowtie_transcriptome_wrapper/test-data/bowtie_out8_1.fastqsolexa.sorted bowtie_transcriptome_wrapper/test-data/bowtie_out8_2.fastq bowtie_transcriptome_wrapper/test-data/bowtie_out8_2.fastqillumina.sorted bowtie_transcriptome_wrapper/test-data/bowtie_out8_2.fastqsolexa.sorted bowtie_transcriptome_wrapper/test-data/bowtie_out9.sam bowtie_transcriptome_wrapper/test-data/phiX.fasta bowtie_transcriptome_wrapper/tool_data_table_conf.xml.test
diffstat 24 files changed, 479 insertions(+), 1350 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bowtie_transcriptome_wrapper/bowtie_transcriptome_wrapper.py	Tue Mar 22 12:34:36 2022 +0000
@@ -0,0 +1,472 @@
+#!/usr/bin/env python
+
+"""
+Runs Bowtie on single-end or paired-end data.
+
+usage: bowtie_wrapper.py [options]
+    -t, --threads=t: The number of threads to run
+    -o, --output=o: The output file
+    --output_unmapped_reads=: File name for unmapped reads (single-end)
+    --output_unmapped_reads_l=: File name for unmapped reads (left, paired-end)
+    --output_unmapped_reads_r=: File name for unmapped reads (right, paired-end)
+    --output_suppressed_reads=: File name for suppressed reads because of max setting (single-end)
+    --output_suppressed_reads_l=: File name for suppressed reads because of max setting (left, paired-end)
+    --output_suppressed_reads_r=: File name for suppressed reads because of max setting (right, paired-end)
+    --output_mapping_stats=: File name for mapping statistics (output on stderr by bowtie)
+    -i, --input1=i: The (forward or single-end) reads file in Sanger FASTQ format
+    -I, --input2=I: The reverse reads file in Sanger FASTQ format
+    -4, --dataType=4: The type of data (SOLiD or Solexa)
+    -2, --paired=2: Whether the data is single- or paired-end
+    -g, --genomeSource=g: The type of reference provided
+    -r, --ref=r: The reference genome to use or index
+    -s, --skip=s: Skip the first n reads
+    -a, --alignLimit=a: Only align the first n reads
+    -T, --trimH=T: Trim n bases from high-quality (left) end of each read before alignment
+    -L, --trimL=L: Trim n bases from low-quality (right) end of each read before alignment
+    -m, --mismatchSeed=m: Maximum number of mismatches permitted in the seed
+    -M, --mismatchQual=M: Maximum permitted total of quality values at mismatched read positions
+    -l, --seedLen=l: Seed length
+    -n, --rounding=n: Whether or not to round to the nearest 10 and saturating at 30
+    -P, --maxMismatches=P: Maximum number of mismatches for -v alignment mode
+    -w, --tryHard=: Whether or not to try as hard as possible to find valid alignments when they exist
+    -V, --allValAligns=V: Whether or not to report all valid alignments per read or pair
+    -v, --valAlign=v: Report up to n valid alignments per read or pair
+    -G, --suppressAlign=G: Suppress all alignments for a read if more than n reportable alignments exist
+    -b, --best=b: Whether or not to make Bowtie guarantee that reported singleton alignments are 'best' in terms of stratum and in terms of the quality values at the mismatched positions
+    -B, --maxBacktracks=B: Maximum number of backtracks permitted when aligning a read
+    -R, --strata=R: Whether or not to report only those alignments that fall in the best stratum if many valid alignments exist and are reportable
+    -j, --minInsert=j: Minimum insert size for valid paired-end alignments
+    -J, --maxInsert=J: Maximum insert size for valid paired-end alignments
+    -O, --mateOrient=O: The upstream/downstream mate orientation for valid paired-end alignment against the forward reference strand
+    -A, --maxAlignAttempt=A: Maximum number of attempts Bowtie will make to match an alignment for one mate with an alignment for the opposite mate
+    -f, --forwardAlign=f: Whether or not to attempt to align the forward reference strand
+    -E, --reverseAlign=E: Whether or not to attempt to align the reverse-complement reference strand
+    -F, --offrate=F: Override the offrate of the index to n
+    -8, --snpphred=8: SNP penalty on Phred scale
+    -6, --snpfrac=6: Fraction of sites expected to be SNP sites
+    -7, --keepends=7: Keep extreme-end nucleotides and qualities
+    -S, --seed=S: Seed for pseudo-random number generator
+    -C, --params=C: Whether to use default or specified parameters
+    -u, --iautoB=u: Automatic or specified behavior
+    -K, --ipacked=K: Whether or not to use a packed representation for DNA strings
+    -Q, --ibmax=Q: Maximum number of suffixes allowed in a block
+    -Y, --ibmaxdivn=Y: Maximum number of suffixes allowed in a block as a fraction of the length of the reference
+    -D, --idcv=D: The period for the difference-cover sample
+    -U, --inodc=U: Whether or not to disable the use of the difference-cover sample
+    -y, --inoref=y: Whether or not to build the part of the reference index used only in paired-end alignment
+    -z, --ioffrate=z: How many rows get marked during annotation of some or all of the Burrows-Wheeler rows
+    -W, --iftab=W: The size of the lookup table used to calculate an initial Burrows-Wheeler range with respect to the first n characters of the query
+    -X, --intoa=X: Whether or not to convert Ns in the reference sequence to As
+    -N, --iendian=N: Endianness to use when serializing integers to the index file
+    -Z, --iseed=Z: Seed for the pseudorandom number generator
+    -x, --indexSettings=x: Whether or not indexing options are to be set
+    -H, --suppressHeader=H: Suppress header
+    --do_not_build_index: Flag to specify that provided file is already indexed and to just use 'as is'
+"""
+
+import optparse
+import os
+import shutil
+import subprocess
+import sys
+import tempfile
+
+# Allow more than Sanger encoded variants
+DEFAULT_ASCII_ENCODING = '--phred33-quals'
+GALAXY_FORMAT_TO_QUALITY_SCORE_ENCODING_ARG = {'fastqsanger': '--phred33-quals', 'fastqillumina': '--phred64-quals', 'fastqsolexa': '--solexa-quals'}
+# FIXME: Integer quality scores are supported only when the '--integer-quals' argument is specified to bowtie; this is not currently able to be set in the tool/wrapper/config
+
+
+def stop_err( msg ):
+    sys.exit('%s\n' % msg)
+
+
+def __main__():
+    parser = optparse.OptionParser()
+    parser.add_option( '-t', '--threads', dest='threads', help='The number of threads to run' )
+    parser.add_option( '-o', '--output', dest='output', help='The output file' )
+    parser.add_option( '', '--output_unmapped_reads', dest='output_unmapped_reads', help='File name for unmapped reads (single-end)' )
+    parser.add_option( '', '--output_unmapped_reads_l', dest='output_unmapped_reads_l', help='File name for unmapped reads (left, paired-end)' )
+    parser.add_option( '', '--output_unmapped_reads_r', dest='output_unmapped_reads_r', help='File name for unmapped reads (right, paired-end)' )
+    parser.add_option( '', '--output_suppressed_reads', dest='output_suppressed_reads', help='File name for suppressed reads because of max setting (single-end)' )
+    parser.add_option( '', '--output_suppressed_reads_l', dest='output_suppressed_reads_l', help='File name for suppressed reads because of max setting (left, paired-end)' )
+    parser.add_option( '', '--output_suppressed_reads_r', dest='output_suppressed_reads_r', help='File name for suppressed reads because of max setting (right, paired-end)' )
+    parser.add_option( '', '--output_mapping_stats', dest='output_mapping_stats', help='File for mapping statistics (i.e. stderr from bowtie)' )
+    parser.add_option( '-4', '--dataType', dest='dataType', help='The type of data (SOLiD or Solexa)' )
+    parser.add_option( '-i', '--input1', dest='input1', help='The (forward or single-end) reads file in Sanger FASTQ format' )
+    parser.add_option( '-I', '--input2', dest='input2', help='The reverse reads file in Sanger FASTQ format' )
+    parser.add_option( '-2', '--paired', dest='paired', help='Whether the data is single- or paired-end' )
+    parser.add_option( '-g', '--genomeSource', dest='genomeSource', help='The type of reference provided' )
+    parser.add_option( '-r', '--ref', dest='ref', help='The reference genome to use or index' )
+    parser.add_option( '-s', '--skip', dest='skip', help='Skip the first n reads' )
+    parser.add_option( '-a', '--alignLimit', dest='alignLimit', help='Only align the first n reads' )
+    parser.add_option( '-T', '--trimH', dest='trimH', help='Trim n bases from high-quality (left) end of each read before alignment' )
+    parser.add_option( '-L', '--trimL', dest='trimL', help='Trim n bases from low-quality (right) end of each read before alignment' )
+    parser.add_option( '-m', '--mismatchSeed', dest='mismatchSeed', help='Maximum number of mismatches permitted in the seed' )
+    parser.add_option( '-M', '--mismatchQual', dest='mismatchQual', help='Maximum permitted total of quality values at mismatched read positions' )
+    parser.add_option( '-l', '--seedLen', dest='seedLen', help='Seed length' )
+    parser.add_option( '-n', '--rounding', dest='rounding', help='Whether or not to round to the nearest 10 and saturating at 30' )
+    parser.add_option( '-P', '--maxMismatches', dest='maxMismatches', help='Maximum number of mismatches for -v alignment mode' )
+    parser.add_option( '-w', '--tryHard', dest='tryHard', help='Whether or not to try as hard as possible to find valid alignments when they exist' )
+    parser.add_option( '-V', '--allValAligns', dest='allValAligns', help='Whether or not to report all valid alignments per read or pair' )
+    parser.add_option( '-v', '--valAlign', dest='valAlign', help='Report up to n valid alignments per read or pair' )
+    parser.add_option( '-G', '--suppressAlign', dest='suppressAlign', help='Suppress all alignments for a read if more than n reportable alignments exist' )
+    parser.add_option( '-b', '--best', dest='best', help="Whether or not to make Bowtie guarantee that reported singleton alignments are 'best' in terms of stratum and in terms of the quality values at the mismatched positions" )
+    parser.add_option( '-B', '--maxBacktracks', dest='maxBacktracks', help='Maximum number of backtracks permitted when aligning a read' )
+    parser.add_option( '-R', '--strata', dest='strata', help='Whether or not to report only those alignments that fall in the best stratum if many valid alignments exist and are reportable' )
+    parser.add_option( '-j', '--minInsert', dest='minInsert', help='Minimum insert size for valid paired-end alignments' )
+    parser.add_option( '-J', '--maxInsert', dest='maxInsert', help='Maximum insert size for valid paired-end alignments' )
+    parser.add_option( '-O', '--mateOrient', dest='mateOrient', help='The upstream/downstream mate orientation for valid paired-end alignment against the forward reference strand' )
+    parser.add_option( '-A', '--maxAlignAttempt', dest='maxAlignAttempt', help='Maximum number of attempts Bowtie will make to match an alignment for one mate with an alignment for the opposite mate' )
+    parser.add_option( '-f', '--forwardAlign', dest='forwardAlign', help='Whether or not to attempt to align the forward reference strand' )
+    parser.add_option( '-E', '--reverseAlign', dest='reverseAlign', help='Whether or not to attempt to align the reverse-complement reference strand' )
+    parser.add_option( '-F', '--offrate', dest='offrate', help='Override the offrate of the index to n' )
+    parser.add_option( '-S', '--seed', dest='seed', help='Seed for pseudo-random number generator' )
+    parser.add_option( '-8', '--snpphred', dest='snpphred', help='SNP penalty on Phred scale' )
+    parser.add_option( '-6', '--snpfrac', dest='snpfrac', help='Fraction of sites expected to be SNP sites' )
+    parser.add_option( '-7', '--keepends', dest='keepends', help='Keep extreme-end nucleotides and qualities' )
+    parser.add_option( '-C', '--params', dest='params', help='Whether to use default or specified parameters' )
+    parser.add_option( '-u', '--iautoB', dest='iautoB', help='Automatic or specified behavior' )
+    parser.add_option( '-K', '--ipacked', dest='ipacked', help='Whether or not to use a packed representation for DNA strings' )
+    parser.add_option( '-Q', '--ibmax', dest='ibmax', help='Maximum number of suffixes allowed in a block' )
+    parser.add_option( '-Y', '--ibmaxdivn', dest='ibmaxdivn', help='Maximum number of suffixes allowed in a block as a fraction of the length of the reference' )
+    parser.add_option( '-D', '--idcv', dest='idcv', help='The period for the difference-cover sample' )
+    parser.add_option( '-U', '--inodc', dest='inodc', help='Whether or not to disable the use of the difference-cover sample' )
+    parser.add_option( '-y', '--inoref', dest='inoref', help='Whether or not to build the part of the reference index used only in paired-end alignment' )
+    parser.add_option( '-z', '--ioffrate', dest='ioffrate', help='How many rows get marked during annotation of some or all of the Burrows-Wheeler rows' )
+    parser.add_option( '-W', '--iftab', dest='iftab', help='The size of the lookup table used to calculate an initial Burrows-Wheeler range with respect to the first n characters of the query' )
+    parser.add_option( '-X', '--intoa', dest='intoa', help='Whether or not to convert Ns in the reference sequence to As' )
+    parser.add_option( '-N', '--iendian', dest='iendian', help='Endianness to use when serializing integers to the index file' )
+    parser.add_option( '-Z', '--iseed', dest='iseed', help='Seed for the pseudorandom number generator' )
+    parser.add_option( '-x', '--indexSettings', dest='index_settings', help='Whether or not indexing options are to be set' )
+    parser.add_option( '-H', '--suppressHeader', dest='suppressHeader', help='Suppress header' )
+    parser.add_option( '--galaxy_input_format', dest='galaxy_input_format', default="fastqsanger", help='galaxy input format' )
+    parser.add_option( '--do_not_build_index', dest='do_not_build_index', action="store_true", default=False, help='Flag to specify that provided file is already indexed, use as is' )
+    (options, args) = parser.parse_args()
+    if options.mismatchSeed and options.maxMismatches:
+        parser.error("options --mismatchSeed and --maxMismatches are mutually exclusive")
+    stdout = ''
+
+    # make temp directory for placement of indices and copy reference file there if necessary
+    tmp_index_dir = tempfile.mkdtemp()
+    # get type of data (solid or solexa)
+    if options.dataType == 'solid':
+        colorspace = '-C'
+    else:
+        colorspace = ''
+    # index if necessary
+    if options.genomeSource == 'history' and not options.do_not_build_index:
+        # set up commands
+        if options.index_settings == 'indexPreSet':
+            indexing_cmds = '%s' % colorspace
+        else:
+            try:
+                if options.iautoB and options.iautoB == 'set':
+                    iautoB = '--noauto'
+                else:
+                    iautoB = ''
+                if options.ipacked and options.ipacked == 'packed':
+                    ipacked = '--packed'
+                else:
+                    ipacked = ''
+                if options.ibmax and int( options.ibmax ) >= 1:
+                    ibmax = '--bmax %s' % options.ibmax
+                else:
+                    ibmax = ''
+                if options.ibmaxdivn and int( options.ibmaxdivn ) >= 0:
+                    ibmaxdivn = '--bmaxdivn %s' % options.ibmaxdivn
+                else:
+                    ibmaxdivn = ''
+                if options.idcv and int( options.idcv ) >= 3:
+                    idcv = '--dcv %s' % options.idcv
+                else:
+                    idcv = ''
+                if options.inodc and options.inodc == 'nodc':
+                    inodc = '--nodc'
+                else:
+                    inodc = ''
+                if options.inoref and options.inoref == 'noref':
+                    inoref = '--noref'
+                else:
+                    inoref = ''
+                if options.iftab and int( options.iftab ) >= 1:
+                    iftab = '--ftabchars %s' % options.iftab
+                else:
+                    iftab = ''
+                if options.intoa and options.intoa == 'yes':
+                    intoa = '--ntoa'
+                else:
+                    intoa = ''
+                if options.iendian and options.iendian == 'big':
+                    iendian = '--big'
+                else:
+                    iendian = '--little'
+                if options.iseed and int( options.iseed ) > 0:
+                    iseed = '--seed %s' % options.iseed
+                else:
+                    iseed = ''
+                indexing_cmds = '%s %s %s %s %s %s %s --offrate %s %s %s %s %s %s' % \
+                                ( iautoB, ipacked, ibmax, ibmaxdivn, idcv, inodc,
+                                  inoref, options.ioffrate, iftab, intoa, iendian,
+                                  iseed, colorspace )
+            except ValueError as e:
+                # clean up temp dir
+                if os.path.exists( tmp_index_dir ):
+                    shutil.rmtree( tmp_index_dir )
+                stop_err( "Something is wrong with the indexing parameters and the indexing and alignment could not be run. Make sure you don't have any non-numeric values where they should be numeric.\n" + str( e ) )
+        ref_file = tempfile.NamedTemporaryFile( dir=tmp_index_dir )
+        ref_file_name = ref_file.name
+        ref_file.close()
+        os.symlink( options.ref, ref_file_name )
+        cmd1 = 'bowtie-build %s -f %s %s' % ( indexing_cmds, ref_file_name, ref_file_name )
+        try:
+            tmp = tempfile.NamedTemporaryFile( dir=tmp_index_dir ).name
+            with open(tmp, 'w') as tmp_stderr:
+                returncode = subprocess.call(args=cmd1, shell=True, cwd=tmp_index_dir, stderr=tmp_stderr.fileno())
+            if returncode != 0:
+                # get stderr, allowing for case where it's very large
+                stderr = ''
+                buffsize = 1048576
+                with open(tmp, 'r') as tmp_stderr:
+                    try:
+                        while True:
+                            stderr += tmp_stderr.read(buffsize)
+                            if not stderr or len(stderr) % buffsize != 0:
+                                break
+                    except OverflowError:
+                        pass
+                raise Exception(stderr)
+        except Exception as e:
+            # clean up temp dir
+            if os.path.exists( tmp_index_dir ):
+                shutil.rmtree( tmp_index_dir )
+            stop_err( 'Error indexing reference sequence\n' + str( e ) )
+        stdout += 'File indexed. '
+    else:
+        ref_file_name = options.ref
+    # set up aligning and generate aligning command options
+    # automatically set threads in both cases
+    tmp_suppressed_file_name = None
+    tmp_unmapped_file_name = None
+    if options.suppressHeader == 'true':
+        suppressHeader = '--sam-nohead'
+    else:
+        suppressHeader = ''
+    if options.maxInsert and int( options.maxInsert ) > 0:
+        maxInsert = '-X %s' % options.maxInsert
+    else:
+        maxInsert = ''
+    if options.mateOrient:
+        mateOrient = '--%s' % options.mateOrient
+    else:
+        mateOrient = ''
+    quality_score_encoding = GALAXY_FORMAT_TO_QUALITY_SCORE_ENCODING_ARG.get( options.galaxy_input_format, DEFAULT_ASCII_ENCODING )
+    if options.params == 'preSet':
+        aligning_cmds = '-q %s %s -p %s -S %s %s %s ' % \
+            ( maxInsert, mateOrient, options.threads, suppressHeader, colorspace, quality_score_encoding )
+    else:
+        try:
+            if options.skip and int( options.skip ) > 0:
+                skip = '-s %s' % options.skip
+            else:
+                skip = ''
+            if options.alignLimit and int( options.alignLimit ) >= 0:
+                alignLimit = '-u %s' % options.alignLimit
+            else:
+                alignLimit = ''
+            if options.trimH and int( options.trimH ) > 0:
+                trimH = '-5 %s' % options.trimH
+            else:
+                trimH = ''
+            if options.trimL and int( options.trimL ) > 0:
+                trimL = '-3 %s' % options.trimL
+            else:
+                trimL = ''
+            if options.maxMismatches and (options.maxMismatches == '0' or options.maxMismatches == '1' or
+                                          options.maxMismatches == '2' or options.maxMismatches == '3'):
+                maxMismatches = '-v %s' % options.maxMismatches
+            else:
+                maxMismatches = ''
+            if options.mismatchSeed and (options.mismatchSeed == '0' or options.mismatchSeed == '1' or
+                                         options.mismatchSeed == '2' or options.mismatchSeed == '3'):
+                mismatchSeed = '-n %s' % options.mismatchSeed
+            else:
+                mismatchSeed = ''
+            if options.mismatchQual and int( options.mismatchQual ) >= 1:
+                mismatchQual = '-e %s' % options.mismatchQual
+            else:
+                mismatchQual = ''
+            if options.seedLen and int( options.seedLen ) >= 5:
+                seedLen = '-l %s' % options.seedLen
+            else:
+                seedLen = ''
+            if options.rounding == 'noRound':
+                rounding = '--nomaqround'
+            else:
+                rounding = ''
+            if options.minInsert and int( options.minInsert ) > 0:
+                minInsert = '-I %s' % options.minInsert
+            else:
+                minInsert = ''
+            if options.maxAlignAttempt and int( options.maxAlignAttempt ) >= 0:
+                maxAlignAttempt = '--pairtries %s' % options.maxAlignAttempt
+            else:
+                maxAlignAttempt = ''
+            if options.forwardAlign == 'noForward':
+                forwardAlign = '--nofw'
+            else:
+                forwardAlign = ''
+            if options.reverseAlign == 'noReverse':
+                reverseAlign = '--norc'
+            else:
+                reverseAlign = ''
+            if options.maxBacktracks and int( options.maxBacktracks ) > 0 and \
+                    ( options.mismatchSeed == '2' or options.mismatchSeed == '3' ):
+                maxBacktracks = '--maxbts %s' % options.maxBacktracks
+            else:
+                maxBacktracks = ''
+            if options.tryHard == 'doTryHard':
+                tryHard = '-y'
+            else:
+                tryHard = ''
+            if options.valAlign and int( options.valAlign ) >= 0:
+                valAlign = '-k %s' % options.valAlign
+            else:
+                valAlign = ''
+            if options.allValAligns == 'doAllValAligns':
+                allValAligns = '-a'
+            else:
+                allValAligns = ''
+            if options.suppressAlign and int( options.suppressAlign ) >= 0:
+                suppressAlign = '-m %s' % options.suppressAlign
+            else:
+                suppressAlign = ''
+            if options.best == 'doBest':
+                best = '--best'
+            else:
+                best = ''
+            if options.strata == 'doStrata':
+                strata = '--strata'
+            else:
+                strata = ''
+            if options.offrate and int( options.offrate ) >= 0:
+                offrate = '-o %s' % options.offrate
+            else:
+                offrate = ''
+            if options.seed and int( options.seed ) >= 0:
+                seed = '--seed %s' % options.seed
+            else:
+                seed = ''
+            if options.paired == 'paired':
+                if options.output_unmapped_reads_l and options.output_unmapped_reads_r:
+                    tmp_unmapped_file = tempfile.NamedTemporaryFile( dir=tmp_index_dir, suffix='.fastq' )
+                    tmp_unmapped_file_name = tmp_unmapped_file.name
+                    tmp_unmapped_file.close()
+                    output_unmapped_reads = '--un %s' % tmp_unmapped_file_name
+                else:
+                    output_unmapped_reads = ''
+                if options.output_suppressed_reads:
+                    tmp_suppressed_file = tempfile.NamedTemporaryFile( dir=tmp_index_dir, suffix='.fastq' )
+                    tmp_suppressed_file_name = tmp_suppressed_file.name
+                    tmp_suppressed_file.close()
+                    output_suppressed_reads = '--max %s' % tmp_suppressed_file_name
+                else:
+                    output_suppressed_reads = ''
+            else:
+                if options.output_unmapped_reads:
+                    output_unmapped_reads = '--un %s' % options.output_unmapped_reads
+                else:
+                    output_unmapped_reads = ''
+                if options.output_suppressed_reads:
+                    output_suppressed_reads = '--max %s' % options.output_suppressed_reads
+                else:
+                    output_suppressed_reads = ''
+            snpfrac = ''
+            if options.snpphred and int( options.snpphred ) >= 0:
+                snpphred = '--snpphred %s' % options.snpphred
+            else:
+                snpphred = ''
+                if options.snpfrac and float( options.snpfrac ) >= 0:
+                    snpfrac = '--snpfrac %s' % options.snpfrac
+            if options.keepends and options.keepends == 'doKeepends':
+                keepends = '--col-keepends'
+            else:
+                keepends = ''
+            aligning_cmds = '-q %s %s -p %s -S %s %s %s %s %s %s %s %s %s %s %s %s ' \
+                            '%s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s ' % \
+                            ( maxInsert, mateOrient, options.threads, suppressHeader,
+                              colorspace, skip, alignLimit, trimH, trimL, maxMismatches,
+                              mismatchSeed, mismatchQual, seedLen, rounding, minInsert,
+                              maxAlignAttempt, forwardAlign, reverseAlign, maxBacktracks,
+                              tryHard, valAlign, allValAligns, suppressAlign, best,
+                              strata, offrate, seed, snpphred, snpfrac, keepends,
+                              output_unmapped_reads, output_suppressed_reads,
+                              quality_score_encoding )
+        except ValueError as e:
+            # clean up temp dir
+            if os.path.exists( tmp_index_dir ):
+                shutil.rmtree( tmp_index_dir )
+            stop_err( 'Something is wrong with the alignment parameters and the alignment could not be run\n' + str( e ) )
+    try:
+        # have to nest try-except in try-finally to handle 2.4
+        try:
+            # prepare actual mapping commands
+            if options.paired == 'paired':
+                cmd2 = 'bowtie %s %s -1 %s -2 %s > %s' % ( aligning_cmds, ref_file_name, options.input1, options.input2, options.output )
+            else:
+                cmd2 = 'bowtie %s %s %s > %s' % ( aligning_cmds, ref_file_name, options.input1, options.output )
+            # align
+            tmp = tempfile.NamedTemporaryFile( dir=tmp_index_dir ).name
+            with open(tmp, 'w') as tmp_stderr:
+                returncode = subprocess.call(args=cmd2, shell=True, cwd=tmp_index_dir, stderr=tmp_stderr.fileno())
+            # get stderr, allowing for case where it's very large
+            stderr = ''
+            buffsize = 1048576
+            with open(tmp, 'r') as tmp_stderr:
+                try:
+                    while True:
+                        stderr += tmp_stderr.read(buffsize)
+                        if not stderr or len(stderr) % buffsize != 0:
+                            break
+                except OverflowError:
+                    pass
+            if returncode != 0:
+                raise Exception(stderr)
+            elif options.output_mapping_stats is not None:
+                # Write stderr (containing the mapping statistics) to a named file
+                with open(options.output_mapping_stats, 'w') as mapping_stats:
+                    mapping_stats.write( stderr )
+            # get suppressed and unmapped reads output files in place if appropriate
+            if options.paired == 'paired' and tmp_suppressed_file_name and \
+                    options.output_suppressed_reads_l and options.output_suppressed_reads_r:
+                try:
+                    left = tmp_suppressed_file_name.replace( '.fastq', '_1.fastq' )
+                    right = tmp_suppressed_file_name.replace( '.fastq', '_1.fastq' )
+                    shutil.move( left, options.output_suppressed_reads_l )
+                    shutil.move( right, options.output_suppressed_reads_r )
+                except Exception as e:
+                    sys.stdout.write( 'Error producing the suppressed output file.\n' )
+            if options.paired == 'paired' and tmp_unmapped_file_name and \
+                    options.output_unmapped_reads_l and options.output_unmapped_reads_r:
+                try:
+                    left = tmp_unmapped_file_name.replace( '.fastq', '_1.fastq' )
+                    right = tmp_unmapped_file_name.replace( '.fastq', '_2.fastq' )
+                    shutil.move( left, options.output_unmapped_reads_l )
+                    shutil.move( right, options.output_unmapped_reads_r )
+                except Exception as e:
+                    sys.stdout.write( 'Error producing the unmapped output file.\n' )
+            # check that there are results in the output file
+            if os.path.getsize( options.output ) == 0:
+                raise Exception('The output file is empty, there may be an error with your input file or settings.')
+        except Exception as e:
+            stop_err( 'Error aligning sequence. ' + str( e ) )
+    finally:
+        # clean up temp dir
+        if os.path.exists( tmp_index_dir ):
+            shutil.rmtree( tmp_index_dir )
+    stdout += 'Sequence file aligned.\n'
+    sys.stdout.write( stdout )
+
+
+if __name__ == "__main__":
+    __main__()
--- a/bowtie_transcriptome_wrapper/bowtie_transcriptomic_wrapper.xml	Tue Mar 15 10:06:15 2022 +0000
+++ b/bowtie_transcriptome_wrapper/bowtie_transcriptomic_wrapper.xml	Tue Mar 22 12:34:36 2022 +0000
@@ -5,7 +5,7 @@
   </requirements>
   <version_command>bowtie --version</version_command>
   <command>
-    python '$__tool_directory__/bowtie_wrapper.py'
+    python '$__tool_directory__/bowtie_transcriptome_wrapper.py'
       ## Set number of threads
       --threads="\${GALAXY_SLOTS:-4}"
       ## Outputs
@@ -154,12 +154,12 @@
   </command>
   <inputs>
     <conditional name="refGenomeSource">
-      <param name="genomeSource" type="select" label="Will you select a reference genome from your history or use a built-in index?" help="Built-ins were indexed using default options">
+      <param name="genomeSource" type="select" label="Will you select a reference from your history or use a built-in index?" help="Built-ins were indexed using default options">
         <option value="indexed">Use a built-in index</option>
         <option value="history">Use one from the history</option>
       </param>
       <when value="indexed">
-        <param name="index" type="select" label="Select a reference genome" help="if your genome of interest is not listed - contact Galaxy team">
+        <param name="index" type="select" label="Select a reference" help="if your reference of interest is not listed - contact RiboGalaxy team">
           <options from_data_table="bowtie_indexes">
             <filter type="sort_by" column="2" />
             <validator type="no_options" message="No indexes are available" />
@@ -167,7 +167,7 @@
         </param>
       </when>
       <when value="history">
-        <param name="ownFile" type="data" format="bowtie_base_index,fasta" label="Select the reference genome" />
+        <param name="ownFile" type="data" format="bowtie_base_index,fasta" label="Select the reference" />
         <conditional name="indexParams">
           <param name="indexSettings" type="select" label="Choose whether to use Default options for building indices or to Set your own" help="These settings are ignored when using a prebuilt index">
             <option value="indexPreSet">Default</option>
@@ -257,7 +257,7 @@
             </param>
             <param name="sReverseAlign" type="select" label="Choose whether or not to attempt to align against the reverse-complement reference strand (--norc)">
               <option value="reverse">Align against the reverse-complement reference strand</option>
-              <option value="noReverse">Do not align against the reverse-complement reference strand</option>
+              <option value="noReverse" selected="true">Do not align against the reverse-complement reference strand</option>
             </param>
             <conditional name="sBestOption">
               <param name="sBest" type="select" label="Whether or not to make Bowtie guarantee that reported singleton alignments are 'best' in terms of stratum and in terms of the quality values at the mismatched positions (--best)" help="Removes all strand bias. Only affects which alignments are reported by Bowtie. Runs slower with best option">
@@ -340,7 +340,7 @@
             <conditional name="alignModeOption">
               <param name="alignMode" type="select" label="Alignment mode">
                 <option value="nMode">Maq-like: quality-aware, limit mismatches in seed (-n)</option>
-                <option value="vMode">ignore qualities, limit end-to-end mismatches (-v)</option>
+                <option value="vMode" selected="true">ignore qualities, limit end-to-end mismatches (-v)</option>
               </param>
               <when value="nMode">
                 <param name="pMismatchSeed" type="integer" value="2" min="0" max="3" label="Maximum number of mismatches permitted in the seed (-n)" help="May be 0, 1, 2, or 3" />
@@ -353,6 +353,7 @@
               </when>
               <when value="vMode">
                 <param name="maxMismatches" type="integer" value="" min="0" max="3" label="Maximum number of mismatches (-v)" help="May be 0, 1, 2, or 3" />
+                <param name="pSeedLen" type="integer" value="25" min="5" label="Seed length (-l)" help="Minimum value is 5" />
               </when>
             </conditional>
             <param name="pMinInsert" type="integer" value="0" label="Minimum insert size for valid paired-end alignments (-I)" />
--- a/bowtie_transcriptome_wrapper/bowtie_wrapper.py	Tue Mar 15 10:06:15 2022 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,472 +0,0 @@
-#!/usr/bin/env python
-
-"""
-Runs Bowtie on single-end or paired-end data.
-
-usage: bowtie_wrapper.py [options]
-    -t, --threads=t: The number of threads to run
-    -o, --output=o: The output file
-    --output_unmapped_reads=: File name for unmapped reads (single-end)
-    --output_unmapped_reads_l=: File name for unmapped reads (left, paired-end)
-    --output_unmapped_reads_r=: File name for unmapped reads (right, paired-end)
-    --output_suppressed_reads=: File name for suppressed reads because of max setting (single-end)
-    --output_suppressed_reads_l=: File name for suppressed reads because of max setting (left, paired-end)
-    --output_suppressed_reads_r=: File name for suppressed reads because of max setting (right, paired-end)
-    --output_mapping_stats=: File name for mapping statistics (output on stderr by bowtie)
-    -i, --input1=i: The (forward or single-end) reads file in Sanger FASTQ format
-    -I, --input2=I: The reverse reads file in Sanger FASTQ format
-    -4, --dataType=4: The type of data (SOLiD or Solexa)
-    -2, --paired=2: Whether the data is single- or paired-end
-    -g, --genomeSource=g: The type of reference provided
-    -r, --ref=r: The reference genome to use or index
-    -s, --skip=s: Skip the first n reads
-    -a, --alignLimit=a: Only align the first n reads
-    -T, --trimH=T: Trim n bases from high-quality (left) end of each read before alignment
-    -L, --trimL=L: Trim n bases from low-quality (right) end of each read before alignment
-    -m, --mismatchSeed=m: Maximum number of mismatches permitted in the seed
-    -M, --mismatchQual=M: Maximum permitted total of quality values at mismatched read positions
-    -l, --seedLen=l: Seed length
-    -n, --rounding=n: Whether or not to round to the nearest 10 and saturating at 30
-    -P, --maxMismatches=P: Maximum number of mismatches for -v alignment mode
-    -w, --tryHard=: Whether or not to try as hard as possible to find valid alignments when they exist
-    -V, --allValAligns=V: Whether or not to report all valid alignments per read or pair
-    -v, --valAlign=v: Report up to n valid alignments per read or pair
-    -G, --suppressAlign=G: Suppress all alignments for a read if more than n reportable alignments exist
-    -b, --best=b: Whether or not to make Bowtie guarantee that reported singleton alignments are 'best' in terms of stratum and in terms of the quality values at the mismatched positions
-    -B, --maxBacktracks=B: Maximum number of backtracks permitted when aligning a read
-    -R, --strata=R: Whether or not to report only those alignments that fall in the best stratum if many valid alignments exist and are reportable
-    -j, --minInsert=j: Minimum insert size for valid paired-end alignments
-    -J, --maxInsert=J: Maximum insert size for valid paired-end alignments
-    -O, --mateOrient=O: The upstream/downstream mate orientation for valid paired-end alignment against the forward reference strand
-    -A, --maxAlignAttempt=A: Maximum number of attempts Bowtie will make to match an alignment for one mate with an alignment for the opposite mate
-    -f, --forwardAlign=f: Whether or not to attempt to align the forward reference strand
-    -E, --reverseAlign=E: Whether or not to attempt to align the reverse-complement reference strand
-    -F, --offrate=F: Override the offrate of the index to n
-    -8, --snpphred=8: SNP penalty on Phred scale
-    -6, --snpfrac=6: Fraction of sites expected to be SNP sites
-    -7, --keepends=7: Keep extreme-end nucleotides and qualities
-    -S, --seed=S: Seed for pseudo-random number generator
-    -C, --params=C: Whether to use default or specified parameters
-    -u, --iautoB=u: Automatic or specified behavior
-    -K, --ipacked=K: Whether or not to use a packed representation for DNA strings
-    -Q, --ibmax=Q: Maximum number of suffixes allowed in a block
-    -Y, --ibmaxdivn=Y: Maximum number of suffixes allowed in a block as a fraction of the length of the reference
-    -D, --idcv=D: The period for the difference-cover sample
-    -U, --inodc=U: Whether or not to disable the use of the difference-cover sample
-    -y, --inoref=y: Whether or not to build the part of the reference index used only in paired-end alignment
-    -z, --ioffrate=z: How many rows get marked during annotation of some or all of the Burrows-Wheeler rows
-    -W, --iftab=W: The size of the lookup table used to calculate an initial Burrows-Wheeler range with respect to the first n characters of the query
-    -X, --intoa=X: Whether or not to convert Ns in the reference sequence to As
-    -N, --iendian=N: Endianness to use when serializing integers to the index file
-    -Z, --iseed=Z: Seed for the pseudorandom number generator
-    -x, --indexSettings=x: Whether or not indexing options are to be set
-    -H, --suppressHeader=H: Suppress header
-    --do_not_build_index: Flag to specify that provided file is already indexed and to just use 'as is'
-"""
-
-import optparse
-import os
-import shutil
-import subprocess
-import sys
-import tempfile
-
-# Allow more than Sanger encoded variants
-DEFAULT_ASCII_ENCODING = '--phred33-quals'
-GALAXY_FORMAT_TO_QUALITY_SCORE_ENCODING_ARG = {'fastqsanger': '--phred33-quals', 'fastqillumina': '--phred64-quals', 'fastqsolexa': '--solexa-quals'}
-# FIXME: Integer quality scores are supported only when the '--integer-quals' argument is specified to bowtie; this is not currently able to be set in the tool/wrapper/config
-
-
-def stop_err( msg ):
-    sys.exit('%s\n' % msg)
-
-
-def __main__():
-    parser = optparse.OptionParser()
-    parser.add_option( '-t', '--threads', dest='threads', help='The number of threads to run' )
-    parser.add_option( '-o', '--output', dest='output', help='The output file' )
-    parser.add_option( '', '--output_unmapped_reads', dest='output_unmapped_reads', help='File name for unmapped reads (single-end)' )
-    parser.add_option( '', '--output_unmapped_reads_l', dest='output_unmapped_reads_l', help='File name for unmapped reads (left, paired-end)' )
-    parser.add_option( '', '--output_unmapped_reads_r', dest='output_unmapped_reads_r', help='File name for unmapped reads (right, paired-end)' )
-    parser.add_option( '', '--output_suppressed_reads', dest='output_suppressed_reads', help='File name for suppressed reads because of max setting (single-end)' )
-    parser.add_option( '', '--output_suppressed_reads_l', dest='output_suppressed_reads_l', help='File name for suppressed reads because of max setting (left, paired-end)' )
-    parser.add_option( '', '--output_suppressed_reads_r', dest='output_suppressed_reads_r', help='File name for suppressed reads because of max setting (right, paired-end)' )
-    parser.add_option( '', '--output_mapping_stats', dest='output_mapping_stats', help='File for mapping statistics (i.e. stderr from bowtie)' )
-    parser.add_option( '-4', '--dataType', dest='dataType', help='The type of data (SOLiD or Solexa)' )
-    parser.add_option( '-i', '--input1', dest='input1', help='The (forward or single-end) reads file in Sanger FASTQ format' )
-    parser.add_option( '-I', '--input2', dest='input2', help='The reverse reads file in Sanger FASTQ format' )
-    parser.add_option( '-2', '--paired', dest='paired', help='Whether the data is single- or paired-end' )
-    parser.add_option( '-g', '--genomeSource', dest='genomeSource', help='The type of reference provided' )
-    parser.add_option( '-r', '--ref', dest='ref', help='The reference genome to use or index' )
-    parser.add_option( '-s', '--skip', dest='skip', help='Skip the first n reads' )
-    parser.add_option( '-a', '--alignLimit', dest='alignLimit', help='Only align the first n reads' )
-    parser.add_option( '-T', '--trimH', dest='trimH', help='Trim n bases from high-quality (left) end of each read before alignment' )
-    parser.add_option( '-L', '--trimL', dest='trimL', help='Trim n bases from low-quality (right) end of each read before alignment' )
-    parser.add_option( '-m', '--mismatchSeed', dest='mismatchSeed', help='Maximum number of mismatches permitted in the seed' )
-    parser.add_option( '-M', '--mismatchQual', dest='mismatchQual', help='Maximum permitted total of quality values at mismatched read positions' )
-    parser.add_option( '-l', '--seedLen', dest='seedLen', help='Seed length' )
-    parser.add_option( '-n', '--rounding', dest='rounding', help='Whether or not to round to the nearest 10 and saturating at 30' )
-    parser.add_option( '-P', '--maxMismatches', dest='maxMismatches', help='Maximum number of mismatches for -v alignment mode' )
-    parser.add_option( '-w', '--tryHard', dest='tryHard', help='Whether or not to try as hard as possible to find valid alignments when they exist' )
-    parser.add_option( '-V', '--allValAligns', dest='allValAligns', help='Whether or not to report all valid alignments per read or pair' )
-    parser.add_option( '-v', '--valAlign', dest='valAlign', help='Report up to n valid alignments per read or pair' )
-    parser.add_option( '-G', '--suppressAlign', dest='suppressAlign', help='Suppress all alignments for a read if more than n reportable alignments exist' )
-    parser.add_option( '-b', '--best', dest='best', help="Whether or not to make Bowtie guarantee that reported singleton alignments are 'best' in terms of stratum and in terms of the quality values at the mismatched positions" )
-    parser.add_option( '-B', '--maxBacktracks', dest='maxBacktracks', help='Maximum number of backtracks permitted when aligning a read' )
-    parser.add_option( '-R', '--strata', dest='strata', help='Whether or not to report only those alignments that fall in the best stratum if many valid alignments exist and are reportable' )
-    parser.add_option( '-j', '--minInsert', dest='minInsert', help='Minimum insert size for valid paired-end alignments' )
-    parser.add_option( '-J', '--maxInsert', dest='maxInsert', help='Maximum insert size for valid paired-end alignments' )
-    parser.add_option( '-O', '--mateOrient', dest='mateOrient', help='The upstream/downstream mate orientation for valid paired-end alignment against the forward reference strand' )
-    parser.add_option( '-A', '--maxAlignAttempt', dest='maxAlignAttempt', help='Maximum number of attempts Bowtie will make to match an alignment for one mate with an alignment for the opposite mate' )
-    parser.add_option( '-f', '--forwardAlign', dest='forwardAlign', help='Whether or not to attempt to align the forward reference strand' )
-    parser.add_option( '-E', '--reverseAlign', dest='reverseAlign', help='Whether or not to attempt to align the reverse-complement reference strand' )
-    parser.add_option( '-F', '--offrate', dest='offrate', help='Override the offrate of the index to n' )
-    parser.add_option( '-S', '--seed', dest='seed', help='Seed for pseudo-random number generator' )
-    parser.add_option( '-8', '--snpphred', dest='snpphred', help='SNP penalty on Phred scale' )
-    parser.add_option( '-6', '--snpfrac', dest='snpfrac', help='Fraction of sites expected to be SNP sites' )
-    parser.add_option( '-7', '--keepends', dest='keepends', help='Keep extreme-end nucleotides and qualities' )
-    parser.add_option( '-C', '--params', dest='params', help='Whether to use default or specified parameters' )
-    parser.add_option( '-u', '--iautoB', dest='iautoB', help='Automatic or specified behavior' )
-    parser.add_option( '-K', '--ipacked', dest='ipacked', help='Whether or not to use a packed representation for DNA strings' )
-    parser.add_option( '-Q', '--ibmax', dest='ibmax', help='Maximum number of suffixes allowed in a block' )
-    parser.add_option( '-Y', '--ibmaxdivn', dest='ibmaxdivn', help='Maximum number of suffixes allowed in a block as a fraction of the length of the reference' )
-    parser.add_option( '-D', '--idcv', dest='idcv', help='The period for the difference-cover sample' )
-    parser.add_option( '-U', '--inodc', dest='inodc', help='Whether or not to disable the use of the difference-cover sample' )
-    parser.add_option( '-y', '--inoref', dest='inoref', help='Whether or not to build the part of the reference index used only in paired-end alignment' )
-    parser.add_option( '-z', '--ioffrate', dest='ioffrate', help='How many rows get marked during annotation of some or all of the Burrows-Wheeler rows' )
-    parser.add_option( '-W', '--iftab', dest='iftab', help='The size of the lookup table used to calculate an initial Burrows-Wheeler range with respect to the first n characters of the query' )
-    parser.add_option( '-X', '--intoa', dest='intoa', help='Whether or not to convert Ns in the reference sequence to As' )
-    parser.add_option( '-N', '--iendian', dest='iendian', help='Endianness to use when serializing integers to the index file' )
-    parser.add_option( '-Z', '--iseed', dest='iseed', help='Seed for the pseudorandom number generator' )
-    parser.add_option( '-x', '--indexSettings', dest='index_settings', help='Whether or not indexing options are to be set' )
-    parser.add_option( '-H', '--suppressHeader', dest='suppressHeader', help='Suppress header' )
-    parser.add_option( '--galaxy_input_format', dest='galaxy_input_format', default="fastqsanger", help='galaxy input format' )
-    parser.add_option( '--do_not_build_index', dest='do_not_build_index', action="store_true", default=False, help='Flag to specify that provided file is already indexed, use as is' )
-    (options, args) = parser.parse_args()
-    if options.mismatchSeed and options.maxMismatches:
-        parser.error("options --mismatchSeed and --maxMismatches are mutually exclusive")
-    stdout = ''
-
-    # make temp directory for placement of indices and copy reference file there if necessary
-    tmp_index_dir = tempfile.mkdtemp()
-    # get type of data (solid or solexa)
-    if options.dataType == 'solid':
-        colorspace = '-C'
-    else:
-        colorspace = ''
-    # index if necessary
-    if options.genomeSource == 'history' and not options.do_not_build_index:
-        # set up commands
-        if options.index_settings == 'indexPreSet':
-            indexing_cmds = '%s' % colorspace
-        else:
-            try:
-                if options.iautoB and options.iautoB == 'set':
-                    iautoB = '--noauto'
-                else:
-                    iautoB = ''
-                if options.ipacked and options.ipacked == 'packed':
-                    ipacked = '--packed'
-                else:
-                    ipacked = ''
-                if options.ibmax and int( options.ibmax ) >= 1:
-                    ibmax = '--bmax %s' % options.ibmax
-                else:
-                    ibmax = ''
-                if options.ibmaxdivn and int( options.ibmaxdivn ) >= 0:
-                    ibmaxdivn = '--bmaxdivn %s' % options.ibmaxdivn
-                else:
-                    ibmaxdivn = ''
-                if options.idcv and int( options.idcv ) >= 3:
-                    idcv = '--dcv %s' % options.idcv
-                else:
-                    idcv = ''
-                if options.inodc and options.inodc == 'nodc':
-                    inodc = '--nodc'
-                else:
-                    inodc = ''
-                if options.inoref and options.inoref == 'noref':
-                    inoref = '--noref'
-                else:
-                    inoref = ''
-                if options.iftab and int( options.iftab ) >= 1:
-                    iftab = '--ftabchars %s' % options.iftab
-                else:
-                    iftab = ''
-                if options.intoa and options.intoa == 'yes':
-                    intoa = '--ntoa'
-                else:
-                    intoa = ''
-                if options.iendian and options.iendian == 'big':
-                    iendian = '--big'
-                else:
-                    iendian = '--little'
-                if options.iseed and int( options.iseed ) > 0:
-                    iseed = '--seed %s' % options.iseed
-                else:
-                    iseed = ''
-                indexing_cmds = '%s %s %s %s %s %s %s --offrate %s %s %s %s %s %s' % \
-                                ( iautoB, ipacked, ibmax, ibmaxdivn, idcv, inodc,
-                                  inoref, options.ioffrate, iftab, intoa, iendian,
-                                  iseed, colorspace )
-            except ValueError as e:
-                # clean up temp dir
-                if os.path.exists( tmp_index_dir ):
-                    shutil.rmtree( tmp_index_dir )
-                stop_err( "Something is wrong with the indexing parameters and the indexing and alignment could not be run. Make sure you don't have any non-numeric values where they should be numeric.\n" + str( e ) )
-        ref_file = tempfile.NamedTemporaryFile( dir=tmp_index_dir )
-        ref_file_name = ref_file.name
-        ref_file.close()
-        os.symlink( options.ref, ref_file_name )
-        cmd1 = 'bowtie-build %s -f %s %s' % ( indexing_cmds, ref_file_name, ref_file_name )
-        try:
-            tmp = tempfile.NamedTemporaryFile( dir=tmp_index_dir ).name
-            with open(tmp, 'w') as tmp_stderr:
-                returncode = subprocess.call(args=cmd1, shell=True, cwd=tmp_index_dir, stderr=tmp_stderr.fileno())
-            if returncode != 0:
-                # get stderr, allowing for case where it's very large
-                stderr = ''
-                buffsize = 1048576
-                with open(tmp, 'r') as tmp_stderr:
-                    try:
-                        while True:
-                            stderr += tmp_stderr.read(buffsize)
-                            if not stderr or len(stderr) % buffsize != 0:
-                                break
-                    except OverflowError:
-                        pass
-                raise Exception(stderr)
-        except Exception as e:
-            # clean up temp dir
-            if os.path.exists( tmp_index_dir ):
-                shutil.rmtree( tmp_index_dir )
-            stop_err( 'Error indexing reference sequence\n' + str( e ) )
-        stdout += 'File indexed. '
-    else:
-        ref_file_name = options.ref
-    # set up aligning and generate aligning command options
-    # automatically set threads in both cases
-    tmp_suppressed_file_name = None
-    tmp_unmapped_file_name = None
-    if options.suppressHeader == 'true':
-        suppressHeader = '--sam-nohead'
-    else:
-        suppressHeader = ''
-    if options.maxInsert and int( options.maxInsert ) > 0:
-        maxInsert = '-X %s' % options.maxInsert
-    else:
-        maxInsert = ''
-    if options.mateOrient:
-        mateOrient = '--%s' % options.mateOrient
-    else:
-        mateOrient = ''
-    quality_score_encoding = GALAXY_FORMAT_TO_QUALITY_SCORE_ENCODING_ARG.get( options.galaxy_input_format, DEFAULT_ASCII_ENCODING )
-    if options.params == 'preSet':
-        aligning_cmds = '-q %s %s -p %s -S %s %s %s ' % \
-            ( maxInsert, mateOrient, options.threads, suppressHeader, colorspace, quality_score_encoding )
-    else:
-        try:
-            if options.skip and int( options.skip ) > 0:
-                skip = '-s %s' % options.skip
-            else:
-                skip = ''
-            if options.alignLimit and int( options.alignLimit ) >= 0:
-                alignLimit = '-u %s' % options.alignLimit
-            else:
-                alignLimit = ''
-            if options.trimH and int( options.trimH ) > 0:
-                trimH = '-5 %s' % options.trimH
-            else:
-                trimH = ''
-            if options.trimL and int( options.trimL ) > 0:
-                trimL = '-3 %s' % options.trimL
-            else:
-                trimL = ''
-            if options.maxMismatches and (options.maxMismatches == '0' or options.maxMismatches == '1' or
-                                          options.maxMismatches == '2' or options.maxMismatches == '3'):
-                maxMismatches = '-v %s' % options.maxMismatches
-            else:
-                maxMismatches = ''
-            if options.mismatchSeed and (options.mismatchSeed == '0' or options.mismatchSeed == '1' or
-                                         options.mismatchSeed == '2' or options.mismatchSeed == '3'):
-                mismatchSeed = '-n %s' % options.mismatchSeed
-            else:
-                mismatchSeed = ''
-            if options.mismatchQual and int( options.mismatchQual ) >= 1:
-                mismatchQual = '-e %s' % options.mismatchQual
-            else:
-                mismatchQual = ''
-            if options.seedLen and int( options.seedLen ) >= 5:
-                seedLen = '-l %s' % options.seedLen
-            else:
-                seedLen = ''
-            if options.rounding == 'noRound':
-                rounding = '--nomaqround'
-            else:
-                rounding = ''
-            if options.minInsert and int( options.minInsert ) > 0:
-                minInsert = '-I %s' % options.minInsert
-            else:
-                minInsert = ''
-            if options.maxAlignAttempt and int( options.maxAlignAttempt ) >= 0:
-                maxAlignAttempt = '--pairtries %s' % options.maxAlignAttempt
-            else:
-                maxAlignAttempt = ''
-            if options.forwardAlign == 'noForward':
-                forwardAlign = '--nofw'
-            else:
-                forwardAlign = ''
-            if options.reverseAlign == 'noReverse':
-                reverseAlign = '--norc'
-            else:
-                reverseAlign = ''
-            if options.maxBacktracks and int( options.maxBacktracks ) > 0 and \
-                    ( options.mismatchSeed == '2' or options.mismatchSeed == '3' ):
-                maxBacktracks = '--maxbts %s' % options.maxBacktracks
-            else:
-                maxBacktracks = ''
-            if options.tryHard == 'doTryHard':
-                tryHard = '-y'
-            else:
-                tryHard = ''
-            if options.valAlign and int( options.valAlign ) >= 0:
-                valAlign = '-k %s' % options.valAlign
-            else:
-                valAlign = ''
-            if options.allValAligns == 'doAllValAligns':
-                allValAligns = '-a'
-            else:
-                allValAligns = ''
-            if options.suppressAlign and int( options.suppressAlign ) >= 0:
-                suppressAlign = '-m %s' % options.suppressAlign
-            else:
-                suppressAlign = ''
-            if options.best == 'doBest':
-                best = '--best'
-            else:
-                best = ''
-            if options.strata == 'doStrata':
-                strata = '--strata'
-            else:
-                strata = ''
-            if options.offrate and int( options.offrate ) >= 0:
-                offrate = '-o %s' % options.offrate
-            else:
-                offrate = ''
-            if options.seed and int( options.seed ) >= 0:
-                seed = '--seed %s' % options.seed
-            else:
-                seed = ''
-            if options.paired == 'paired':
-                if options.output_unmapped_reads_l and options.output_unmapped_reads_r:
-                    tmp_unmapped_file = tempfile.NamedTemporaryFile( dir=tmp_index_dir, suffix='.fastq' )
-                    tmp_unmapped_file_name = tmp_unmapped_file.name
-                    tmp_unmapped_file.close()
-                    output_unmapped_reads = '--un %s' % tmp_unmapped_file_name
-                else:
-                    output_unmapped_reads = ''
-                if options.output_suppressed_reads:
-                    tmp_suppressed_file = tempfile.NamedTemporaryFile( dir=tmp_index_dir, suffix='.fastq' )
-                    tmp_suppressed_file_name = tmp_suppressed_file.name
-                    tmp_suppressed_file.close()
-                    output_suppressed_reads = '--max %s' % tmp_suppressed_file_name
-                else:
-                    output_suppressed_reads = ''
-            else:
-                if options.output_unmapped_reads:
-                    output_unmapped_reads = '--un %s' % options.output_unmapped_reads
-                else:
-                    output_unmapped_reads = ''
-                if options.output_suppressed_reads:
-                    output_suppressed_reads = '--max %s' % options.output_suppressed_reads
-                else:
-                    output_suppressed_reads = ''
-            snpfrac = ''
-            if options.snpphred and int( options.snpphred ) >= 0:
-                snpphred = '--snpphred %s' % options.snpphred
-            else:
-                snpphred = ''
-                if options.snpfrac and float( options.snpfrac ) >= 0:
-                    snpfrac = '--snpfrac %s' % options.snpfrac
-            if options.keepends and options.keepends == 'doKeepends':
-                keepends = '--col-keepends'
-            else:
-                keepends = ''
-            aligning_cmds = '-q %s %s -p %s -S %s %s %s %s %s %s %s %s %s %s %s %s ' \
-                            '%s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s ' % \
-                            ( maxInsert, mateOrient, options.threads, suppressHeader,
-                              colorspace, skip, alignLimit, trimH, trimL, maxMismatches,
-                              mismatchSeed, mismatchQual, seedLen, rounding, minInsert,
-                              maxAlignAttempt, forwardAlign, reverseAlign, maxBacktracks,
-                              tryHard, valAlign, allValAligns, suppressAlign, best,
-                              strata, offrate, seed, snpphred, snpfrac, keepends,
-                              output_unmapped_reads, output_suppressed_reads,
-                              quality_score_encoding )
-        except ValueError as e:
-            # clean up temp dir
-            if os.path.exists( tmp_index_dir ):
-                shutil.rmtree( tmp_index_dir )
-            stop_err( 'Something is wrong with the alignment parameters and the alignment could not be run\n' + str( e ) )
-    try:
-        # have to nest try-except in try-finally to handle 2.4
-        try:
-            # prepare actual mapping commands
-            if options.paired == 'paired':
-                cmd2 = 'bowtie %s %s -1 %s -2 %s > %s' % ( aligning_cmds, ref_file_name, options.input1, options.input2, options.output )
-            else:
-                cmd2 = 'bowtie %s %s %s > %s' % ( aligning_cmds, ref_file_name, options.input1, options.output )
-            # align
-            tmp = tempfile.NamedTemporaryFile( dir=tmp_index_dir ).name
-            with open(tmp, 'w') as tmp_stderr:
-                returncode = subprocess.call(args=cmd2, shell=True, cwd=tmp_index_dir, stderr=tmp_stderr.fileno())
-            # get stderr, allowing for case where it's very large
-            stderr = ''
-            buffsize = 1048576
-            with open(tmp, 'r') as tmp_stderr:
-                try:
-                    while True:
-                        stderr += tmp_stderr.read(buffsize)
-                        if not stderr or len(stderr) % buffsize != 0:
-                            break
-                except OverflowError:
-                    pass
-            if returncode != 0:
-                raise Exception(stderr)
-            elif options.output_mapping_stats is not None:
-                # Write stderr (containing the mapping statistics) to a named file
-                with open(options.output_mapping_stats, 'w') as mapping_stats:
-                    mapping_stats.write( stderr )
-            # get suppressed and unmapped reads output files in place if appropriate
-            if options.paired == 'paired' and tmp_suppressed_file_name and \
-                    options.output_suppressed_reads_l and options.output_suppressed_reads_r:
-                try:
-                    left = tmp_suppressed_file_name.replace( '.fastq', '_1.fastq' )
-                    right = tmp_suppressed_file_name.replace( '.fastq', '_1.fastq' )
-                    shutil.move( left, options.output_suppressed_reads_l )
-                    shutil.move( right, options.output_suppressed_reads_r )
-                except Exception as e:
-                    sys.stdout.write( 'Error producing the suppressed output file.\n' )
-            if options.paired == 'paired' and tmp_unmapped_file_name and \
-                    options.output_unmapped_reads_l and options.output_unmapped_reads_r:
-                try:
-                    left = tmp_unmapped_file_name.replace( '.fastq', '_1.fastq' )
-                    right = tmp_unmapped_file_name.replace( '.fastq', '_2.fastq' )
-                    shutil.move( left, options.output_unmapped_reads_l )
-                    shutil.move( right, options.output_unmapped_reads_r )
-                except Exception as e:
-                    sys.stdout.write( 'Error producing the unmapped output file.\n' )
-            # check that there are results in the output file
-            if os.path.getsize( options.output ) == 0:
-                raise Exception('The output file is empty, there may be an error with your input file or settings.')
-        except Exception as e:
-            stop_err( 'Error aligning sequence. ' + str( e ) )
-    finally:
-        # clean up temp dir
-        if os.path.exists( tmp_index_dir ):
-            shutil.rmtree( tmp_index_dir )
-    stdout += 'Sequence file aligned.\n'
-    sys.stdout.write( stdout )
-
-
-if __name__ == "__main__":
-    __main__()
--- a/bowtie_transcriptome_wrapper/test-data/bowtie_in2.fastqsanger	Tue Mar 15 10:06:15 2022 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,104 +0,0 @@
-@HWI-EAS91_1_30788AAXX:1:1:1513:715/1
-GTTTTTTGGGCATAGATGTTTAGTTGTGGTAGTCAG
-+
-IIIIIII""IIIIIIIIIIIIIIIIIIIDI?II-+I
-@HWI-EAS91_1_30788AAXX:1:1:1698:516/1
-GTTGTTAGGGAGAGGAGTTGAACCTCTGAGTGTAAA
-+
-IIIIIII""IIIIIIIIIIIIIIIIIII5IIIII9I
-@HWI-EAS91_1_30788AAXX:1:1:1491:637/1
-GCTAGCAGGATGGATCCGGCAATTGGGGCTTCTACA
-+
-IIIIIII""IIIIIIIIIIIIFIIIIIIIIIIIABD
-@HWI-EAS91_1_30788AAXX:1:1:1711:249/1
-GGAAGTAGGGGCCTGCGTTCAGGCGTTCTGTTTGGT
-+
-IIIIIII""IIIIIIIIIIIIIIIIIIIIIIIIIII
-@HWI-EAS91_1_30788AAXX:1:1:1634:211/1
-GAAGCAGGGGCTTGATACTGACACTTCGTCGACGTA
-+
-IIIIIII""IIIIIIIIIIIIIIIIIIIIII9IIDF
-@HWI-EAS91_1_30788AAXX:1:1:1218:141/1
-GTTAAATATTGGGAGTGGGGGGGGGGGGGAGTTTTG
-+
-IIIIIII""IIIIIIIIIIIIIIIIIIII1IIII+I
-@HWI-EAS91_1_30788AAXX:1:1:1398:854/1
-GTGAAGAGGAGGGGATTTATTAGTACGGGAAGGGTG
-+
-IIIIIII""IIIIIBIIIIIIIIIIIIIIA=IIIII
-@HWI-EAS91_1_30788AAXX:1:1:1310:991/1
-GAATAGTGGTAGTATTATTCCTTCTAGGCATAGGAG
-+
-IIIIIII""IIIIIIIIII4IIIIIIDII:IEI2:I
-@HWI-EAS91_1_30788AAXX:1:1:1716:413/1
-GATCCAAGGCTTTATCAACACCTATTCTGATTCTTC
-+
-IIIIIII""IIIIIIIIIIIIIIIIIIIIIIIIIII
-@HWI-EAS91_1_30788AAXX:1:1:1630:59/1
-GGAGCGGGGGGTTGGTAAGGTTGGGGTCGAGTATGA
-+
-IIIIIII""IIIIIIIIIIIIIIIIIIII;IIHIIF
-@HWI-EAS91_1_30788AAXX:1:1:1601:805/1
-GAAAACAGGAAAACAATCCAGTCACTTACCCTATGC
-+
-IIIIIII""IIIIIIIIIIIIIIIIIIIIIII@III
-@HWI-EAS91_1_30788AAXX:1:1:1663:724/1
-GTTTGCCGGCGCCATCCTACGCTCCATTCCCAACAA
-+
-IIIIIII""IIII8IIIIIIHIIII6IIIII1CI=3
-@HWI-EAS91_1_30788AAXX:1:1:1454:975/1
-GCTAGGCGGGAGTGGTAAAAGGCTCAGAAGAAGCCA
-+
-IIIIIII""IIIIIIIIIIIIIIIIEIG;IIIIIII
-@HWI-EAS91_1_30788AAXX:1:1:1461:255/1
-GTACACCGGCGCCTGAGCCCTACTAATAACTCTCAT
-+
-IIIIIII""IIIIII9IIIIIIEI(II9.I4III,I
-@HWI-EAS91_1_30788AAXX:1:1:1775:764/1
-GCATCCCGGTAGATCTAATTTTCTAAATCTGTCAAC
-+
-IIIIIII""III@IIII+IIIIII8H8IIIIIIICI
-@HWI-EAS91_1_30788AAXX:1:1:1269:520/1
-GGAGTATGGAATAAGTGATTTTAGATCGGTTTGTCG
-+
-IIIIIII""IIIIIIIIIIIIIIIIIIIIIIIIIII
-@HWI-EAS91_1_30788AAXX:1:1:1303:1162/1
-GAGCAAGGGCAGGAGGAGGAGTCCTAGGATGTCTTT
-+
-IIIIIII""IIIIFII4*IGIAI(IAII49',3I6I
-@HWI-EAS91_1_30788AAXX:1:1:1090:409/1
-GTTTGTTGGGAATGGAGCGTAGGATGGCGTAGGCAA
-+
-IIIIIII""IIIIIIIIIIIIIIIIIIIII:IIA8I
-@HWI-EAS91_1_30788AAXX:1:1:1336:1000/1
-GGTAAATGGGAAATATTAAGTTTCTGTTTCTAGATC
-+
-IIIIIII""IIIIIIIIIIIIIIIIIIIIIIII9II
-@HWI-EAS91_1_30788AAXX:1:1:1199:1376/1
-GTTTTCTGGAAAACCTTCACCTATTTATGGGGGTTT
-+
-IIIIIII""IIIIIIIIIIIII;III3IIG&:/III
-@HWI-EAS91_1_30788AAXX:1:1:1598:1148/1
-GATCAATGGTTTGGATCAATAAGTGATTATATATTT
-+
-IIIIIII""IIIIIDIIIIII?IIICII=IHIIIII
-@HWI-EAS91_1_30788AAXX:1:1:1723:1459/1
-GAAACCCGGACGTTTGGATGGGCCCGGAGCGAGGAT
-+
-IIIIIII""IIIIIIIIDIIIIIIIII9HII-II=I
-@HWI-EAS91_1_30788AAXX:1:1:1442:1346/1
-TATCAAGGGGCTGCTTCGAATCCGAAGTGGTGGCTG
-+
-IIIIIII""IIIIIDIIIII1I(I4II<?<-II*,&
-@HWI-EAS91_1_30788AAXX:1:1:850:117/1
-GTATGACGGTAAAGAAAATTATTACGAATGCATGGG
-+
-IIIIIII""IIIIIIEIEIIIIIIIIEBIDD9I;:?
-@HWI-EAS91_1_30788AAXX:1:1:795:325/1
-GGGTACTGGGAAGTGGAATGGTGTGAGTCCAAGTTT
-+
-IIIIIII""IIIIIIIIIIIIIIIIIIIII65IIII
-@HWI-EAS91_1_30788AAXX:1:1:873:453/1
-GAGTAGGGGGATTGCTAGAGTTACTTCGTATGAGAT
-+
-IIIIIII""IIIIIIIIIIIIIIIII@IIIIIII=I
--- a/bowtie_transcriptome_wrapper/test-data/bowtie_in5.fastqillumina	Tue Mar 15 10:06:15 2022 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,72 +0,0 @@
-@Dummy:1:1:1761:343/1
-TTTATCGCTTCCATGACGCAGAAGTTAACACTTTCGGATATTTCTGATGA
-+
-hhhhhhhAAhhhhhhhhhhh^hOhhhhghhhfhhhhhOhh^hAAhhhhhh
-@Dummy:1:1:1578:331/1
-TGTCAAAAACTGACGCGTTGGATGAGGAGAAGTGGCTTAATATGCTTGGC
-+
-hhhhhhhAAhhhhhhhhhhhhhhhhhhhhhhhhhhAhhhhhhhOOOhhhh
-@Dummy:1:1:1647:512/1
-TACTGAACAATCCGTACGTTTCCAGACCGCTTTGGCCTCTATTAAGCTCA
-+
-hhhhhhhAAhhhhhhhhhhhhhhhhhhhhhhhhhhAhhhhhhhOOOhhhh
-@Dummy:1:1:1570:620/1
-GAGTAACAAAGTaaaGTTTGGAccGTTTTTGTCTCGTGCTCGTCGCTGCG
-+
-hhhhhhhAAhhhhhhhhhhhhhahhhhhhhhhhhhAhhhhhhhOOOhhhh
-@Dummy:1:1:1599:330/1
-AGAAGAAAACGTGCGTCAAAAATTACGTGCaGAAGGAGTGATGTAATGTC
-+
-hhhhhhhAAhhhhhhhhhhhhhhhhhhh[hhh_hhAhhhhhhhOOOhhhh
-@Dummy:1:1:1652:270/1
-AGCGTAAAGGCGCTCGTCTTTGGTATGTAGGacTTTGCATTGTTTAATTG
-+
-hhhhhhhAAhhhhhhhhhhhhhhhhhhhhhhhUhhAhhhhhhhOOOhhhh
-@Dummy:1:1:1746:351/1
-CTCATCGTCACGTTTATGGTGAACAGTGGATTAAGTTCATGAAGGATGGT
-+
-hhhhhhhAAhhhhhhhhhhhhhhhhhhhhhhhhhhAhhhhhhhOOOhhhh
-@Dummy:1:1:1582:633/1
-CCGCTTCCTCCTGAGACTGAGCTTTCTCGCCAAATGACGACTTCTACCAC
-+
-hhhhhhhAAhhhhhhhhhhhhhhhhhhhhhhhhhhAhhhhhhhOOOhhhh
-@Dummy:1:1:1598:534/1
-GCGCTCTAATCTCTGGGCATCTGGCTATGATGTTGATGGAACTGACCAAA
-+
-hhhhhhhAAhhhhhhhhhhhhhhhhhhhhhhhhhhAhhhhhhhOOOhhhh
-@Dummy:1:1:1572:324/1
-AAGGTGCTTaaaTTCgtGGGTCCTGAGCTGGCGACCCTGTTTTGTATGGC
-+
-hhhhhhhAAhhhhhhhhhhhhhhhhhhhhJVhOThAhhhhhhhOOOhhhh
-@Dummy:1:1:1749:466/1
-TTGCAGTGGAATAGTCAGGTTAAATTTAATGTGACCGTTTATCGCAATCT
-+
-hhhhhhhAAhhhhhhhhhhhhhhhhhhhhhhhhhhAhhhhhhhOOOhhhh
-@Dummy:1:1:1629:446/1
-AGGTTATAACGCCGAAGCGGTAAAAATTTTAATTTTTGCCGCTGAGGGGT
-+
-hhhhhhhAAhhhhhhhhhhhhhhhhhhhhhhhhhhAhhhhhhhOOOhhhh
-@Dummy:1:1:1763:587/1
-AAGCTACATCGTCAACGTTATATTTTGATAGTTTGACGGTTAATGCTGGT
-+
-hhhhhhhAAhhhhhhhhhhhhhhhhhhhhhhhhhhAhhhhhhhOOOhhhh
-@Dummy:1:1:1616:363/1
-TGTTTATCCTTTGAATGGTCGCCATGATGGTGGTTATTATACCGTCAAGG
-+
-hhhhhhhAAhhhhhhhhhhhhhhhhhhhhhhchhhAhhhhhhhOOOhhhh
-@Dummy:1:1:1768:715/1
-ACCCTGATGAGGCCGCCCCTAGTTTTGTTTCTGGTGCTATGGCTAAAGCT
-+
-hhhhhhhAAhhhhhhhhhhhhhchhhhhhhhhhhhAhhhhhhhOOOhhhh
-@Dummy:1:1:1572:270/1
-TGAGATGCTTGCTTATCAACAGAAGGAGTCTACTGCTCGCGTTGCGTCTA
-+
-hhhhhhhAAhhhhhhhhhhhhhhhhhhhhhhhhhhAhhhhhhhOOOhhhh
-@Dummy:1:1:1673:514/1
-ATTATTTTGACTTTGAGCGTATCGAGGCTCTTAAACCTGCTATTGAGGCT
-+
-hhhhhhhAAhhhhhhhhhhhhhhhhhhhhhhhhhPAhhhhhhhOOOhhhh
-@Dummy:1:1:1634:330/1
-GGATATTCGCGATGAGTATAATTACCCCAAAAAGAAAGGTATTAAGGATG
-+
-hhhhhhhAAhhhhhhhhhhhhhhhhhhhhhhhWhhAhhhhhhhOOOhhhh
--- a/bowtie_transcriptome_wrapper/test-data/bowtie_in5.fastqsanger	Tue Mar 15 10:06:15 2022 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,72 +0,0 @@
-@Dummy:1:1:1761:343/1
-TTTATCGCTTCCATGACGCAGAAGTTAACACTTTCGGATATTTCTGATGA
-+
-IIIIIII""IIIIIIIIIII?I0IIIIHIIIGIIIII0II?I""IIIIII
-@Dummy:1:1:1578:331/1
-TGTCAAAAACTGACGCGTTGGATGAGGAGAAGTGGCTTAATATGCTTGGC
-+
-IIIIIII""IIIIIIIIIIIIIIIIIIIIIIIIII"IIIIIII000IIII
-@Dummy:1:1:1647:512/1
-TACTGAACAATCCGTACGTTTCCAGACCGCTTTGGCCTCTATTAAGCTCA
-+
-IIIIIII""IIIIIIIIIIIIIIIIIIIIIIIIII"IIIIIII000IIII
-@Dummy:1:1:1570:620/1
-GAGTAACAAAGTaaaGTTTGGAccGTTTTTGTCTCGTGCTCGTCGCTGCG
-+
-IIIIIII""IIIIIIIIIIIIIBIIIIIIIIIIII"IIIIIII000IIII
-@Dummy:1:1:1599:330/1
-AGAAGAAAACGTGCGTCAAAAATTACGTGCaGAAGGAGTGATGTAATGTC
-+
-IIIIIII""IIIIIIIIIIIIIIIIIII<III@II"IIIIIII000IIII
-@Dummy:1:1:1652:270/1
-AGCGTAAAGGCGCTCGTCTTTGGTATGTAGGacTTTGCATTGTTTAATTG
-+
-IIIIIII""IIIIIIIIIIIIIIIIIIIIIII6II"IIIIIII000IIII
-@Dummy:1:1:1746:351/1
-CTCATCGTCACGTTTATGGTGAACAGTGGATTAAGTTCATGAAGGATGGT
-+
-IIIIIII""IIIIIIIIIIIIIIIIIIIIIIIIII"IIIIIII000IIII
-@Dummy:1:1:1582:633/1
-CCGCTTCCTCCTGAGACTGAGCTTTCTCGCCAAATGACGACTTCTACCAC
-+
-IIIIIII""IIIIIIIIIIIIIIIIIIIIIIIIII"IIIIIII000IIII
-@Dummy:1:1:1598:534/1
-GCGCTCTAATCTCTGGGCATCTGGCTATGATGTTGATGGAACTGACCAAA
-+
-IIIIIII""IIIIIIIIIIIIIIIIIIIIIIIIII"IIIIIII000IIII
-@Dummy:1:1:1572:324/1
-AAGGTGCTTaaaTTCgtGGGTCCTGAGCTGGCGACCCTGTTTTGTATGGC
-+
-IIIIIII""IIIIIIIIIIIIIIIIIIII+7I05I"IIIIIII000IIII
-@Dummy:1:1:1749:466/1
-TTGCAGTGGAATAGTCAGGTTAAATTTAATGTGACCGTTTATCGCAATCT
-+
-IIIIIII""IIIIIIIIIIIIIIIIIIIIIIIIII"IIIIIII000IIII
-@Dummy:1:1:1629:446/1
-AGGTTATAACGCCGAAGCGGTAAAAATTTTAATTTTTGCCGCTGAGGGGT
-+
-IIIIIII""IIIIIIIIIIIIIIIIIIIIIIIIII"IIIIIII000IIII
-@Dummy:1:1:1763:587/1
-AAGCTACATCGTCAACGTTATATTTTGATAGTTTGACGGTTAATGCTGGT
-+
-IIIIIII""IIIIIIIIIIIIIIIIIIIIIIIIII"IIIIIII000IIII
-@Dummy:1:1:1616:363/1
-TGTTTATCCTTTGAATGGTCGCCATGATGGTGGTTATTATACCGTCAAGG
-+
-IIIIIII""IIIIIIIIIIIIIIIIIIIIIIDIII"IIIIIII000IIII
-@Dummy:1:1:1768:715/1
-ACCCTGATGAGGCCGCCCCTAGTTTTGTTTCTGGTGCTATGGCTAAAGCT
-+
-IIIIIII""IIIIIIIIIIIIIDIIIIIIIIIIII"IIIIIII000IIII
-@Dummy:1:1:1572:270/1
-TGAGATGCTTGCTTATCAACAGAAGGAGTCTACTGCTCGCGTTGCGTCTA
-+
-IIIIIII""IIIIIIIIIIIIIIIIIIIIIIIIII"IIIIIII000IIII
-@Dummy:1:1:1673:514/1
-ATTATTTTGACTTTGAGCGTATCGAGGCTCTTAAACCTGCTATTGAGGCT
-+
-IIIIIII""IIIIIIIIIIIIIIIIIIIIIIIII1"IIIIIII000IIII
-@Dummy:1:1:1634:330/1
-GGATATTCGCGATGAGTATAATTACCCCAAAAAGAAAGGTATTAAGGATG
-+
-IIIIIII""IIIIIIIIIIIIIIIIIIIIIII8II"IIIIIII000IIII
--- a/bowtie_transcriptome_wrapper/test-data/bowtie_in5.fastqsolexa	Tue Mar 15 10:06:15 2022 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,72 +0,0 @@
-@Dummy:1:1:1761:343/1
-TTTATCGCTTCCATGACGCAGAAGTTAACACTTTCGGATATTTCTGATGA
-+
-hhhhhhh;;hhhhhhhhhhh^hOhhhhghhhfhhhhhOhh^h;;hhhhhh
-@Dummy:1:1:1578:331/1
-TGTCAAAAACTGACGCGTTGGATGAGGAGAAGTGGCTTAATATGCTTGGC
-+
-hhhhhhh;;hhhhhhhhhhhhhhhhhhhhhhhhhh;hhhhhhhOOOhhhh
-@Dummy:1:1:1647:512/1
-TACTGAACAATCCGTACGTTTCCAGACCGCTTTGGCCTCTATTAAGCTCA
-+
-hhhhhhh;;hhhhhhhhhhhhhhhhhhhhhhhhhh;hhhhhhhOOOhhhh
-@Dummy:1:1:1570:620/1
-GAGTAACAAAGTaaaGTTTGGAccGTTTTTGTCTCGTGCTCGTCGCTGCG
-+
-hhhhhhh;;hhhhhhhhhhhhhahhhhhhhhhhhh;hhhhhhhOOOhhhh
-@Dummy:1:1:1599:330/1
-AGAAGAAAACGTGCGTCAAAAATTACGTGCaGAAGGAGTGATGTAATGTC
-+
-hhhhhhh;;hhhhhhhhhhhhhhhhhhh[hhh_hh;hhhhhhhOOOhhhh
-@Dummy:1:1:1652:270/1
-AGCGTAAAGGCGCTCGTCTTTGGTATGTAGGacTTTGCATTGTTTAATTG
-+
-hhhhhhh;;hhhhhhhhhhhhhhhhhhhhhhhUhh;hhhhhhhOOOhhhh
-@Dummy:1:1:1746:351/1
-CTCATCGTCACGTTTATGGTGAACAGTGGATTAAGTTCATGAAGGATGGT
-+
-hhhhhhh;;hhhhhhhhhhhhhhhhhhhhhhhhhh;hhhhhhhOOOhhhh
-@Dummy:1:1:1582:633/1
-CCGCTTCCTCCTGAGACTGAGCTTTCTCGCCAAATGACGACTTCTACCAC
-+
-hhhhhhh;;hhhhhhhhhhhhhhhhhhhhhhhhhh;hhhhhhhOOOhhhh
-@Dummy:1:1:1598:534/1
-GCGCTCTAATCTCTGGGCATCTGGCTATGATGTTGATGGAACTGACCAAA
-+
-hhhhhhh;;hhhhhhhhhhhhhhhhhhhhhhhhhh;hhhhhhhOOOhhhh
-@Dummy:1:1:1572:324/1
-AAGGTGCTTaaaTTCgtGGGTCCTGAGCTGGCGACCCTGTTTTGTATGGC
-+
-hhhhhhh;;hhhhhhhhhhhhhhhhhhhhJVhOTh;hhhhhhhOOOhhhh
-@Dummy:1:1:1749:466/1
-TTGCAGTGGAATAGTCAGGTTAAATTTAATGTGACCGTTTATCGCAATCT
-+
-hhhhhhh;;hhhhhhhhhhhhhhhhhhhhhhhhhh;hhhhhhhOOOhhhh
-@Dummy:1:1:1629:446/1
-AGGTTATAACGCCGAAGCGGTAAAAATTTTAATTTTTGCCGCTGAGGGGT
-+
-hhhhhhh;;hhhhhhhhhhhhhhhhhhhhhhhhhh;hhhhhhhOOOhhhh
-@Dummy:1:1:1763:587/1
-AAGCTACATCGTCAACGTTATATTTTGATAGTTTGACGGTTAATGCTGGT
-+
-hhhhhhh;;hhhhhhhhhhhhhhhhhhhhhhhhhh;hhhhhhhOOOhhhh
-@Dummy:1:1:1616:363/1
-TGTTTATCCTTTGAATGGTCGCCATGATGGTGGTTATTATACCGTCAAGG
-+
-hhhhhhh;;hhhhhhhhhhhhhhhhhhhhhhchhh;hhhhhhhOOOhhhh
-@Dummy:1:1:1768:715/1
-ACCCTGATGAGGCCGCCCCTAGTTTTGTTTCTGGTGCTATGGCTAAAGCT
-+
-hhhhhhh;;hhhhhhhhhhhhhchhhhhhhhhhhh;hhhhhhhOOOhhhh
-@Dummy:1:1:1572:270/1
-TGAGATGCTTGCTTATCAACAGAAGGAGTCTACTGCTCGCGTTGCGTCTA
-+
-hhhhhhh;;hhhhhhhhhhhhhhhhhhhhhhhhhh;hhhhhhhOOOhhhh
-@Dummy:1:1:1673:514/1
-ATTATTTTGACTTTGAGCGTATCGAGGCTCTTAAACCTGCTATTGAGGCT
-+
-hhhhhhh;;hhhhhhhhhhhhhhhhhhhhhhhhhP;hhhhhhhOOOhhhh
-@Dummy:1:1:1634:330/1
-GGATATTCGCGATGAGTATAATTACCCCAAAAAGAAAGGTATTAAGGATG
-+
-hhhhhhh;;hhhhhhhhhhhhhhhhhhhhhhhWhh;hhhhhhhOOOhhhh
--- a/bowtie_transcriptome_wrapper/test-data/bowtie_in6.fastqillumina	Tue Mar 15 10:06:15 2022 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,72 +0,0 @@
-@Dummy:1:1:1761:343/2
-TTGATAAAGCAGGAATTACTACTGCTTGTTTACGAATTAAATCGAAGTGG
-+
-hhhhhhhAAhhhhhhhOhh^hAAhhhhhhhhhhhh^hOhhhhghhhfhhh
-@Dummy:1:1:1578:331/2
-AAGGACTGGTTTAGATATGAGTCACATTTTGTTCATGGTAGAGATTCTCT
-+
-hhhhhhhAAhhhhhhhhhhhhhhhhhhhhhhhhhh^hOhhhhghhhfhhh
-@Dummy:1:1:1647:512/2
-TTCAGGCTTCTGCCGTTTTGGATTTAACCGAAGATGATTTCGATTTTCTG
-+
-hhhhhhhAAhhhhhhhhhhhhhhhhhhhhhhhhhh^hOhhhhghhhfhhh
-@Dummy:1:1:1570:620/2
-CTTGCGTTTATGGTACGCTGGACTTTGTGGGATACCCTCGCTTTCCTGCT
-+
-hhhhhhhAAhhhhhhhhhhhhhahhhhhhhhhhhh^hOhhhhghhhfhhh
-@Dummy:1:1:1599:330/2
-TTCTGGCGCTCGCCCTGGTCGTCCGCAGCCGTTGCGAGGTACTAAAGGCA
-+
-hhhhhhhAAhhhhhhhhhhhhhhhhhhh[hhh_hh^hOhhhhghhhfhhh
-@Dummy:1:1:1652:270/2
-GCTTCGGCCCCTTACTTGAGGATAAATTATGTCTAATATTCAAACTGGCG
-+
-hhhhhhhAAhhhhhhhhhhhhhhhhhhhhhhhUhh^hOhhhhghhhfhhh
-@Dummy:1:1:1746:351/2
-CCACTCCTCTCCCGACTGTGTGTGTGTGTGTTTATATTGACCATGCCGCT
-+
-hhhhhhhAAhhhhhhhhhhhhhhhhhh^hOhhhhghhhfhhhhhhhhhhh
-@Dummy:1:1:1582:633/2
-TCTATTGACATTATGGGTCTGCAAGCTGCTTTTTTTTTTTTTTTTTTTTT
-+
-hhhhhhhAAhhhhhhhhhhhhhhhhhhhhhhhhhh^hOhhhhghhhfhhh
-@Dummy:1:1:1598:534/2
-TTAGGCCAGTTTTCTGGTCGTGTTCAACAGACCTATAAACATTCTGTGCC
-+
-hhhhhhhAAhhhhhhhhhhhhhhhhhhhhhhhhhh^hOhhhhghhhfhhh
-@Dummy:1:1:1572:324/2
-GCCGCCGCGTGAAATTTCTATGAAGGATGTTTTCCGTTCTGGTGATTCGT
-+
-hhhhhhhAAhhhhhhhhhhhhhhhhhhhhJVhOTh^hOhhhhghhhfhhh
-@Dummy:1:1:1749:466/2
-GCCGACCACTCGCGATTCAATCATGACTTCGTGATAAAAGATTGAGTGTG
-+
-hhhhhhhAAhhhhhhhhhhhhhhhhhhhhhhhhhh^hOhhhhghhhfhhh
-@Dummy:1:1:1629:446/2
-CAAGCGAAGCGCGGTAGGTTTTCTGCTTAGGAGTTTAATCATGTTTCAGA
-+
-hhhhhhhAAhhhhhhhhhhhhhhhhhhhhhhhhhh^hOhhhhghhhfhhh
-@Dummy:1:1:1763:587/2
-CATTGCATTCAGATGGATACATCTGTCAACGCCGCTAATCAGGTTGTTTC
-+
-hhhhhhhAAhhhhhhhhhhhhhhhhhhhhhhhhhh^hOhhhhghhhfhhh
-@Dummy:1:1:1616:363/2
-GTGACTATTGACGTCCTTCCCCGTACGCCGGGCAATAAtGTTTATGTTGG
-+
-hhhhhhhAAhhhhhhhhhhhhhhhhhhhhhhchhh^hOhhhhghhhfhhh
-@Dummy:1:1:1768:715/2
-AGGACTTCTTGAAGGTACGTTGCAGGCTGGCACTTCTGCCGTTTCTGATA
-+
-hhhhhhhAAhhhhhhhhhhhhhchhhhhhhhhhhh^hOhhhhghhhfhhh
-@Dummy:1:1:1572:270/2
-ACACCAATCTTTCCAAGCAACAGCAGGTTTCCGAGATTATGCGCCAAATG
-+
-hhhhhhhAAhhhhhhhhhhhhhhhhhhhhhhhhhh^hOhhhhghhhfhhh
-@Dummy:1:1:1673:514/2
-GCATTTCTACTCTTTCTCAATCCCCAATGCTTGGCTTCCATAAGCAGATG
-+
-hhhhhhhAAhhhhhhhhhhhhhhhhhhhhhhhhhP^hOhhhhghhhfhhh
-@Dummy:1:1:1634:330/2
-TCAAGATTGCTGGAGGCCTCCACTATGAAATCGCGTAGAGGCTTTaCTAT
-+
-hhhhhhhAAhhhhhhhhhhhhhhhhhhhhhhhWhh^hOhhhhghhhfhhh
--- a/bowtie_transcriptome_wrapper/test-data/bowtie_in6.fastqsanger	Tue Mar 15 10:06:15 2022 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,72 +0,0 @@
-@Dummy:1:1:1761:343/2
-TTGATAAAGCAGGAATTACTACTGCTTGTTTACGAATTAAATCGAAGTGG
-+
-IIIIIII""IIIIIII0II?I""IIIIIIIIIIII?I0IIIIHIIIGIII
-@Dummy:1:1:1578:331/2
-AAGGACTGGTTTAGATATGAGTCACATTTTGTTCATGGTAGAGATTCTCT
-+
-IIIIIII""IIIIIIIIIIIIIIIIIIIIIIIIII?I0IIIIHIIIGIII
-@Dummy:1:1:1647:512/2
-TTCAGGCTTCTGCCGTTTTGGATTTAACCGAAGATGATTTCGATTTTCTG
-+
-IIIIIII""IIIIIIIIIIIIIIIIIIIIIIIIII?I0IIIIHIIIGIII
-@Dummy:1:1:1570:620/2
-CTTGCGTTTATGGTACGCTGGACTTTGTGGGATACCCTCGCTTTCCTGCT
-+
-IIIIIII""IIIIIIIIIIIIIBIIIIIIIIIIII?I0IIIIHIIIGIII
-@Dummy:1:1:1599:330/2
-TTCTGGCGCTCGCCCTGGTCGTCCGCAGCCGTTGCGAGGTACTAAAGGCA
-+
-IIIIIII""IIIIIIIIIIIIIIIIIII<III@II?I0IIIIHIIIGIII
-@Dummy:1:1:1652:270/2
-GCTTCGGCCCCTTACTTGAGGATAAATTATGTCTAATATTCAAACTGGCG
-+
-IIIIIII""IIIIIIIIIIIIIIIIIIIIIII6II?I0IIIIHIIIGIII
-@Dummy:1:1:1746:351/2
-CCACTCCTCTCCCGACTGTGTGTGTGTGTGTTTATATTGACCATGCCGCT
-+
-IIIIIII""IIIIIIIIIIIIIIIIII?I0IIIIHIIIGIIIIIIIIIII
-@Dummy:1:1:1582:633/2
-TCTATTGACATTATGGGTCTGCAAGCTGCTTTTTTTTTTTTTTTTTTTTT
-+
-IIIIIII""IIIIIIIIIIIIIIIIIIIIIIIIII?I0IIIIHIIIGIII
-@Dummy:1:1:1598:534/2
-TTAGGCCAGTTTTCTGGTCGTGTTCAACAGACCTATAAACATTCTGTGCC
-+
-IIIIIII""IIIIIIIIIIIIIIIIIIIIIIIIII?I0IIIIHIIIGIII
-@Dummy:1:1:1572:324/2
-GCCGCCGCGTGAAATTTCTATGAAGGATGTTTTCCGTTCTGGTGATTCGT
-+
-IIIIIII""IIIIIIIIIIIIIIIIIIII+7I05I?I0IIIIHIIIGIII
-@Dummy:1:1:1749:466/2
-GCCGACCACTCGCGATTCAATCATGACTTCGTGATAAAAGATTGAGTGTG
-+
-IIIIIII""IIIIIIIIIIIIIIIIIIIIIIIIII?I0IIIIHIIIGIII
-@Dummy:1:1:1629:446/2
-CAAGCGAAGCGCGGTAGGTTTTCTGCTTAGGAGTTTAATCATGTTTCAGA
-+
-IIIIIII""IIIIIIIIIIIIIIIIIIIIIIIIII?I0IIIIHIIIGIII
-@Dummy:1:1:1763:587/2
-CATTGCATTCAGATGGATACATCTGTCAACGCCGCTAATCAGGTTGTTTC
-+
-IIIIIII""IIIIIIIIIIIIIIIIIIIIIIIIII?I0IIIIHIIIGIII
-@Dummy:1:1:1616:363/2
-GTGACTATTGACGTCCTTCCCCGTACGCCGGGCAATAAtGTTTATGTTGG
-+
-IIIIIII""IIIIIIIIIIIIIIIIIIIIIIDIII?I0IIIIHIIIGIII
-@Dummy:1:1:1768:715/2
-AGGACTTCTTGAAGGTACGTTGCAGGCTGGCACTTCTGCCGTTTCTGATA
-+
-IIIIIII""IIIIIIIIIIIIIDIIIIIIIIIIII?I0IIIIHIIIGIII
-@Dummy:1:1:1572:270/2
-ACACCAATCTTTCCAAGCAACAGCAGGTTTCCGAGATTATGCGCCAAATG
-+
-IIIIIII""IIIIIIIIIIIIIIIIIIIIIIIIII?I0IIIIHIIIGIII
-@Dummy:1:1:1673:514/2
-GCATTTCTACTCTTTCTCAATCCCCAATGCTTGGCTTCCATAAGCAGATG
-+
-IIIIIII""IIIIIIIIIIIIIIIIIIIIIIIII1?I0IIIIHIIIGIII
-@Dummy:1:1:1634:330/2
-TCAAGATTGCTGGAGGCCTCCACTATGAAATCGCGTAGAGGCTTTaCTAT
-+
-IIIIIII""IIIIIIIIIIIIIIIIIIIIIII8II?I0IIIIHIIIGIII
--- a/bowtie_transcriptome_wrapper/test-data/bowtie_in6.fastqsolexa	Tue Mar 15 10:06:15 2022 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,72 +0,0 @@
-@Dummy:1:1:1761:343/2
-TTGATAAAGCAGGAATTACTACTGCTTGTTTACGAATTAAATCGAAGTGG
-+
-hhhhhhh;;hhhhhhhOhh^h;;hhhhhhhhhhhh^hOhhhhghhhfhhh
-@Dummy:1:1:1578:331/2
-AAGGACTGGTTTAGATATGAGTCACATTTTGTTCATGGTAGAGATTCTCT
-+
-hhhhhhh;;hhhhhhhhhhhhhhhhhhhhhhhhhh^hOhhhhghhhfhhh
-@Dummy:1:1:1647:512/2
-TTCAGGCTTCTGCCGTTTTGGATTTAACCGAAGATGATTTCGATTTTCTG
-+
-hhhhhhh;;hhhhhhhhhhhhhhhhhhhhhhhhhh^hOhhhhghhhfhhh
-@Dummy:1:1:1570:620/2
-CTTGCGTTTATGGTACGCTGGACTTTGTGGGATACCCTCGCTTTCCTGCT
-+
-hhhhhhh;;hhhhhhhhhhhhhahhhhhhhhhhhh^hOhhhhghhhfhhh
-@Dummy:1:1:1599:330/2
-TTCTGGCGCTCGCCCTGGTCGTCCGCAGCCGTTGCGAGGTACTAAAGGCA
-+
-hhhhhhh;;hhhhhhhhhhhhhhhhhhh[hhh_hh^hOhhhhghhhfhhh
-@Dummy:1:1:1652:270/2
-GCTTCGGCCCCTTACTTGAGGATAAATTATGTCTAATATTCAAACTGGCG
-+
-hhhhhhh;;hhhhhhhhhhhhhhhhhhhhhhhUhh^hOhhhhghhhfhhh
-@Dummy:1:1:1746:351/2
-CCACTCCTCTCCCGACTGTGTGTGTGTGTGTTTATATTGACCATGCCGCT
-+
-hhhhhhh;;hhhhhhhhhhhhhhhhhh^hOhhhhghhhfhhhhhhhhhhh
-@Dummy:1:1:1582:633/2
-TCTATTGACATTATGGGTCTGCAAGCTGCTTTTTTTTTTTTTTTTTTTTT
-+
-hhhhhhh;;hhhhhhhhhhhhhhhhhhhhhhhhhh^hOhhhhghhhfhhh
-@Dummy:1:1:1598:534/2
-TTAGGCCAGTTTTCTGGTCGTGTTCAACAGACCTATAAACATTCTGTGCC
-+
-hhhhhhh;;hhhhhhhhhhhhhhhhhhhhhhhhhh^hOhhhhghhhfhhh
-@Dummy:1:1:1572:324/2
-GCCGCCGCGTGAAATTTCTATGAAGGATGTTTTCCGTTCTGGTGATTCGT
-+
-hhhhhhh;;hhhhhhhhhhhhhhhhhhhhJVhOTh^hOhhhhghhhfhhh
-@Dummy:1:1:1749:466/2
-GCCGACCACTCGCGATTCAATCATGACTTCGTGATAAAAGATTGAGTGTG
-+
-hhhhhhh;;hhhhhhhhhhhhhhhhhhhhhhhhhh^hOhhhhghhhfhhh
-@Dummy:1:1:1629:446/2
-CAAGCGAAGCGCGGTAGGTTTTCTGCTTAGGAGTTTAATCATGTTTCAGA
-+
-hhhhhhh;;hhhhhhhhhhhhhhhhhhhhhhhhhh^hOhhhhghhhfhhh
-@Dummy:1:1:1763:587/2
-CATTGCATTCAGATGGATACATCTGTCAACGCCGCTAATCAGGTTGTTTC
-+
-hhhhhhh;;hhhhhhhhhhhhhhhhhhhhhhhhhh^hOhhhhghhhfhhh
-@Dummy:1:1:1616:363/2
-GTGACTATTGACGTCCTTCCCCGTACGCCGGGCAATAAtGTTTATGTTGG
-+
-hhhhhhh;;hhhhhhhhhhhhhhhhhhhhhhchhh^hOhhhhghhhfhhh
-@Dummy:1:1:1768:715/2
-AGGACTTCTTGAAGGTACGTTGCAGGCTGGCACTTCTGCCGTTTCTGATA
-+
-hhhhhhh;;hhhhhhhhhhhhhchhhhhhhhhhhh^hOhhhhghhhfhhh
-@Dummy:1:1:1572:270/2
-ACACCAATCTTTCCAAGCAACAGCAGGTTTCCGAGATTATGCGCCAAATG
-+
-hhhhhhh;;hhhhhhhhhhhhhhhhhhhhhhhhhh^hOhhhhghhhfhhh
-@Dummy:1:1:1673:514/2
-GCATTTCTACTCTTTCTCAATCCCCAATGCTTGGCTTCCATAAGCAGATG
-+
-hhhhhhh;;hhhhhhhhhhhhhhhhhhhhhhhhhP^hOhhhhghhhfhhh
-@Dummy:1:1:1634:330/2
-TCAAGATTGCTGGAGGCCTCCACTATGAAATCGCGTAGAGGCTTTaCTAT
-+
-hhhhhhh;;hhhhhhhhhhhhhhhhhhhhhhhWhh^hOhhhhghhhfhhh
--- a/bowtie_transcriptome_wrapper/test-data/bowtie_indices.loc	Tue Mar 15 10:06:15 2022 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-equCab2chrM	equCab2	Horse (Equus caballus): equCab2 chrM	${__HERE__}/indexes/equCab2chrM/equCab2chrM
--- a/bowtie_transcriptome_wrapper/test-data/bowtie_out10.sam	Tue Mar 15 10:06:15 2022 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,36 +0,0 @@
-Dummy:1:1:1570:620	141	*	0	0	*	*	0	0	CTTGCGTTTATGGTACGCTGGACTTTGTGGGATACCCTCGCTTTCCTGCT	IIIIIII""IIIIIIIIIIIIIBIIIIIIIIIIII?I0IIIIHIIIGIII	XM:i:0
-Dummy:1:1:1570:620	77	*	0	0	*	*	0	0	GAGTAACAAAGTAAAGTTTGGACCGTTTTTGTCTCGTGCTCGTCGCTGCG	IIIIIII""IIIIIIIIIIIIIBIIIIIIIIIIII"IIIIIII000IIII	XM:i:0
-Dummy:1:1:1572:270	131	phiX174	3577	255	50M	=	3518	-109	ACACCAATCTTTCCAAGCAACAGCAGGTTTCCGAGATTATGCGCCAAATG	IIIIIII""IIIIIIIIIIIIIIIIIIIIIIIIII?I0IIIIHIIIGIII	XA:i:0	MD:Z:50	NM:i:0
-Dummy:1:1:1572:270	67	phiX174	3518	255	50M	=	3577	109	TGAGATGCTTGCTTATCAACAGAAGGAGTCTACTGCTCGCGTTGCGTCTA	IIIIIII""IIIIIIIIIIIIIIIIIIIIIIIIII"IIIIIII000IIII	XA:i:0	MD:Z:50	NM:i:0
-Dummy:1:1:1572:324	141	*	0	0	*	*	0	0	GCCGCCGCGTGAAATTTCTATGAAGGATGTTTTCCGTTCTGGTGATTCGT	IIIIIII""IIIIIIIIIIIIIIIIIIII+7I05I?I0IIIIHIIIGIII	XM:i:0
-Dummy:1:1:1572:324	77	*	0	0	*	*	0	0	AAGGTGCTTAAATTCGTGGGTCCTGAGCTGGCGACCCTGTTTTGTATGGC	IIIIIII""IIIIIIIIIIIIIIIIIIII+7I05I"IIIIIII000IIII	XM:i:0
-Dummy:1:1:1578:331	131	phiX174	268	255	50M	=	209	-109	AAGGACTGGTTTAGATATGAGTCACATTTTGTTCATGGTAGAGATTCTCT	IIIIIII""IIIIIIIIIIIIIIIIIIIIIIIIII?I0IIIIHIIIGIII	XA:i:0	MD:Z:50	NM:i:0
-Dummy:1:1:1578:331	67	phiX174	209	255	50M	=	268	109	TGTCAAAAACTGACGCGTTGGATGAGGAGAAGTGGCTTAATATGCTTGGC	IIIIIII""IIIIIIIIIIIIIIIIIIIIIIIIII"IIIIIII000IIII	XA:i:0	MD:Z:50	NM:i:0
-Dummy:1:1:1582:633	141	*	0	0	*	*	0	0	TCTATTGACATTATGGGTCTGCAAGCTGCTTTTTTTTTTTTTTTTTTTTT	IIIIIII""IIIIIIIIIIIIIIIIIIIIIIIIII?I0IIIIHIIIGIII	XM:i:0
-Dummy:1:1:1582:633	77	*	0	0	*	*	0	0	CCGCTTCCTCCTGAGACTGAGCTTTCTCGCCAAATGACGACTTCTACCAC	IIIIIII""IIIIIIIIIIIIIIIIIIIIIIIIII"IIIIIII000IIII	XM:i:0
-Dummy:1:1:1598:534	131	phiX174	1772	255	50M	=	1717	-105	TTAGGCCAGTTTTCTGGTCGTGTTCAACAGACCTATAAACATTCTGTGCC	IIIIIII""IIIIIIIIIIIIIIIIIIIIIIIIII?I0IIIIHIIIGIII	XA:i:0	MD:Z:50	NM:i:0
-Dummy:1:1:1598:534	67	phiX174	1717	255	50M	=	1772	105	GCGCTCTAATCTCTGGGCATCTGGCTATGATGTTGATGGAACTGACCAAA	IIIIIII""IIIIIIIIIIIIIIIIIIIIIIIIII"IIIIIII000IIII	XA:i:0	MD:Z:50	NM:i:0
-Dummy:1:1:1599:330	131	phiX174	868	255	50M	=	803	-115	TTCTGGCGCTCGCCCTGGTCGTCCGCAGCCGTTGCGAGGTACTAAAGGCA	IIIIIII""IIIIIIIIIIIIIIIIIII<III@II?I0IIIIHIIIGIII	XA:i:0	MD:Z:50	NM:i:0
-Dummy:1:1:1599:330	67	phiX174	803	255	50M	=	868	115	AGAAGAAAACGTGCGTCAAAAATTACGTGCAGAAGGAGTGATGTAATGTC	IIIIIII""IIIIIIIIIIIIIIIIIII<III@II"IIIIIII000IIII	XA:i:0	MD:Z:50	NM:i:0
-Dummy:1:1:1616:363	131	phiX174	2773	255	50M	=	2718	-105	GTGACTATTGACGTCCTTCCCCGTACGCCGGGCAATAATGTTTATGTTGG	IIIIIII""IIIIIIIIIIIIIIIIIIIIIIDIII?I0IIIIHIIIGIII	XA:i:0	MD:Z:50	NM:i:0
-Dummy:1:1:1616:363	67	phiX174	2718	255	50M	=	2773	105	TGTTTATCCTTTGAATGGTCGCCATGATGGTGGTTATTATACCGTCAAGG	IIIIIII""IIIIIIIIIIIIIIIIIIIIIIDIII"IIIIIII000IIII	XA:i:0	MD:Z:50	NM:i:0
-Dummy:1:1:1629:446	131	phiX174	2355	255	50M	=	2301	-104	CAAGCGAAGCGCGGTAGGTTTTCTGCTTAGGAGTTTAATCATGTTTCAGA	IIIIIII""IIIIIIIIIIIIIIIIIIIIIIIIII?I0IIIIHIIIGIII	XA:i:0	MD:Z:50	NM:i:0
-Dummy:1:1:1629:446	67	phiX174	2301	255	50M	=	2355	104	AGGTTATAACGCCGAAGCGGTAAAAATTTTAATTTTTGCCGCTGAGGGGT	IIIIIII""IIIIIIIIIIIIIIIIIIIIIIIIII"IIIIIII000IIII	XA:i:0	MD:Z:50	NM:i:0
-Dummy:1:1:1634:330	131	phiX174	4473	255	50M	=	4418	-105	TCAAGATTGCTGGAGGCCTCCACTATGAAATCGCGTAGAGGCTTTACTAT	IIIIIII""IIIIIIIIIIIIIIIIIIIIIII8II?I0IIIIHIIIGIII	XA:i:0	MD:Z:50	NM:i:0
-Dummy:1:1:1634:330	67	phiX174	4418	255	50M	=	4473	105	GGATATTCGCGATGAGTATAATTACCCCAAAAAGAAAGGTATTAAGGATG	IIIIIII""IIIIIIIIIIIIIIIIIIIIIII8II"IIIIIII000IIII	XA:i:0	MD:Z:50	NM:i:0
-Dummy:1:1:1647:512	131	phiX174	451	255	50M	=	401	-100	TTCAGGCTTCTGCCGTTTTGGATTTAACCGAAGATGATTTCGATTTTCTG	IIIIIII""IIIIIIIIIIIIIIIIIIIIIIIIII?I0IIIIHIIIGIII	XA:i:0	MD:Z:50	NM:i:0
-Dummy:1:1:1647:512	67	phiX174	401	255	50M	=	451	100	TACTGAACAATCCGTACGTTTCCAGACCGCTTTGGCCTCTATTAAGCTCA	IIIIIII""IIIIIIIIIIIIIIIIIIIIIIIIII"IIIIIII000IIII	XA:i:0	MD:Z:50	NM:i:0
-Dummy:1:1:1652:270	141	*	0	0	*	*	0	0	GCTTCGGCCCCTTACTTGAGGATAAATTATGTCTAATATTCAAACTGGCG	IIIIIII""IIIIIIIIIIIIIIIIIIIIIII6II?I0IIIIHIIIGIII	XM:i:0
-Dummy:1:1:1652:270	77	*	0	0	*	*	0	0	AGCGTAAAGGCGCTCGTCTTTGGTATGTAGGACTTTGCATTGTTTAATTG	IIIIIII""IIIIIIIIIIIIIIIIIIIIIII6II"IIIIIII000IIII	XM:i:0
-Dummy:1:1:1673:514	131	phiX174	4072	255	50M	=	4018	-104	GCATTTCTACTCTTTCTCAATCCCCAATGCTTGGCTTCCATAAGCAGATG	IIIIIII""IIIIIIIIIIIIIIIIIIIIIIIII1?I0IIIIHIIIGIII	XA:i:0	MD:Z:50	NM:i:0
-Dummy:1:1:1673:514	67	phiX174	4018	255	50M	=	4072	104	ATTATTTTGACTTTGAGCGTATCGAGGCTCTTAAACCTGCTATTGAGGCT	IIIIIII""IIIIIIIIIIIIIIIIIIIIIIIII1"IIIIIII000IIII	XA:i:0	MD:Z:50	NM:i:0
-Dummy:1:1:1746:351	141	*	0	0	*	*	0	0	CCACTCCTCTCCCGACTGTGTGTGTGTGTGTTTATATTGACCATGCCGCT	IIIIIII""IIIIIIIIIIIIIIIIII?I0IIIIHIIIGIIIIIIIIIII	XM:i:0
-Dummy:1:1:1746:351	77	*	0	0	*	*	0	0	CTCATCGTCACGTTTATGGTGAACAGTGGATTAAGTTCATGAAGGATGGT	IIIIIII""IIIIIIIIIIIIIIIIIIIIIIIIII"IIIIIII000IIII	XM:i:0
-Dummy:1:1:1749:466	131	phiX174	2251	255	50M	=	2201	-100	GCCGACCACTCGCGATTCAATCATGACTTCGTGATAAAAGATTGAGTGTG	IIIIIII""IIIIIIIIIIIIIIIIIIIIIIIIII?I0IIIIHIIIGIII	XA:i:0	MD:Z:50	NM:i:0
-Dummy:1:1:1749:466	67	phiX174	2201	255	50M	=	2251	100	TTGCAGTGGAATAGTCAGGTTAAATTTAATGTGACCGTTTATCGCAATCT	IIIIIII""IIIIIIIIIIIIIIIIIIIIIIIIII"IIIIIII000IIII	XA:i:0	MD:Z:50	NM:i:0
-Dummy:1:1:1761:343	131	phiX174	69	255	50M	=	5	-114	TTGATAAAGCAGGAATTACTACTGCTTGTTTACGAATTAAATCGAAGTGG	IIIIIII""IIIIIII0II?I""IIIIIIIIIIII?I0IIIIHIIIGIII	XA:i:0	MD:Z:50	NM:i:0
-Dummy:1:1:1761:343	67	phiX174	5	255	50M	=	69	114	TTTATCGCTTCCATGACGCAGAAGTTAACACTTTCGGATATTTCTGATGA	IIIIIII""IIIIIIIIIII?I0IIIIHIIIGIIIII0II?I""IIIIII	XA:i:0	MD:Z:50	NM:i:0
-Dummy:1:1:1763:587	131	phiX174	2566	255	50M	=	2501	-115	CATTGCATTCAGATGGATACATCTGTCAACGCCGCTAATCAGGTTGTTTC	IIIIIII""IIIIIIIIIIIIIIIIIIIIIIIIII?I0IIIIHIIIGIII	XA:i:0	MD:Z:50	NM:i:0
-Dummy:1:1:1763:587	67	phiX174	2501	255	50M	=	2566	115	AAGCTACATCGTCAACGTTATATTTTGATAGTTTGACGGTTAATGCTGGT	IIIIIII""IIIIIIIIIIIIIIIIIIIIIIIIII"IIIIIII000IIII	XA:i:0	MD:Z:50	NM:i:0
-Dummy:1:1:1768:715	131	phiX174	3173	255	50M	=	3118	-105	AGGACTTCTTGAAGGTACGTTGCAGGCTGGCACTTCTGCCGTTTCTGATA	IIIIIII""IIIIIIIIIIIIIDIIIIIIIIIIII?I0IIIIHIIIGIII	XA:i:0	MD:Z:50	NM:i:0
-Dummy:1:1:1768:715	67	phiX174	3118	255	50M	=	3173	105	ACCCTGATGAGGCCGCCCCTAGTTTTGTTTCTGGTGCTATGGCTAAAGCT	IIIIIII""IIIIIIIIIIIIIDIIIIIIIIIIII"IIIIIII000IIII	XA:i:0	MD:Z:50	NM:i:0
--- a/bowtie_transcriptome_wrapper/test-data/bowtie_out11.txt	Tue Mar 15 10:06:15 2022 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,4 +0,0 @@
-# reads processed: 18
-# reads with at least one reported alignment: 13 (72.22%)
-# reads that failed to align: 5 (27.78%)
-Reported 13 paired-end alignments to 1 output stream(s)
--- a/bowtie_transcriptome_wrapper/test-data/bowtie_out6.sam	Tue Mar 15 10:06:15 2022 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,26 +0,0 @@
-HWI-EAS91_1_30788AAXX:1:1:1090:409/1	16	chrM	15014	255	36M	*	0	0	TTGCCTACGCCATCCTACGCTCCATTCCCAACAAAC	I8AII:IIIIIIIIIIIIIIIIIIIII""IIIIIII	XA:i:0	MD:Z:36	NM:i:0
-HWI-EAS91_1_30788AAXX:1:1:1199:1376/1	16	chrM	14023	255	36M	*	0	0	AAACCCCCATAAATAGGTGAAGGTTTTCCAGAAAAC	III/:&GII3III;IIIIIIIIIIIII""IIIIIII	XA:i:2	MD:Z:27G0A7	NM:i:2
-HWI-EAS91_1_30788AAXX:1:1:1218:141/1	4	*	0	0	*	*	0	0	GTTAAATATTGGGAGTGGGGGGGGGGGGGAGTTTTG	IIIIIII""IIIIIIIIIIIIIIIIIIII1IIII+I	XM:i:0
-HWI-EAS91_1_30788AAXX:1:1:1269:520/1	16	chrM	11036	255	36M	*	0	0	CGACAAACCGATCTAAAATCACTTATTCCATACTCC	IIIIIIIIIIIIIIIIIIIIIIIIIII""IIIIIII	XA:i:1	MD:Z:27G8	NM:i:1
-HWI-EAS91_1_30788AAXX:1:1:1303:1162/1	16	chrM	14866	255	36M	*	0	0	AAAGACATCCTAGGACTCCTCCTCCTGCCCTTGCTC	I6I3,'94IIAI(IAIGI*4IIFIIII""IIIIIII	XA:i:2	MD:Z:27A0T7	NM:i:2
-HWI-EAS91_1_30788AAXX:1:1:1310:991/1	16	chrM	10002	255	36M	*	0	0	CTCCTATGCCTAGAAGGAATAATACTACCACTATTC	I:2IEI:IIDIIIIII4IIIIIIIIII""IIIIIII	XA:i:1	MD:Z:27T8	NM:i:1
-HWI-EAS91_1_30788AAXX:1:1:1336:1000/1	16	chrM	11616	255	36M	*	0	0	GATCTAGAAACAGAAACTTAATATTTCCCATTTACC	II9IIIIIIIIIIIIIIIIIIIIIIII""IIIIIII	XA:i:2	MD:Z:27T0T7	NM:i:2
-HWI-EAS91_1_30788AAXX:1:1:1398:854/1	16	chrM	3921	255	36M	*	0	0	CACCCTTCCCGTACTAATAAATCCCCTCCTCTTCAC	IIIII=AIIIIIIIIIIIIIIBIIIII""IIIIIII	XA:i:2	MD:Z:27T0A7	NM:i:2
-HWI-EAS91_1_30788AAXX:1:1:1442:1346/1	16	chrM	9331	255	36M	*	0	0	CAGCCACCACTTCGGATTCGAAGCAGCCCCTTGATA	&,*II-<?<II4I(I1IIIIIDIIIII""IIIIIII	XA:i:1	MD:Z:28G7	NM:i:1
-HWI-EAS91_1_30788AAXX:1:1:1454:975/1	16	chrM	8929	255	36M	*	0	0	TGGCTTCTTCTGAGCCTTTTACCACTCCCGCCTAGC	IIIIIII;GIEIIIIIIIIIIIIIIII""IIIIIII	XA:i:2	MD:Z:27A0A7	NM:i:2
-HWI-EAS91_1_30788AAXX:1:1:1461:255/1	0	chrM	12988	255	36M	*	0	0	GTACACCGGCGCCTGAGCCCTACTAATAACTCTCAT	IIIIIII""IIIIII9IIIIIIEI(II9.I4III,I	XA:i:2	MD:Z:7A0A27	NM:i:2
-HWI-EAS91_1_30788AAXX:1:1:1491:637/1	16	chrM	10864	255	36M	*	0	0	TGTAGAAGCCCCAATTGCCGGATCCATCCTGCTAGC	DBAIIIIIIIIIIIFIIIIIIIIIIII""IIIIIII	XA:i:2	MD:Z:27A0G7	NM:i:2
-HWI-EAS91_1_30788AAXX:1:1:1513:715/1	16	chrM	9563	255	36M	*	0	0	CTGACTACCACAACTAAACATCTATGCCCAAAAAAC	I+-II?IDIIIIIIIIIIIIIIIIIII""IIIIIII	XA:i:2	MD:Z:27A0G7	NM:i:2
-HWI-EAS91_1_30788AAXX:1:1:1598:1148/1	16	chrM	2334	255	36M	*	0	0	AAATATATAATCACTTATTGATCCAAACCATTGATC	IIIIIHI=IICIII?IIIIIIDIIIII""IIIIIII	XA:i:0	MD:Z:36	NM:i:0
-HWI-EAS91_1_30788AAXX:1:1:1601:805/1	0	chrM	12584	255	36M	*	0	0	GAAAACAGGAAAACAATCCAGTCACTTACCCTATGC	IIIIIII""IIIIIIIIIIIIIIIIIIIIIII@III	XA:i:2	MD:Z:7A0C27	NM:i:2
-HWI-EAS91_1_30788AAXX:1:1:1630:59/1	16	chrM	12387	255	36M	*	0	0	TCATACTCGACCCCAACCTTACCAACCCCCCGCTCC	FIIHII;IIIIIIIIIIIIIIIIIIII""IIIIIII	XA:i:1	MD:Z:27T8	NM:i:1
-HWI-EAS91_1_30788AAXX:1:1:1634:211/1	0	chrM	9350	255	36M	*	0	0	GAAGCAGGGGCTTGATACTGACACTTCGTCGACGTA	IIIIIII""IIIIIIIIIIIIIIIIIIIIII9IIDF	XA:i:2	MD:Z:7C0C27	NM:i:2
-HWI-EAS91_1_30788AAXX:1:1:1663:724/1	0	chrM	15012	255	36M	*	0	0	GTTTGCCGGCGCCATCCTACGCTCCATTCCCAACAA	IIIIIII""IIII8IIIIIIHIIII6IIIII1CI=3	XA:i:2	MD:Z:7T0A27	NM:i:2
-HWI-EAS91_1_30788AAXX:1:1:1698:516/1	16	chrM	2735	255	36M	*	0	0	TTTACACTCAGAGGTTCAACTCCTCTCCCTAACAAC	I9IIIII5IIIIIIIIIIIIIIIIIII""IIIIIII	XA:i:0	MD:Z:36	NM:i:0
-HWI-EAS91_1_30788AAXX:1:1:1711:249/1	16	chrM	10617	255	36M	*	0	0	ACCAAACAGAACGCCTGAACGCAGGCCCCTACTTCC	IIIIIIIIIIIIIIIIIIIIIIIIIII""IIIIIII	XA:i:1	MD:Z:27T8	NM:i:1
-HWI-EAS91_1_30788AAXX:1:1:1716:413/1	0	chrM	6040	255	36M	*	0	0	GATCCAAGGCTTTATCAACACCTATTCTGATTCTTC	IIIIIII""IIIIIIIIIIIIIIIIIIIIIIIIIII	XA:i:2	MD:Z:7T0C27	NM:i:2
-HWI-EAS91_1_30788AAXX:1:1:1723:1459/1	16	chrM	15787	255	36M	*	0	0	ATCCTCGCTCCGGGCCCATCCAAACGTCCGGGTTTC	I=II-IIH9IIIIIIIIIDIIIIIIII""IIIIIII	XA:i:2	MD:Z:27G0G7	NM:i:2
-HWI-EAS91_1_30788AAXX:1:1:1775:764/1	0	chrM	16613	255	36M	*	0	0	GCATCCCGGTAGATCTAATTTTCTAAATCTGTCAAC	IIIIIII""III@IIII+IIIIII8H8IIIIIIICI	XA:i:2	MD:Z:7C0C27	NM:i:2
-HWI-EAS91_1_30788AAXX:1:1:795:325/1	16	chrM	4249	255	36M	*	0	0	AAACTTGGACTCACACCATTCCACTTCCCAGTACCC	IIII56IIIIIIIIIIIIIIIIIIIII""IIIIIII	XA:i:2	MD:Z:27T0G7	NM:i:2
-HWI-EAS91_1_30788AAXX:1:1:850:117/1	16	chrM	5540	255	36M	*	0	0	CCCATGCATTCGTAATAATTTTCTTTACCGTCATAC	?:;I9DDIBEIIIIIIIIEIEIIIIII""IIIIIII	XA:i:2	MD:Z:27T0G7	NM:i:2
-HWI-EAS91_1_30788AAXX:1:1:873:453/1	16	chrM	3188	255	36M	*	0	0	ATCTCATACGAAGTAACTCTAGCAATCCCCCTACTC	I=IIIIIII@IIIIIIIIIIIIIIIII""IIIIIII	XA:i:2	MD:Z:27A0T7	NM:i:2
--- a/bowtie_transcriptome_wrapper/test-data/bowtie_out7.sam	Tue Mar 15 10:06:15 2022 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,36 +0,0 @@
-Dummy:1:1:1570:620	141	*	0	0	*	*	0	0	CTTGCGTTTATGGTACGCTGGACTTTGTGGGATACCCTCGCTTTCCTGCT	IIIIIII""IIIIIIIIIIIIIBIIIIIIIIIIII?I0IIIIHIIIGIII	XM:i:0
-Dummy:1:1:1570:620	77	*	0	0	*	*	0	0	GAGTAACAAAGTAAAGTTTGGACCGTTTTTGTCTCGTGCTCGTCGCTGCG	IIIIIII""IIIIIIIIIIIIIBIIIIIIIIIIII"IIIIIII000IIII	XM:i:0
-Dummy:1:1:1572:270	131	phiX174	3577	255	50M	=	3518	-109	ACACCAATCTTTCCAAGCAACAGCAGGTTTCCGAGATTATGCGCCAAATG	IIIIIII""IIIIIIIIIIIIIIIIIIIIIIIIII?I0IIIIHIIIGIII	XA:i:0	MD:Z:50	NM:i:0
-Dummy:1:1:1572:270	67	phiX174	3518	255	50M	=	3577	109	TGAGATGCTTGCTTATCAACAGAAGGAGTCTACTGCTCGCGTTGCGTCTA	IIIIIII""IIIIIIIIIIIIIIIIIIIIIIIIII"IIIIIII000IIII	XA:i:0	MD:Z:50	NM:i:0
-Dummy:1:1:1572:324	141	*	0	0	*	*	0	0	GCCGCCGCGTGAAATTTCTATGAAGGATGTTTTCCGTTCTGGTGATTCGT	IIIIIII""IIIIIIIIIIIIIIIIIIII+7I05I?I0IIIIHIIIGIII	XM:i:0
-Dummy:1:1:1572:324	77	*	0	0	*	*	0	0	AAGGTGCTTAAATTCGTGGGTCCTGAGCTGGCGACCCTGTTTTGTATGGC	IIIIIII""IIIIIIIIIIIIIIIIIIII+7I05I"IIIIIII000IIII	XM:i:0
-Dummy:1:1:1578:331	131	phiX174	268	255	50M	=	209	-109	AAGGACTGGTTTAGATATGAGTCACATTTTGTTCATGGTAGAGATTCTCT	IIIIIII""IIIIIIIIIIIIIIIIIIIIIIIIII?I0IIIIHIIIGIII	XA:i:0	MD:Z:50	NM:i:0
-Dummy:1:1:1578:331	67	phiX174	209	255	50M	=	268	109	TGTCAAAAACTGACGCGTTGGATGAGGAGAAGTGGCTTAATATGCTTGGC	IIIIIII""IIIIIIIIIIIIIIIIIIIIIIIIII"IIIIIII000IIII	XA:i:0	MD:Z:50	NM:i:0
-Dummy:1:1:1582:633	141	*	0	0	*	*	0	0	TCTATTGACATTATGGGTCTGCAAGCTGCTTTTTTTTTTTTTTTTTTTTT	IIIIIII""IIIIIIIIIIIIIIIIIIIIIIIIII?I0IIIIHIIIGIII	XM:i:0
-Dummy:1:1:1582:633	77	*	0	0	*	*	0	0	CCGCTTCCTCCTGAGACTGAGCTTTCTCGCCAAATGACGACTTCTACCAC	IIIIIII""IIIIIIIIIIIIIIIIIIIIIIIIII"IIIIIII000IIII	XM:i:0
-Dummy:1:1:1598:534	131	phiX174	1772	255	50M	=	1717	-105	TTAGGCCAGTTTTCTGGTCGTGTTCAACAGACCTATAAACATTCTGTGCC	IIIIIII""IIIIIIIIIIIIIIIIIIIIIIIIII?I0IIIIHIIIGIII	XA:i:0	MD:Z:50	NM:i:0
-Dummy:1:1:1598:534	67	phiX174	1717	255	50M	=	1772	105	GCGCTCTAATCTCTGGGCATCTGGCTATGATGTTGATGGAACTGACCAAA	IIIIIII""IIIIIIIIIIIIIIIIIIIIIIIIII"IIIIIII000IIII	XA:i:0	MD:Z:50	NM:i:0
-Dummy:1:1:1599:330	131	phiX174	868	255	50M	=	803	-115	TTCTGGCGCTCGCCCTGGTCGTCCGCAGCCGTTGCGAGGTACTAAAGGCA	IIIIIII""IIIIIIIIIIIIIIIIIII<III@II?I0IIIIHIIIGIII	XA:i:0	MD:Z:50	NM:i:0
-Dummy:1:1:1599:330	67	phiX174	803	255	50M	=	868	115	AGAAGAAAACGTGCGTCAAAAATTACGTGCAGAAGGAGTGATGTAATGTC	IIIIIII""IIIIIIIIIIIIIIIIIII<III@II"IIIIIII000IIII	XA:i:0	MD:Z:50	NM:i:0
-Dummy:1:1:1616:363	131	phiX174	2773	255	50M	=	2718	-105	GTGACTATTGACGTCCTTCCCCGTACGCCGGGCAATAATGTTTATGTTGG	IIIIIII""IIIIIIIIIIIIIIIIIIIIIIDIII?I0IIIIHIIIGIII	XA:i:0	MD:Z:50	NM:i:0
-Dummy:1:1:1616:363	67	phiX174	2718	255	50M	=	2773	105	TGTTTATCCTTTGAATGGTCGCCATGATGGTGGTTATTATACCGTCAAGG	IIIIIII""IIIIIIIIIIIIIIIIIIIIIIDIII"IIIIIII000IIII	XA:i:0	MD:Z:50	NM:i:0
-Dummy:1:1:1629:446	131	phiX174	2355	255	50M	=	2301	-104	CAAGCGAAGCGCGGTAGGTTTTCTGCTTAGGAGTTTAATCATGTTTCAGA	IIIIIII""IIIIIIIIIIIIIIIIIIIIIIIIII?I0IIIIHIIIGIII	XA:i:0	MD:Z:50	NM:i:0
-Dummy:1:1:1629:446	67	phiX174	2301	255	50M	=	2355	104	AGGTTATAACGCCGAAGCGGTAAAAATTTTAATTTTTGCCGCTGAGGGGT	IIIIIII""IIIIIIIIIIIIIIIIIIIIIIIIII"IIIIIII000IIII	XA:i:0	MD:Z:50	NM:i:0
-Dummy:1:1:1634:330	131	phiX174	4473	255	50M	=	4418	-105	TCAAGATTGCTGGAGGCCTCCACTATGAAATCGCGTAGAGGCTTTACTAT	IIIIIII""IIIIIIIIIIIIIIIIIIIIIII8II?I0IIIIHIIIGIII	XA:i:0	MD:Z:50	NM:i:0
-Dummy:1:1:1634:330	67	phiX174	4418	255	50M	=	4473	105	GGATATTCGCGATGAGTATAATTACCCCAAAAAGAAAGGTATTAAGGATG	IIIIIII""IIIIIIIIIIIIIIIIIIIIIII8II"IIIIIII000IIII	XA:i:0	MD:Z:50	NM:i:0
-Dummy:1:1:1647:512	131	phiX174	451	255	50M	=	401	-100	TTCAGGCTTCTGCCGTTTTGGATTTAACCGAAGATGATTTCGATTTTCTG	IIIIIII""IIIIIIIIIIIIIIIIIIIIIIIIII?I0IIIIHIIIGIII	XA:i:0	MD:Z:50	NM:i:0
-Dummy:1:1:1647:512	67	phiX174	401	255	50M	=	451	100	TACTGAACAATCCGTACGTTTCCAGACCGCTTTGGCCTCTATTAAGCTCA	IIIIIII""IIIIIIIIIIIIIIIIIIIIIIIIII"IIIIIII000IIII	XA:i:0	MD:Z:50	NM:i:0
-Dummy:1:1:1652:270	141	*	0	0	*	*	0	0	GCTTCGGCCCCTTACTTGAGGATAAATTATGTCTAATATTCAAACTGGCG	IIIIIII""IIIIIIIIIIIIIIIIIIIIIII6II?I0IIIIHIIIGIII	XM:i:0
-Dummy:1:1:1652:270	77	*	0	0	*	*	0	0	AGCGTAAAGGCGCTCGTCTTTGGTATGTAGGACTTTGCATTGTTTAATTG	IIIIIII""IIIIIIIIIIIIIIIIIIIIIII6II"IIIIIII000IIII	XM:i:0
-Dummy:1:1:1673:514	131	phiX174	4072	255	50M	=	4018	-104	GCATTTCTACTCTTTCTCAATCCCCAATGCTTGGCTTCCATAAGCAGATG	IIIIIII""IIIIIIIIIIIIIIIIIIIIIIIII1?I0IIIIHIIIGIII	XA:i:0	MD:Z:50	NM:i:0
-Dummy:1:1:1673:514	67	phiX174	4018	255	50M	=	4072	104	ATTATTTTGACTTTGAGCGTATCGAGGCTCTTAAACCTGCTATTGAGGCT	IIIIIII""IIIIIIIIIIIIIIIIIIIIIIIII1"IIIIIII000IIII	XA:i:0	MD:Z:50	NM:i:0
-Dummy:1:1:1746:351	141	*	0	0	*	*	0	0	CCACTCCTCTCCCGACTGTGTGTGTGTGTGTTTATATTGACCATGCCGCT	IIIIIII""IIIIIIIIIIIIIIIIII?I0IIIIHIIIGIIIIIIIIIII	XM:i:0
-Dummy:1:1:1746:351	77	*	0	0	*	*	0	0	CTCATCGTCACGTTTATGGTGAACAGTGGATTAAGTTCATGAAGGATGGT	IIIIIII""IIIIIIIIIIIIIIIIIIIIIIIIII"IIIIIII000IIII	XM:i:0
-Dummy:1:1:1749:466	131	phiX174	2251	255	50M	=	2201	-100	GCCGACCACTCGCGATTCAATCATGACTTCGTGATAAAAGATTGAGTGTG	IIIIIII""IIIIIIIIIIIIIIIIIIIIIIIIII?I0IIIIHIIIGIII	XA:i:0	MD:Z:50	NM:i:0
-Dummy:1:1:1749:466	67	phiX174	2201	255	50M	=	2251	100	TTGCAGTGGAATAGTCAGGTTAAATTTAATGTGACCGTTTATCGCAATCT	IIIIIII""IIIIIIIIIIIIIIIIIIIIIIIIII"IIIIIII000IIII	XA:i:0	MD:Z:50	NM:i:0
-Dummy:1:1:1761:343	131	phiX174	69	255	50M	=	5	-114	TTGATAAAGCAGGAATTACTACTGCTTGTTTACGAATTAAATCGAAGTGG	IIIIIII""IIIIIII0II?I""IIIIIIIIIIII?I0IIIIHIIIGIII	XA:i:0	MD:Z:50	NM:i:0
-Dummy:1:1:1761:343	67	phiX174	5	255	50M	=	69	114	TTTATCGCTTCCATGACGCAGAAGTTAACACTTTCGGATATTTCTGATGA	IIIIIII""IIIIIIIIIII?I0IIIIHIIIGIIIII0II?I""IIIIII	XA:i:0	MD:Z:50	NM:i:0
-Dummy:1:1:1763:587	131	phiX174	2566	255	50M	=	2501	-115	CATTGCATTCAGATGGATACATCTGTCAACGCCGCTAATCAGGTTGTTTC	IIIIIII""IIIIIIIIIIIIIIIIIIIIIIIIII?I0IIIIHIIIGIII	XA:i:0	MD:Z:50	NM:i:0
-Dummy:1:1:1763:587	67	phiX174	2501	255	50M	=	2566	115	AAGCTACATCGTCAACGTTATATTTTGATAGTTTGACGGTTAATGCTGGT	IIIIIII""IIIIIIIIIIIIIIIIIIIIIIIIII"IIIIIII000IIII	XA:i:0	MD:Z:50	NM:i:0
-Dummy:1:1:1768:715	131	phiX174	3173	255	50M	=	3118	-105	AGGACTTCTTGAAGGTACGTTGCAGGCTGGCACTTCTGCCGTTTCTGATA	IIIIIII""IIIIIIIIIIIIIDIIIIIIIIIIII?I0IIIIHIIIGIII	XA:i:0	MD:Z:50	NM:i:0
-Dummy:1:1:1768:715	67	phiX174	3118	255	50M	=	3173	105	ACCCTGATGAGGCCGCCCCTAGTTTTGTTTCTGGTGCTATGGCTAAAGCT	IIIIIII""IIIIIIIIIIIIIDIIIIIIIIIIII"IIIIIII000IIII	XA:i:0	MD:Z:50	NM:i:0
--- a/bowtie_transcriptome_wrapper/test-data/bowtie_out8_1.fastq	Tue Mar 15 10:06:15 2022 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,20 +0,0 @@
-+
-+
-+
-+
-+
-@Dummy:1:1:1570:620/1
-@Dummy:1:1:1572:324/1
-@Dummy:1:1:1582:633/1
-@Dummy:1:1:1652:270/1
-@Dummy:1:1:1746:351/1
-AAGGTGCTTaaaTTCgtGGGTCCTGAGCTGGCGACCCTGTTTTGTATGGC
-AGCGTAAAGGCGCTCGTCTTTGGTATGTAGGacTTTGCATTGTTTAATTG
-CCGCTTCCTCCTGAGACTGAGCTTTCTCGCCAAATGACGACTTCTACCAC
-CTCATCGTCACGTTTATGGTGAACAGTGGATTAAGTTCATGAAGGATGGT
-GAGTAACAAAGTaaaGTTTGGAccGTTTTTGTCTCGTGCTCGTCGCTGCG
-IIIIIII""IIIIIIIIIIIIIBIIIIIIIIIIII"IIIIIII000IIII
-IIIIIII""IIIIIIIIIIIIIIIIIIII+7I05I"IIIIIII000IIII
-IIIIIII""IIIIIIIIIIIIIIIIIIIIIII6II"IIIIIII000IIII
-IIIIIII""IIIIIIIIIIIIIIIIIIIIIIIIII"IIIIIII000IIII
-IIIIIII""IIIIIIIIIIIIIIIIIIIIIIIIII"IIIIIII000IIII
--- a/bowtie_transcriptome_wrapper/test-data/bowtie_out8_1.fastqillumina.sorted	Tue Mar 15 10:06:15 2022 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,20 +0,0 @@
-+
-+
-+
-+
-+
-@Dummy:1:1:1570:620/1
-@Dummy:1:1:1572:324/1
-@Dummy:1:1:1582:633/1
-@Dummy:1:1:1652:270/1
-@Dummy:1:1:1746:351/1
-AAGGTGCTTaaaTTCgtGGGTCCTGAGCTGGCGACCCTGTTTTGTATGGC
-AGCGTAAAGGCGCTCGTCTTTGGTATGTAGGacTTTGCATTGTTTAATTG
-CCGCTTCCTCCTGAGACTGAGCTTTCTCGCCAAATGACGACTTCTACCAC
-CTCATCGTCACGTTTATGGTGAACAGTGGATTAAGTTCATGAAGGATGGT
-GAGTAACAAAGTaaaGTTTGGAccGTTTTTGTCTCGTGCTCGTCGCTGCG
-hhhhhhhAAhhhhhhhhhhhhhahhhhhhhhhhhhAhhhhhhhOOOhhhh
-hhhhhhhAAhhhhhhhhhhhhhhhhhhhhJVhOThAhhhhhhhOOOhhhh
-hhhhhhhAAhhhhhhhhhhhhhhhhhhhhhhhUhhAhhhhhhhOOOhhhh
-hhhhhhhAAhhhhhhhhhhhhhhhhhhhhhhhhhhAhhhhhhhOOOhhhh
-hhhhhhhAAhhhhhhhhhhhhhhhhhhhhhhhhhhAhhhhhhhOOOhhhh
--- a/bowtie_transcriptome_wrapper/test-data/bowtie_out8_1.fastqsolexa.sorted	Tue Mar 15 10:06:15 2022 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,20 +0,0 @@
-+
-+
-+
-+
-+
-@Dummy:1:1:1570:620/1
-@Dummy:1:1:1572:324/1
-@Dummy:1:1:1582:633/1
-@Dummy:1:1:1652:270/1
-@Dummy:1:1:1746:351/1
-AAGGTGCTTaaaTTCgtGGGTCCTGAGCTGGCGACCCTGTTTTGTATGGC
-AGCGTAAAGGCGCTCGTCTTTGGTATGTAGGacTTTGCATTGTTTAATTG
-CCGCTTCCTCCTGAGACTGAGCTTTCTCGCCAAATGACGACTTCTACCAC
-CTCATCGTCACGTTTATGGTGAACAGTGGATTAAGTTCATGAAGGATGGT
-GAGTAACAAAGTaaaGTTTGGAccGTTTTTGTCTCGTGCTCGTCGCTGCG
-hhhhhhh;;hhhhhhhhhhhhhahhhhhhhhhhhh;hhhhhhhOOOhhhh
-hhhhhhh;;hhhhhhhhhhhhhhhhhhhhJVhOTh;hhhhhhhOOOhhhh
-hhhhhhh;;hhhhhhhhhhhhhhhhhhhhhhhUhh;hhhhhhhOOOhhhh
-hhhhhhh;;hhhhhhhhhhhhhhhhhhhhhhhhhh;hhhhhhhOOOhhhh
-hhhhhhh;;hhhhhhhhhhhhhhhhhhhhhhhhhh;hhhhhhhOOOhhhh
--- a/bowtie_transcriptome_wrapper/test-data/bowtie_out8_2.fastq	Tue Mar 15 10:06:15 2022 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,20 +0,0 @@
-+
-+
-+
-+
-+
-@Dummy:1:1:1570:620/2
-@Dummy:1:1:1572:324/2
-@Dummy:1:1:1582:633/2
-@Dummy:1:1:1652:270/2
-@Dummy:1:1:1746:351/2
-CCACTCCTCTCCCGACTGTGTGTGTGTGTGTTTATATTGACCATGCCGCT
-CTTGCGTTTATGGTACGCTGGACTTTGTGGGATACCCTCGCTTTCCTGCT
-GCCGCCGCGTGAAATTTCTATGAAGGATGTTTTCCGTTCTGGTGATTCGT
-GCTTCGGCCCCTTACTTGAGGATAAATTATGTCTAATATTCAAACTGGCG
-IIIIIII""IIIIIIIIIIIIIBIIIIIIIIIIII?I0IIIIHIIIGIII
-IIIIIII""IIIIIIIIIIIIIIIIII?I0IIIIHIIIGIIIIIIIIIII
-IIIIIII""IIIIIIIIIIIIIIIIIIII+7I05I?I0IIIIHIIIGIII
-IIIIIII""IIIIIIIIIIIIIIIIIIIIIII6II?I0IIIIHIIIGIII
-IIIIIII""IIIIIIIIIIIIIIIIIIIIIIIIII?I0IIIIHIIIGIII
-TCTATTGACATTATGGGTCTGCAAGCTGCTTTTTTTTTTTTTTTTTTTTT
--- a/bowtie_transcriptome_wrapper/test-data/bowtie_out8_2.fastqillumina.sorted	Tue Mar 15 10:06:15 2022 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,20 +0,0 @@
-+
-+
-+
-+
-+
-@Dummy:1:1:1570:620/2
-@Dummy:1:1:1572:324/2
-@Dummy:1:1:1582:633/2
-@Dummy:1:1:1652:270/2
-@Dummy:1:1:1746:351/2
-CCACTCCTCTCCCGACTGTGTGTGTGTGTGTTTATATTGACCATGCCGCT
-CTTGCGTTTATGGTACGCTGGACTTTGTGGGATACCCTCGCTTTCCTGCT
-GCCGCCGCGTGAAATTTCTATGAAGGATGTTTTCCGTTCTGGTGATTCGT
-GCTTCGGCCCCTTACTTGAGGATAAATTATGTCTAATATTCAAACTGGCG
-TCTATTGACATTATGGGTCTGCAAGCTGCTTTTTTTTTTTTTTTTTTTTT
-hhhhhhhAAhhhhhhhhhhhhhahhhhhhhhhhhh^hOhhhhghhhfhhh
-hhhhhhhAAhhhhhhhhhhhhhhhhhh^hOhhhhghhhfhhhhhhhhhhh
-hhhhhhhAAhhhhhhhhhhhhhhhhhhhhJVhOTh^hOhhhhghhhfhhh
-hhhhhhhAAhhhhhhhhhhhhhhhhhhhhhhhUhh^hOhhhhghhhfhhh
-hhhhhhhAAhhhhhhhhhhhhhhhhhhhhhhhhhh^hOhhhhghhhfhhh
--- a/bowtie_transcriptome_wrapper/test-data/bowtie_out8_2.fastqsolexa.sorted	Tue Mar 15 10:06:15 2022 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,20 +0,0 @@
-+
-+
-+
-+
-+
-@Dummy:1:1:1570:620/2
-@Dummy:1:1:1572:324/2
-@Dummy:1:1:1582:633/2
-@Dummy:1:1:1652:270/2
-@Dummy:1:1:1746:351/2
-CCACTCCTCTCCCGACTGTGTGTGTGTGTGTTTATATTGACCATGCCGCT
-CTTGCGTTTATGGTACGCTGGACTTTGTGGGATACCCTCGCTTTCCTGCT
-GCCGCCGCGTGAAATTTCTATGAAGGATGTTTTCCGTTCTGGTGATTCGT
-GCTTCGGCCCCTTACTTGAGGATAAATTATGTCTAATATTCAAACTGGCG
-TCTATTGACATTATGGGTCTGCAAGCTGCTTTTTTTTTTTTTTTTTTTTT
-hhhhhhh;;hhhhhhhhhhhhhahhhhhhhhhhhh^hOhhhhghhhfhhh
-hhhhhhh;;hhhhhhhhhhhhhhhhhh^hOhhhhghhhfhhhhhhhhhhh
-hhhhhhh;;hhhhhhhhhhhhhhhhhhhhJVhOTh^hOhhhhghhhfhhh
-hhhhhhh;;hhhhhhhhhhhhhhhhhhhhhhhUhh^hOhhhhghhhfhhh
-hhhhhhh;;hhhhhhhhhhhhhhhhhhhhhhhhhh^hOhhhhghhhfhhh
--- a/bowtie_transcriptome_wrapper/test-data/bowtie_out9.sam	Tue Mar 15 10:06:15 2022 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,26 +0,0 @@
-HWI-EAS91_1_30788AAXX:1:1:1090:409/1	16	chrM	15014	255	36M	*	0	0	TTGCCTACGCCATCCTACGCTCCATTCCCAACAAAC	I8AII:IIIIIIIIIIIIIIIIIIIII""IIIIIII	XA:i:0	MD:Z:36	NM:i:0
-HWI-EAS91_1_30788AAXX:1:1:1199:1376/1	16	chrM	14023	255	36M	*	0	0	AAACCCCCATAAATAGGTGAAGGTTTTCCAGAAAAC	III/:&GII3III;IIIIIIIIIIIII""IIIIIII	XA:i:2	MD:Z:27G0A7	NM:i:2
-HWI-EAS91_1_30788AAXX:1:1:1218:141/1	4	*	0	0	*	*	0	0	GTTAAATATTGGGAGTGGGGGGGGGGGGGAGTTTTG	IIIIIII""IIIIIIIIIIIIIIIIIIII1IIII+I	XM:i:0
-HWI-EAS91_1_30788AAXX:1:1:1269:520/1	16	chrM	11036	255	36M	*	0	0	CGACAAACCGATCTAAAATCACTTATTCCATACTCC	IIIIIIIIIIIIIIIIIIIIIIIIIII""IIIIIII	XA:i:1	MD:Z:27G8	NM:i:1
-HWI-EAS91_1_30788AAXX:1:1:1303:1162/1	16	chrM	14866	255	36M	*	0	0	AAAGACATCCTAGGACTCCTCCTCCTGCCCTTGCTC	I6I3,'94IIAI(IAIGI*4IIFIIII""IIIIIII	XA:i:2	MD:Z:27A0T7	NM:i:2
-HWI-EAS91_1_30788AAXX:1:1:1310:991/1	16	chrM	10002	255	36M	*	0	0	CTCCTATGCCTAGAAGGAATAATACTACCACTATTC	I:2IEI:IIDIIIIII4IIIIIIIIII""IIIIIII	XA:i:1	MD:Z:27T8	NM:i:1
-HWI-EAS91_1_30788AAXX:1:1:1336:1000/1	16	chrM	11616	255	36M	*	0	0	GATCTAGAAACAGAAACTTAATATTTCCCATTTACC	II9IIIIIIIIIIIIIIIIIIIIIIII""IIIIIII	XA:i:2	MD:Z:27T0T7	NM:i:2
-HWI-EAS91_1_30788AAXX:1:1:1398:854/1	16	chrM	3921	255	36M	*	0	0	CACCCTTCCCGTACTAATAAATCCCCTCCTCTTCAC	IIIII=AIIIIIIIIIIIIIIBIIIII""IIIIIII	XA:i:2	MD:Z:27T0A7	NM:i:2
-HWI-EAS91_1_30788AAXX:1:1:1442:1346/1	16	chrM	9331	255	36M	*	0	0	CAGCCACCACTTCGGATTCGAAGCAGCCCCTTGATA	&,*II-<?<II4I(I1IIIIIDIIIII""IIIIIII	XA:i:1	MD:Z:28G7	NM:i:1
-HWI-EAS91_1_30788AAXX:1:1:1454:975/1	16	chrM	8929	255	36M	*	0	0	TGGCTTCTTCTGAGCCTTTTACCACTCCCGCCTAGC	IIIIIII;GIEIIIIIIIIIIIIIIII""IIIIIII	XA:i:2	MD:Z:27A0A7	NM:i:2
-HWI-EAS91_1_30788AAXX:1:1:1461:255/1	0	chrM	12988	255	36M	*	0	0	GTACACCGGCGCCTGAGCCCTACTAATAACTCTCAT	IIIIIII""IIIIII9IIIIIIEI(II9.I4III,I	XA:i:2	MD:Z:7A0A27	NM:i:2
-HWI-EAS91_1_30788AAXX:1:1:1491:637/1	16	chrM	10864	255	36M	*	0	0	TGTAGAAGCCCCAATTGCCGGATCCATCCTGCTAGC	DBAIIIIIIIIIIIFIIIIIIIIIIII""IIIIIII	XA:i:2	MD:Z:27A0G7	NM:i:2
-HWI-EAS91_1_30788AAXX:1:1:1513:715/1	16	chrM	9563	255	36M	*	0	0	CTGACTACCACAACTAAACATCTATGCCCAAAAAAC	I+-II?IDIIIIIIIIIIIIIIIIIII""IIIIIII	XA:i:2	MD:Z:27A0G7	NM:i:2
-HWI-EAS91_1_30788AAXX:1:1:1598:1148/1	16	chrM	2334	255	36M	*	0	0	AAATATATAATCACTTATTGATCCAAACCATTGATC	IIIIIHI=IICIII?IIIIIIDIIIII""IIIIIII	XA:i:0	MD:Z:36	NM:i:0
-HWI-EAS91_1_30788AAXX:1:1:1601:805/1	0	chrM	12584	255	36M	*	0	0	GAAAACAGGAAAACAATCCAGTCACTTACCCTATGC	IIIIIII""IIIIIIIIIIIIIIIIIIIIIII@III	XA:i:2	MD:Z:7A0C27	NM:i:2
-HWI-EAS91_1_30788AAXX:1:1:1630:59/1	16	chrM	12387	255	36M	*	0	0	TCATACTCGACCCCAACCTTACCAACCCCCCGCTCC	FIIHII;IIIIIIIIIIIIIIIIIIII""IIIIIII	XA:i:1	MD:Z:27T8	NM:i:1
-HWI-EAS91_1_30788AAXX:1:1:1634:211/1	0	chrM	9350	255	36M	*	0	0	GAAGCAGGGGCTTGATACTGACACTTCGTCGACGTA	IIIIIII""IIIIIIIIIIIIIIIIIIIIII9IIDF	XA:i:2	MD:Z:7C0C27	NM:i:2
-HWI-EAS91_1_30788AAXX:1:1:1663:724/1	0	chrM	15012	255	36M	*	0	0	GTTTGCCGGCGCCATCCTACGCTCCATTCCCAACAA	IIIIIII""IIII8IIIIIIHIIII6IIIII1CI=3	XA:i:2	MD:Z:7T0A27	NM:i:2
-HWI-EAS91_1_30788AAXX:1:1:1698:516/1	16	chrM	2735	255	36M	*	0	0	TTTACACTCAGAGGTTCAACTCCTCTCCCTAACAAC	I9IIIII5IIIIIIIIIIIIIIIIIII""IIIIIII	XA:i:0	MD:Z:36	NM:i:0
-HWI-EAS91_1_30788AAXX:1:1:1711:249/1	16	chrM	10617	255	36M	*	0	0	ACCAAACAGAACGCCTGAACGCAGGCCCCTACTTCC	IIIIIIIIIIIIIIIIIIIIIIIIIII""IIIIIII	XA:i:1	MD:Z:27T8	NM:i:1
-HWI-EAS91_1_30788AAXX:1:1:1716:413/1	0	chrM	6040	255	36M	*	0	0	GATCCAAGGCTTTATCAACACCTATTCTGATTCTTC	IIIIIII""IIIIIIIIIIIIIIIIIIIIIIIIIII	XA:i:2	MD:Z:7T0C27	NM:i:2
-HWI-EAS91_1_30788AAXX:1:1:1723:1459/1	16	chrM	15787	255	36M	*	0	0	ATCCTCGCTCCGGGCCCATCCAAACGTCCGGGTTTC	I=II-IIH9IIIIIIIIIDIIIIIIII""IIIIIII	XA:i:2	MD:Z:27G0G7	NM:i:2
-HWI-EAS91_1_30788AAXX:1:1:1775:764/1	0	chrM	16613	255	36M	*	0	0	GCATCCCGGTAGATCTAATTTTCTAAATCTGTCAAC	IIIIIII""III@IIII+IIIIII8H8IIIIIIICI	XA:i:2	MD:Z:7C0C27	NM:i:2
-HWI-EAS91_1_30788AAXX:1:1:795:325/1	16	chrM	4249	255	36M	*	0	0	AAACTTGGACTCACACCATTCCACTTCCCAGTACCC	IIII56IIIIIIIIIIIIIIIIIIIII""IIIIIII	XA:i:2	MD:Z:27T0G7	NM:i:2
-HWI-EAS91_1_30788AAXX:1:1:850:117/1	16	chrM	5540	255	36M	*	0	0	CCCATGCATTCGTAATAATTTTCTTTACCGTCATAC	?:;I9DDIBEIIIIIIIIEIEIIIIII""IIIIIII	XA:i:2	MD:Z:27T0G7	NM:i:2
-HWI-EAS91_1_30788AAXX:1:1:873:453/1	16	chrM	3188	255	36M	*	0	0	ATCTCATACGAAGTAACTCTAGCAATCCCCCTACTC	I=IIIIIII@IIIIIIIIIIIIIIIII""IIIIIII	XA:i:2	MD:Z:27A0T7	NM:i:2
--- a/bowtie_transcriptome_wrapper/test-data/phiX.fasta	Tue Mar 15 10:06:15 2022 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,79 +0,0 @@
->phiX174
-GAGTTTTATCGCTTCCATGACGCAGAAGTTAACACTTTCGGATATTTCTGATGAGTCGAAAAATTATCTT
-GATAAAGCAGGAATTACTACTGCTTGTTTACGAATTAAATCGAAGTGGACTGCTGGCGGAAAATGAGAAA
-ATTCGACCTATCCTTGCGCAGCTCGAGAAGCTCTTACTTTGCGACCTTTCGCCATCAACTAACGATTCTG
-TCAAAAACTGACGCGTTGGATGAGGAGAAGTGGCTTAATATGCTTGGCACGTTCGTCAAGGACTGGTTTA
-GATATGAGTCACATTTTGTTCATGGTAGAGATTCTCTTGTTGACATTTTAAAAGAGCGTGGATTACTATC
-TGAGTCCGATGCTGTTCAACCACTAATAGGTAAGAAATCATGAGTCAAGTTACTGAACAATCCGTACGTT
-TCCAGACCGCTTTGGCCTCTATTAAGCTCATTCAGGCTTCTGCCGTTTTGGATTTAACCGAAGATGATTT
-CGATTTTCTGACGAGTAACAAAGTTTGGATTGCTACTGACCGCTCTCGTGCTCGTCGCTGCGTTGAGGCT
-TGCGTTTATGGTACGCTGGACTTTGTGGGATACCCTCGCTTTCCTGCTCCTGTTGAGTTTATTGCTGCCG
-TCATTGCTTATTATGTTCATCCCGTCAACATTCAAACGGCCTGTCTCATCATGGAAGGCGCTGAATTTAC
-GGAAAACATTATTAATGGCGTCGAGCGTCCGGTTAAAGCCGCTGAATTGTTCGCGTTTACCTTGCGTGTA
-CGCGCAGGAAACACTGACGTTCTTACTGACGCAGAAGAAAACGTGCGTCAAAAATTACGTGCAGAAGGAG
-TGATGTAATGTCTAAAGGTAAAAAACGTTCTGGCGCTCGCCCTGGTCGTCCGCAGCCGTTGCGAGGTACT
-AAAGGCAAGCGTAAAGGCGCTCGTCTTTGGTATGTAGGTGGTCAACAATTTTAATTGCAGGGGCTTCGGC
-CCCTTACTTGAGGATAAATTATGTCTAATATTCAAACTGGCGCCGAGCGTATGCCGCATGACCTTTCCCA
-TCTTGGCTTCCTTGCTGGTCAGATTGGTCGTCTTATTACCATTTCAACTACTCCGGTTATCGCTGGCGAC
-TCCTTCGAGATGGACGCCGTTGGCGCTCTCCGTCTTTCTCCATTGCGTCGTGGCCTTGCTATTGACTCTA
-CTGTAGACATTTTTACTTTTTATGTCCCTCATCGTCACGTTTATGGTGAACAGTGGATTAAGTTCATGAA
-GGATGGTGTTAATGCCACTCCTCTCCCGACTGTTAACACTACTGGTTATATTGACCATGCCGCTTTTCTT
-GGCACGATTAACCCTGATACCAATAAAATCCCTAAGCATTTGTTTCAGGGTTATTTGAATATCTATAACA
-ACTATTTTAAAGCGCCGTGGATGCCTGACCGTACCGAGGCTAACCCTAATGAGCTTAATCAAGATGATGC
-TCGTTATGGTTTCCGTTGCTGCCATCTCAAAAACATTTGGACTGCTCCGCTTCCTCCTGAGACTGAGCTT
-TCTCGCCAAATGACGACTTCTACCACATCTATTGACATTATGGGTCTGCAAGCTGCTTATGCTAATTTGC
-ATACTGACCAAGAACGTGATTACTTCATGCAGCGTTACCGTGATGTTATTTCTTCATTTGGAGGTAAAAC
-CTCTTATGACGCTGACAACCGTCCTTTACTTGTCATGCGCTCTAATCTCTGGGCATCTGGCTATGATGTT
-GATGGAACTGACCAAACGTCGTTAGGCCAGTTTTCTGGTCGTGTTCAACAGACCTATAAACATTCTGTGC
-CGCGTTTCTTTGTTCCTGAGCATGGCACTATGTTTACTCTTGCGCTTGTTCGTTTTCCGCCTACTGCGAC
-TAAAGAGATTCAGTACCTTAACGCTAAAGGTGCTTTGACTTATACCGATATTGCTGGCGACCCTGTTTTG
-TATGGCAACTTGCCGCCGCGTGAAATTTCTATGAAGGATGTTTTCCGTTCTGGTGATTCGTCTAAGAAGT
-TTAAGATTGCTGAGGGTCAGTGGTATCGTTATGCGCCTTCGTATGTTTCTCCTGCTTATCACCTTCTTGA
-AGGCTTCCCATTCATTCAGGAACCGCCTTCTGGTGATTTGCAAGAACGCGTACTTATTCGCCACCATGAT
-TATGACCAGTGTTTCCAGTCCGTTCAGTTGTTGCAGTGGAATAGTCAGGTTAAATTTAATGTGACCGTTT
-ATCGCAATCTGCCGACCACTCGCGATTCAATCATGACTTCGTGATAAAAGATTGAGTGTGAGGTTATAAC
-GCCGAAGCGGTAAAAATTTTAATTTTTGCCGCTGAGGGGTTGACCAAGCGAAGCGCGGTAGGTTTTCTGC
-TTAGGAGTTTAATCATGTTTCAGACTTTTATTTCTCGCCATAATTCAAACTTTTTTTCTGATAAGCTGGT
-TCTCACTTCTGTTACTCCAGCTTCTTCGGCACCTGTTTTACAGACACCTAAAGCTACATCGTCAACGTTA
-TATTTTGATAGTTTGACGGTTAATGCTGGTAATGGTGGTTTTCTTCATTGCATTCAGATGGATACATCTG
-TCAACGCCGCTAATCAGGTTGTTTCTGTTGGTGCTGATATTGCTTTTGATGCCGACCCTAAATTTTTTGC
-CTGTTTGGTTCGCTTTGAGTCTTCTTCGGTTCCGACTACCCTCCCGACTGCCTATGATGTTTATCCTTTG
-AATGGTCGCCATGATGGTGGTTATTATACCGTCAAGGACTGTGTGACTATTGACGTCCTTCCCCGTACGC
-CGGGCAATAATGTTTATGTTGGTTTCATGGTTTGGTCTAACTTTACCGCTACTAAATGCCGCGGATTGGT
-TTCGCTGAATCAGGTTATTAAAGAGATTATTTGTCTCCAGCCACTTAAGTGAGGTGATTTATGTTTGGTG
-CTATTGCTGGCGGTATTGCTTCTGCTCTTGCTGGTGGCGCCATGTCTAAATTGTTTGGAGGCGGTCAAAA
-AGCCGCCTCCGGTGGCATTCAAGGTGATGTGCTTGCTACCGATAACAATACTGTAGGCATGGGTGATGCT
-GGTATTAAATCTGCCATTCAAGGCTCTAATGTTCCTAACCCTGATGAGGCCGCCCCTAGTTTTGTTTCTG
-GTGCTATGGCTAAAGCTGGTAAAGGACTTCTTGAAGGTACGTTGCAGGCTGGCACTTCTGCCGTTTCTGA
-TAAGTTGCTTGATTTGGTTGGACTTGGTGGCAAGTCTGCCGCTGATAAAGGAAAGGATACTCGTGATTAT
-CTTGCTGCTGCATTTCCTGAGCTTAATGCTTGGGAGCGTGCTGGTGCTGATGCTTCCTCTGCTGGTATGG
-TTGACGCCGGATTTGAGAATCAAAAAGAGCTTACTAAAATGCAACTGGACAATCAGAAAGAGATTGCCGA
-GATGCAAAATGAGACTCAAAAAGAGATTGCTGGCATTCAGTCGGCGACTTCACGCCAGAATACGAAAGAC
-CAGGTATATGCACAAAATGAGATGCTTGCTTATCAACAGAAGGAGTCTACTGCTCGCGTTGCGTCTATTA
-TGGAAAACACCAATCTTTCCAAGCAACAGCAGGTTTCCGAGATTATGCGCCAAATGCTTACTCAAGCTCA
-AACGGCTGGTCAGTATTTTACCAATGACCAAATCAAAGAAATGACTCGCAAGGTTAGTGCTGAGGTTGAC
-TTAGTTCATCAGCAAACGCAGAATCAGCGGTATGGCTCTTCTCATATTGGCGCTACTGCAAAGGATATTT
-CTAATGTCGTCACTGATGCTGCTTCTGGTGTGGTTGATATTTTTCATGGTATTGATAAAGCTGTTGCCGA
-TACTTGGAACAATTTCTGGAAAGACGGTAAAGCTGATGGTATTGGCTCTAATTTGTCTAGGAAATAACCG
-TCAGGATTGACACCCTCCCAATTGTATGTTTTCATGCCTCCAAATCTTGGAGGCTTTTTTATGGTTCGTT
-CTTATTACCCTTCTGAATGTCACGCTGATTATTTTGACTTTGAGCGTATCGAGGCTCTTAAACCTGCTAT
-TGAGGCTTGTGGCATTTCTACTCTTTCTCAATCCCCAATGCTTGGCTTCCATAAGCAGATGGATAACCGC
-ATCAAGCTCTTGGAAGAGATTCTGTCTTTTCGTATGCAGGGCGTTGAGTTCGATAATGGTGATATGTATG
-TTGACGGCCATAAGGCTGCTTCTGACGTTCGTGATGAGTTTGTATCTGTTACTGAGAAGTTAATGGATGA
-ATTGGCACAATGCTACAATGTGCTCCCCCAACTTGATATTAATAACACTATAGACCACCGCCCCGAAGGG
-GACGAAAAATGGTTTTTAGAGAACGAGAAGACGGTTACGCAGTTTTGCCGCAAGCTGGCTGCTGAACGCC
-CTCTTAAGGATATTCGCGATGAGTATAATTACCCCAAAAAGAAAGGTATTAAGGATGAGTGTTCAAGATT
-GCTGGAGGCCTCCACTATGAAATCGCGTAGAGGCTTTACTATTCAGCGTTTGATGAATGCAATGCGACAG
-GCTCATGCTGATGGTTGGTTTATCGTTTTTGACACTCTCACGTTGGCTGACGACCGATTAGAGGCGTTTT
-ATGATAATCCCAATGCTTTGCGTGACTATTTTCGTGATATTGGTCGTATGGTTCTTGCTGCCGAGGGTCG
-CAAGGCTAATGATTCACACGCCGACTGCTATCAGTATTTTTGTGTGCCTGAGTATGGTACAGCTAATGGC
-CGTCTTCATTTCCATGCGGTGCATTTTATGCGGACACTTCCTACAGGTAGCGTTGACCCTAATTTTGGTC
-GTCGGGTACGCAATCGCCGCCAGTTAAATAGCTTGCAAAATACGTGGCCTTATGGTTACAGTATGCCCAT
-CGCAGTTCGCTACACGCAGGACGCTTTTTCACGTTCTGGTTGGTTGTGGCCTGTTGATGCTAAAGGTGAG
-CCGCTTAAAGCTACCAGTTATATGGCTGTTGGTTTCTATGTGGCTAAATACGTTAACAAAAAGTCAGATA
-TGGACCTTGCTGCTAAAGGTCTAGGAGCTAAAGAATGGAACAACTCACTAAAAACCAAGCTGTCGCTACT
-TCCCAAGAAGCTGTTCAGAATCAGAATGAGCCGCAACTTCGGGATGAAAATGCTCACAATGACAAATCTG
-TCCACGGAGTGCTTAATCCAACTTACCAAGCTGGGTTACGACGCGACGCCGTTCAACCAGATATTGAAGC
-AGAACGCAAAAAGAGAGATGAGATTGAGGCTGGGAAAAGTTACTGTAGCCGACGTTTTGGCGGCGCAACC
-TGTGACGACAAATCTGCTCAAATTTATGCGCGCTTCGATAAAAATGATTGGCGTATCCAACCTGCA
-
--- a/bowtie_transcriptome_wrapper/tool_data_table_conf.xml.test	Tue Mar 15 10:06:15 2022 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,8 +0,0 @@
-<!-- Use the file tool_data_table_conf.xml.oldlocstyle if you don't want to update your loc files as changed in revision 4550:535d276c92bc-->
-<tables>
-    <!-- Locations of indexes in the Bowtie mapper format -->
-    <table name="bowtie_indexes" comment_char="#">
-        <columns>value, dbkey, name, path</columns>
-        <file path="${__HERE__}/test-data/bowtie_indices.loc" />
-    </table>
-</tables>