changeset 2:358f58401cd6 draft default tip

planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/trna_prediction commit cfb19d75629f02e0dea4475c16c016ed5510eb44
author bgruening
date Wed, 26 Jul 2017 10:14:05 -0400
parents d788d1abe238
children
files aragorn.xml aragorn_out_to_gff3.py readme.rst tRNAscan.py tRNAscan.xml test-data/aragorn_tansl-table-11_introns.gff3 test-data/aragorn_tansl-table-1_tmRNA_tRNA.gff3 test-data/aragorn_tansl-table-1_tmRNA_tRNA.txt test-data/genome_with_introns.fa tool_dependencies.xml
diffstat 10 files changed, 463 insertions(+), 349 deletions(-) [+]
line wrap: on
line diff
--- a/aragorn.xml	Thu Jan 22 13:15:51 2015 -0500
+++ b/aragorn.xml	Wed Jul 26 10:14:05 2017 -0400
@@ -1,41 +1,43 @@
-<tool id="aragorn_trna" name="tRNA and tmRNA" version="0.4">
+<tool id="aragorn_trna" name="tRNA and tmRNA" version="0.6">
     <description>prediction (Aragorn)</description>
     <requirements>
         <requirement type="package" version="1.2.36">aragorn</requirement>
-        <requirement type="set_environment">TRNAPRED_SCRIPT_PATH</requirement>
+        <requirement type="package" version="2.7">python</requirement>
     </requirements>
-    <command>
-<![CDATA[
-        aragorn
-            $input
-            -gc$genbank_gencode
-            $tmRNA
-            $tRNA
-            $mtRNA
-            $mam_mtRNA
-            $topology
-            -o $output
-            $secondary_structure
-            $introns;
-
-#if $gff3_output:
-        aragorn
-            $input
-            -gc$genbank_gencode
-            $tmRNA
-            $tRNA
-            $mtRNA
-            $mam_mtRNA
-            $topology
-            -fasta
-            $introns | python \$TRNAPRED_SCRIPT_PATH/aragorn_out_to_gff3.py > $gff3_output_file;
-#end if
-]]>
+    <command><![CDATA[
+        #if not $gff3_output:
+            aragorn
+                '$input'
+                -gc$genbank_gencode
+                $tmRNA
+                $tRNA
+                $mtRNA
+                $mam_mtRNA
+                $topology
+                -o '$output'
+                $secondary_structure
+                $introns
+        #end if
+   
+        #if $gff3_output:
+            aragorn
+                '$input'
+                -gc$genbank_gencode
+                $tmRNA
+                $tRNA
+                $mtRNA
+                $mam_mtRNA
+                $topology
+                $introns
+                -w
+            | python '$__tool_directory__/aragorn_out_to_gff3.py' $gff3_model > '$gff3_output_file'
+        #end if
+		]]>
     </command>
     <inputs>
         <param name="input" type="data" format="fasta" label="Genome Sequence"/>
         <param name="genbank_gencode" type="select" label="Genetic code">
-            <option value="1" select="True">1. Standard</option>
+            <option value="1" selected="true">1. Standard</option>
             <option value="2">2. Vertebrate Mitochondrial</option>
             <option value="3">3. Yeast Mitochondrial</option>
             <option value="4">4. Mold, Protozoan, and Coelenterate Mitochondrial Code and the Mycoplasma/Spiroplasma Code</option>
@@ -58,18 +60,25 @@
             <option value="-c">Assume that each sequence has a circular topology</option>
             <option value="-l">Assume that each sequence has a linear topology</option>
         </param>
-        <param name='tmRNA' type='boolean' label='Search for tmRNA genes (-m)' truevalue='-m' falsevalue='' checked="true" help='' />
-        <param name='tRNA' type='boolean' label='Search for tRNA genes (-t)' truevalue='-t' falsevalue='' checked="true" help='' />
-        <param name='mtRNA' type='boolean' label='Search for Metazoan mitochondrial tRNA genes (-mt)' truevalue='-mt' falsevalue='' checked="false" help='-i switch ignored. Composite Metazoan mitochondrial genetic code used.' />
-        <param name='mam_mtRNA' type='boolean' label='Search for Mammalian mitochondrial tRNA genes (-mtmam)' truevalue='-mtmam' falsevalue='' checked="false" help='-i switch ignored. -tv switch set. Mammalian mitochondrial genetic code used.' />
-        <param name='introns' type='boolean' label='Search for tRNA genes with introns in anticodon loop ...' truevalue='-i' falsevalue='' checked="false" help='...with maximum length 3000 bases (-i).' />
-        <param name='secondary_structure' type='boolean' label='Print out secondary structure (-fasta,-fon)' truevalue='-fasta' falsevalue='-fon' checked="false" help='' />
+        <param name='tmRNA' type='boolean' label='Search for tmRNA genes'
+            truevalue='-m' falsevalue='' checked="true" help='(-m)' />
+        <param name='tRNA' type='boolean' label='Search for tRNA genes'
+            truevalue='-t' falsevalue='' checked="true" help='(-t)' />
+        <param name='mtRNA' type='boolean' label='Search for Metazoan mitochondrial tRNA genes' truevalue='-mt' falsevalue='' checked="false"
+            help='-i switch will be ignored. Composite Metazoan mitochondrial genetic code used. (-mt)' />
+        <param name='mam_mtRNA' type='boolean' label='Search for Mammalian mitochondrial tRNA genes'
+            truevalue='-mtmam' falsevalue='' checked="false" help='-i switch will be ignored. Mammalian mitochondrial genetic code used. (-mtmam)' />
+        <param name='introns' type='boolean' label='Search for tRNA genes with introns in anticodon loop'
+            truevalue='-i' falsevalue='' checked="false" help='With a maximum length of 3000 bases. (-i).' />
+        <param name='secondary_structure' type='boolean' label='Print out secondary structure'
+            truevalue='-fasta' falsevalue='-fon' checked="false" help='(-fasta,-fon)' />
         <param name="gff3_output" type='boolean' label='Convert output to GFF3' truevalue='True' falsevalue='' checked="false" help='' />
+        <param name="gff3_model" type='boolean' label='Full gene model for GFF3 data' truevalue='--full' checked='false' help='' />
     </inputs>
     <outputs>
         <data name="output" format="fasta">
             <change_format>
-               <when input="secondary_structure" value="true" format="text"/>
+               <when input="secondary_structure" value="-fasta" format="txt"/>
              </change_format>
         </data>
         <data format="gff3" name="gff3_output_file" >
@@ -81,15 +90,53 @@
             <param name="input" value="trna_arabidopsis.fasta" ftype="fasta" />
             <param name="genbank_gencode" value="1" />
             <param name="topology" value="-c" />
-            <param name="tmRNA" value="-m" />
-            <param name="tRNA" value="-t" />
-            <param name="mtRNA" value="" />
-            <param name="mam_mtRNA" value="" />
-            <param name="introns" value="" />
+            <param name="tmRNA" value="True" />
+            <param name="tRNA" value="True" />
+            <param name="mtRNA" value="False" />
+            <param name="mam_mtRNA" value="False" />
+            <param name="introns" value="False" />
             <param name="secondary_structure" value="-fon" />
-            <param name="gff3_output" value="True" />
+            <param name="gff3_output" value="false" />
             <output name="output" file="aragorn_tansl-table-1_tmRNA_tRNA.fasta" ftype="fasta" />
-            <output name="output" file="aragorn_tansl-table-1_tmRNA_tRNA.gff3" ftype="gff3" />
+        </test>
+		
+        <test>
+            <param name="input" value="trna_arabidopsis.fasta" ftype="fasta" />
+            <param name="genbank_gencode" value="1" />
+            <param name="topology" value="-c" />
+            <param name="tmRNA" value="True" />
+            <param name="tRNA" value="True" />
+            <param name="mtRNA" value="False" />
+            <param name="mam_mtRNA" value="False" />
+            <param name="introns" value="False" />
+            <param name="secondary_structure" value="-fasta" />
+            <param name="gff3_output" value="false" />
+            <output name="output" file="aragorn_tansl-table-1_tmRNA_tRNA.txt" ftype="txt" lines_diff="2" />
+        </test>
+        <test>
+            <param name="input" value="trna_arabidopsis.fasta" ftype="fasta" />
+            <param name="genbank_gencode" value="1" />
+            <param name="topology" value="-c" />
+            <param name="tmRNA" value="True" />
+            <param name="tRNA" value="True" />
+            <param name="mtRNA" value="False" />
+            <param name="mam_mtRNA" value="False" />
+            <param name="introns" value="False" />
+            <param name="gff3_output" value="True" />
+            <output name="gff3_output_file" file="aragorn_tansl-table-1_tmRNA_tRNA.gff3" ftype="gff3" />
+        </test>
+        <test>
+            <param name="input" value="genome_with_introns.fa" ftype="fasta" />
+            <param name="genbank_gencode" value="11" />
+            <param name="topology" value="-c" />
+            <param name="tmRNA" value="True" />
+            <param name="tRNA" value="True" />
+            <param name="mtRNA" value="False" />
+            <param name="mam_mtRNA" value="False" />
+            <param name="introns" value="True" />
+            <param name="gff3_output" value="True" />
+            <param name="gff3_model" value="True" />
+            <output name="gff3_output_file" file="aragorn_tansl-table-11_introns.gff3" ftype="gff3" />
         </test>
     </tests>
     <help>
@@ -101,7 +148,17 @@
 
 .. _Aragorn: http://mbio-serv2.mbioekol.lu.se/ARAGORN/
 
------
+**Input**
+
+As input a genome sequence FASTA file is needed. Select the right genetic code and the topology for your organism and choose what you want to have analyzed.
+
+By default, ARAGORN assumes that each sequence has a circular topology (search wraps around ends), that both strands should be searched, that the progress of the search is not reported, both tRNA and tmRNA genes are detected, and tRNA genes containing C‐loop introns are not detected. 
+
+**Output**
+
+The output of Aragorn reports the proposed tRNA secondary structure and, for tmRNA genes, the secondary structure of the tRNA domain, the tmRNA gene sequence, the tag peptide and a list of organisms with matching tmRNA peptide tags. 
+
+Optionally, your output can be converted to GFF3.
 
 **Example**
 
@@ -189,16 +246,10 @@
     tRNA GC range = 50.0% to 85.1%
     Number of tmRNA genes = 1
 
--------
-
-**References**
-
-Dean Laslett and Bjorn Canback
-
-ARAGORN, a program to detect tRNA genes and tmRNA genes in nucleotide sequences Nucl. Acids Res. (2004) 32(1): 11-16
-
-doi:10.1093/nar/gkh152
 
 ]]>
     </help>
+    <citations>
+        <citation type="doi">10.1093/nar/gkh152</citation>
+    </citations>
 </tool>
--- a/aragorn_out_to_gff3.py	Thu Jan 22 13:15:51 2015 -0500
+++ b/aragorn_out_to_gff3.py	Wed Jul 26 10:14:05 2017 -0400
@@ -1,165 +1,139 @@
 #!/usr/bin/env python
-import re
-
-def start_pattern(string):
-    return re.match(r'^[0-9]+\.$', string) \
-        or string.startswith('Number of possible') \
-        or string.startswith('Searching for')
-
-def blank_line(string):
-    return re.match(r'^\s*$', string)
-
-def blocks(iterable):
-    accumulator = []
-    run_of_blanklines = 0
-    for line in iterable:
-        # Count blank lines
-        if blank_line(line):
-            run_of_blanklines += 1
-        else:
-            run_of_blanklines = 0
-
-        if start_pattern(line) or run_of_blanklines > 2 or 'Mean G+C' in line:
-            if accumulator:
-                yield accumulator
-                accumulator = [line]
-        else:
-            accumulator.append(line)
-    if accumulator:
-        yield accumulator
+import sys
 
-IMPORTANT_INFO = {
-    'trna': re.compile(r'tRNA-(?P<codon>[A-Za-z]{3})\((?P<anticodon>[A-Za-z]{3})\)'),
-    'trna-alt': re.compile(r'tRNA-\?\((?P<codon>[^\)]+)\)\((?P<anticodon>[A-Za-z]{2,})\)'),
-    'bases': re.compile(r'(?P<bases>[0-9]+) bases, %GC = (?P<gc>[0-9.]+)'),
-    'sequence': re.compile(r'Sequence (?P<complement>[c]{0,1})\[(?P<start>\d+),(?P<end>\d+)\]'),
-    'possible_pseudogene': re.compile(r'(?P<pseudo>Possible Pseudogene)'),
-}
-INFO_GROUPS = ('codon', 'anticodon', 'bases', 'gc', 'complement', 'start', 'end', 'pseudo')
+full_gene_model = False
+if '--full' in sys.argv:
+    full_gene_model = True
 
-def important_info(block):
-    info = {}
-    for line in block:
-        for matcher in IMPORTANT_INFO:
-            matches = IMPORTANT_INFO[matcher].search(line)
-            if matches:
-                for group in INFO_GROUPS:
-                    try:
-                        info[group] = matches.group(group)
-                    except:
-                        pass
-    return info
-
-IMPORTANT_INFO_TMRNA = {
-    'tag_peptide': re.compile(r'Tag peptide:\s+(?P<pep>[A-Z*]*)'),
-    'location': re.compile(r'Location (?P<complement>[c]{0,1})\[(?P<start>\d+),(?P<end>\d+)\]'),
-}
-INFO_GROUPS_TMRNA = ('start', 'end', 'pep')
-
-def important_info_tmrna(block):
-    info = {}
-    for line in block:
-        for matcher in IMPORTANT_INFO_TMRNA:
-            matches = IMPORTANT_INFO_TMRNA[matcher].search(line)
-            if matches:
-                for group in INFO_GROUPS_TMRNA:
-                    try:
-                        info[group] = matches.group(group)
-                    except:
-                        pass
-    return info
-
-import fileinput
+genome_id = None
 stdin_data = []
-for line in fileinput.input():
-    stdin_data.append(line)
-
-possible_blocks = [line for line in blocks(stdin_data)]
-
-seqid = None
-print '##gff-version-3'
-# We're off to a GREAT start, if I'm accessing by index you just know that I'm going to do terrible
-# awful things
-for block_idx in range(len(possible_blocks)):
-    block = possible_blocks[block_idx]
-    data = None
-    fasta_defline = None
-
-    if block[0].startswith('Searching for') or 'nucleotides in sequence' in block[-1]:
-        # Try and get a sequence ID out of it
-        try:
-            fasta_defline = block[-2].strip()
-        except:
-            # Failing that, ignore it.
-            pass
-    else:
-        # They DUPLICATE results in multiple places, including a fasta version
-        # in the 'full report'.
-        possible_ugliness = [x for x in block if x.startswith('>t')]
-        if len(possible_ugliness) > 0:
-            continue
-
-        # However, if it didn't have one of those all important pieces of
-        # information, then it's either a different important piece of
-        # information, or complete junk
-        data = important_info(block)
+KEY_ORDER = ('parent', 'source', 'type', 'start', 'end', 'score', 'strand',
+             '8', 'quals')
 
-        # I am not proud of any of this. We essentially say "if that block
-        # didn't come up with useful info, then try making it a tmrna"
-        if len(data.keys()) == 0:
-            data = important_info_tmrna(block)
-            # And if that fails, just none it.
-            if len(data.keys()) == 0:
-                data = None
-            else:
-                # But if it didn't, confirm that we're a tmRNA
-                data['type'] = 'tmRNA'
-        else:
-            # If we did have keys, and didn't pass through any of the tmRNA
-            # checks, we're tRNA
-            data['type'] = 'tRNA'
-
-    # If we got a sequence ID in this block, set the defline
-    if 'nucleotides in sequence' in block[-1]:
-        try:
-            fasta_defline = block[-2].strip()
-        except:
-            pass
+# Table of amino acids
+aa_table = {
+    'Ala' : 'A',
+    'Arg' : 'R',
+    'Asn' : 'N',
+    'Asp' : 'D',
+    'Cys' : 'C',
+    'Gln' : 'Q',
+    'Glu' : 'E',
+    'Gly' : 'G',
+    'His' : 'H',
+    'Ile' : 'I',
+    'Leu' : 'L',
+    'Lys' : 'K',
+    'Met' : 'M',
+    'Phe' : 'F',
+    'Pro' : 'P',
+    'Ser' : 'S',
+    'Thr' : 'T',
+    'Trp' : 'W',
+    'Tyr' : 'Y',
+    'Val' : 'V',
+    'Pyl' : 'O',
+    'seC' : 'U',
+    '???' : 'X' }
 
-    # if a defline is available, try and extract the fasta header ID
-    if fasta_defline is not None:
-        try:
-            seqid = fasta_defline[0:fasta_defline.index(' ')]
-        except:
-            seqid = fasta_defline
-
-    # If there's data
-    if data is not None and len(data.keys()) > 1:
+def output_line(gff3):
+    print '\t'.join(str(gff3[x]) for x in KEY_ORDER)
 
-        # Deal with our flags/notes.
-        if data['type'] == 'tRNA':
-            # Are these acceptable GFF3 tags?
-            notes = {
-                'Codon': data['codon'],
-                'Anticodon': data['anticodon'],
-            }
-            if 'pseudo' in data:
-                notes['Note'] = 'Possible pseudogene'
-        else:
-            notes = {
-                'Note': 'Tag peptide: ' + data['pep'] + ''
+print '##gff-version 3'
+for line in sys.stdin:
+    if line.startswith('>'):
+        genome_id = line[1:].strip()
+        if ' ' in genome_id:
+            genome_id = genome_id[0:genome_id.index(' ')]
+    else:
+        data = line.split()
+        if len(data) == 5:
+            # Parse data
+            strand = '-' if data[2].startswith('c') else '+'
+            start, end = data[2][data[2].index('[') + 1:-1].split(',')
+
+            gff3 = {
+                'parent': genome_id,
+                'source': 'aragorn',
+                'start': int(start),
+                'end': int(end),
+                'strand': strand,
+                'score': '.',
+                '8': '.',
             }
 
-        notestr = ';'.join(['%s="%s"' % (k,v) for k,v in notes.iteritems()])
+            aa_long = data[1][5:]
+            aa_short = aa_table[aa_long]
+            anticodon = data[4][1:data[4].index(")")].upper().replace("T", "U")
+            name = 'trn{}-{}'.format(aa_short, anticodon)
+
+            if not full_gene_model:
+                gff3.update({
+                    'type': 'tRNA',
+                    'quals': 'ID=tRNA{0}.{1};Name={name};product={2}'.format(genome_id, *data, name = name),
+                })
+                output_line(gff3)
+            else:
+                gff3.update({
+                    'type': 'gene',
+                    'quals': 'ID=gene{0}.{1};Name={name};product={2}'.format(genome_id, *data, name = name),
+                })
+                output_line(gff3)
+                gff3.update({
+                    'type': 'tRNA',
+                    'quals': 'ID=tRNA{0}.{1};Parent=gene{0}.{1};Name={name};product={2}'.format(genome_id, *data, name = name),
+                })
+                output_line(gff3)
+
+                # If no introns
+                if ')i(' not in data[4]:
+                    gff3['type'] = 'exon'
+                    gff3['quals'] = 'Parent=tRNA{0}.{1}'.format(genome_id, *data)
+                    output_line(gff3)
+                else:
+                    intron_location = data[4][data[4].rindex('(') + 1:-1].split(',')
+                    intron_start, intron_length = map(int, intron_location)
+                    if strand == '+':
+                        original_end = gff3['end']
+                    else:
+                        original_end = gff3['start']
 
-        print '\t'.join([
-            seqid,
-            'aragorn',
-            data['type'],
-            data['start'],
-            data['end'],
-            '.',
-            '.',
-            '.',
-            notestr
-        ])
+                    # EXON
+                    gff3.update({
+                        'type': 'exon',
+                        'quals': 'Parent=tRNA{0}.{1}'.format(genome_id, *data),
+                    })
+                    if strand == '+':
+                        gff3['end'] = gff3['start'] + intron_start - 2
+                    else:
+                        gff3['start'] = gff3['end'] - intron_start + 2
+
+                    output_line(gff3)
+
+                    # INTRON
+                    gff3.update({
+                        'type': 'intron',
+                        'quals': 'Parent=tRNA{0}.{1}'.format(genome_id, *data),
+                    })
+                    if strand == '+':
+                        gff3['start'] = gff3['end'] + 1
+                        gff3['end'] = gff3['start'] + intron_length + 2
+                    else:
+                        gff3['end'] = gff3['start'] - 1
+                        gff3['start'] = gff3['end'] - intron_length + 1
+
+                    output_line(gff3)
+
+                    # EXON
+                    gff3.update({
+                        'type': 'exon',
+                        'quals': 'Parent=tRNA{0}.{1}'.format(genome_id, *data),
+                    })
+                    if strand == '+':
+                        gff3['start'] = gff3['end'] + 1
+                        gff3['end'] = original_end
+                    else:
+                        gff3['end'] = gff3['start'] - 1
+                        gff3['start'] = original_end
+
+                    output_line(gff3)
--- a/readme.rst	Thu Jan 22 13:15:51 2015 -0500
+++ b/readme.rst	Wed Jul 26 10:14:05 2017 -0400
@@ -67,6 +67,8 @@
     - v0.1: Initial public release
     - v0.2: added options, upgrade to 1.2.36, tool-dependency
     - v0.3: add unit tests, documentation improvements
+    - v0.4: added gff3 parser
+    - v0.5: improved gff3 parser, now handles introns and full gene model
 
 
 
--- a/tRNAscan.py	Thu Jan 22 13:15:51 2015 -0500
+++ b/tRNAscan.py	Wed Jul 26 10:14:05 2017 -0400
@@ -8,13 +8,12 @@
 from Bio.SeqRecord import SeqRecord
 import subprocess
 
-
 def main(args):
     """
         Call from galaxy:
         tRNAscan.py $organism $mode $showPrimSecondOpt $disablePseudo $showCodons $tabular_output $inputfile $fasta_output
 
-            tRNAscan-SE $organism $mode $showPrimSecondOpt $disablePseudo $showCodons -d -Q -y -q -b -o $tabular_output $inputfile;
+            tRNAscan-SE $organism $mode $showPrimSecondOpt $disablePseudo $showCodons -Q -y -q -b -o $tabular_output $inputfile;
     """
     cmd = """tRNAscan-SE -Q -y -q -b %s""" % ' '.join( args[:-1] )
     child = subprocess.Popen(cmd.split(),
--- a/tRNAscan.xml	Thu Jan 22 13:15:51 2015 -0500
+++ b/tRNAscan.xml	Wed Jul 26 10:14:05 2017 -0400
@@ -1,38 +1,50 @@
-<tool id="trnascan" name="tRNA prediction" version="0.3">
+<tool id="trnascan" name="tRNA prediction" version="0.4">
     <description>(tRNAscan)</description>
     <requirements>
-        <requirement type="package" version="1.3.1">tRNAscan-SE</requirement>
-        <requirement type="package" version="1.61">biopython</requirement>
+      <requirement type="package" version="1.3.1">trnascan-se</requirement>
+      <requirement type="package" version="1.0.2">infernal</requirement>
+      <requirement type="package" version="1.70">biopython</requirement>
+      <requirement type="package" version="2.7">python</requirement>
     </requirements>
-    <command interpreter="python">
-<![CDATA[
-        tRNAscan.py
-            $organism
-            $mode
-            $showPrimSecondOpt
-            $disablePseudo
-            $showCodons
-            -o
-            $tabular_output
-            $inputfile
-            $fasta_output
-]]>
+    <command>
+      <![CDATA[
+python '$__tool_directory__/tRNAscan.py'
+#if $organism
+    $organism
+#end if
+#if $mode
+    $mode
+#end if
+#if $showPrimSecondOpt
+    $showPrimSecondOpt
+#end if
+#if $disablePseudo
+    $disablePseudo
+#end if
+#if $showCodons
+    $showCodons
+#end if
+-o
+'$tabular_output'
+'$inputfile'
+'$fasta_output'
+      ]]>
     </command>
     <inputs>
         <param name="inputfile" type="data" format="fasta" label="Genome Sequence" help="Dataset missing? See TIP below"/>
         <param name="organism" type="select" label="Select Organism">
-            <option value="">Eukaryotic</option>
+            <option value="" selected="true">Eukaryotic</option>
             <option value="-G">general tRNA model</option>
             <option value="-B">Bacterial</option>
             <option value="-A">Archaeal</option>
             <option value="-O">Mitochondrial/Chloroplast</option>
         </param>
         <param name="mode" type="select" label="Select Mode">
-            <option value="">Default</option>
+            <option value="" selected="true">Default</option>
             <option value="-C">Covariance model analysis only (slow)</option>
             <option value="-T">tRNAscan only</option>
             <option value="-E">EufindtRNA only</option>
-            <option value="--infernal">Infernal cm analysis (max sensitivity, very slow)</option>
+            <option value="--infernal">Infernal cm analysis (max sensitivity, very slow)</option> 
             <option value="--newscan">Infernal and new cm models</option>
         </param>
         <param name="disablePseudo" type="boolean" label="Disable pseudogene checking" truevalue="-D" falsevalue="" />
@@ -45,37 +57,34 @@
     </outputs>
     <tests>
         <test>
-            <param name="input" value="trna_arabidopsis.fasta" ftype="fasta" />
+            <param name="inputfile" value="trna_arabidopsis.fasta" ftype="fasta" />
             <param name="organism" value="" />
-            <param name="mode" value="--infernal" />
+            <param name="mode" value="--infernal" /> <!-- Infernal test not working due to cmsearch error-->
             <param name="disablePseudo" value="" />
             <param name="showPrimSecondOpt" value="" />
             <param name="showCodons" value="" />
             <output name="fasta_output" file="tRNAscan_eukaryotic_infernal.fasta" ftype="fasta" />
-            <output name="fasta_output" file="tRNAscan_eukaryotic_infernal.tabular" ftype="tabular" />
+            <output name="tabular_output" file="tRNAscan_eukaryotic_infernal.tabular" ftype="tabular" />
         </test>
     </tests>
     <help>
 <![CDATA[
 
 
-.. class:: warningmark
-
-**TIP** This tool requires *fasta* formated sequences.
-
------
-
 **What it does**
 
-	tRNAscan-SE_ was designed to make rapid, sensitive searches of genomic
-	sequence feasible using the selectivity of the Cove analysis package.
-	We have optimized search sensitivity with eukaryote cytoplasmic and
-	eubacterial sequences, but it may be applied more broadly with a
-	slight reduction in sensitivity.
+tRNAscan-SE_ was designed to make rapid, sensitive searches of genomic
+sequence feasible using the selectivity of the Cove analysis package.
+We have optimized search sensitivity with eukaryote cytoplasmic and
+eubacterial sequences, but it may be applied more broadly with a
+slight reduction in sensitivity.
 
 .. _tRNAscan-SE: http://lowelab.ucsc.edu/tRNAscan-SE/
 
------
+**Input**
+
+Nucleotide sequence in FASTA format.
+
 
 **Organism**
 
@@ -85,71 +94,71 @@
 
 - use general tRNA model:
 
-	This option selects the general tRNA covariance model that was trained
-	on tRNAs from all three phylogenetic domains (Archaea, Bacteria, and
-	Eukarya). This mode can be used when analyzing a mixed collection of
-	sequences from more than one phylogenetic domain, with only slight
-	loss of sensitivity and selectivity. The original publication
-	describing this program and tRNAscan-SE version 1.0 used this general
-	tRNA model exclusively. If you wish to compare scores to those found
-	in the paper or scans using v1.0, use this option. Use of this option
-	is compatible with all other search mode options described in this
-	section.
+    This option selects the general tRNA covariance model that was trained
+    on tRNAs from all three phylogenetic domains (Archaea, Bacteria, and
+    Eukarya). This mode can be used when analyzing a mixed collection of
+    sequences from more than one phylogenetic domain, with only slight
+    loss of sensitivity and selectivity. The original publication
+    describing this program and tRNAscan-SE version 1.0 used this general
+    tRNA model exclusively. If you wish to compare scores to those found
+    in the paper or scans using v1.0, use this option. Use of this option
+    is compatible with all other search mode options described in this
+    section.
 
 - search for bacterial tRNAs
 
-	This option selects the bacterial covariance model for tRNA analysis,
-	and loosens the search parameters for EufindtRNA to improve detection
-	of bacterial tRNAs. Use of this mode with bacterial sequences
-	will also improve bounds prediction of the 3' end (the terminal CAA
-	triplet).
+    This option selects the bacterial covariance model for tRNA analysis,
+    and loosens the search parameters for EufindtRNA to improve detection
+    of bacterial tRNAs. Use of this mode with bacterial sequences
+    will also improve bounds prediction of the 3' end (the terminal CAA
+    triplet).
 
 - search for archaeal tRNAs
 
-	This option selects an archaeal-specific covariance model for tRNA
-	analysis, as well as slightly loosening the EufindtRNA search
-	cutoffs.
+    This option selects an archaeal-specific covariance model for tRNA
+    analysis, as well as slightly loosening the EufindtRNA search
+    cutoffs.
 
 - search for organellar (mitochondrial/chloroplast) tRNAs
 
-	This parameter bypasses the fast first-pass scanners that are poor at
-	detecting organellar tRNAs and runs Cove analysis only. Since true
-	organellar tRNAs have been found to have Cove scores between 15 and 20
-	bits, the search cutoff is lowered from 20 to 15 bits. Also,
-	pseudogene checking is disabled since it is only applicable to
-	eukaryotic cytoplasmic tRNA pseudogenes. Since Cove-only mode is
-	used, searches will be very slow (see -C option below) relative to the
-	default mode.
+    This parameter bypasses the fast first-pass scanners that are poor at
+    detecting organellar tRNAs and runs Cove analysis only. Since true
+    organellar tRNAs have been found to have Cove scores between 15 and 20
+    bits, the search cutoff is lowered from 20 to 15 bits. Also,
+    pseudogene checking is disabled since it is only applicable to
+    eukaryotic cytoplasmic tRNA pseudogenes. Since Cove-only mode is
+    used, searches will be very slow (see -C option below) relative to the
+    default mode.
 
-------
+
 
 **Mode**
 
 - search using Cove analysis only (max sensitivity, slow)
 
-	Directs tRNAscan-SE to analyze sequences using Cove analysis only.
-	This option allows a slightly more sensitive search than the default
-	tRNAscan + EufindtRNA -> Cove mode, but is much slower (by approx. 250
-	to 3,000 fold). Output format and other program defaults are
-	otherwise identical to the normal analysis.
+    Directs tRNAscan-SE to analyze sequences using Cove analysis only.
+    This option allows a slightly more sensitive search than the default
+    tRNAscan + EufindtRNA -> Cove mode, but is much slower (by approx. 250
+    to 3,000 fold). Output format and other program defaults are
+    otherwise identical to the normal analysis.
 
 - search using Eukaryotic tRNA finder (EufindtRNA) only:
 
-	This option runs EufindtRNA alone to search for tRNAs. Since Cove is
-	not being used as a secondary filter to remove false positives, this
-	run mode defaults to "Normal" parameters which more closely
-	approximates the sensitivity and selectivity of the original algorithm
-	describe by Pavesi and colleagues.
+    This option runs EufindtRNA alone to search for tRNAs. Since Cove is
+    not being used as a secondary filter to remove false positives, this
+    run mode defaults to "Normal" parameters which more closely
+    approximates the sensitivity and selectivity of the original algorithm
+    describe by Pavesi and colleagues.
 
 - search using tRNAscan only (defaults to strict search parameters)
 
-	Directs tRNAscan-SE to use only tRNAscan to analyze sequences. This
-	mode will cause tRNAscan to default to using "strict" parameters
-	(similar to tRNAscan version 1.3 operation). This mode of operation
-	is faster (about 3-5 times faster than default mode analysis), but
-	will result in approximately 0.2 to 0.6 false positive tRNAs per Mbp,
-	decreased sensitivity, and less reliable prediction of anticodons,
-	tRNA isotype, and introns.
+    Directs tRNAscan-SE to use only tRNAscan to analyze sequences. This
+    mode will cause tRNAscan to default to using "strict" parameters
+    (similar to tRNAscan version 1.3 operation). This mode of operation
+    is faster (about 3-5 times faster than default mode analysis), but
+    will result in approximately 0.2 to 0.6 false positive tRNAs per Mbp,
+    decreased sensitivity, and less reliable prediction of anticodons,
+    tRNA isotype, and introns.
 
 - search using Infernal cm analysis only (max sensitivity, very slow)
 
@@ -157,56 +166,54 @@
 - search using Infernal and new cm models instead of Cove
 
 
------
 
 **disable pseudogene checking**
 
-	Manually disable checking tRNAs for poor primary or secondary
-	structure scores often indicative of eukaryotic pseudogenes. This
-	will slightly speed the program and may be necessary for non-eukaryotic
-	sequences that are flagged as possible pseudogenes but are known to be
-	functional tRNAs.
+    Manually disable checking tRNAs for poor primary or secondary
+    structure scores often indicative of eukaryotic pseudogenes. This
+    will slightly speed the program and may be necessary for non-eukaryotic
+    sequences that are flagged as possible pseudogenes but are known to be
+    functional tRNAs.
 
------
 
 **Show both primary and secondary structure score components to covariance model bit scores**
 
-	This option displays the breakdown of the two components of the
-	covariance model bit score. Since tRNA pseudogenes often have one
-	very low component (good secondary structure but poor primary sequence
-	similarity to the tRNA model, or vice versa), this information may be
-	useful in deciding whether a low-scoring tRNA is likely to be a
-	pseudogene. The heuristic pseudogene detection filter uses this
-	information to flag possible pseudogenes -- use this option to see why
-	a hit is marked as a possible pseudogene. The user may wish to
-	examine score breakdowns from known tRNAs in the organism of interest
-	to get a frame of reference.
+    This option displays the breakdown of the two components of the
+    covariance model bit score. Since tRNA pseudogenes often have one
+    very low component (good secondary structure but poor primary sequence
+    similarity to the tRNA model, or vice versa), this information may be
+    useful in deciding whether a low-scoring tRNA is likely to be a
+    pseudogene. The heuristic pseudogene detection filter uses this
+    information to flag possible pseudogenes -- use this option to see why
+    a hit is marked as a possible pseudogene. The user may wish to
+    examine score breakdowns from known tRNAs in the organism of interest
+    to get a frame of reference.
 
------
+
 
 **Show codons instead of tRNA anticodons**
 
-	This option causes tRNAscan-SE to output a tRNA's corresponding codon
-	in place of its anticodon.
+    This option causes tRNAscan-SE to output a tRNA's corresponding codon
+    in place of its anticodon.
 
------
+
 
 **Example**
 
-* input:
+**input**
 
-	>CELF22B7  C.aenorhabditis elegans (Bristol N2) cosmid F22B7
-	GATCCTTGTAGATTTTGAATTTGAAGTTTTTTCTCATTCCAAAACTCTGT
-	GATCTGAAATAAAATGTCTCAAAAAAATAGAAGAAAACATTGCTTTATAT
-	TTATCAGTTATGGTTTTCAAAATTTTCTGACATACCGTTTTGCTTCTTTT
-	TTTCTCATCTTCTTCAAATATCAATTGTGATAATCTGACTCCTAACAATC
-	GAATTTCTTTTCCTTTTTCTTTTTCCAACAACTCCAGTGAGAACTTTTGA
-	ATATCTTCAAGTGACTTCACCACATCAGAAGGTGTCAACGATCTTGTGAG
-	AACATCGAATGAAGATAATTTTAATTTTAGAGTTACAGTTTTTCCTCCGA
-	.....
+    >CELF22B7  C.aenorhabditis elegans (Bristol N2) cosmid F22B7
+    GATCCTTGTAGATTTTGAATTTGAAGTTTTTTCTCATTCCAAAACTCTGT
+    GATCTGAAATAAAATGTCTCAAAAAAATAGAAGAAAACATTGCTTTATAT
+    TTATCAGTTATGGTTTTCAAAATTTTCTGACATACCGTTTTGCTTCTTTT
+    TTTCTCATCTTCTTCAAATATCAATTGTGATAATCTGACTCCTAACAATC
+    GAATTTCTTTTCCTTTTTCTTTTTCCAACAACTCCAGTGAGAACTTTTGA
+    ATATCTTCAAGTGACTTCACCACATCAGAAGGTGTCAACGATCTTGTGAG
+    AACATCGAATGAAGATAATTTTAATTTTAGAGTTACAGTTTTTCCTCCGA
+    .....
 
 
-* output:
+**output**
 
 
     ========     ======    =====     ======    ====    ==========    ======    ======    ==========    ==========
@@ -222,17 +229,9 @@
     ========     ======    =====     ======    ====    ==========    ======    ======    ==========    ==========
 
 
--------
-
-**References**
-
-Todd M. Lowe and Sean R. Eddy
-
-tRNAscan-SE: A Program for Improved Detection of Transfer RNA Genes in Genomic Sequence Nucl. Acids Res. (1997) 25(5): 0955-964
-
-doi:10.1093/nar/25.5.0955
-
-
 ]]>
     </help>
+    <citations>
+        <citation type="doi">10.1093/nar/25.5.0955</citation>
+    </citations>
 </tool>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/aragorn_tansl-table-11_introns.gff3	Wed Jul 26 10:14:05 2017 -0400
@@ -0,0 +1,32 @@
+##gff-version 3
+genome_with_introns	aragorn	gene	1533	4118	.	-	.	ID=genegenome_with_introns.1;Name=trnK-UUU;product=tRNA-Lys
+genome_with_introns	aragorn	tRNA	1533	4118	.	-	.	ID=tRNAgenome_with_introns.1;Parent=genegenome_with_introns.1;Name=trnK-UUU;product=tRNA-Lys
+genome_with_introns	aragorn	exon	4081	4118	.	-	.	Parent=tRNAgenome_with_introns.1
+genome_with_introns	aragorn	intron	1569	4080	.	-	.	Parent=tRNAgenome_with_introns.1
+genome_with_introns	aragorn	exon	1533	1568	.	-	.	Parent=tRNAgenome_with_introns.1
+genome_with_introns	aragorn	gene	6453	6524	.	-	.	ID=genegenome_with_introns.2;Name=trnQ-UUG;product=tRNA-Gln
+genome_with_introns	aragorn	tRNA	6453	6524	.	-	.	ID=tRNAgenome_with_introns.2;Parent=genegenome_with_introns.2;Name=trnQ-UUG;product=tRNA-Gln
+genome_with_introns	aragorn	exon	6453	6524	.	-	.	Parent=tRNAgenome_with_introns.2
+genome_with_introns	aragorn	gene	7730	7819	.	-	.	ID=genegenome_with_introns.3;Name=trnS-GCU;product=tRNA-Ser
+genome_with_introns	aragorn	tRNA	7730	7819	.	-	.	ID=tRNAgenome_with_introns.3;Parent=genegenome_with_introns.3;Name=trnS-GCU;product=tRNA-Ser
+genome_with_introns	aragorn	exon	7730	7819	.	-	.	Parent=tRNAgenome_with_introns.3
+genome_with_introns	aragorn	gene	12356	12431	.	+	.	ID=genegenome_with_introns.4;Name=trnP-UGG;product=tRNA-Pro
+genome_with_introns	aragorn	tRNA	12356	12431	.	+	.	ID=tRNAgenome_with_introns.4;Parent=genegenome_with_introns.4;Name=trnP-UGG;product=tRNA-Pro
+genome_with_introns	aragorn	exon	12356	12431	.	+	.	Parent=tRNAgenome_with_introns.4
+genome_with_introns	aragorn	gene	12597	12670	.	+	.	ID=genegenome_with_introns.5;Name=trnW-CCA;product=tRNA-Trp
+genome_with_introns	aragorn	tRNA	12597	12670	.	+	.	ID=tRNAgenome_with_introns.5;Parent=genegenome_with_introns.5;Name=trnW-CCA;product=tRNA-Trp
+genome_with_introns	aragorn	exon	12597	12670	.	+	.	Parent=tRNAgenome_with_introns.5
+genome_with_introns	aragorn	gene	22050	22123	.	-	.	ID=genegenome_with_introns.6;Name=trnR-CCG;product=tRNA-Arg
+genome_with_introns	aragorn	tRNA	22050	22123	.	-	.	ID=tRNAgenome_with_introns.6;Parent=genegenome_with_introns.6;Name=trnR-CCG;product=tRNA-Arg
+genome_with_introns	aragorn	exon	22050	22123	.	-	.	Parent=tRNAgenome_with_introns.6
+genome_with_introns	aragorn	gene	26588	26660	.	-	.	ID=genegenome_with_introns.7;Name=trnM-CAU;product=tRNA-Met
+genome_with_introns	aragorn	tRNA	26588	26660	.	-	.	ID=tRNAgenome_with_introns.7;Parent=genegenome_with_introns.7;Name=trnM-CAU;product=tRNA-Met
+genome_with_introns	aragorn	exon	26588	26660	.	-	.	Parent=tRNAgenome_with_introns.7
+genome_with_introns	aragorn	gene	26850	27468	.	+	.	ID=genegenome_with_introns.8;Name=trnY-AUA;product=tRNA-Tyr
+genome_with_introns	aragorn	tRNA	26850	27468	.	+	.	ID=tRNAgenome_with_introns.8;Parent=genegenome_with_introns.8;Name=trnY-AUA;product=tRNA-Tyr
+genome_with_introns	aragorn	exon	26850	26884	.	+	.	Parent=tRNAgenome_with_introns.8
+genome_with_introns	aragorn	intron	26885	27410	.	+	.	Parent=tRNAgenome_with_introns.8
+genome_with_introns	aragorn	exon	27411	27468	.	+	.	Parent=tRNAgenome_with_introns.8
+genome_with_introns	aragorn	gene	29759	29833	.	+	.	ID=genegenome_with_introns.9;Name=trnH-GUG;product=tRNA-His
+genome_with_introns	aragorn	tRNA	29759	29833	.	+	.	ID=tRNAgenome_with_introns.9;Parent=genegenome_with_introns.9;Name=trnH-GUG;product=tRNA-His
+genome_with_introns	aragorn	exon	29759	29833	.	+	.	Parent=tRNAgenome_with_introns.9
--- a/test-data/aragorn_tansl-table-1_tmRNA_tRNA.gff3	Thu Jan 22 13:15:51 2015 -0500
+++ b/test-data/aragorn_tansl-table-1_tmRNA_tRNA.gff3	Wed Jul 26 10:14:05 2017 -0400
@@ -1,2 +1,2 @@
-##gff-version-3
-gi|240255695:23036500-23037000	aragorn	tRNA	381	453	.	.	.	Anticodon=tgc;Codon=Ala
+##gff-version 3
+gi|240255695:23036500-23037000	aragorn	tRNA	381	453	.	+	.	ID=tRNAgi|240255695:23036500-23037000.1;Name=trnA-UGC;product=tRNA-Ala
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/aragorn_tansl-table-1_tmRNA_tRNA.txt	Wed Jul 26 10:14:05 2017 -0400
@@ -0,0 +1,70 @@
+------------------------------
+ARAGORN v1.2.36   Dean Laslett
+------------------------------
+
+Please reference the following paper if you use this
+program as part of any published research.
+
+Laslett, D. and Canback, B. (2004) ARAGORN, a
+program for the detection of transfer RNA and
+transfer-messenger RNA genes in nucleotide sequences.
+Nucleic Acids Research, 32;11-16.
+
+
+Searching for tRNA genes with no introns
+Searching for tmRNA genes
+Assuming circular topology, search wraps around ends
+Searching both strands
+Using standard genetic code
+
+
+gi|240255695:23036500-23037000 Arabidopsis thaliana chromosome 3, complete sequence
+501 nucleotides in sequence
+Mean G+C content = 43.1%
+ 
+1.
+ 
+ 
+ 
+               a
+             g-c
+             g-c
+             g+t
+             g-c
+             a-t
+             t-a
+             g-c     tt
+            t   gtccc  a
+     ta    a    !!!!!  g
+    a  ctcg     caggg  c
+   t   !!!!    a     tt
+   g   gagc     c
+    gta    g     g
+            c-gag
+            t-a
+            c-g
+            g-c
+            c-g
+           t   t
+           t   a
+            tgc
+ 
+ 
+ 
+    tRNA-Ala(tgc)
+    73 bases, %GC = 56.2
+    Sequence [381,453]
+ 
+
+
+>tRNA-Ala(tgc) [381,453]
+ggggatgtagctcatatggtagagcgctcgctttgcatgcgagaggcaca
+gggttcgattccctgcatctcca
+
+
+
+
+Number of tmRNA genes = 0
+
+
+Configuration: aragorn /tmp/tmpx1qAPk/files/000/dataset_3.dat -gc1 -m -t -c -o /tmp/tmpx1qAPk/files/000/dataset_4.dat -fasta 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/genome_with_introns.fa	Wed Jul 26 10:14:05 2017 -0400
@@ -0,0 +1,2 @@
+>genome_with_introns
+TTATCCACCTATTGAAATAGATTCAACAGCAGCTAGATCCAGAGGAAAGTTATGAGCATTACGTTCGTGCATAACTTCCATACCTAGGTTAGCACGATTAATGATATCGGCCCAAGTGTTAATTACACGACCTTGACTGTCAACTACAGATTGGTTGAAATTGAATCCATTTAGGTTGAAAGCCATAGTGCTTATGCCTAGAGCGGTAAACCAGATACCTGCTACGGGCCAAGCAGCTAAGAAGAAATGTAAAGAACGGGAGTTGTTGAAACTAGCATACTGGAAGATCAATCGGCCGAAATAACCGTGAGCAGCCACAATATTGTAGGTTTCTTCCTCCTGACCAAATTTGTAACCTGCATTTGCGGACTGATTCTCAGTAGTTTCCCTGATCAAACTAGAAGTTACCAAAGAACCATGCATAGCACTGAATAGAGAGCCGCCGAATACACCAGCTACACCCAACATGTGGAATGGATGCATAAGGATATTGTGCTCAGCCTGGAATACAATCATGAAATTGAAAGTACCAGAGATTCCTAGAGGCATACCGTCAGAGAAGCTTCCTTGACCAATAGGGTAGATCAAGAAAACGGCACTAGCAGCTGCAACAGGAGCTGAGTATGCAACAGCAATCCAAGGACGCATACCTAGACGGAAGCTAAGCTCCCACTCACGACCCATATAGCAAGCTACACCAAGTAGGAAGTGTAGAACGATTAGCTCGTAAGGACCCCCGTTGTATAGCCATTCATCGACGGAAGCTGCTTCCCAGATGGGATAGAAGTGCAAACCGATAGCTGCAGAGGTAGGAATAATGGCACCGGAGATAATATTGTTTCCATAAAGAAGAGAACCGGAAACGGGCTCACGAATACCATCAATATCTACCGGAGGAGCTGCGATGAAAGCAATAATGAATACAGAGGTTGCGGTCAATAGGGTAGGGATCATCAAAACACCGAACCATCCAATGTAAAGACGGTTTTCGGTGCTAGTGATCCAGTCGCAGAAGCGACCCCATAAATTTGCGCTTTCGCGTCTTTCTATAATTGCGGTCATGGTCAAAACTTCGTTTATAAAATCATCAGAGGCTCCCAAGCATAAGGCTTGTTATTTGACAGTATAATATGATCCATGTATCAATGTCAACTAATATCCGGGATAGAATATAGTATTTGAGATAGACTCTCTATTTTTTCGCATATATTACACACTCTATAGATCTATCTGTGGTTAGATACTCCATCAAATTCTTCCATTCCTGGTTACAGGAATGGAAGATCCGTTGTAATGAGAACGGATAGGCAGTGGAGATAAAAATTTTGTTGTTCGCTATAACGAAGTGCAATGCGATTCTGGAACCGAATTCTGAATAAATTAATATGAGTGGGATATTAATTCTTCATCACCTTTCCGGAGAACCCATAGTGCGATAGTTCGTTACCTGTGAATAGGAACAAATAGGAAAAGGAACTTGATTGGATCCAGAACCAGAATAAGTGGACAGAGGTCCCTATCAGAAATTTGATCCGGGTTGCCCGGGACTCGAACCCGGAGCTCGTCGGATGGAGTGGATTATCTGCTCCTTCAGTATCAGTAAGAGCGAGAAATCTCTCCCCAAACCGTGCTTGCAATTCTCATCGCACACGGCTTTCCCCATGTAATGTATCTATTTCCTAATCATTTTAGTTCTCGGATGGCAAAATAAAAATGATTCTGAATCGAGGCAATGACTCAAAGAGCATTTCATTGGTCAAATAAGTTTTCTATTTTCAGATCCTGTATCTTTTGCCAGGAATGGGCTAGGGGATTTATCTGGGGAATATCTGAATGCCAAATTCGTTCTCTCTGTGAACGGGCCGCCGCTTTTGATGAAAAAGGCGGAGAATCCAATTCTCGTTCTTTTGAAAACGATTTTTTAAAGAGTTCTGGACCTAATTCCTTCCGAACTACACGTATCGTACTTTTATGTTTACAGGCTAAAGTTTTAGCACATGATAATGAAAGTATATACTTTATACGATATAAACCATCTCGACCAAAGGATCCACTGTAGTAATGAAAAAGATTTCTCCAAATTCGATCGAATCGATCCAGGATATCATCATCTGTTAGACTGGTCCAAGACAATTTACTAATTGGCCGCCCTGATATATCACAGAATTTTTCTCTAGACAATAATCCAATTATTGGTACAATCGGAACTATTGGATCAAATTCATCGGTAATAAGATCGGCAATGAATAACTCATCTAGCATTTTAGTCTTGACCAAAAGAGGTTTCATCCGAAACCTCAGAAAATAACCTAAAGAAGAAGAACAATTCTTGGATAATTGATGAGAACATACCCTATATGGTTCGTTCCAAAGATGGAAATAACATTGCCGAAAAATTGGAAGATAATATCTATATTTTTTCACTAGGAGATTAGTACCCTTTATAGCTATAATAGATCTTTCTCCATATCTAACATAGTGAATGTTAGGATCCTTCAACGACCAGATACTTTGAAATGAATTTCGACGAGAAAATAGAAAAATATTTTTTATTTTTCGATGAAAATGAGTTCGCTGAGGGAAAGACCCATGAGATAACGATCGTGAATGAGAGGATCGTTTAAGAAGGGAAACTAAAATGGATTCGCATTCATAGACATAATTATTCCACAGGAACAGGAAGAATCTCGTATTTACTTTCGGGACGACAATAATCGATCTTTGTAAACTCTCTGAACTATTTCGATATTCATAGAGAATAGATCGTAATGGGTGCAAGGAGGGAGCATCTCCGATCCAGCGACGAAAGGTTCGAACCAAAATTTCTGGATGAATAGAATAGGGTATTCGTGTATCTGATACATAATTTGAATGCGGGAATTTATCCTCCAAGAAGGGAAATATTGAATGGATCGACCGGAAACTCTTCCATTCATTCATCCCTTCCACAGAATATTTTGACCGTATAGAGAACGGAACTTCCAGGACCAATGTCAGTCCTTCTAGTACCGATTCAGAATAGGAACTCTTCTTGCGATCAACTAATGGATTTGGATCACAATTCACGAATAAAACAATTGAATGATTCTGTTGACGTATTTGACCAATCAAACGTTTTACAGTTAGGAAACTGAACTGATCATTGGAACTTAAATGTTCCATCGGTTCGGAGGAACTCGATCCATCCAAATAATGATCATGAGAAATTGCGTAAAGATCTTCCTGAAAAAAGAGTGGATATAAAAAGCATTGTTGCCAAGAGCTATCTTCCTTTCCGTATCTATGGAACTCATCCATTTTCAAACCTCAGTTATGGCCCTCGTTCATGAGAATAACCTCTTAAATTCTGAGATAATACAATACATGGTGCGATCTAGTCGGGACAAGATAGGAAAAAGATAGATGATATAAAGATTCTATCTTCTATTCAGCAGATTTACTACCCAAGGATCTCGTTCGTCATGAGGAAGAACGAAAATCTTTTATCCTGGCAACCGATCGCTCTCCTGACTCATGGAATAAATAAACCTGGTCAGTACACTATTTATCTTACACATCTGTACTCGAGTACTTAGGACTCATTGTGAGTGTATAAATCCCTGATCTACTCAGGGAAAACCTCCCGATATCGGGTACTAAAATGCTCTTAACTTCTGATCAGTAAAGGGAATTCCTCGCTCGTTTAATTGGAACGAGGAACAGAAGCTCGTTTCTCTGGGTCTACTTATGATTCAAGTCATATAGCTTTCTCCATTGACTCATTCGACTTAACCGCGAATTGATTCGATCCTATTCACAATTATCACATTTGATCCGAAAGGATGATCATATTATACATCCACCTAGGTATATAATAGACATTTCCCACCCATTTGATTCCTTGAATTAGATCCGGTCCTGATCGAATAATATCAGGTATCCTAAAAATCATATCAGGTATCATAAAGATCATATGTTGGAACGACATGCTGTTTTTTCCGTTAATTCTACTTCGAGGATCAGTCGTAGTCTTCCAAACTTTACCGATGGTATCGACGAGTTTTCTACTTCATTCAAATGTGTAAAAGACCTTAGTCGCACTTAAAAGCCGAGTACTCTACCATTGAGTTAGCAACCCATATTTCAAATAGATATTGAGGATATATATACGATCGAAGTGGAATGCGAGGTTACTCAATATGAACCGGTAAATAGAATCTTACCAATCGTTGTTGTTAAATAACAACGGGAGGGATCAAAAACCTATGTGAATGACCAAATAATTCACTCATCAGTTCATATATGTATATGAATAATTTCGATCCACCATTCCAGAATAAAGTAATCTAGGTTATGAATAAATGATCCGTCGACAGAATTATCATGATTGGATAGGATCACTGATAAATGATGAACCTAAGATATCTATTTCTATTGTGAATGGACGAATTATATCGACACAATACACTATTGTCAATCCAGAATAAAAGATAAATGAATTGTTGGATGTCATAATCCATATCCACGAAACCGATTATGTAAAGTCGCACGTTGCTTTCTACCACATCGTTTCAGACGATGTTTTTAAGATCTCGAATCATGATTGATACGTGATTATGAATAGTCATTAACTCAATTGATATGAGAGGAATAGGTATCGAATTGGATCCACTCTTTTTGTATAGAATACACTCAATGTAATAAATGAATTGATATTGATCAGGTACTTAACTTAATGCTTCTTTAGCTGCGTGCATTACCTCGACAGTAACGTTCAAAATGCCCTTTCGTCGTGCAAATTTTTCTGTGTTTCTCTTTACTTCGTCCCTGACAAAACGGGGGATTTTATTCAATTCTAGTCGACTTTCAGGATTCCAAATTGGACTCATATCCGTGGATAATGATTTAGTCGTTATTTCCTTCGTATCATGACCACAAAAAATCTCTAGAAGATGATCCTCCATACCCAGAGCGAATGAGTTATAAACTGGATCAGCTATTTGATTAGTACCTTCGTAACCCAGGAAGGGTCGATATCCCAAGGAAAAATTTTGGATATGAGCTGGTGCGGAAATAACTCCACAGGGAATCTCAAGACGTTTACCAATATGACGTTCCATTTGAGTACCAAATATTGCAGAGGGTTCCACGCGAGCGATAATATCTCCTACTTCAGCATGATCATCTGTGATGATTATCTCATCACAAAAATCTTTAATTTGCTCTTTGAACCATTCTGCATCATGTTTACAATAAGTACCTGTACAACTCACACGAATTCCCATCTCTCTAGCAAGTATCTTAGTGATTGAAGCAGCATGAGTTGCATCACCAAAAACGACTGTTTCTTTCCCCGTAAAATTCTGACAATCGATAGATCTTGAGAACCAAGCAGCTTGGGAAACGAATCGAGTTTGTCCATCGATATAGGATTCGTAATCAACCCTTTTGCTTGATAAAATAGGAGCCGCCAAGGTATCAATATATTTCTTTATCTGTCGAATGCACTCGGCCATATCTACAGCTCCCATAGGAGTTGTAGATACATAAGGCATCCCAAATTCTTTATTCAAATACATTGCTGTCATTAAGCCCACTTCACGATAAGGAATTAAATTGAACCGAGCTTTTGGTAAATTTTTTGAATCCTCTACAGATCCTCCTTCAGGAATTATTTGATTAATTCTGATGTCCAGATCTTTTAATAAACGTCTCAACTCACGACAATCGTGTCGATTATGAAAGCCCAAAGTAAGAATCCCAATTATATTTACAGAAGGTGCATCTGTTACGAATTGATCCAATGTTTCTTGTCTATAGGATTTCTCCAAATAATATCGAACCACCTGTTCCAAAGTTCTATCCGCTGCCTGAATTTCATTCACTTGATAATGATCCACATCCGCAAAAATGACGTTGCAATCGGAGATTATGGATGCTCTATCCACAAAGTTTTTTAAATCCTCTTGCAAGATACTAGAGGTACATGTAGGTGTCAATATGATCAGATCGGGACCTTCCTCCTTATCTTTTCGAAGAATATTATCCACAACTCTTTTTCGAGATCCACGTGCTAGTACGTGACGATCTACTATACTAGCAGTTGCAGGAGTAAAATTTCTTTCCCGTTCTAACATAGAGCGCATTACATTAAAATAATCATCTCCTAGAGGAGCATGCATAATGGCATGGACATTTTTGAATGAACTAGCTACTCGTAGAGTTCCAATATGAGCAGGACCAGCATACATCCAATGGGCTAATTTCATAAATTGAACCTTATCTCAAATTGATCCGTATTCCCATCTTGCACCACAGAGATATCCCTTTATCCCTTCCCTATTGTAATCACATTCCCTTCTGATAAGTATGGTGAAATTATGATAAAAAGTAGAACGAAATTTTGGATTTATCTTTACGAAAGAAAAAAAGGAAGAGGGAGAGAACAGAAAACAGGAACCAATGAAATAAGTCTGGGACGGAAGGATTCGAACCTCCGAATAACAGGATCAAAACCTGCTGCCTTACCGCTTGGCCACGCCCCATTCCCATCCTATTTCCCTATTCATATGCTAATGAATACTTATATTCAATTTTTTGTCAACTCATTAGGATCCAAGATTCATTAGATAAGATCCTAATTGGGCTGGAAAATTTTGTGGATATTTTGATAAAATAGGTTATTGATGGAATTGGACATAATAGGAAAAACAGAAAAAGGGACAAGAATATCCATTCATTGATCATTTTCTATTAGATTGGGTAAAATATTGTATGTATGAAAGAATCATCCCTTCCAACCCCAAGTCCGGTCAAACTTGCCGAAGAGCTTCTCGATCGATTTGATCAATCAAAGACTTTTCTGGCTTTACCCCCCCTAATTTTTTTTTGGAGAAGAAAAATGCCAGTTATGCTCAATATTTTTCTAGATGATGCCTTTATCTATTCAAATAATATCTTTTTTGGAAAATTACCTGAGGCTTATGCGATTTCCGATCCAATTGTCGATGTAATGCCAATTATTCCTGTTCTCTCTTTTCTCTTAGCCTTTGTTTGGCAAGCTGCTGTAAGTTTTCGATAAAAAGTATCCCCTTTTTTCCTTTTGAAAGTTTTAAGATCGCTGTCATTGATCCAATTTTTGTATAACTCTTTACATTTTTTGTGACAGAAGTTCTATCCTTGCTCCACCCGATGATACCAGATCCAGATACCTTATCTGCTCCCGACTAAAAACTTTTCCACTCACCTTCATCAATTCCTTTCCTTTCAATCCCATCGCTCACTTCGGATCGGGCTATTTGTTCACGTATTGATACGAATGATATATTTTCATAAAGATTCGATAAATATCTGGTTGATCCAAAAAAGAAGAAGGGAAAAAAGACCATTTTGAAAACAAAGAGATAAATTATCTCCTTCTTTCAATTTGATTTTCACACGTGATCCGGAGAAATCGTGATTTTTATGAATCATACTATTGTTTGGTATTCAAGTATTCATATATTATACAAAGATTGATGATTTATTCTGTTGTACTTATAATTAGGATCCCGGAGATTACGTAATGCTTACTCTTAAGCTGTTCGTTTACACAGTAGTGATATTTTTCATTTCTCTTTTTATCTTTGGATTTCTATCGAACGATCCAGGACGTAATCCCGGACGTAAAGAATAGTGAAAAAAAGTATCTAGGTTAATGAGTCTTTTCCGTTCCGTAGAAAGATTCGGAGTTATCCGCAATAGTGACCGAACGGAGAGAGAGGGATTCGAACCCTCGGTACGGATAATCCGTACTACGGATTAGCAATCCGCCGCTTTGGTCCGCTCAGCCATCTCTCCAAGATGGAAAAGTTCTTGTTTAACAAAATGAATGGTGGAGTAAAGGTGTATACCATAGCATGTACGGATTGTATCGACAATATAACGAATATTGCAATTATTCAGTTAGAAAAACGAATCTGGCGAATCGTATTTTTCATTTCGTTTCAAAAAATTTTGCCTTTTTTCTGACCTGCCTGGCCTGGCCTTAACAAACCACCCTTGTCCTTTCAATTTTTTTTTTTTTTCTTTTTTTTTTCTATGTTTCTTTCTTTGGCTCTCTAGTCCTTTTATATGGTATGATATTGTTCATAGTTACTGAGGGCTATTCCTGACGAAGTTACACAGATGGGGAAGAAGAAGAAAAATGGAGCGGCAGATGAAGAAGAGAAAATAGAAGAGAAGAAAAGTGATTGATCTCGACAACATTTTATTCATACATCCATCAAGTCGATGGGATCATAGAGGTGAAAGAAACCCAAATGAATCTAGAAGTTATTGCGCAGCTCACTGTTCTGACTCTGACGGTTGTATCGGGCCCATTAGTCATTGTTTTATTAGCAGTTCGCAAAGGTAATCTATAATTACAATGAGCCATCGCCGGGAATGAAATACTTTGGTAAATAGTATTTCATCCCCGGCGATGGAGATTCATGTAATAATGAAAACGAGGTAATGATTGATAGAAACTTTCAATAGAGGTTGATAACTCCTCATCTTCCTATCGGTTGGACAAAAGATCGATCCGTATGTTACAATCGGATCGTGGCGGGTATAGTTTAGTGGTAAAAGTGTGATTCGTTACATTATCAACTCGAATAATTGAAGGATCTTTTACATGGATCTTTGATCCATCTAAAGCTCTATTTCCAAATAGGTGAAAAACCTTTCCTATGAAGAAATACTATCCATCCAAGATGGAAGAGTTCATGTGTGACACAACTTCATATACTTTACGTTCCCATATTAGAGTATAGTGCTTCACTTCTTTCCATTAAAACAAATGCCCGTTGGTGTTCCAAAAGTTCCTTTCCGAGCCCCTGGAGATGAAGATGCAAATTGGGTCGACTTATACAACCGACTTTATCGAGAGAGATTACTTTTTTTGGCTCAGGATATCAATCACGAGATTGCAAATCAACTCATGGGTCTCATGGTATATTTGAGTGCAGAAGATGCAAATAAAGATATGTTCTCATTTCTCAACTGTCCCGGTGGATCAGTAATACCGGGAGTAGGTCTTTTCGATATTATGCAAATAATAGTACCAGATGTACATACAATATGTATGGGGATAGCTGCTTCAATGGGATCTTTCATCCTAATCGGGGGAGAAATTACTAAACGTATAGCATTACCTCACGCTAGGGTTATGATCCACCAACCTGCTAGTTCCTATTATGACGGACCGGCCGCAGATTTTCATACCGAATCGAAACACGTAACGATGCTTCGCGATTACATAACAAAATGTTATATAGAAAGAACGGGCAACCTCGGAGAGGTCATTCAACGGGACCTGGACAGAGATGTTTTTATGTCAGCAACAGAAGCCCGAGCTTATGGCATTGTTGATGCCGTAGCGGAAGGTTGATCTCATATCGGAAGATCCTCTTTTTCATTGATTTTTATAATGAACTGTAAACTGATCTTTTCTTTTTCTTAAAAAAAAAGGGGAAAGGGAAAGTGATTCATTTCATAATAACCTTATATGGTTAGGATCAATCCGAACCAGTTGATTCCGCATACAATACAGCTAGAATGCCCACTATTCAACAACTTATTAGAAAAGCAAGACAGCCAATAGAGAATAGAAAAAAATCTCCTGCTCTTCGAGGATGTCCTCAGCGTAGAGGAGTATGTGCTAGGGTGTATGTGCGACTCGTTCGGATCAGAAGCTGAAAGAGACTGGGAAATTCTTACAACGAAATAAGAGAAGAATTTTCCCGCCATAATAAAGTAAAGATCCATCATCTAACCTTACCGGGGATGAAATTTATGGTTTCCATTGGTGCAAACCCAATCACCTTGATGTGGGATGAAAAGCAATTCCTCATTGGTAGCGAATGGTCATCAATCCATTGAGCGGGGAAATCATGCAAATTGAAGAAGCATAAAGTTTATGCTCATATTGCCGCGAGAACGGAACAACAGGGTCAGCTACCTGGCCAACCCCAGAATTACATGTCGTTACTGTATGAATAGATCTTGTAATGAGAGTATTTATTACTTGATGATTCAAGAGTAGAGCTGGAGATGGTAAACCGTACAAGTTACCGATAACATACTCATCTCATATTTCGGAAATGAATAAGAGGCTCCGGCGTATGGAGAGGACCTTACCGTTGGAGAAAGAACCATAGAAACGATGAAACCCATGATTTTTTCTCATTCTCAGTACAAGGTCCGAGCCCTTGCTTACCCGGAAGATGCCTATCCAAAGGGAATTATGGTTGGGAAGGTTGCAGTAGCAAAAGCCATTGGAACTTTTATTTTCTAAATAAGAAGAATCAGTGTTATTCTCAATGGACCAAACAAATGACTAACCAATAAAAAGATTAGCGATTCATGAGAGTAAACGTCAATGACCAGAGTGAAACGTGGATATATAGCTCGAAAACGTCGGAAAAAGATTCTTGCATTTGTATCAGGCTCTCGAGGGGCCCATTCGAAACTTTTTCGAACTGCTAACCAACGGAAAGCTAGAGCCTTAGTTTCCGCCCACCGAGATAGAGGTAAACGCAAGAGAGATCTTCGTCGTTTGTGGATTACTCGAATTAATGCAGCAGCCCGTGCCAATGGAGTCTCTTATAACAGATTCATCCAATATTTGTACAAGAGGCAGTTGCTTCCAAATCGTAAAACACTTGCACAAATAGCTGTATTAGATAGTAATTGCTTTTCCACCATCTTGAAGAACTTATCGTGTGATGAAATAGGTTAGGTATAGATGAAAGAAATAGGTAAAGATGGAATGGATAGAAAGATTCTCCCGGAGAATTCCCTCCGGGAAGGTCAAAACATTGAAAAATTTTTCAATATTGGAAATGAATGAAACGAAAAGACTTCAATCAAATTTTTTTCCAAGAATGAAATTCTGTCAACTTTTTCGACAATAGACTAAAGATCTGCATCTTTATCGAACAGATATCCCAGCTCCGATTTGATTAAGGAGTAGGTTCATTTCCATTCCATGGATGAATTTAGTTTTCATTATAAAGAAAGGGTAACAAAGATGGAATACGAGCTCGTTTAATAGCGTTAGTAATGAGACGTTGTTGTTTTGAGGTTAATCTATTCACTCGGCCAGATAATATTTTTCCTTGCTCGCTAATAAATCGACTAATTAGGCTCATATTTTTATAATCAATCCGATCTCCCGACCTAATTGGTGACAAATGTCTACGAATTGGTGTCAAATGTCTACGAATTGGTGTCAAATGTCTACGAAAATATCGCTTGGGTTTATCCATAGTTTGTTTCATGAACCTTTTGAATACTATTTATTCCAAATCTTTCGAAAATATCGTTCCATTAAAGATCTTGTTGAAATACCATTTCTTTTTATATCTGTGATCTATTTCTATCCCTGGGTAGGAGTAGTACGTTTAATCTCGTTTTTTTATCTCTCCGTGAATGGTATGCTTGTAACAATAGGGACAAAATTTATTTGATTCCAATCGAATAGGTGTATTGCGTCGATTTTTCCGAGTCGTATATCTAGAAATCCCCGGGAATCTTTTATAAACACTATCTTGGGTACAACTAGTGCACTCCAAAGTAATTGTTACTCTTACATCTCCGCTCTTGGCCATAAACTTATTCTGGATATTGGGTCTACTTTGCTTTTCGATCTGAAAAAGAGGGAAAAAGGGATAGAAGTTGATAGACGGAGATCCCACGATAAAACATTTGAAAGTAAAAAAATGATTGATCAGGAGTTTTTAGTTTTACTTACAAAATTGAATGTGGAAAGAACCTTTGGATCTATATTTCTACTTTGATTCTACCCCCCCCCATTTCATCTCCAAACTTAGATCTATTTTGGGCTGAATCAACTAATTTCTCCAAGAGGTAGGAGAAGTCAATCTAGCACAATCTTTTTCCCTTGACTTTAAGGGGAGGACAACAATTAAAAAAAAGCAAAAGTAAGAGCATCTGGAAAAAAACGATTGATTTCTATCAATAGACCGGCTAAAAAAATGAACGATGAAATAGCTAACACAGGCGCTGTGGAAAGATAGGTCTTTAGATCTTGCATTGTAAATTCTCCTTATCGATCATAATGTGTAAGTGATTCAACCGTATCAATAGTTACGAATCCTAGGAAAAACTCGGAACTGATGAATATATGTATAATGTGATCCAGGCTGTGGTCCTATTTATAGAACAGAAAAAAGATGTTTCATCACCAAATTTTGCTAATTAATCTTCTAGATAATAGACCCTACATGCATGTATAAAGTCTTTTCATTCACGAGACCGAAGAGAAATGAAGGTGGAAAAATGTGGGAAACAGATTTCGAATTCTATAAAATAACATTGTCTAATGATTAGAAGGGATGTAGCGCAGCTTGGTAGCGTATTTGTTTTGGGTACAAAATGTCGCAGGTTCAAATCCTGTCATCCCTACCTTTCCCTTCTTTTCTATGGAAAGAGAAAGGAACGAAAGATCATTTTATATCGATTCGAATGGATCAATCAAATAATTGAATCGTATCAGATGCGAAAGTGTTTGACTCTAAGAGTATAAACGAAAAGATTTTGTTCCTTTCCTTTCTCTCCGGATGTTAAATAAAGCGCTCTTAGTTCAGTTCGGTAGAACGTAGGTCTCCAAAACCTGATGCCGTAGGTTCAAATCCTACAGAGCGTGATTCTGTTCCTATCAAACCCAACCTTCTAAATTATCGAGAATTCATTCCAATTGGAACGAGCAATGGAATCTGACCTCCCAGGAAAAGTAGGAGGTCAATGAAATTGAAGGATATTCCCGGATCAAATATCCAATTGATCACCACGTCGGTATTGTGAATATGCAGTTACGGATAATCCGGCCAAAGTTATAGGAATTAGACCTAACACAATTCCGGATGGCAAAGCCTCAATCATTTCGATTCAACGGAATAAGTAGGGATAATAGCTATCCTGGATAGTACCCTGAATTTGCTATGAATCTCAATGATCAGAAATTGATATAGAGAGAATCAACGAAATTATTGAAATTGATATAGTGAACTGAGAGGGTTTCCCCTTCCTTCATTTCGAATAAGTTGTATCTTGCTCGAGCTAATGAATAGGACTAGGGTGAAAATGATAGAAGCCAACAAGAAACCGAAATAACTAATTATAGTTATAGTAGGCGTGGAAGGACTGAATGAAATATGGTTTATACATATCTTCATGAGACAATTACCTAAATTTTGCTTTTCGTAACCTTGAGATCAGAATACAAAAGATCAATTGTCCCAATTCGTACCAATTAAGGATCCTATATCTACTATAGGATATGTATGAACGAACATGGATGAGAGGAAATCTATGGTAGATATCTCTTCATTATCCTAGAAATCCTCACATTCATCGAGCAACTAATTAATAGCACCCGCGAACTCCTTCACAAATTGTCAAACGTAATCTTCTTACAGGGTGAATGAATTATAAATAAGTACGATTGGATCATCTGGCATTATCTTCGATACCAGTAGCTATCGGTTGGATTGGAAGAAACCTCTTCTACAGACATAGCAAAGTTTTGTGAATTTCACGTTTAGGTATAAGAATATTAATATCCAGTTTGTCCTTTCATTTCTAGATCTTATTGATCCAGATCATTGGACCCTCTAGATGGATTTTTTCAATATTCATTCTTAGAGCCAGTAGAGCCCGCAAGAATTCCACCTATTGCAAGGAATAACTCGTAATTTAACATACCTAAAAGTGACTAGGTTCTATTGCACTATCCACTTGGGTTTATCTAATTAGTAACATCTACTCGTTAATACAAGGTACTATATAATAAGTCCGTGGCATAACTCCACCTGCGCCGGATACTATTGGAAGAGCAACATACATCTGCGTAGCACCAATGATCCCCGTGCAATCTTAATTACTGGAATCATCTACACGGACATAATGTCATGTCGGAATGAAAAAAGGAAGGGGTCAAAGTATCATATTCTGGATTGGTTGGATTGATAGTGATTAATACCCTTTGCAAGCGGCACTCATCCTTTTTTCGGTTCTACAGCCTAGAAGCTAATTCCAATCGAAAATTTCCAGGGTTATGCAATTGTTACAACATCGATTGAGGGAGTTCCTTACACCCGAACCTCGGAATATGCAATATTCTCTTATTTCTGTTGGGATTAAGTCCATCAAACAGAGATGGACTAACTGCTGGCAGGAACAGAATCATTCTATTCCGTTCCTTCTCGATACTCATCAAAATTGTATTGCTGTGTCAGAAGAAAGCTAGCTATACTGGTCCAGTAGACTTCAAAGATACCCTTGGTATAACATTGACAATCGAACAAGGATTGGAGAAGATATCAGTAGTTTTCCATTTCCTGATCTCTATCTTTCATGGGATCAATTCCCCCTTGACTGACTTTAAAATAATATATGGAGCTGAGCATGTCTGGGAATACGGGAGAACGCTCCTTTGCTGACATTATTACTAGTATTAGATACTGGGTTATCCATAGCATTACCATACCTTCTCTATTCATTGCAGGTTGGTTATTTGTCAGCACGGGTTTGGCTTATGATGTGTTCGGGAGCCCCCGGCCGAATGAGTATTTCACAGAAAGTCGACAAGAGGTTCCATTAGTAACTGGCCGTTTCGATTCGTTAGAGCAACTCGATGAATTTACTAGATCTTTTTAGGAGGCACTAATGACTATAGATAGAACTTATCCGATTTTTACAGTTAGATGGTTGGCCATTCACGGGCTAGCTGTCCCTACAGTTTTTTTCTCGGGATCAATCTCGGCAATGCAGTTCATCCAGCGATAAACTCTATATTAAAGGAAGAGGAAGTATGTAGATATGACACAATTGAATCCGAACAACCAAAATGTTGAATTGAATCGTACCAGTCTCTACTGGGGGTTGCTACTAATTTTTGTACTTGCTGTTCTATTCTCTAATTATTTGTTTAATTAGGAACAATGAGAATATTATCACTCCATTCGAAGAGATCCAATACTAATAATTATCTATGCTATGACTGTTTATGTCTCGAGCATGACCACTTAAGAAAATGTGAAAGGGAGTAAGAGAAATGGCCGATACCACTGGAAGGATCCCTCTTTGGTTGATAGGTACTGTAACTGGTATTATCGTGATTGGTCTACTGGGTATCTTTTTCTATGGTTCATATTCCGGATCAGGGTCATCCCTATAGTAGGGGAAATGCACTTACTATGGGAATACTATACATGCGAAAGTGACAAATAAATAAGGCCTTACCCTTCTTTTAAGGGTAAGGTCTTATCGAAATCTCTTTTTTAGATTCTCTTCTATATTAATATTAATTAGAAGAGAAGATTCGCACAAATACAATGACTCTGTTACTTCATTCAATGCCTTTCAGTCAAGTTATGAGCCAATTTATTCTATGATAAAAAAAAAATTTTTGATCGATCCAATTTCAATCTCTGTCGAAGGAACAACGGAGAAACGGAGAATATTTATTACTAAATATTTGTTCATTTCTCTGGTGGGAGATTATTCGAAGTTTTTCTAAAAACCCGAACTATGAGAATCTTAATGTGCGAATAGAATATTTTCTTCTCTTATTTTGGCTTACAAAAGAAAAGAGGAGGAAAAACACCTTTAATTCATTTTCTCTCATTAGGAACGAACCCTATCAAAAGGTGGGTTGTTTTGCTCAATGAGTGATATTACCCCTTACTTTTCTGCTCTTCCTTCTTTAGGAATTTGAAGGTTCCTCAATATAACGTACAAAATAATCGTCAATTTACGAAGGAATTGATGAACAGGACAGGATCGGAAACCCAATGAGTTCCTCTTATCTCGACGAGAAATCGGAGAATTTATTCGACGAATAATAATGGGATAGGATAAAGAATGGGATTAGAGAAGATAGGAATCTTCTCCAAGATTGCTTAGTTATTCTCCTAATCTCTCCTTCCTGCGATCTATCTCTATTTTCCGGATTTTTTCTTTTGAAAATGGGCAAGGAAAGGAGGGAATGGCATGTATATAGTACACGATCTAGAAAGCATATGGGGATCGTTCGACAAGTTGATCTGTTCCAGTGCTTATTGAGTCACTCCCTATTTGAAATGTAGATATGTCTACATGAACATTTTCCCAAGAATATATAAGGGAGAAGGAGGAGAAAAGGTTCTCCATCTCCGAAGGGGTATTCATTTTTGATTCAATCAGTCAACTTCATGTTCGGAAATCTATGGACCTGAAGATTCATCTCGGCCAATTGAACTTTCTCAAATTGTTTCTTCTTAAGGACCAAAAATATCTGTGCCAGAATGACAGATGCTAAGAATAATAAAAGACCTTTAACACGTAATGGATCTTGAAGTACTATCTCTGCATCTCCTTGACCAAATCCACCCACATTAGGGTTATTCGTTAATGGCTGATCGACCTTGATCAATTCGCCCTCTGAAATAAGAAGTTCCGGTCCCGGAGGTACAATGTCAACCACTTGCCCACCGTCTGATGTATTATCGATAGTTATCTCATATCCACCCTTTTCTTTACGTAAAATTTTGCTCACTCTTCCTGTTGCTGAAGCGCTATAGACCGTATTGTTGCTCTTACTCCCGTCGGGATAAATTTGTCCTCTCCCTCTATTACCACCCAAATATATAGGATATTTCAGGAAGTGAGCTTCTTTATCAGTAGCAGGATCTGGGGAAAGGATGGGGAACACAAGTTCACTATATTTTTGCCCAGGAACAGGACCTATTACAATAATGTTTTTTTGATTGGGACGATAGTTCTGAAAATAAAGATTACCCATCTTTTGTCTAATCTCAGGAGAAATACGATCCGGAGGGGCTAATTCAAAGCCCTCGGGTAAAATTAGAACAGCTCCTACATTTAAAGCCCCTTTCTTACCATTAGCAAGAACTTGTTTCATTTGCGTATCATAGGGGATCTTAACAACTGCTTCAAATACGGTATTGGGAAGCACGGACTGTGGAACCTCAATATCCACAGGTTTTTTGGCCAAGTGACAATTGGCACATACAATACGTCCAGTTGCTTCTCGGGGATTTTCATAACCCTGCTGTGCAAAAATGGGATATGCATTCGAAATGGATGTCCGAGTTATGATATGTATCATCACCAGGACGGAAATTAACCGAGTCATCTTTTTTTTTAAGTCATAAGTATTTCTATTTTGCATGGTTCAATTATTGGTTCCAAATCATTTTTCGGGTGAGAGTAGGTAGCTATCATAGTTACCTGTCAAAAATTCTGCTACTATATTGATTGAACCAAACCTAAAAGTAAGAAATCGGAAGTCTCGCACCAGGAGAAGAATGAGGGGGAGGAATAGCTAATTCCTGAACAAAGAAAACACTTTATTATTCTGTTTCAATTCTTTCGGTCGGAGAAAACAACCTATTCTTTATTCATTCATCGAATGATAAATTACTACAAGTGAAGGAGATATACGATTGAAACGACGGAAGATCCAATATTTGAGAATCGTATCTAAGATGACTGGAAAAGTTGAAACAAGACCAGATATGATTCGTTCGTTATGGGCAAAGCCAAAATTTTCGGAGATCGAATCGATCATCAGTTCCCAACCATGGGGTGAATGAAACCCAATACATAGATCGGTTGCTAAAAGAATGAGAAAAGCTTTCATTGTATCGCTCAGACTATAGAAGAATTCTTGGATCCAAGAATTGAGAATGCCAAGTTTATTCTTACCCAGAATGAGATAAGCACTTATAAAAGCAAAACCTATTAGATTTGTTAATAAATGTGAGATTATCTTAATACAATCTTCATTGTACATTTCGACCAATTGGATTGTTTCTTTGTGAATCTCTATACGAAGATCTTTTGAATCTGTTCCCGAAGAATCTTCCACCATTCTTTCTAACAGGAATAGTTCTTCTATTTTCTCAAATCTTCCCAGAACATTTTCTTCCTGGAGATAATCAAAAATTTTCTGAGATTGACCCGTATTCCACCAATTTGTAACCCAAGGTTCCAAACCTTTCCGTAATGAAATAGGAATGACCCAAGGCAGTACCACTAAACATGCAAGATATCGTAGGGAAGCTGATGCTTTATATTCGGCCACTTCCAATTCGTGAATCGCTAACGAACCTGATTCACTCGTCAGTTCTGTCCGAAATCTAGACAAAGTACGAGTGATAGAATGAGGTATGGGATCCATAAATTTATCTATTGTGTAATTGTTTGACCCTGAGAAAAAAGATCCTCAGAGAAAAAAGAAAAAGGTTCGCTCCAAATGAGTGAGACGGAGCATAAGAAGATCATTCCCCGATATCCGATCCAGATCGTTTCTATCTGGATCAATTATCTATTCATTTTTTCTATCTTATTCTTTTTTAGAAGAATAACTTGAAGTAACATAAGTCGTTTTATTCATTGTAAAGATCCTTTGAATCCTGATCACTCGATCGATCCTTTACGAATCTTTCCCCAGTTATCTCCAAAGATGACAAACAAAATGAGAGAACGACGAAATCATATAAGAATAAATTGGATCGTGATGAAGAACGGGGATGAGAGGAAAAAACGTTCTAGTTTTAGGGAAACCGGACCACTATATCTAGTCATTGTTCTTTCTGATCCATCATATCCATCTACTGGCTCACTCGCCCTCTCTAGGATAGGAAATGATATGGCGTGTTCAGGAACTACCAAAATAATCTTGGTCTGATTCATTCCATAAACATAAATATCATTTAGTAGGAATTAACTAAATGATATTTTTCCCGGACAAATACCAACCAGTTCTATTGTAACTTATAGCTCTTTCTATATTACCTATTCCTATACTATTTTTTAAAAAATAGTATATTGTTCATAAAGATCCTATATCGTTCCATTTCCATACAATTAGATTTCAATATTTATTGAAATTGATATGTATGGAAATCTAAAAATTTCCTGATTGGATATTGATTCATGTTCCTTGATTCGATCCATATAAAAATGTCGATCAATTTGAATTTATGTTGAGTATAAAGAACCCCTTGGTTCATTTCAAAACCCTTCAATGGATACACGCAAGAAACGGGCTGATTCAGCAGCTTTCTGTTCGATCTCCCTTAGGTTCAAATTATCACCAGTACGAGCTAAAGGAATGTCTTGTCGGCCCTTTATTTCCATATAAAGAACACGACGAGGGGAAATACCTTCTTGAATTTCCATTTTAATCATCTGAATATCCTTCATAAGAAATCGTGGGAAAATACGACGATTTTTTCCGGGAAATCCCCAACGAAAAAGACATACAATTCCTTTTCTTTTATCAAACTTATTATAGCCACTACCCACATCGAACAAAATTGTGCACCACAGATAAGAGCTAATGAACAGACCTGCAATACCATAAAAACACATTACAATTCCTTGTGGAACAAAGAGTATTTCCTGAGATGACAATAGGGGTATCAGGTTCTCACCAAAATAACTCGAAATCCCGACTAGGAAAAATCCTAGTGAACCCAGAAAGAGGATACAAGCCCAAAAGAAATTACTTCTTTTTCGAGACCCTGTTATAGGTTCTATCCAGAGCCATTTGGATCGATTATTCATAAAAAATCGTATTCAATTCCATCCTATTGAAGTTGAGGGAATAGCCCACTTTTTCATCCTTTGGTTCCCAAACTCTTATGAACTAGCTATCTATATACATAGCTAACATTTCAGTCAAGTCAGTCAAGTTTGTCTTCTTGTCCATTCTTACTATCAATTTCAAATAGGTCCTTCCCAAAATTATCAATTTGTTAAACAAAACTGAATCAGTGGAGTTAAAATATCTCTAGGAATCGATATGTATACCATATGCAAAAAATATAACCAACCATATGAAAATATTGACCAATACCTATTTATTGACACATGTGTATATCCGATATGTATATGGATATGAATATGAATAGATATATAAATTCGCTATATCTAGAATATAATGGTAAGATCTATCCATATTCAAGTATGAATGAGTCTAAATAAATATATATATTTATTTATTTCTATTTAGACCTATCTTGTATCTATAAGAGTTCTATCTTATATCATCTGAAATAGATATAGAGATTTATATCTGTTCTGCAATTGAACAGATCCAAACCTATTTATTAAATCTAATTTGATCAGATTCAAAAAATATCGTCATTCTGAATATACAGATGGAAAAGAACCATTGTAATTGCCGGAAGTAATAAGCCGACTAAAGGCACGAAAAAAGAAGGTAGGTTAGGAATTATCATAGAACGAGTACCTTACTTACTCAATGAAATGTTTATCCATATGATTATAAGATAAAATAAGTGATGGGACCAAATGAGCGGTCCCATTTGTCCTTCTTCATAGAATACATGTACGCAAATGTTCGTTGTTCCTTTCCCCGTCTCTTCCAAAAATACTGAAAAAGCATTTGAAGTTGGATTCAAAATTGTTTTTGAATAAGATCCCGACGAGTTCAACAATGAGGATCTGTATCTATATATACAATACATATATATCTATATATATATTGTATATATAGATCCTTTACAACACTTATTAATATTATATAAGTTAAATAGTGGAAGAACATGAATCCTGACAAAAATTTATCTGATTTCGAAAAGCGGAAAATTGGCTATATTTATTGTTAGTATAGGATCGAGGATCATAAATTGTTGGTAAGAAGGGGGTAAAAAGCGATTCTCTTAGAGAAATCCTTATTTTGCCGCAATAAGAAACTGTATCACTGTCACTTCCGTTACAAGGAACTCGATTTGATCATTTTTCCTTATAAGGAACTAAACGTTCATTTTTTTTTCTTTACGAGGAAGACTGTAAAGCTGAAATAGTTCACTTAGAACACCTTTTAAGAGATTACGTGGAACGATCAGATCAAATAAACCATGGCCAAATAAATGCTCAGTCACCTGAAAATCTTCAATCACTTTCTGACCTAATGTCTGTTCGATTACTCTTTTACCTGCAAATGCAATGTACGCTTTAGGTTCGGCAATAATGATATCTCCCAACATGCCAAAACTAGCAGTAACTCCACCGGTTGTCGGAGACGTCAGAATCGATACATATAACAACCTTTTATCCTTCTGATGAATATATAACGCAGAAGCTATTTTAGCCATTTGCATTGAACTAAAACTTCCTTCTTGCATGCGTGCTCCTCCGGAAGCACACACCATAATGACTGGAAGAGATTCCTCGGTAGCGCGCTCGATCAGACGGGTTATTTTCTCGCCTACTACAGAGCCCATACTACCTCCCATGAACTTAAAATCCATAACTCCGAGTGCGATAGGAAGACCATTTAATTGACCTATGCCTGTTTGAATAGCATCAGTTAAACCTGTCTCTATTTGACAGAAAGTGATATGATCCTTATAAGATTCATCCTCAGAATGAAGAGGATCAGAATGAGCAGGTTCATTCTCAGAATGAAATTGAAGAACATCTAGAGTGTACATGTCTTCATCCATAGGATGCCGAGTGCCGCGATCAATTGGAAGTTCTATTCTATCTGAACTATTCATTTGCAGATAATATCCACATTCTTCACAAACACTTTTATTCTCTCTCAAGAATCTGATATAGAGCAAGCTCTCGCAATTATCGCATTGAACCCATAATCTATTAATTTTAACGTAATCAATACTTAGATTCTTGTTCCTCTCCATCTCATTGACGTCCTTACTATCCCTTTCGACCGAATTTTTTAGTAATCCAGTTATTTTACGCCTGTCTTCGAACCACTCCCTTATAGACATAGAGTTTTCCATATAAAGGTGAAGATTGTTACTTTTCCTATCTTATTTTGTATGAAGAGAAGTCGTATAAATAAAATGATTCAATTTCTCAATGAATAGTGAAATGAATCATGGATAAATCATCTCCATTCATTATTGATTAGGAATCCGAAGTATCAATCCGGGATTATGATAGAACCCTTTATTCTTTTATAAAGAAAGATTATCTCCTATGCCGCGATGAAAAGGAATTTTCATCCCAAATACAAAATCTTTTGGGCTAGAAGGGATTTGAACCCTTGACTTCATGGTCCGGAACCATGAGCTCTGATCCACTGAGCTACCAACCCTATCGAATGATCTATAAGATAAATGTAAAGGATGAATAGGATTCGTTATCGAATCCTTGACCCCAAAAAATTTTCATCGACTCACTCTGTTTTAGATATTTTACCTCGGAAATATATCAATATCTATATATCAATATATATATATCAATATATATAGATATTGATATATAGATATTGATATATAGAAATCCCAGATATTGATATCTGAAATCCCATATCTCCGTTCACGATTTGGCCTAATCTTTGTGGTAGCGGTAAAAGATTGGGCCGAGTCCGATTGGTAGAACGAAAGTCACTGGATCACAAGGTATCTATTGCCTCAAATTGTATCTATTGCCTCAAATTCAAATTTGATCTCCTTCCATATTTCACAAGCAGCAGCTAGTTCAGGACTCCATTTACTAGCTTCACGGATCACTTCATTACCTTCACGAGCAAGATCACGTCCTTCATTACGAGCTTGTACACAAGCTTCTAGAGCAACTCGATTAGCTACTGCACCAGGTGCATTTCCCCAAGGGTGTCCCAAAGTTCCCCCACCAAACTGTAGTACGGAATCATCCCCAAAGATCTCGGTCAGAGCAGGCATATGCCAAACGTGAATACCTCCTGAAGCTACGGGCAGGACACCTGGCATAGATACCCAATCTTGAGTGAAGTAAATACCACGACTTCGATCTTTTTCGATAAAATCATCACGCAGTAGATCAACAAACCCTAAAGTGACGTCTCGTTCCCCTTCAAGTTTACCTACTACAGTACCGCCGTGAATATGATCTCCACCGGACATACGCAATGCTTTAGCCAGTACACGGAAGTGCATACCATGATTTTTTTGTCTGTCAATCACTGCATGCATCGCGCGGTGAATGTGAAGAAGTAGGCCGTTGTCTCGGCAATAATGAGCCAAAGAAGTATTTGCGGTAAAACCTCCCGTCAGATAGTCATGCATAACGATAGGAACTCCCAATTCTCTTGCAAATATTGCCCTTTTCATCATTTCTTCACATGTACCTGCAGTAGCATTCAAGTAATGTCCCTTAATTTCACCCGTCTCAGCCTGAGCTTTATAAATTGCTTCCGCACAAAAGACAAAACGATCTCTCCAGCGCATGAATGGTTGGGAATTTACGTTCTCATCATCCTTGGTAAAATCGAGTCCACCACGGAGACATTCGTAAACTGCTCTACCATAGTTCTTGGCCGATAGACCCAATTTTGGTTTGATAGTACATCCCAATAAAGGACGGCCATATTTGTTCAATTTATCTCTTTCAACTTGGATACCATGAGGTGGACCTTGAAATGTTTTGGAATAAGCAGGGGGAATCCGCAAATCTTCCAAACGTAGAGCCCGTAGGGCCTTGAATCCAAATACATTACCTACAATGGAAGTGAACAAGTTAGTAACAGAACCTTCTTCGAAAAGGTCTAAGGGGTAAGCTACATAGGCAATAAATTGAGTTTCCTCTCCAGGAACGGGCTCGATGTCATAGCATCGCCCCTTGTAACGATCAAGACTAGTAAGTCCATCGGTCCAAACAGTGGTCCATGTACCGGTGGAAGATTCAGCAGCTACTGCTGCTCCCGCTTCCTCGGGCGGCACCCCTGGTTGAGGAGTTACTCGGAATGCTGCCAAAATATCCGTATCTTTGGTCTGATATTCAGGAGTATAATAAGTTAATCTGTAATCTTTAACACCAGCTTTAAATCCGACACTAGCTTTAGTCTCTGTTTTTGGTGACATAAGTCCCTCCTTTATTAATAATTATCTCTCGCAAGGACGAGGTCTGCTCGACATGGATCGAACATAAACAATCAATTTTGACAGAACTATCCTACAAAAAAATCGTCCGTTATTGGACAATAAGATCTGCTAGGTACACTCTCATTGTATAATGTTCTTTATGTATGATGCAACCCAATCTTTGCTCTTTAAGTTCTTCCTCCATGGATTGACCCGAGCACCTTTCAGCGGTTAAACTAGTTCATGAATGAACTTAAGGAACCGAATCGACCTTTGACCATAATGGTGCGAATTGTCTATATGAAAATAAATATAGAATAGGGAACAGATGTGCGTACGAAGAGAAGAGATAACGACCGACCAATGAGAGAAAGGTCATGAATAGGGTTCAAGTTTCACATTTCACAGATGATCTGGACATAATTTTTAAGTATTTTCGGTTTTAGTTATGGAGAATTTGGTTCTAGTTATAAATAAAAAAATCGAAGACTTCCTCATTATCCTTATCCATCTACTTACTTCATATTCCAAATATGAATGGATTCGAACTTTTCCATAAAGTAGGATATTACTAAGGTGGTAACTCCCATTCATTATTTACTGATCTGATCGACCCGATACGGAACATTTTTGTTATTGATGATATTGGCAAAATCATATTTATATATATATATATAAAATCTTCATGGAATTTCTTTCCTTTTTTGTATGAGAACCAATCCTCTTGTTCTTGGGGTTTCCGCACTTGTAGAAAAAAATGTGGGACGTATAGCTCAAATCATTGGCCCAGTACTGGATGTCTCTTTTCCTCCAGGTAATATGCCTAATATTTACAATTCATTAATAGTTAAGGGTCAAGGTACAGCCGGTCAGGAAATTCAGGTTACTTGTGAGGTACAGCAATTATTAGGAAATCATAAGGTTAGAGCTGTAGCTATGAGTGCTACAGATGGTTTGACGAGAGGAATGAGAGTGATTGACACGGGAGCTCCTCTTAGTGTTCCAGTTGGTGGAGCTACTCTCGGACGAATTTTCAATGTTCTTGGCGAACCTGTTGATAATTTGGGTCCCGTAGATGCTCGCATAACATCTCCTATTCATAGATCTGCTCCCGCCTTTACAGAGTTGGATACAAAATTATCTATCTTCGAAACAGGCATTAAAGTAGTAGATCTTTTGGCTCCTTACCGCCGTGGGGGAAAAATCGGTTTATTTGGAGGAGCTGGAGTGGGTAAAACAGTACTCATTATGGAGTTGATTAACAACATTGCTAAGGCTCATGGAGGGGTATCTGTATTTGGAGGAGTAGGAGAACGTACTCGTGAAGGGAATGATCTTTACATGGAAATGAAAGAATCGGGAGTAATTGATGAACAAAACATCTCAGAATCAAAAGTGGCTCTGGTCTATGGTCAGATGAATGAACCACCAGGAGCTCGTATGAGAGTCGGTTTAACTGCTCTAACCATGGCCGAATATTTCCGAGATGTCAATGAGCAAGACGTACTATCATTTATTGATAACATCTTCCGCTTTGTCCAAGCGGGATCAGAGGTATCCGCCCTATTAGGTAGAATGCCTTCCGCCGTGGGTTATCAGCCAACTCTTGCCACGGAAATGGGAACTTTGCAAGAGAGAATTACTTCCACAAAAAGGGGATCGATAACCTCGATTCAAGCAGTTTATGTACCTGCTGACGACTTGACTGACCCCGCTCCTGCTACGACATTTGCACATTTAGATGCTACTACCGTACCATCGAGAGGATTAGCTGCCAAGGGTATCTATCCAGCAGTGGATCCTTTAGATTCAACATCGACTATGCTCCAACCTTGGATCGTAGGCGAAGAACATTACGAAACTGCACAAGGGGTTAAGCAAACTTTACAACGTTATAAGGAACTTCAAGACATTATAGCTATTCCTGGACTGGATGAATTATCGGAGGAAGATCGTTTAATCGTAGCAAGAGCAAGAAAAATTGAACGTTTCTTATCACAACCCTTTTTCGTAGCAGAGGTATTCACAGGTTTCCCGGGCAAATATGTTGGTCTCATGGAAACCATTAGAGGGTTTCAAATGATCCTTTCCGGAGAATTAGATGGTATTACCGAACAGTCTTTTTATTTAGTGGGTAACATTGATGAAGCTACCGCGAAGGCTATGAACTCCAAAACGGAAAGTTAATTCTGAAAATGACCTTAAATCTTCGTGTACTGTCTCCTAATCGAGTCATTTGGGATTCAGAAGTTCAAGAAATAATCTTATCTACTAATAGTGGTCAAATTGGCGTATTACCCAATCATGCTTCACTTGTGGCAGCTGTAGATATAGGAGTTATGAAAATACGTCTTAATGGGCAGTGGTCCACTATGGCTTTGATGGGCGGTTTCGCCAAGATAGACAATGATAGAATCACCGTATTGGTAAATAATGCAGAGAGAGATGTTGACATCGATCTCAAAGAAGCCCAGGAAACCTTTAAAGTAGCTAAAGCTGACTTAGCTCGAGCCGAAGGCAAAAGACAAGCAATTGAGGCTGATGTAGCTCCGAAAAGAGCTAGAACACGATTAGAAGCTATCAGTGCTAGCCCCCCCGTCTCTAATTAAACATTTCCTATAAATATCTGAAAATGGATTCAATGTTCCGCCTCGATCCAAACAAGTGGAGTCAAACTTATTAGATGCCATCGACTCTTCAATGGTATCTAATAAGTTTACCTACTATTGGATTTGAACCAACGACTCTCGCCGTATGAAAGCGATACTCTAACCACTGAGTTAAGTGGGTCATTTATTCTCATAGGTAGAGTTGGACTTATAAACGATTCTATATGGAATTCAATGTATAGACAATGTGTCCCTGGCACAGATCGAACTTATTGGAACGTATTGGATCATAGTATCGGATCATGAAATATCTACCTTGACAGAAAGTGATCCATCTGGTTAGTATAGTAGTGTATCACCAAGACTGGGAAGGGCTATAGCTCAGCAAGGTAGAGCACCTCGTTTACACGTGCGCCAATGGTTTTCGGGAGAGTTTATCGATTCGTCCGATCCACGAAATAGATTCTATGTGAAAAAGTCTTACTCTATCAATGTGTTTCTCTGGGGAACAATAGCATGACAAAGATGAAGTTCGATCCGATTCGAATTACGAATCTAATTGATATGGTCAATCCCAGCTCCGTTCAATGCCAGGCATAATGAGTATAATACGGGGACCTCAAAATAGATTCTTTTCGCTCTATGACACTTTTAGGTGTATGAAGTGTCATATTTTCTTTTTGGAGCGCTAGAGGAGACTCTATTTGAGTCAATCTATGCCCGAGCAAGGCAGACCTACGTCAAGGAAACCTTTTGAATCACTTTGGGATTGCTTCCGAAGGGTAAGAATTTGGAGCACACGGAGCCATATTAGTATCTTTCCTGGAAAGAGGAGAATGGCAGACTAACCGATCTTTCCATCAGTTAATGAAAGAGCCCAATGCGATAAAATGCATGTTGGGTTCTTGGAACAGTTCAAATTATTTTGATAATAAGAACTTTGATCTGTTCTACCGAGAAGGTCTACGGTTCGAGCCCGTATAGCCCTATACATTCCACTAAGTTACACTACTCTTATATATATCCCCTCATAGTCCCTATGACTTGGACTTTCAAAGTCTTTCGGATCATATCAATATCTTGTCCTTATCAAGATCGATGGATGGGAACGTTGGAACAGGGCAGGCAGATTAGTATTTCTCATCGATCGATCTTGATCCGATACCAGATGATCGGGCCTATAAACCCTTTTTTTTTTCGAGGCACTTATAGATAGATTCTATCTCAAAATATAGATAGAGGATTGAGGTATTCAATACTATCTATATTACTTGGATTTGTACAATGTTTGTTATAATTCCCATTATAACATCGTCTAGTTCGGAACCGCTTTTGTTCATTTTTATCGCTAGTTCTTCGAAAAACTCGGGAGTTCTCTGGAATAGAATATGTTGAAAGCAATCCATATTCCAGTCAAAGTATCGATCGGACATGTGGCTTTTAGCTCCATCCAAATGCAACGCATTCCGTTGGGGTTGAACGAACGAAGTACTCTTCCGTTCAATCGAAAATCCCGGGTCTATCCCTTTGCTAAAGATCGGGGCGAAGATCTTGATCCACTAGGATTCTACACAATATGTTATGTGTGGTAAATCGAACCTATTCTTGAACCATAGAAGTGGGAAGTACTACGGCCGAATACCTGGAAAGGTCAATTCTCTGGAGTTGATCCATCCTAGCTAAAGGCGAACCTTTGGTTTGTTTTCTTTCTCCACCTAAGATCATCACATGGTTTTTTAGACCCAATATTTTCATATTGGGACAAACACTCTTTCCTCTAGTTCCGTTCTGTTAACATACCAAAAAAATGCAATCTATCGGCTACGCATATTGGATCTATATCTGGACCAACGTTTGCATAAATCTACCCCACTATTCTATAGAATACACATATTTCATGGAATGCGTTCTGAAACAATAGAAAAAAGAAATCTGTTGGAATGAAACTATTACCCCTTGCTCATCAATTTTGTGGACTGCGACCCAAAAGAAGCCCTGTTCTGCCCCGTTACAAATAGTCGGCTAGACAATAGATCTGTCCGAAATGATATTATATCGGAATGAGCCCAGGCTCATAACGAACTTAAACGTGAAAGATTTGATACGTTCCACGGATCGATTGGCGTCTACCAATCCTGTTCCGATTGACCTGTATCAACCATTAAAACGAATGAACTGAAAGACAACGGATTTATTTTTATTTGATTAATCGAACGGAACCGATTTCATATTTGTCATATGTTGAATGCATAGTACTGCTTTCATTTCTGAAGAAACTGAATCCTTCGAACCTTACTCATTCCCCGGTCACTCGATCCTTTTATCCCTTTTGCTACTATAAGATCTGGACAGTACGAATGTAAAAGATCTACTCCTCAACCCGTTCCAGTAAAAACATAAAGAAACGCATGTTCTAATTCTTTGATACTTCCTTCGTTCCAACCAAATCTTTGACGACAGAGATTCCCCTTTTCTCATTCGTCTTCTTTCAATACTGTAAAATGTTCACTATCTCCATTGATAGATGAGCCTCTAAATTTGTATATTTGTCCCATCACCTGCATAATAATATAAAAAAGAATTTGATTGGTCTTCTAACCGTGCATGTAAGATGGCAAAATTTTCCAGATTGGATGCAAAGCCCTATCTTTTCTAATACGAGAAGGATACGAGTTCCAAGGGTCTAGATTTCATTGAATCTGAATATGTAACAAGCGGATAGGGTCGAACTTGTCGACGCAGCCGCAGCCTCGATCATTTGAAACAACGACCCTCCGATTAAATACCCCGCCCAGAGTTGTTCGGGCGGACAAGATCTGAGTATCAAGATAAAACATAAAAGAAATCCCAAGATAGATCTCTTTCAATTTACACCGAACCATGTTCATGTTGATGGCCCGTTCGTTTCGTTACAACTCGAATAACGTGGGATCTACCGAACCAATCTGCAAAACTGCGTTTTTTTAGAACAAAATGATAATCTGACTGGAAGGGAAGAAACGATCGTTATCGTCCATGGGTGAATGGACAAAGGATCGATACGAAAAAAGAAAGATTATTCACGTTCGAAAGAACTGAGGAAGGATGGGATCGGGATATGTCTCCGGAATAAATATAAAATACTTAAGAAAAACTTGTTCGATAGTTGGTTGGGAATTAGTCATCGATCTTGCTTTGATCCCCTGTAAGAGGTCGCCGACCCACATACAGACGTTAGCCTCGTCATTTCTTCCAAGAAGAAATGACTGTAGATAGAGACAATTGGTTTGTTTTTCCGGGGCGGACGTAGCCAAGTGGACCAAGGCAGTGGATTGTGAATCCACCACGCGCGGGTTCAATTCCCGTCGTTCGCCCATAAAATAAAAGAAAAAACGGACTGGATTCAGTGTCATTTTCTTATTTCGGTGTCCATATTTCTATCTATTACATAGATAGAGAAATGGACACCCGGGCCTTCTTTCTTCGTAGGAAAAATGAGCCCTTTATCGGACTTGAACCGATGACTTACGCCTTACCATGGC
--- a/tool_dependencies.xml	Thu Jan 22 13:15:51 2015 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,15 +0,0 @@
-<?xml version="1.0"?>
-<tool_dependency>
-    <package name="biopython" version="1.61">
-        <repository changeset_revision="ae9dda584395" name="package_biopython_1_61" owner="biopython" toolshed="https://toolshed.g2.bx.psu.edu" />
-    </package>
-    <package name="aragorn" version="1.2.36">
-        <repository changeset_revision="f09e2902e6ed" name="package_aragorn_1_2_36" owner="iuc" toolshed="https://toolshed.g2.bx.psu.edu" />
-    </package>
-    <package name="tRNAscan-SE" version="1.3.1">
-        <repository changeset_revision="a3fb2752c340" name="package_trnascan_1_3_1" owner="iuc" toolshed="https://toolshed.g2.bx.psu.edu" />
-    </package>
-    <set_environment version="1.0">
-        <environment_variable action="set_to" name="TRNAPRED_SCRIPT_PATH">$REPOSITORY_INSTALL_DIR</environment_variable>
-    </set_environment>
-</tool_dependency>