Repository 'repenrich'
hg clone https://toolshed.g2.bx.psu.edu/repos/drosofff/repenrich

Changeset 0:1435d142041b (2017-05-23)
Next changeset 1:54a3f3a195d6 (2017-05-29)
Commit message:
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/repenrich commit d5ebd581fa3a22ca61ce07a31c01bb70610fbcf5
added:
RepEnrich.py
RepEnrich_setup.py
repenrich.xml
test-data/Samp.fastq
test-data/Samp_class_fraction_counts.tabular
test-data/Samp_family_fraction_counts.tabular
test-data/Samp_fraction_counts.tabular
test-data/chrM.fa
test-data/chrM_repeatmasker.txt
test-data/tool_wrapper.sh
b
diff -r 000000000000 -r 1435d142041b RepEnrich.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/RepEnrich.py Tue May 23 18:37:22 2017 -0400
[
b'@@ -0,0 +1,382 @@\n+#!/usr/bin/env python\n+import argparse\n+import csv\n+import numpy\n+import os\n+import shlex\n+import shutil\n+import subprocess\n+import sys\n+\n+parser = argparse.ArgumentParser(description=\'Part II: Conducting the alignments to the psuedogenomes.  Before doing this step you will require 1) a bamfile of the unique alignments with index 2) a fastq file of the reads mapping to more than one location.  These files can be obtained using the following bowtie options [EXAMPLE: bowtie -S -m 1 --max multimap.fastq mm9 mate1_reads.fastq]  Once you have the unique alignment bamfile and the reads mapping to more than one location in a fastq file you can run this step.  EXAMPLE: python master_output.py /users/nneretti/data/annotation/hg19/hg19_repeatmasker.txt /users/nneretti/datasets/repeatmapping/POL3/Pol3_human/HeLa_InputChIPseq_Rep1 HeLa_InputChIPseq_Rep1 /users/nneretti/data/annotation/hg19/setup_folder HeLa_InputChIPseq_Rep1_multimap.fastq HeLa_InputChIPseq_Rep1.bam\')\n+parser.add_argument(\'--version\', action=\'version\', version=\'%(prog)s 0.1\')\n+parser.add_argument(\'annotation_file\', action= \'store\', metavar=\'annotation_file\', help=\'List RepeatMasker.org annotation file for your organism.  The file may be downloaded from the RepeatMasker.org website.  Example: /data/annotation/hg19/hg19_repeatmasker.txt\')\n+parser.add_argument(\'outputfolder\', action= \'store\', metavar=\'outputfolder\', help=\'List folder to contain results. Example: /outputfolder\')\n+parser.add_argument(\'outputprefix\', action= \'store\', metavar=\'outputprefix\', help=\'Enter prefix name for data. Example: HeLa_InputChIPseq_Rep1\')\n+parser.add_argument(\'setup_folder\', action= \'store\', metavar=\'setup_folder\', help=\'List folder that contains the repeat element psuedogenomes. Example /data/annotation/hg19/setup_folder\')\n+parser.add_argument(\'fastqfile\', action= \'store\', metavar=\'fastqfile\', help=\'Enter file for the fastq reads that map to multiple locations. Example /data/multimap.fastq\')\n+parser.add_argument(\'alignment_bam\', action= \'store\', metavar=\'alignment_bam\', help=\'Enter bamfile output for reads that map uniquely. Example /bamfiles/old.bam\')\n+parser.add_argument(\'--pairedend\', action= \'store\', dest=\'pairedend\', default= \'FALSE\', help=\'Designate this option for paired-end sequencing. Default FALSE change to TRUE\')\n+parser.add_argument(\'--collapserepeat\', action= \'store\', dest=\'collapserepeat\', metavar=\'collapserepeat\', default= \'Simple_repeat\', help=\'Designate this option to generate a collapsed repeat type.  Uncollapsed output is generated in addition to collapsed repeat type.  Simple_repeat is default to simplify downstream analysis.  You can change the default to another repeat name to collapse a seperate specific repeat instead or if the name of Simple_repeat is different for your organism.  Default Simple_repeat\')\n+parser.add_argument(\'--fastqfile2\', action= \'store\', dest=\'fastqfile2\', metavar=\'fastqfile2\', default= \'none\', help=\'Enter fastqfile2 when using paired-end option.  Default none\')\n+parser.add_argument(\'--cpus\', action= \'store\', dest=\'cpus\', metavar=\'cpus\', default= "1", type=int, help=\'Enter available cpus per node.  The more cpus the faster RepEnrich performs. RepEnrich is designed to only work on one node. Default: "1"\')\n+parser.add_argument(\'--allcountmethod\', action= \'store\', dest=\'allcountmethod\', metavar=\'allcountmethod\', default= "FALSE", help=\'By default the pipeline only outputs the fraction count method.  Consdidered to be the best way to count multimapped reads.  Changing this option will include the unique count method, a conservative count, and the total count method, a liberal counting strategy. Our evaluation of simulated data indicated fraction counting is best. Default = FALSE, change to TRUE\')\n+parser.add_argument(\'--is_bed\', action= \'store\', dest=\'is_bed\', metavar=\'is_bed\', default= \'FALSE\', help=\'Is the annotation file a bed file.  This is also a compatible format.  The file needs to be a tab seperated bed with optional fields'..b' repcounts2[rep] = repcounts["/" +rep]\n+    else:\n+        repcounts2[rep] = 0\n+# building the fractionalcounts counts for class enrichment...\n+for key in fractionalcounts.keys():\n+    classfractionalcounts[repeatclass[key]] += fractionalcounts[key]\n+# building fractional counts for family enrichment...\n+for key in fractionalcounts.keys():\n+    familyfractionalcounts[repeatfamily[key]] += fractionalcounts[key]   \n+    \n+################################################################################\n+print (\'Writing final output and removing intermediate files...\')\n+# print output to file of the categorized counts and total overlapping counts:\n+if allcountmethod  == "TRUE":\n+    fout1 = open(outputfolder + os.path.sep + outputfile_prefix + \'_total_counts.txt\' , \'w\')\n+    for key in reptotalcounts.keys():\n+        fout1.write(str(key) + \'\\t\' + repeatclass[key] + \'\\t\' + repeatfamily[key] + \'\\t\' + str(reptotalcounts[key]) + \'\\n\')\n+    fout2 = open(outputfolder + os.path.sep + outputfile_prefix + \'_class_total_counts.txt\' , \'w\')\n+    for key in classtotalcounts.keys():\n+        fout2.write(str(key) + \'\\t\' + str(classtotalcounts[key]) + \'\\n\') \n+    fout3 = open(outputfolder + os.path.sep + outputfile_prefix + \'_family_total_counts.txt\' , \'w\')\n+    for key in familytotalcounts.keys():\n+        fout3.write(str(key) + \'\\t\' + str(familytotalcounts[key]) + \'\\n\') \n+    fout4 = open(outputfolder + os.path.sep + outputfile_prefix + \'_unique_counts.txt\' , \'w\')\n+    for key in repcounts2.keys():\n+        fout4.write(str(key) + \'\\t\' + repeatclass[key] + \'\\t\' + repeatfamily[key] + \'\\t\' + str(repcounts2[key]) + \'\\n\') \n+        fout5 = open(outputfolder + os.path.sep + outputfile_prefix + \'_class_fraction_counts.txt\' , \'w\')\n+    for key in classfractionalcounts.keys():\n+        fout5.write(str(key) + \'\\t\' + str(classfractionalcounts[key]) + \'\\n\')\n+    fout6 = open(outputfolder + os.path.sep + outputfile_prefix + \'_family_fraction_counts.txt\' , \'w\')\n+    for key in familyfractionalcounts.keys():\n+        fout6.write(str(key) + \'\\t\' + str(familyfractionalcounts[key]) + \'\\n\')\n+    fout7 = open(outputfolder + os.path.sep + outputfile_prefix + \'_fraction_counts.txt\' , \'w\')\n+    for key in fractionalcounts.keys():\n+        fout7.write(str(key) + \'\\t\' + repeatclass[key] + \'\\t\' + repeatfamily[key] + \'\\t\' + str(int(fractionalcounts[key])) + \'\\n\')\n+        fout1.close()\n+    fout2.close()\n+    fout3.close()\n+    fout4.close()\n+    fout5.close()\n+    fout6.close()\n+    fout7.close()\n+else:\n+    fout1 = open(outputfolder + os.path.sep + outputfile_prefix + \'_class_fraction_counts.txt\' , \'w\')\n+    for key in classfractionalcounts.keys():\n+        fout1.write(str(key) + \'\\t\' + str(classfractionalcounts[key]) + \'\\n\')\n+    fout2 = open(outputfolder + os.path.sep + outputfile_prefix + \'_family_fraction_counts.txt\' , \'w\')\n+    for key in familyfractionalcounts.keys():\n+        fout2.write(str(key) + \'\\t\' + str(familyfractionalcounts[key])+ \'\\n\')\n+    fout3 = open(outputfolder + os.path.sep + outputfile_prefix + \'_fraction_counts.txt\' , \'w\')\n+    for key in fractionalcounts.keys():\n+        fout3.write(str(key) + \'\\t\' + repeatclass[key] + \'\\t\' + repeatfamily[key] + \'\\t\' + str(int(fractionalcounts[key])) + \'\\n\')\n+    fout1.close()\n+    fout2.close()\n+    fout3.close()\n+    \n+################################################################################\n+# Remove Large intermediate files\n+if os.path.exists(outputfolder + os.path.sep + outputfile_prefix + \'_regionsorter.txt\'):\n+    os.remove(outputfolder + os.path.sep + outputfile_prefix + \'_regionsorter.txt\')\n+if os.path.exists(outputfolder + os.path.sep + \'pair1_bowtie\'):\n+    shutil.rmtree(outputfolder + os.path.sep + \'pair1_bowtie\')\n+if os.path.exists(outputfolder + os.path.sep + \'pair2_bowtie\'):\n+    shutil.rmtree(outputfolder + os.path.sep + \'pair2_bowtie\')\n+if os.path.exists(outputfolder + os.path.sep + \'sorted_bowtie\'):\n+    shutil.rmtree(outputfolder + os.path.sep + \'sorted_bowtie\')\n+\n+print ("... Done")\n'
b
diff -r 000000000000 -r 1435d142041b RepEnrich_setup.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/RepEnrich_setup.py Tue May 23 18:37:22 2017 -0400
[
b'@@ -0,0 +1,194 @@\n+#!/usr/bin/env python\n+import argparse\n+import csv\n+import os\n+import shlex\n+import subprocess\n+import sys\n+from Bio import SeqIO\n+from Bio.Seq import Seq\n+from Bio.SeqRecord import SeqRecord\n+from Bio.Alphabet import IUPAC\n+\n+parser = argparse.ArgumentParser(description=\'Part I: Prepartion of repetive element psuedogenomes and repetive element bamfiles.  This script prepares the annotation used by downstream applications to analyze for repetitive element enrichment. For this script to run properly bowtie must be loaded.  The repeat element psuedogenomes are prepared in order to analyze reads that map to multiple locations of the genome.  The repeat element bamfiles are prepared in order to use a region sorter to analyze reads that map to a single location of the genome.You will 1) annotation_file: The repetitive element annotation file downloaded from RepeatMasker.org database for your organism of interest. 2) genomefasta: Your genome of interest in fasta format, 3)setup_folder: a folder to contain repeat element setup files  command-line usage EXAMPLE: python master_setup.py /users/nneretti/data/annotation/mm9/mm9_repeatmasker.txt /users/nneretti/data/annotation/mm9/mm9.fa /users/nneretti/data/annotation/mm9/setup_folder\', prog=\'getargs_genome_maker.py\')\n+parser.add_argument(\'--version\', action=\'version\', version=\'%(prog)s 0.1\')\n+parser.add_argument(\'annotation_file\', action= \'store\', metavar=\'annotation_file\', help=\'List annotation file. The annotation file contains the repeat masker annotation for the genome of interest and may be downloaded at RepeatMasker.org  Example /data/annotation/mm9/mm9.fa.out\')\n+parser.add_argument(\'genomefasta\', action= \'store\', metavar=\'genomefasta\', help=\'File name and path for genome of interest in fasta format.  Example /data/annotation/mm9/mm9.fa\')\n+parser.add_argument(\'setup_folder\', action= \'store\', metavar=\'setup_folder\', help=\'List folder to contain bamfiles for repeats and repeat element psuedogenomes. Example /data/annotation/mm9/setup\')\n+parser.add_argument(\'--nfragmentsfile1\', action= \'store\', dest=\'nfragmentsfile1\', metavar=\'nfragmentsfile1\', default=\'./repnames_nfragments.txt\', help=\'Output location of a description file that saves the number of fragments processed per repname.  Default ./repnames_nfragments.txt\')\n+parser.add_argument(\'--gaplength\', action= \'store\', dest=\'gaplength\', metavar=\'gaplength\', default= \'200\', type=int, help=\'Length of the spacer used to build repeat psuedogeneomes.  Default 200\')\n+parser.add_argument(\'--flankinglength\', action= \'store\', dest=\'flankinglength\', metavar=\'flankinglength\', default= \'25\', type=int, help=\'Length of the flanking region adjacent to the repeat element that is used to build repeat psuedogeneomes.  The flanking length should be set according to the length of your reads.  Default 25\')\n+parser.add_argument(\'--is_bed\', action= \'store\', dest=\'is_bed\', metavar=\'is_bed\', default= \'FALSE\', help=\'Is the annotation file a bed file.  This is also a compatible format.  The file needs to be a tab seperated bed with optional fields.  Ex. format chr\\tstart\\tend\\tName_element\\tclass\\tfamily.  The class and family should identical to name_element if not applicable.  Default FALSE change to TRUE\')\n+args = parser.parse_args()\n+\n+# parameters and paths specified in args_parse\n+gapl = args.gaplength\n+flankingl = args.flankinglength \n+annotation_file = args.annotation_file\n+genomefasta = args.genomefasta\n+setup_folder = args.setup_folder\n+nfragmentsfile1 = args.nfragmentsfile1\n+is_bed = args.is_bed\n+\n+################################################################################\n+# check that the programs we need are available\n+try:\n+    subprocess.call(shlex.split("bowtie --version"), stdout=open(os.devnull, \'wb\'), stderr=open(os.devnull, \'wb\'))\n+except OSError:\n+    print ("Error: Bowtie or BEDTools not loaded")\n+    raise\n+\n+################################################################################\n+# Define a text importe'..b'repstart)]\n+                rep_end[repname] = [int(repend)]\n+        x +=1\n+if is_bed == "TRUE":\n+    repeat_elements= []\n+    fout = open(os.path.realpath(setup_folder + os.path.sep + \'repnames.bed\'), \'w\')\n+    fin = open(os.path.realpath(annotation_file), \'r\')\n+    x =0\n+    rep_chr = {}\n+    rep_start = {}\n+    rep_end = {}\n+    x =0\n+    for line in fin:\n+        line=line.strip(\'\\n\')\n+        line=line.split(\'\\t\')\n+        line3 = line[3].replace("(","_").replace(")","_").replace("/","_")\n+        repname = line3\n+        if not repname in repeat_elements:\n+            repeat_elements.append(repname)\n+        repchr = line[0]\n+        repstart = int(line[1])\n+        repend = int(line[2])\n+#        print >> fout, str(repchr) + \'\\t\'+str(repstart)+ \'\\t\'+str(repend)+ \'\\t\'+str(repname)\n+        fout.write(str(repchr) + \'\\t\'+str(repstart)+ \'\\t\'+str(repend)+ \'\\t\'+str(repname) + \'\\n\')\n+#        if rep_chr.has_key(repname):\n+        if repname in rep_chr:\n+            rep_chr[repname].append(repchr)\n+            rep_start[repname].append(int(repstart))\n+            rep_end[repname].append(int(repend))\n+        else:\n+            rep_chr[repname] = [repchr]\n+            rep_start[repname] = [int(repstart)]\n+            rep_end[repname] = [int(repend)]\n+\n+fin.close()\n+fout.close()\n+repeat_elements = sorted(repeat_elements)\n+print ("Writing a key for all repeats...")\n+#print to fout the binary key that contains each repeat type with the associated binary number; sort the binary key:\n+fout = open(os.path.realpath(setup_folder + os.path.sep + \'repgenomes_key.txt\'), \'w\')\n+x = 0\n+for repeat in repeat_elements:\n+#    print >> fout, str(repeat) + \'\\t\' + str(x)\n+    fout.write(str(repeat) + \'\\t\' + str(x) + \'\\n\')\n+    x +=1\n+fout.close()\n+################################################################################\n+# generate spacer for psuedogenomes\n+spacer = ""\n+for i in range(gapl):\n+    spacer = spacer + "N"\n+\n+# save file with number of fragments processed per repname\n+print ("Saving number of fragments processed per repname to " + nfragmentsfile1)\n+fout1 = open(os.path.realpath(nfragmentsfile1),"w")\n+for repname in rep_chr.keys():\n+    rep_chr_current = rep_chr[repname]\n+#    print >>fout1, str(len(rep_chr[repname])) + "\\t" + repname\n+    fout1.write(str(len(rep_chr[repname])) + "\\t" + repname + \'\\n\')\n+fout1.close()\n+\n+# generate metagenomes and save them to FASTA files\n+k = 1\n+nrepgenomes = len(rep_chr.keys())\n+for repname in rep_chr.keys():\n+    metagenome = ""\n+    newname = repname.replace("(","_").replace(")","_").replace("/","_")\n+    print ("processing repgenome " + newname + ".fa" + " (" + str(k) + " of " + str(nrepgenomes) + ")")\n+    rep_chr_current = rep_chr[repname]\n+    rep_start_current = rep_start[repname]\n+    rep_end_current = rep_end[repname]\n+    print ("-------> " + str(len(rep_chr[repname])) + " fragments")\n+    for i in range(len(rep_chr[repname])):\n+        try:\n+            chr = rep_chr_current[i]\n+            rstart = max(rep_start_current[i] - flankingl, 0)\n+            rend = min(rep_end_current[i] + flankingl, lgenome[chr]-1)\n+            metagenome = metagenome + spacer + genome[chr][rstart:(rend+1)]\n+        except KeyError:\n+            print ("Unrecognised Chromosome: "+chr)\n+            pass\n+    \n+    # Convert metagenome to SeqRecord object (required by SeqIO.write)\n+    record = SeqRecord(Seq(metagenome, IUPAC.unambiguous_dna), id = "repname", name = "", description = "")\n+    print ("saving repgenome " + newname + ".fa" + " (" + str(k) + " of " + str(nrepgenomes) + ")")\n+    fastafilename = os.path.realpath(setup_folder + os.path.sep + newname + ".fa")\n+    SeqIO.write(record, fastafilename, "fasta")\n+    print ("indexing repgenome " + newname + ".fa" + " (" + str(k) + " of " + str(nrepgenomes) + ")")\n+    command = shlex.split(\'bowtie-build -f \' + fastafilename + \' \' + setup_folder + os.path.sep + newname)\n+    p = subprocess.Popen(command).communicate()\n+    k += 1\n+\n+print ("... Done")\n+\n'
b
diff -r 000000000000 -r 1435d142041b repenrich.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/repenrich.xml Tue May 23 18:37:22 2017 -0400
[
b'@@ -0,0 +1,159 @@\n+<tool id="repenrich" name="RepEnrich" version="0.2.0">\n+    <description>Repeat Element Profiling</description>\n+    <requirements>\n+        <requirement type="package" version="1.2.0">bowtie</requirement>\n+        <requirement type="package" version="0.1.19">samtools</requirement>\n+        <requirement type="package" version="2.20.1">bedtools</requirement>\n+        <requirement type="package" version="1.69">biopython</requirement>\n+    </requirements>\n+    <stdio>\n+        <exit_code range="1:" level="fatal" description="Tool exception" />\n+    </stdio>\n+    <command detect_errors="exit_code"><![CDATA[\n+        #import re\n+        #set input_base = re.sub(\'\\.fastq$\', \'\', str($input_fastq.element_identifier))\n+        #set baseReference = re.sub(\'[^\\w\\-]\', \'_\', str($genome.element_identifier))\n+        #set baseReference = re.sub(\'.fa$\', \'\', $baseReference)\n+        ln -f -s \'$genome\' \'${baseReference}.fa\' &&\n+        ln -f -s \'$input_fastq\' \'${input_base}.fastq\' &&\n+        bowtie-build \'$genome\' ${baseReference} &&\n+        python $__tool_directory__/RepEnrich_setup.py $repeatmasker ${baseReference}.fa setup_folder_${baseReference} &&\n+        bowtie $baseReference -p \\${GALAXY_SLOTS:-4} -t -m 1 -S --max ${input_base}_multimap.fastq ${input_base}.fastq ${input_base}_unique.sam &&\n+        samtools view -bS ${input_base}_unique.sam > ${input_base}_unique.bam &&\n+        samtools sort ${input_base}_unique.bam ${input_base}_unique_sorted &&\n+        mv ${input_base}_unique_sorted.bam ${input_base}_unique.bam &&\n+        samtools index ${input_base}_unique.bam &&\n+        rm ${input_base}_unique.sam &&\n+        python $__tool_directory__/RepEnrich.py $repeatmasker ${input_base} ${input_base} setup_folder_${baseReference} ${input_base}_multimap.fastq ${input_base}_unique.bam --cpus "\\${GALAXY_SLOTS:-4}" &&\n+        cp $input_base/${input_base}_class_fraction_counts.txt class_fraction_counts.tabular &&\n+        cp $input_base/${input_base}_family_fraction_counts.txt family_fraction_counts.tabular &&\n+        cp $input_base/${input_base}_fraction_counts.txt fraction_counts.tabular\n+\n+    ]]></command>\n+    <!-- basic error handling -->\n+    <inputs>\n+    <param format="fasta" label="Reference genome in fasta format" name="genome" type="data" />\n+    <param format="fastq,fastqsanger" label="Single-reads equencing dataset" name="input_fastq" type="data" help="accepted formats: fastq, fastqsanger" />\n+    <param format="txt" label="RepeatMasker description file" name="repeatmasker" type="data" help="see help section"/>\n+    </inputs>\n+\n+    <outputs>\n+        <data format="tabular" name="class_fraction_counts" label="RepEnrich on ${on_string}: class fraction counts" from_work_dir="class_fraction_counts.tabular">\n+        </data>\n+        <data format="tabular" name="family_fraction_counts" label="RepEnrich on ${on_string}: family fraction counts" from_work_dir="family_fraction_counts.tabular">\n+        </data>\n+        <data format="tabular" name="fraction_counts" label="RepEnrich on ${on_string}: fraction counts" from_work_dir="fraction_counts.tabular">\n+        </data>\n+    </outputs>\n+\n+    <tests>\n+        <test>\n+            <param name="input_fastq" value="Samp.fastq" ftype="fastq"/>\n+            <param name="genome" value="chrM.fa" ftype="fasta"/>\n+            <param name="repeatmasker" value="chrM_repeatmasker.txt" ftype="txt"/>\n+            <output name="class_fraction_counts" file="Samp_class_fraction_counts.tabular" ftype="tabular"/>\n+            <output name="family_fraction_counts" file="Samp_family_fraction_counts.tabular" ftype="tabular"/>\n+            <output name="fraction_counts" file="Samp_fraction_counts.tabular" ftype="tabular"/>\n+        </test>\n+   </tests>\n+\n+    <help>\n+\n+**What it does**\n+\n+Reads are mapped to the genome using the Bowtie1 aligner. Reads mapping uniquely to the genome are assigned to subfamilies of repetitive elements based on their degree of overlap to RepeatMasker annotat'..b't         class/family         begin  end (left)   ID\n+\n+16  20.2  5.9  0.0  chrM         1211    1261   (18263) +  (TTTTA)n       Simple_repeat            1   54    (0)  84486\n+\n+13  23.9  2.2  2.2  chrM         2014    2059   (17465) +  (TTA)n         Simple_repeat            1   46    (0)  84487\n+\n+24  18.8  5.3  2.6  chrM         3924    3999   (15525) +  (TAT)n         Simple_repeat            1   78    (0)  84488\n+\n+18   4.5  0.0  0.0  chrM         5961    5983   (13541) +  (AT)n          Simple_repeat            1   23    (0)  84489\n+\n+13  25.9  4.0  4.0  chrM         6247    6320   (13204) +  (ATTTAT)n      Simple_repeat            1   74    (0)  84490\n+\n+11  14.6  7.5  2.4  chrM         8783    8822   (10702) +  (CTAATT)n      Simple_repeat            1   42    (0)  84491\n+\n+17  19.0  0.0  8.6  chrM         9064    9126   (10398) +  A-rich         Low_complexity           1   58    (0)  84492\n+\n+13  21.0  5.9  1.9  chrM        11723   11773    (7751) +  (ATA)n         Simple_repeat            1   53    (0)  84493\n+\n+66  20.4 12.3 12.3  chrM        12823   13001    (6523) C  LSU-rRNA_Cel   rRNA                   (1) 2431   2253  84494\n+\n+16  16.6  0.0  2.9  chrM        14361   14396    (5128) +  (ATT)n         Simple_repeat            1   35    (0)  84495\n+\n+44   2.4  0.0  0.0  chrM        15966   16007    (3517) +  (TA)n          Simple_repeat            1   42    (0)  84496\n+\n+35   5.3  0.0  0.0  chrM        16559   16597    (2927) +  (AT)n          Simple_repeat            1   39    (0)  84497\n+\n+36   2.9  0.0  0.0  chrM        16922   16956    (2568) +  (AT)n          Simple_repeat            1   35    (0)  84498\n+\n+37   0.0  0.0  0.0  chrM        17040   17071    (2453) +  (TA)n          Simple_repeat            1   32    (0)  84499\n+\n+20   4.3  0.0  0.0  chrM        17417   17440    (2084) +  (T)n           Simple_repeat            1   24    (0)  84500\n+\n+31   6.9  6.3  1.5  chrM        17451   17513    (2011) +  (TA)n          Simple_repeat            1   66    (0)  84501\n+\n+26  17.0  0.0  0.0  chrM        19469   19514      (10) +  A-rich         Low_complexity           1   46    (0)  84502\n+\n+]]>\n+\n+Users may filter this file so that it contains only desired items (for instance only satellites, repeats and transposons)\n+ \n+**Outputs**\n+\n+(1) Fraction counts, (2) Family fraction counts and (3) Class fraction counts are returned in tabular format, for further statistical tests differential expression analysis or graphics \n+\n+**RepEnrich**\n+\n+This Galaxy tool is a wrapper of the RepEnrich tool by steven_criscione@brown.edu et al. whose code and manual are available in `GitHub`_.\n+\n+.. _GitHub: https://github.com/nskvir/RepEnrich\n+\n+Python scripts RepEnrich.py and RepEnrich_setup.py have been adapted to python 3. Note that sorting of Fraction counts, Family fraction counts and Class fraction counts is  different with this Galaxy wrapper or with RepEnrich as found in the `RepEnrich code repository`_. However, this different sorting does not affect subsequent statistical analyses\n+\n+.. _RepEnrich code repository: https://github.com/nskvir/RepEnrich\n+\n+**Execution time**\n+\n+.. class:: warningmark\n+\n+This tool includes steps to index the reference genome, index repeat sequences and align reads to these indexes. Therefore the run time may be **long to very long**. \n+\n+.. class:: infomark\n+\n+For more information on the tools, please visit our `code repository`_.\n+\n+If you would like to give us feedback or you run into any trouble, please send an email to artbio.ibps@gmail.com \n+\n+This tool wrapper is developed by the `ARTbio team`_ at the `Institut de Biologie Paris Seine (IBPS)`_.\n+\n+.. _code repository: https://github.com/ARTbio/tools-artbio/tree/master/tools/\n+.. _ARTbio team: http://artbio.fr\n+.. _Institut de Biologie Paris Seine (IBPS): http://www.ibps.upmc.fr/en/core-facilities/bioinformatics\n+\n+    </help>\n+\n+    <citations>\n+    <citation type="doi">10.1186/1471-2164-15-583</citation>\n+  </citations>\n+</tool>\n'
b
diff -r 000000000000 -r 1435d142041b test-data/Samp.fastq
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/Samp.fastq Tue May 23 18:37:22 2017 -0400
b
b'@@ -0,0 +1,10040 @@\n+@HISEQ:262:CA81LANXX:2:1101:1338:1996\n+GCGGGTGATAAACTTCTGTGAAAAAAAGCTCAAAAAAATCTCACAAAAAATAAAACTTCTGATAAAATAAATAAAATTATTCCTCATCGTAAACCAATAGTTACTGCATAAGTATGTAATCCTTG\n++\n+BBBBBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFF\n+@HISEQ:262:CA81LANXX:2:1101:7367:1984\n+GGGTCTTCTCGTCTTTTAAATAAATTTTAGCTTTTTGACTAAAAAATAAAATTCTATAAAAATTTTAAATGAAACAGTTAATATTTCGTCCAACCATTCATTCCAGCCTTCAATTAAAAGACTAA\n++\n+BBBBBFFFFFFFFFFFFFFFFFFFFFFFFFFF<FBF/FFFFFFFFFFFFFFB/FFFFBFFFFFFFFFFB<FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF<FFFFFFFFFFFFF<FFFFFBF\n+@HISEQ:262:CA81LANXX:2:1101:19502:1983\n+GTCCAACCATTCATTCCAGCCTTCAATTAAAAGACTAATGATTATGCTACCTTTGCACAGTCAAAATACTGCGGCCATTTAAAATTTTCAGTGGGCGGGAGATCGGAAGAGCACACGTCTGACCT\n++\n+B<BBBFFFFFFF///FBF///</<<<B/BBF<BFFFFB<//<FBFFFFFBFFF//</</<<B/FB</<B///<<BF//</<FFBF</BF//<FB###############################\n+@HISEQ:262:CA81LANXX:2:1101:1225:2201\n+TCGTCTTTTAAATAAATTTTAGCTTTTTGACTAAAAAATAAAATTCTATAAAAATTTTAAATGAAACAGTTAATATTTCGTCCAACCATTCATTCCAGCCTTCAATTAAAAGACTAATGATTATG\n++\n+<<BBBBFFFFFFFB<BFFFFFFFFFFFFF/B/FFFFFF/B<BFBFFFFFFFFFFFFFFFB/</FFB/FFFFFFFFFFFFBFFFBFFFF/BFFFBF//B<FFFBBFFF<<BFFFBFFFF/BBFFFB\n+@HISEQ:262:CA81LANXX:2:1101:3596:2043\n+AGGGTCTTCTCGTCTTTTAAATAAATTTTAGCTTTTTGACTAAAAAATAAAATTCTATAAAAATTTTAAATGAAACAGTTAATATTTCGTCCAACCATTCATTCCAGCCTTCAATTAAAAGACTA\n++\n+BBBBBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBBFFFFFFFFFFFFFFBFFF/F/FFFBFFFFBFFFFFFFFFFFFFFFFFFFFFFFFFFF<FFFFFFFFFB<FFFFFFFFFBFB/FFFF\n+@HISEQ:262:CA81LANXX:2:1101:4635:2158\n+TCGTCTTTTAAATAAATTTTAGCTTTTTGACTAAAAAATAAAATTCTATAAAAATTTTAAATGAAACAGTTAATATTTCGTCCAACCATTCATTCCAGCCTTCAATTAAAAGACTAATGATTATG\n++\n+BBBBBFFFFFFFFF<FFFFFFFFFFFFFFBFFFFFFFFFFFFFFFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB/BFFFFFFFFFFFFF<FF/BFF\n+@HISEQ:262:CA81LANXX:2:1101:4872:2211\n+GCCGATTCTTTTTAAAGTTACAGATGGTTCATTAATTTCATCTAATAAATAAAGTAAACGTAAAGAAGGAAGAGCAATAAATAGTAAAATAATTGCTGGTAAAATAGTTCAAATTATTTCAATAA\n++\n+BBBBBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFFFFFFFFFFF\n+@HISEQ:262:CA81LANXX:2:1101:5610:2019\n+GTCCTTTCGTACTAAAATATCATAATTTTTTAAAGATAGAAACCAACCTGGCTTACACCGGTTTGAACTCAGATCATGTAAGAATTTAAAAGTCGAACAGACTTAAAATTTGAACGGCTACACCC\n++\n+BBBBBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\n+@HISEQ:262:CA81LANXX:2:1101:6566:2127\n+CTAACCAAGAAGTTCTTAAGATAATATTAAATCGAATTAATAAATATACACCAGCTGTAACTAATGTAGAAGAATGAACTAAAGCAGAAACAGGTGTAGGAGCAGCTATAGCTGCAGGTAACCAA\n++\n+BBBBBFFFFF<FFFFFFFFFFFFFFFFFFFFFFFFFFBFFFFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFFFBFFFFFFFFFFFFFFFBFFFFFFFFF\n+@HISEQ:262:CA81LANXX:2:1101:6892:2032\n+ACCGTCAACTTTTACTCCTAAAGCAGGTACTGTTCAAGAATGAATAACATCAGCAGCTGTTACTAAAATTCGAATTTGTGAGTTTATGGGTAAAACTACTCGGTTATCAACATCTAATAATCGAA\n++\n+BBBBBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFF\n+@HISEQ:262:CA81LANXX:2:1101:7493:2161\n+GTCCAACCATTCATTCCAGCCTTCAATTAAAAGACTAATGATTATGCTACCTTTGCACAGTCAAAATACTGCGGCCATTTAAAATTTTCAGTGGGCAGGTTAGACTTTATATATAATTCAAAAAG\n++\n+BBBBBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFFFFFFFFFFFFFFFFFF\n+@HISEQ:262:CA81LANXX:2:1101:7572:2014\n+CTAAAATTGAAGAAATTCCTGCTAAATGTAGAGAAAAAATAGCTAAATCAACTGAAGCTCCACCATGAGCAATTCCAGCGGATAGAGGTGGATAAACAGTTCATCCTGTCCCAGCTCCATTTTCA\n++\n+BBBBBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFFFFFFFFFFFFFFFFFBFFFFFFFFFFFFFFFFFFFFFBFFFFFFFFFFFFFFFFFFFFFFBBBF<F/<BFFFFFFFFFFFB\n+@HISEQ:262:CA81LANXX:2:1101:9943:2018\n+GCTGCTTCAAAACCAAAATGATGATTTTTTGAGAAGTGATTATTTAAATGTCGTAGTAAACATACTAATAAAAAAGTTGTTCCGATTAATACATGAATTCCGTGAAATCCTGTTGCTATAAAAAA\n++\n+BBBBBFFFFFFFFFFFFFFFFFFFFFFFFFFBFFFFFFFF<FFFFFFFFFFFFFFFFFFFFFFFFFFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFFF\n+@HISEQ:262:CA81LANXX:2:1101:9821:2111\n+GTCCTTTCGTACTAAAATATCATAATTTTTTAAAGATAGAAACCAACCTGGCTTACACCGGTTTGAACTCAGATCATGTAAGAATTTAAA'..b'\n+@HISEQ:262:CA81LANXX:2:1101:13847:33438\n+GTCCAACCATTCATTCCAGCCTTCAATTAAAAGACTAATGATTATGCTACCTTTGCACAGTCAAAATACTGCGGCCATTTAAAATTTTCAGTGGGCAGGTTAGACTTTATATATAATTCAAAAAG\n++\n+BBBBBBFB<FFFFBFFFBFBFFFFF<BFFFFBFFF/<F<F<FFF/FFF<FBFFFBFFF<FFFFF/</<FB/<B/<///<F/BFFFFFFFFFFF<B</BFFF/7BF<FFFFFF<BFFFBF/7/7B7\n+@HISEQ:262:CA81LANXX:2:1101:15264:33251\n+TAAGAATTTAAAAGTCGAACAGACTTAAAATTTGAACGGCTACACCCAAAATTATATCTTAATCCAACATCGAGGTCGCAATCTTTTTTATCGATATGAACTCTCCAAAAAAATTACGCTGTTAT\n++\n+BBBBBBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\n+@HISEQ:262:CA81LANXX:2:1101:16362:33356\n+GTCTTTTAAATAAATTTTAGCTTTTTGACTAAAAAATAAAATTCTATAAAAATTTTAAATGAAACAGTTAATATTTCGTCCAACCATTCATTCCAGCCTTCAATTAAAAGACTAATGATTATGCT\n++\n+BBBBBFFFFFFFFFBFFFFFFFFFFFBFFBF/FBFFFBFFF/FFFFFFFFFFFFFFFFFBBFBFFFFFFFFFFFFFFB<<FFFFFFFFFBFF/BFFBBFFFFFFFF//F/FBFB/F7F<FFF/BF\n+@HISEQ:262:CA81LANXX:2:1115:5809:65592 1:N:0:CGTACG\n+CCCTATTCATAAATTTATTATATAATTAAATCTTAAAAAGTATTTTTTTTTTAAAAAAAAATTATTTATTAAATTATACTTAATAAACTATTTTTATAATAAATTATTTTATGAATAAAATTATT\n++\n+BBBBBFFFFFFFFFFFFFFBFFFF/F<FFFFFFFFFB/FFFFFFFFFFFFFFFFFFFFFF<B<<BFFFFFFFFFF<FFFFFFF/<F<F///BFFF//FBFFF7BF<FFFF//<</<FFFB77/BF\n+@HISEQ:262:CA81LANXX:2:1215:17203:64615 1:N:0:CGTACG\n+CCCTATTCATAAATTTATTATATAATTAAATCTTAAAAAGTATTTTTTTTTTAAAAAAAAATTATTTATTAAATTATACTTAATAAACTATTTTTATAATAAATTATTTTATGAATAAAATTATT\n++\n+BBBBBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF/FFBFFFFFFFBF\n+@HISEQ:262:CA81LANXX:2:1215:14166:68404 1:N:0:CGTACG\n+CCCCCTATTCATAAATTTATTATATAATTAAATCTTAAAAAGTATTTTTTTTTAAAAAAAAATTATTTATTTAATTTTTATTAATAAAATATTTTTTTAATTAATTATTTTATGAATAAAATTTT\n++\n+BBBBBFFFFFFFFFFFFFFFFFFFFFFBBBFFFBFFFFBBFFFFFFFFFFBBF/BFFFFFFF/B#############################################################\n+@HISEQ:262:CA81LANXX:2:1301:20643:41959 1:N:0:CGTACG\n+CATATATATAGATATATATATATATATATCAGGGATCGTGGCGGAGCGAGGTGGAAGGGGTGGGGGGGGAGAGGATAACCAGGGGGCGGGGGGGGAGGTTTGGGAGTCATAGAAAATTTGGGATA\n++\n+BBBBBFFFFFFFFFFFFFFFFFFFFFF##################################################################################################\n+@HISEQ:262:CA81LANXX:2:1310:4460:5881 1:N:0:CGTACG\n+CCCTATTCATAAATTTATTATATAATTAAATCTTAAAAAGTATTTTTTTTTTAAAAAAAAATTATTTATTAAATTATACTTAATAAACTATTTTTATAATAAATTATTTTATGAATAAAATTATT\n++\n+BBBBBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFBF7<77<FFFFFFFBFFFFFFFFBBFBFFFFFFFFFFFBF<F<FFFFFFB7BF\n+@HISEQ:262:CA81LANXX:2:1314:2827:42596 1:N:0:CGTACG\n+CCCCCTATTCATAAATTTATTATATAATTAAATCTTAAAAAGTATTTTTTTTTTAAAAAAAAATTATTTATTAAATTATACTTAATAAACTATTTTTATAATAAATTATTTTATGAATAAAATTA\n++\n+BBBBBFFFFFBFFFFFFFFF<FFFFBFFFFFBBFF/BB/FFFF/FFFBFFBBFFFFFFFFF<</<BB//</B7FF/<//<<<BBBFFBFF/BBFFFBFFFFFB/BFBFFB<F/7BB/FF/7FFFB\n+@HISEQ:262:CA81LANXX:2:2103:4469:38754 1:N:0:CGTACG\n+ATTTTTTTTTTTTTTTTTTTTTTTTATTAAAATAATTTATTGTTTTGTGTTTTTTTTTTTTTTTTTTATTTTTAAATTTATATTAATTATTAATTTATATAAAATATAATATAAAAAAATTATAA\n++\n+BBBBBFFFBFFFFFFFFBF<BB#######################################################################################################\n+@HISEQ:262:CA81LANXX:2:2108:19262:60414 1:N:0:CGTACG\n+CCCTATTCATAAATTTATTATATAATTAAATCTTAAAAAGTATTTTTTTTTTAAAAAAAAATTATTTATTAAGTTATACTTAATAAACTATTTTTATAATAAATTATTTTATGAATAAAATTATT\n++\n+BBBBBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF<<<FFFFBFFFFFFFFFFFFFFFFFBFFFFBFFFFFFFFF<B<BBFFFBFFFF\n+@HISEQ:262:CA81LANXX:2:2110:11698:64422 1:N:0:CGTACG\n+ATTTTTTTTTTTTTTTTTTTTTTTAATTTTAAAAAATTTTTTTTGTTTTTTTTTTTTTTTTTTTTAATTTTAAATTTATATTTAAATTTTTTTTTTATAAAAATTAAAAAAAAAAAAATAAAAAG\n++\n+BBBBBFFFFFFFFFFFFFFFFF#######################################################################################################\n+@HISEQ:262:CA81LANXX:2:2110:8000:79787 1:N:0:CGTACG\n+CCTATTCATAAATTTATTATATAATTAAATCTTAAAAAGTAGTTTTTTTTTAAAAAAAAATTATTTATTAAATTATACTTAATAAACTATTTTTATAATAAATTATTTTATGAATAAAATTATTT\n++\n+BBBBBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF/FFFFF/<FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFFFFFFFFFFFFFFFFFFF/FBFFFBFFFFFFF\n'
b
diff -r 000000000000 -r 1435d142041b test-data/Samp_class_fraction_counts.tabular
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/Samp_class_fraction_counts.tabular Tue May 23 18:37:22 2017 -0400
b
@@ -0,0 +1,3 @@
+Low_complexity 0.0
+rRNA 772.0
+Simple_repeat 98.0
b
diff -r 000000000000 -r 1435d142041b test-data/Samp_family_fraction_counts.tabular
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/Samp_family_fraction_counts.tabular Tue May 23 18:37:22 2017 -0400
b
@@ -0,0 +1,3 @@
+Low_complexity 0.0
+rRNA 772.0
+Simple_repeat 98.0
b
diff -r 000000000000 -r 1435d142041b test-data/Samp_fraction_counts.tabular
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/Samp_fraction_counts.tabular Tue May 23 18:37:22 2017 -0400
b
@@ -0,0 +1,11 @@
+A-rich Low_complexity Low_complexity 0
+LSU-rRNA_Cel rRNA rRNA 772
+_ATA_n Simple_repeat Simple_repeat 0
+_ATTTAT_n Simple_repeat Simple_repeat 0
+_ATT_n Simple_repeat Simple_repeat 9
+_AT_n Simple_repeat Simple_repeat 0
+_CTAATT_n Simple_repeat Simple_repeat 7
+_TAT_n Simple_repeat Simple_repeat 0
+_TA_n Simple_repeat Simple_repeat 0
+_TTA_n Simple_repeat Simple_repeat 82
+_T_n Simple_repeat Simple_repeat 0
b
diff -r 000000000000 -r 1435d142041b test-data/chrM.fa
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/chrM.fa Tue May 23 18:37:22 2017 -0400
b
b'@@ -0,0 +1,392 @@\n+>chrM\n+AATGAATTGCCTGATAAAAAGGATTACCTTGATAGGGTAAATCATGCAGT\n+TTTCTGCATTCATTGACTGATTTATATATTATTTATAAAGATGATTTTAT\n+ATTTAATAGAATTAAACTATTTCTAAAAGTATCAAAAACTTTTGTGCATC\n+ATACACCAAAATATATTTACAAAAAGATAAGCTAATTAAGCTACTGGGTT\n+CATACCCCATTTATAAAGGTTATAATCCTTTTCTTTTTAATTTTTAATAA\n+TTCGTCAAAAATTTTATTTATTACAATTATAATTATTGGGACATTAATTA\n+CAGTTACATCTAATTCTTGGTTAGGAGCTTGAATAGGTTTAGAAATTAAT\n+TTATTATCTTTTATCCCCCTATTAAGAGATAATAATAATTTAATATCTAC\n+AGAAGCTTCTTTAAAATATTTTTTAACCCAAGTTTTAGCTTCAACTGTTT\n+TATTATTTTCTTCAATTTTATTAATATTAAAAAATAATATAAATAATGAA\n+ATTAATGAATCTTTTACATCCATAATTATTATATCAGCTTTATTATTAAA\n+AAGTGGAGCCGCTCCTTTCCATTTTTGATTTCCTAATATAATAGAAGGTT\n+TAACATGAATAAATGCTTTAATATTAATAACTTGACAAAAAATTGCACCT\n+TTAATATTAATTTCTTATCTTAATATTAAATATTTATTATTAATTAGAGT\n+AATTTTATCAGTTATTATTGGAGCTATTGGAGGATTAAATCAAACTTCTT\n+TACGAAAATTAATAGCATTTTCTTCAATTAATCATTTAGGGTGAATATTA\n+AGATCTTTAATAATTAGAGAATCAATTTGATTAATTTATTTTTTTTTTTA\n+TTCATTTTTATCATTTGTATTAACATTTATATTTAATATTTTTAAATTAT\n+TTCATTTAAATCAATTATTTTCTTGATTTGTTAATAGAAAAATTTTGAAA\n+TTTACATTATTTATAAATTTTTTATCATTAGGAGGATTACCTCCATTTTT\n+AGGATTTTTACCAAAATGACTTGTAATTCAACAATTAACATTATGTAATC\n+AATATTTTATATTAACACTTATAATAATATCAACTTTAATTACATTATTT\n+TTTTATTTACGAATTTGTTATTCCGCTTTTATAATAAATTATTTTGAAAA\n+TAACTGAATCATAAAGATAAATATAAATAGTATTAATTATAATATATATA\n+TAATTATAACttttttttcaatttttggattatttttaatttctttattt\n+tattttatattTTAAGGCTTTAAGTTAATAAAACTAATAACCTTCAAAGC\n+TATAAATAAAGAAATTTCTTTAAGCCTTAGTAAAACTTACTCCTTCAAAA\n+TTGCAGTTTGATATCATTATTGACTATAAGACCTAATTAATTTGTCCTTA\n+TTTGATTAAGAAGAATAAATCTTATATATAGATTTACAATCTATCGCCTA\n+AACTTCAGCCACTTAATCAATAATCGCGACAATGATTATTTTCTACAAAT\n+CATAAAGATATCGGAACTTTATATTTTATTTTTGGAGCTTGAGCTGGAAT\n+AGTTGGAACATCTTTAAGAATTTTAATTCGAGCTGAATTAGGACATCCTG\n+GAGCATTAATTGGAGATGATCAAATTTATAATGTAATTGTAACTGCACAT\n+GCTTTTATTATAATTTTTTTTATAGTTATACCTATTATAATTGGTGGATT\n+TGGAAATTGATTAGTGCCTTTAATATTAGGTGCTCCTGATATAGCATTCC\n+CACGAATAAATAATATAAGATTTTGACTTCTACCTCCTGCTCTTTCTTTA\n+CTATTAGTAAGTAGAATAGTTGAAAATGGAGCTGGGACAGGATGAACTGT\n+TTATCCACCTCTATCCGCTGGAATTGCTCATGGTGGAGCTTCAGTTGATT\n+TAGCTATTTTTTCTCTACATTTAGCAGGAATTTCTTCAATTTTAGGAGCT\n+GTAAATTTTATTACAACTGTAATTAATATACGATCAACAGGAATTTCATT\n+AGATCGTATACCTttatttgtttgatcagtagttattactgctttattat\n+tattattatCACTTCCAGTACTAGCAGGAGCTATTACTATATTATTAACA\n+GATCGAAATTTAAATACATCATTTTTTGACCCAGCGGGAGGAGGAGATCC\n+TATTTTATACCAACATTTATTTTGATTTTTTGGTCATCCTGAAGTTTATA\n+TTTTAATTTTACCTGGATTTGGAATAATTTCTCATATTATTAGACAAGAA\n+TCAGGAAAAAAGGAAACTTTTGGTTCTCTAGGAATAATTTATGCTATATT\n+AGCTATTGGATTATTAGGATTTATTGTATGAGCTCATCATATATTTACCG\n+TTGGAATAGATGTAGATACTCGAGCTTATTTTACCTCAGCTACTATAATT\n+ATTGCAGTTCCTACTGGAATTAAAATTTTTAGTTGATTAGCTACTTTACA\n+TGGAACTCAACTTTCTTATTCTCCAGCTATTTTATGAGCTTTAGGATTTG\n+TTTTTTTATTTACAGTAGGAGGATTAACAGGAGTTGTTTTAGCTAATTCA\n+TCAGTAGATATTATTTTACATGATACTTATTATGTAGTAGCTCATTTTCA\n+TTATGTTTTATCTATAGGAGCTGTATTTGCTATTATAGCAGGTTTTATTC\n+ACTGATACCCCTTATTTACTGGATTAACGTTAAATAATAAATGATTAAAA\n+AGTCATTTCATTATTATATTTATTGGAGTTAATTTAACATTTTTTCCTCA\n+ACATTTTTTAGGATTGGCTGGAATACCTCGACGTTATTCAGATTACCCAG\n+ATGCTTACACAACATGAAATATTGTATCAACTATTGGATCAACTATTTCA\n+TTATTAGGAATTTTATTCTTTTTTTTTATTATTTGAGAAAGTTTAGTATC\n+ACAACGACAAGTAATTTACCCAATTCAACTAAATTCATCAATTGAATGAT\n+ACCAAAATACTCCACCAGCTGAACATAGATATTCTGAATTACCACTTTTA\n+ACAAATTAATTTCTAATATGGCAGATTAGTGCAATAGATTTAAGCTCTAT\n+ATATAAAGTATTTTACTTTTATTAGAAAATAAATGTCTACATGAGCTAAT\n+TTAGGTTTACAAGATAGAGCTTCTCCTTTAATAGAACAATTAATTTTTTT\n+TCATGATCATGCATTATTAATTTTAGTAATAATTACAGTATTGGTGGGAT\n+ATTTAATATTTATATTATTTTTTAATAATTATGTAAATCGATTTCTTTTA\n+CATGGACAACTTATTGAAATAATTTGAACTATTTTACCAGCAATTATTTT\n+ACTATTTATTGCTCTTCCTTCTTTACGTTTACTTTATTTATTAGATGAAA\n+TTAATGAACCATCTGTAACTTTAAAAAGAATCGGCCATCAATGATATTGA\n+AGTTACGAATATTCAGATTTTAATAATATTGAATTTGATTCATATATAAT\n+TCCAACAAATGAATTAATAACTGATGGATTTCGATTATTAGATGTTGATA\n+ACCGAGTAGTTTTACCCATAAACTCACAAATTCGAATTTTAGTAACAGCT\n+GCTGATGTTATTCATTCTTGAACAGTACCTGCTTTAGGAGTAAAAGTTGA\n+CGGTACACCTGGACGATTAAATCAAACTAATTTTTTTATTAATCGACCGG\n+GTTTATTTTATGGTCAATGTTCAGAAATCTGTGGAGCTAATCATAGATTT\n+ATACCGATTGTAATTGAAAGTGTTCCTGTAAATTACTTTATTAAATGAAT\n+TTCTAGAAATAACTCTTCATTAGATGACTGAAAGCAAGTACTGGTCTCTT\n+AAACCATTTAATAGTAAATTA'..b'TATTTATAAATTTATTATAT\n+AATTAAAACTTAAAAAATATTTTTTTTAAAAAAATAGTTTATTAAATTAT\n+ACTTAATAAACTATTTTTATAATAAATTATTTTATAAATAAAATTATTTA\n+AAATAATTAATAAAAATATTTTTATTGTAATAAAAATTAAAAATAATTTT\n+AAAAAAATTAAATTTATATATTTATATATATATATATATAATTTTTAATT\n+TTCAATTAAATTATATAAATATAATAAAATAATTTTATTTAATCACTAAA\n+TCTGAAATAATTAATtataaatatatatatatatatatatatatatatat\n+atatataAATGAAAATAAATTTATTCCCCCTATTCATAAATTTATTGTAT\n+AATTAAAACTTAAAAAATATTTTTTTTTAAAAAAAAATTATTTATTAAAT\n+TATACTTAATAAACTATTTTTATAATAAATTATTTTATAAATAAAATTAT\n+TTTAAATAATTAATAAAAATATTTTTAATATAATAAAAATTTAAAATGAT\n+TTTTTATAAAAATTAAATTCATATTTATATATATATATATATAATTTAAT\n+TTTCAATTAAATTATATAAGTATAATAAAATAATTTATTTTAATCACTAA\n+ATCTGAATTAATTAATTGTATATATATATATATATATAAAAAAAATGAAA\n+ATAAATTTATTCCCCCTATTCATAAATTTATTATATAATTAAATCTTAAA\n+AAGTATTTTTTTTTTAAAAAAAAATTATTTATTAAATTATACTTAATAAA\n+CTATTTTTATAATAAATTATTTTATGAATAAAATTATTTAAAATAATTTA\n+TAAAAATATTTTTAATATAATGAAAATTTAAAATGATTTTTTATTATTAA\n+TTAAATTCatatatttacatatatatatatatatatatatatatataGAT\n+AATTTAATTTTCAATTAAATTATATAAGTATAATAAAATAATTTATTTTA\n+ATCACTAAATCTGAATTAATTAATTGTATGTATATATATATATATATATA\n+TAAAAAAATGAAAATAAATTTATTCCCCCTATTCATAAATTTATTATATA\n+ATTAAATCTTAAAAAGTATTTTTTTTTAAAAAAAAAATTATTTATTAAAT\n+TATACTTAATAAACTATTTTTATAATAAATTATTTTATGAATAAAATTAT\n+TTAAAATAATTAATAAAAATATTTTTAATATAATGAAAATTTAAAATGAT\n+TTTTTATTATTAATTAAATTCatatatttatatatatatatatatatata\n+tatataGATAATTTAATTTTCAATTAAATTATATAAGTATAATAAAATAA\n+TTTATTTTAATCACTAAATCTGAATTAATTAATTGTATGtatatatatat\n+atatatatatatatatatataAAAAATGAAAATAAATTTATTCCCCCTAT\n+TCATAAATTTATTATATAATTAAATCTTAAAAAGTATTTTTTTTTAAAAA\n+AAAATTATTTATTAAATTATACTTAATAAACTATTTTTATAATAAATTAT\n+TTTATGAATAAAATTATTTAAAATAATTAATAAAAATTATATATATATAT\n+AAATGAAAATAATTTTTAAATTTTAATAATAAATAAATTTAATAATTAAT\n+AATTAAATAAAATCTATTCATTATTAATATTTAATTAATAATAAATAAAT\n+TTAATAACTAATAATTAAATAAAATTTATTTATTATTAATATTTAATTAA\n+TAATAAAAAATCATCAttttttttttttttttttttatttAATTAATTAT\n+tatatatttataaatttatatattattcaatatttataatatatatatat\n+atatatatatataAAAATTAAATTATTTAAATAATTTAATATAAATTTTT\n+AAAAAATTTCTTAAATGTATTATTTTTATAAAAAATATTTATATAATAAA\n+ATTATTTTTTTTTAAAAATAAACAAAAAATTTTTAATAAATAAATTTTAT\n+AATGAAATATAATTTATTTATTTTTTATTTTTTTAAAAAAAATTTAAAAA\n+AAAATAATTTTTTTTTAAAAAAAAACTATATACTAATTATAAATTAATAG\n+ATATTTATATATATATAAATATTTAATATATTATTATATATCTAATAATT\n+TAAATAAAAAATTTTAAAATTTAAAAATGTAGATATAATTTATAAAAATT\n+TATATTCTCATATTTATTTATTATTAATTTAATTTATATAAATAATATAA\n+TAATTTAATTAATTATTATATATTTATAAATTTATATATTATTGAATATT\n+TATATAATATATATATATATATAGAAAAATTAAATTATTTAAATAATTTA\n+ATATAAATTTTTAAAAAATTTCTTAAATGTATTATTTTTATAAAAAATAT\n+TTATATAATAAAATCATTTTTTTTTAAAAATAAACAAAAAATTTTTAATA\n+AATAAATTTTATAATGAAATATAATTTATTTATTTTTTATTTTTTTAAAA\n+AAAAATTTTTTAAAAAAAAATAATTTTTTTTTTAAAAAAACTATATACTA\n+ATTATAAATTAATAGATATTTATATATATATAAATATTTAATATATTATT\n+ATATATCTAATAATTTAAATAAAAAATTTTAAAATTTAAAAATGTAGATA\n+TAATTTATAAAAATTTATATTCTCATATTTATTTATTATTAATTTAATTT\n+ATATAAATAATATAATAATTTAATTAATTATTATATATTTATAAATTTAT\n+ATATTATTGAATATTTATATAATATATATATATATATAGAAAAATTAAAT\n+TATTTAAATAATTTAATATAAATTTTTAAAAAATTTCTTAAATGTATTAT\n+TTTTATAAAAAATATTTATATAATAAAATCATTTTTTTTAAAAATAAACA\n+AAAAATTTTTAATAAATAAATTTTATAATGAAATATAATTTATTTATTTT\n+TTATTTTTTTAAAAAAAATTTTTTAAAAAAAAATAATTTTTTTTTAAAAA\n+AACTATATACTAAATATAAATTAATAGATATTTATATATATATAAATATT\n+TAATATATTATTATATATCTAATAATTTAAATAAAAAATTTTAAAATTTA\n+AAAATGTAGATATAATTTATAAAAATTTATATTCTCATATTTATTTATTA\n+TTAATTTAATTTATATAAATAATATAATAATTTAATTAATTATTATATAT\n+TTATAAATTTATATATTATTGAATATTTATATAATATATATATATATATA\n+GAAAAATTAAATTATTTAAATAATTTAATATAAATTTTTAAAAAATTTCT\n+TAAATGTATTATTTTTATAAAAAATATTTATATAATAAAATCATTTTTTT\n+TTAAAAATAAACAAAAAATTTTTAATAAATAAATTTTATAATGAAATATA\n+ATTTATTTATTTTTTATTTTTTTTAAAAAAAATTTTTTAAAAAAAATAAT\n+TTTTTTTTAAAAAAACTATATACTAAATATAAATTAATAGATATTTATAT\n+ATATATAAATATTTAATATATTATTATATATCTAATAATTTAAATAAAAA\n+ATTTTAAAATTTAAAAATGTAGATATAATTTATAAAAATTTATATTCTCA\n+TATTTATTTATTATTAATTTAATTTATATAAATAATATAATAATTTAATT\n+AATTATTATATATTTATAAATTTATATATTATTGAATATTTATATATAAT\n+ATATATATATATAGAAAAATAAAATTATTTAAATAATTTTACATAAAATT\n+TTAAAAAATTTCTTAAATGTATTATTTAATAAAAAATTACTTTTTAAAAA\n+AAATAATTTTAATTTTTTaaaaaaaatagtaaataataaaaaaaaaaaaa\n+aaaaaaaatgaaaaTTATATTATT\n'
b
diff -r 000000000000 -r 1435d142041b test-data/chrM_repeatmasker.txt
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/chrM_repeatmasker.txt Tue May 23 18:37:22 2017 -0400
b
@@ -0,0 +1,21 @@
+   SW  perc perc perc  query      position in query           matching       repeat              position in  repeat
+score  div. del. ins.  sequence    begin     end    (left)    repeat         class/family         begin  end (left)   ID
+
+   16  20.2  5.9  0.0  chrM         1211    1261   (18263) +  (TTTTA)n       Simple_repeat            1   54    (0)  84486
+   13  23.9  2.2  2.2  chrM         2014    2059   (17465) +  (TTA)n         Simple_repeat            1   46    (0)  84487
+   24  18.8  5.3  2.6  chrM         3924    3999   (15525) +  (TAT)n         Simple_repeat            1   78    (0)  84488
+   18   4.5  0.0  0.0  chrM         5961    5983   (13541) +  (AT)n          Simple_repeat            1   23    (0)  84489
+   13  25.9  4.0  4.0  chrM         6247    6320   (13204) +  (ATTTAT)n      Simple_repeat            1   74    (0)  84490
+   11  14.6  7.5  2.4  chrM         8783    8822   (10702) +  (CTAATT)n      Simple_repeat            1   42    (0)  84491
+   17  19.0  0.0  8.6  chrM         9064    9126   (10398) +  A-rich         Low_complexity           1   58    (0)  84492
+   13  21.0  5.9  1.9  chrM        11723   11773    (7751) +  (ATA)n         Simple_repeat            1   53    (0)  84493
+   66  20.4 12.3 12.3  chrM        12823   13001    (6523) C  LSU-rRNA_Cel   rRNA                   (1) 2431   2253  84494
+   16  16.6  0.0  2.9  chrM        14361   14396    (5128) +  (ATT)n         Simple_repeat            1   35    (0)  84495
+   44   2.4  0.0  0.0  chrM        15966   16007    (3517) +  (TA)n          Simple_repeat            1   42    (0)  84496
+   35   5.3  0.0  0.0  chrM        16559   16597    (2927) +  (AT)n          Simple_repeat            1   39    (0)  84497
+   36   2.9  0.0  0.0  chrM        16922   16956    (2568) +  (AT)n          Simple_repeat            1   35    (0)  84498
+   37   0.0  0.0  0.0  chrM        17040   17071    (2453) +  (TA)n          Simple_repeat            1   32    (0)  84499
+   20   4.3  0.0  0.0  chrM        17417   17440    (2084) +  (T)n           Simple_repeat            1   24    (0)  84500
+   31   6.9  6.3  1.5  chrM        17451   17513    (2011) +  (TA)n          Simple_repeat            1   66    (0)  84501
+   26  17.0  0.0  0.0  chrM        19469   19514      (10) +  A-rich         Low_complexity           1   46    (0)  84502
+
b
diff -r 000000000000 -r 1435d142041b test-data/tool_wrapper.sh
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/tool_wrapper.sh Tue May 23 18:37:22 2017 -0400
b
@@ -0,0 +1,19 @@
+input_base=$1
+baseReference=$2
+
+bowtie-build ${baseReference}.fa ${baseReference}
+
+python RepEnrich_setup.py ${baseReference}_repeatmasker.txt ${baseReference}.fa \
+       setup_folder_${baseReference}
+
+bowtie $baseReference -p 16 -t -m 1 -S --max ${input_base}_multimap.fastq \
+       ${input_base}.fastq ${input_base}_unique.sam
+
+samtools view -bS ${input_base}_unique.sam > ${input_base}_unique.bam
+samtools sort ${input_base}_unique.bam ${input_base}_unique_sorted
+mv ${input_base}_unique_sorted.bam ${input_base}_unique.bam
+samtools index ${input_base}_unique.bam
+rm ${input_base}_unique.sam
+
+python RepEnrich.py ${baseReference}_repeatmasker.txt ${input_base} ${input_base} \
+        setup_folder_${baseReference} ${input_base}_multimap.fastq ${input_base}_unique.bam --cpus 16