Repository 'fastqc'
hg clone https://toolshed.g2.bx.psu.edu/repos/devteam/fastqc

Changeset 10:a00a6402d09a (2017-02-08)
Previous changeset 9:3a458e268066 (2016-11-02) Next changeset 11:db2dc6bc8f05 (2017-04-20)
Commit message:
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/fastqc commit 2bfbb5ae6b801e43355fdc3f964a5111fe3fe3a1
modified:
rgFastQC.py
rgFastQC.xml
test-data/fastqc_contaminants.txt
test-data/fastqc_customlimits.txt
test-data/fastqc_report.html
test-data/fastqc_report2.html
added:
test-data/1000gsample.fastq.bz2
b
diff -r 3a458e268066 -r a00a6402d09a rgFastQC.py
--- a/rgFastQC.py Wed Nov 02 16:12:51 2016 -0400
+++ b/rgFastQC.py Wed Feb 08 12:43:43 2017 -0500
[
@@ -15,30 +15,28 @@
 
     rgFastQC.py -i path/dataset_1.dat -j 1000gsample.fastq -o path/dataset_3.dat -d path/job_working_directory/subfolder
         -f fastq -n FastQC -c path/dataset_2.dat -e fastqc
-
 """
-
+import bz2
+import glob
+import gzip
+import mimetypes
+import optparse
+import os
 import re
-import os
 import shutil
 import subprocess
-import optparse
 import tempfile
-import glob
-import gzip
-import bz2
 import zipfile
-import mimetypes
+
 
 class FastQCRunner(object):
-
-    def __init__(self,opts=None):
+    def __init__(self, opts=None):
         '''
         Initializes an object to run FastQC in Galaxy. To start the process, use the function run_fastqc()
         '''
 
         # Check whether the options are specified and saves them into the object
-        assert opts != None
+        assert opts is not None
         self.opts = opts
 
     def prepare_command_line(self):
@@ -62,7 +60,7 @@
                 trimext = True
             f.close()
         elif linf.endswith('bz2'):
-            f = bz2.open(self.opts.input,'rb')
+            f = bz2.BZ2File(self.opts.input, 'r')
             try:
                 f.readline()
             except:
@@ -72,35 +70,35 @@
             if not zipfile.is_zipfile(self.opts.input):
                 trimext = True
         if trimext:
-    f = open(self.opts.input)
-    try:
-        f.readline()
-    except:
-        raise Exception("Input file corruption, could not identify the filetype")
-           infname = os.path.splitext(infname)[0]
+            f = open(self.opts.input)
+            try:
+                f.readline()
+            except:
+                raise Exception("Input file corruption, could not identify the filetype")
+            infname = os.path.splitext(infname)[0]
 
         # Replace unwanted or problematic charaters in the input file name
-        self.fastqinfilename = re.sub(ur'[^a-zA-Z0-9_\-\.]', '_', os.path.basename(infname))
+        self.fastqinfilename = re.sub(r'[^a-zA-Z0-9_\-\.]', '_', os.path.basename(infname))
         # check that the symbolic link gets a proper ending, fastqc seems to ignore the given format otherwise
-        if 'fastq' in opts.informat:
+        if 'fastq' in self.opts.informat:
             # with fastq the .ext is ignored, but when a format is actually passed it must comply with fastqc's
             # accepted formats..
-            opts.informat = 'fastq'
-        elif not self.fastqinfilename.endswith(opts.informat):
-            self.fastqinfilename += '.%s' % opts.informat
+            self.opts.informat = 'fastq'
+        elif not self.fastqinfilename.endswith(self.opts.informat):
+            self.fastqinfilename += '.%s' % self.opts.informat
 
         # Build the Commandline from the given parameters
-        command_line = [opts.executable, '--outdir %s' % opts.outputdir]
-        if opts.contaminants != None:
-            command_line.append('--contaminants %s' % opts.contaminants)
-        if opts.limits != None:
-     command_line.append('--limits %s' % opts.limits)
+        command_line = [opts.executable, '--outdir %s' % self.opts.outputdir]
+        if self.opts.contaminants is not None:
+            command_line.append('--contaminants %s' % self.opts.contaminants)
+        if self.opts.limits is not None:
+            command_line.append('--limits %s' % self.opts.limits)
         command_line.append('--quiet')
-        command_line.append('--extract') # to access the output text file
- if type[-1] != "gzip":
-            command_line.append('-f %s' % opts.informat)
- else:
-     self.fastqinfilename += ".gz"
+        command_line.append('--extract')  # to access the output text file
+        if type[-1] != "gzip":
+            command_line.append('-f %s' % self.opts.informat)
+        else:
+            self.fastqinfilename += ".gz"
         command_line.append(self.fastqinfilename)
         self.command_line = ' '.join(command_line)
 
@@ -110,30 +108,30 @@
         '''
 
         # retrieve html file
-        result_file = glob.glob(opts.outputdir + '/*html')
+        result_file = glob.glob(self.opts.outputdir + '/*html')
         with open(result_file[0], 'rb') as fsrc:
             with open(self.opts.htmloutput, 'wb') as fdest:
                 shutil.copyfileobj(fsrc, fdest)
 
         # retrieve text file
-        text_file = glob.glob(opts.outputdir + '/*/fastqc_data.txt')
+        text_file = glob.glob(self.opts.outputdir + '/*/fastqc_data.txt')
         with open(text_file[0], 'rb') as fsrc:
             with open(self.opts.textoutput, 'wb') as fdest:
                 shutil.copyfileobj(fsrc, fdest)
 
     def run_fastqc(self):
         '''
-        Executes FastQC. Make sure the mandatory import parameters input, inputfilename, outputdir and htmloutput have been specified in the options (opts)
+        Executes FastQC. Make sure the mandatory import parameters input, inputfilename, outputdir and htmloutput have been specified in the options
         '''
 
         # Create a log file
-        dummy,tlog = tempfile.mkstemp(prefix='rgFastQC',suffix=".log",dir=self.opts.outputdir)
+        dummy, tlog = tempfile.mkstemp(prefix='rgFastQC', suffix=".log", dir=self.opts.outputdir)
         sout = open(tlog, 'w')
 
         self.prepare_command_line()
         sout.write(self.command_line)
         sout.write('\n')
-        sout.write("Creating symlink\n") # between the input (.dat) file and the given input file name
+        sout.write("Creating symlink\n")  # between the input (.dat) file and the given input file name
         os.symlink(self.opts.input, self.fastqinfilename)
         sout.write("check_call\n")
         subprocess.check_call(self.command_line, shell=True)
@@ -142,6 +140,7 @@
         sout.write("Finished")
         sout.close()
 
+
 if __name__ == '__main__':
     op = optparse.OptionParser()
     op.add_option('-i', '--input', default=None)
@@ -156,9 +155,9 @@
     op.add_option('-e', '--executable', default='fastqc')
     opts, args = op.parse_args()
 
-    assert opts.input != None
-    assert opts.inputfilename != None
-    assert opts.htmloutput != None
+    assert opts.input is not None
+    assert opts.inputfilename is not None
+    assert opts.htmloutput is not None
     if not os.path.exists(opts.outputdir):
         os.makedirs(opts.outputdir)
 
b
diff -r 3a458e268066 -r a00a6402d09a rgFastQC.xml
--- a/rgFastQC.xml Wed Nov 02 16:12:51 2016 -0400
+++ b/rgFastQC.xml Wed Feb 08 12:43:43 2017 -0500
[
@@ -10,26 +10,26 @@
         <regex match="Exception:" />
     </stdio>
     <command><![CDATA[
-        python '$__tool_directory__'/rgFastQC.py
-        -i "$input_file"
-        -d "$html_file.files_path"
-        -o "$html_file"
-        -t "$text_file"
-        -f "$input_file.ext"
-        -j "$input_file.name"
-        #if $contaminants.dataset and str($contaminants) > ''
-            -c "$contaminants"
-        #end if
-        #if $limits.dataset and str($limits) > ''
-            -l "$limits"
-        #end if
+        python '${__tool_directory__}/rgFastQC.py'
+            -i '$input_file'
+            -d '${html_file.files_path}'
+            -o '$html_file'
+            -t '$text_file'
+            -f '${input_file.ext}'
+            -j '${input_file.name}'
+            #if $contaminants.dataset and str($contaminants) > ''
+                -c '$contaminants'
+            #end if
+            #if $limits.dataset and str($limits) > ''
+                -l '$limits'
+            #end if
     ]]></command>
     <inputs>
-        <param format="fastqsanger,fastq,bam,sam" name="input_file" type="data" label="Short read data from your current history" />
+        <param format="fastq,fastq.gz,fastq.bz2,bam,sam" name="input_file" type="data" label="Short read data from your current history" />
         <param name="contaminants" type="data" format="tabular" optional="true" label="Contaminant list"
-            help="tab delimited file with 2 columns: name and sequence.  For example: Illumina Small RNA RT Primer CAAGCAGAAGACGGCATACGA"/>
+               help="tab delimited file with 2 columns: name and sequence.  For example: Illumina Small RNA RT Primer CAAGCAGAAGACGGCATACGA" />
         <param name="limits" type="data" format="txt" optional="true" label="Submodule and Limit specifing file"
-            help="a file that specifies which submodules are to be executed (default=all) and also specifies the thresholds for the each submodules warning parameter" />
+               help="a file that specifies which submodules are to be executed (default=all) and also specifies the thresholds for the each submodules warning parameter" />
     </inputs>
     <outputs>
         <data format="html" name="html_file" label="${tool.name} on ${on_string}: Webpage" />
@@ -49,14 +49,19 @@
             <output name="text_file" file="fastqc_data2.txt" ftype="txt" compare="sim_size"/>
         </test>
         <test>
-            <param name="input_file" value="1000gsample.fastq.gz" />
+            <param name="input_file" value="1000gsample.fastq.gz" ftype="fastq.gz" />
+            <param name="contaminants" value="fastqc_contaminants.txt" ftype="tabular" />
+            <output name="html_file" file="fastqc_report.html" ftype="html" lines_diff="100"/>
+            <output name="text_file" file="fastqc_data.txt" ftype="txt" lines_diff="100"/>
+        </test>
+        <test>
+            <param name="input_file" value="1000gsample.fastq.bz2" ftype="fastq.bz2" />
             <param name="contaminants" value="fastqc_contaminants.txt" ftype="tabular" />
             <output name="html_file" file="fastqc_report.html" ftype="html" lines_diff="100"/>
             <output name="text_file" file="fastqc_data.txt" ftype="txt" lines_diff="100"/>
         </test>
     </tests>
     <help>
-
 .. class:: infomark
 
 **Purpose**
@@ -69,16 +74,14 @@
 
 The main functions of FastQC are:
 
-- Import of data from BAM, SAM or FastQ/FastQ.gz files (any variant), 
+- Import of data from BAM, SAM or FastQ/FastQ.gz files (any variant),
 - Providing a quick overview to tell you in which areas there may be problems
 - Summary graphs and tables to quickly assess your data
 - Export of results to an HTML based permanent report
 - Offline operation to allow automated generation of reports without running the interactive application
 
-
 -----
 
-
 .. class:: infomark
 
 **FastQC**
@@ -123,11 +126,10 @@
 All except Basic Statistics and Overrepresented sequences are plots.
  .. _FastQC: http://www.bioinformatics.bbsrc.ac.uk/projects/fastqc/
  .. _Picard-tools: http://picard.sourceforge.net/index.shtml
-
     </help>
     <citations>
         <citation type="bibtex">
-        @ARTICLE{andrews_s,
+        @unpublished{andrews_s,
             author = {Andrews, S.},
             keywords = {bioinformatics, ngs, qc},
             priority = {2},
b
diff -r 3a458e268066 -r a00a6402d09a test-data/1000gsample.fastq.bz2
b
Binary file test-data/1000gsample.fastq.bz2 has changed
b
diff -r 3a458e268066 -r a00a6402d09a test-data/fastqc_contaminants.txt
--- a/test-data/fastqc_contaminants.txt Wed Nov 02 16:12:51 2016 -0400
+++ b/test-data/fastqc_contaminants.txt Wed Feb 08 12:43:43 2017 -0500
[
b"@@ -1,170 +1,170 @@\n-# This file contains a list of potential contaminants which are\r\n-# frequently found in high throughput sequencing reactions.  These\r\n-# are mostly sequences of adapters / primers used in the various\r\n-# sequencing chemistries.\r\n-# \r\n-# Please DO NOT rely on these sequences to design your own oligos, some\r\n-# of them are truncated at ambiguous positions, and none of them are\r\n-# definitive sequences from the manufacturers so don't blame us if you\r\n-# try to use them and they don't work.\r\n-#\r\n-# You can add more sequences to the file by putting one line per entry\r\n-# and specifying a name[tab]sequence.  If the contaminant you add is \r\n-# likely to be of use to others please consider sending it to the FastQ\r\n-# authors, either via a bug report at www.bioinformatics.bbsrc.ac.uk/bugzilla/\r\n-# or by directly emailing simon.andrews@bbsrc.ac.uk so other users of\r\n-# the program can benefit.\r\n-\r\n-Illumina Single End Apapter 1\t\t\t\t\tACACTCTTTCCCTACACGACGCTGTTCCATCT\r\n-Illumina Single End Apapter 2\t\t\t\t\tCAAGCAGAAGACGGCATACGAGCTCTTCCGATCT\r\n-Illumina Single End PCR Primer 1\t\t\t\tAATGATACGGCGACCACCGAGATCTACACTCTTTCCCTACACGACGCTCTTCCGATCT\r\n-Illumina Single End PCR Primer 2\t\t\t\tCAAGCAGAAGACGGCATACGAGCTCTTCCGATCT\r\n-Illumina Single End Sequencing Primer\t\t\tACACTCTTTCCCTACACGACGCTCTTCCGATCT\r\n-\r\n-Illumina Paired End Adapter 1\t\t\t\t\tACACTCTTTCCCTACACGACGCTCTTCCGATCT\r\n-Illumina Paired End Adapter 2\t\t\t\t\tCTCGGCATTCCTGCTGAACCGCTCTTCCGATCT\r\n-Illumina Paried End PCR Primer 1\t\t\t\tAATGATACGGCGACCACCGAGATCTACACTCTTTCCCTACACGACGCTCTTCCGATCT\r\n-Illumina Paired End PCR Primer 2\t\t\t\tCAAGCAGAAGACGGCATACGAGATCGGTCTCGGCATTCCTGCTGAACCGCTCTTCCGATCT\r\n-Illumina Paried End Sequencing Primer 1\t\t\tACACTCTTTCCCTACACGACGCTCTTCCGATCT\r\n-Illumina Paired End Sequencing Primer 2\t\t\tCGGTCTCGGCATTCCTACTGAACCGCTCTTCCGATCT\r\n-\r\n-Illumina DpnII expression Adapter 1\t\t\t\tACAGGTTCAGAGTTCTACAGTCCGAC\r\n-Illumina DpnII expression Adapter 2\t\t\t\tCAAGCAGAAGACGGCATACGA\r\n-Illumina DpnII expression PCR Primer 1\t\t\tCAAGCAGAAGACGGCATACGA\r\n-Illumina DpnII expression PCR Primer 2\t\t\tAATGATACGGCGACCACCGACAGGTTCAGAGTTCTACAGTCCGA\r\n-Illumina DpnII expression Sequencing Primer\t\tCGACAGGTTCAGAGTTCTACAGTCCGACGATC\r\n-\r\n-Illumina NlaIII expression Adapter 1\t\t\tACAGGTTCAGAGTTCTACAGTCCGACATG\r\n-Illumina NlaIII expression Adapter 2\t\t\tCAAGCAGAAGACGGCATACGA\r\n-Illumina NlaIII expression PCR Primer 1\t\t\tCAAGCAGAAGACGGCATACGA\r\n-Illumina NlaIII expression PCR Primer 2\t\t\tAATGATACGGCGACCACCGACAGGTTCAGAGTTCTACAGTCCGA\r\n-Illumina NlaIII expression Sequencing Primer\tCCGACAGGTTCAGAGTTCTACAGTCCGACATG\r\n-\r\n-Illumina Small RNA Adapter 1\t\t\t\t\tGTTCAGAGTTCTACAGTCCGACGATC\r\n-Illumina Small RNA Adapter 2\t\t\t\t\tTCGTATGCCGTCTTCTGCTTGT\r\n-Illumina Small RNA RT Primer\t\t\t\t\tCAAGCAGAAGACGGCATACGA\r\n-Illumina Small RNA PCR Primer 1\t\t\t\t\tCAAGCAGAAGACGGCATACGA\r\n-Illumina Small RNA PCR Primer 2\t\t\t\t\tAATGATACGGCGACCACCGACAGGTTCAGAGTTCTACAGTCCGA\r\n-Illumina Small RNA Sequencing Primer\t\t\tCGACAGGTTCAGAGTTCTACAGTCCGACGATC\r\n-\r\n-Illumina Multiplexing Adapter 1\t\t\t\t\tGATCGGAAGAGCACACGTCT\r\n-Illumina Multiplexing Adapter 2\t\t\t\t\tACACTCTTTCCCTACACGACGCTCTTCCGATCT\r\n-Illumina Multiplexing PCR Primer 1.01\t\t\tAATGATACGGCGACCACCGAGATCTACACTCTTTCCCTACACGACGCTCTTCCGATCT\r\n-Illumina Multiplexing PCR Primer 2.01\t\t\tGTGACTGGAGTTCAGACGTGTGCTCTTCCGATCT\r\n-Illumina Multiplexing Read1 Sequencing Primer\tACACTCTTTCCCTACACGACGCTCTTCCGATCT\r\n-Illumina Multiplexing Index Sequencing Primer\tGATCGGAAGAGCACACGTCTGAACTCCAGTCAC\r\n-Illumina Multiplexing Read2 Sequencing Primer\tGTGACTGGAGTTCAGACGTGTGCTCTTCCGATCT\r\n-\r\n-Illumina PCR Primer Index 1\t\t\t\t\t\tCAAGCAGAAGACGGCATACGAGATCGTGATGTGACTGGAGTTC\r\n-Illumina PCR Primer Index 2\t\t\t\t\t\tCAAGCAGAAGACGGCATACGAGATACATCGGTGACTGGAGTTC\r\n-Illumina PCR Primer Index 3\t\t\t\t\t\tCAAGCAGAAGACGGCATACGAGATGCCTAAGTGACTGGAGTTC\r\n-Illumina PCR Primer Index 4\t\t\t\t\t\tCAAGCAGAAGACGGCATACGAGATTGGTCAGTGACTGGAGTTC\r\n-Illumina PCR Primer Index 5\t\t\t\t\t\tCAAGCAGAAGACGGCATACGAGATCACTGTGTGACTGGAGTTC\r\n-Illumina PCR Primer Index 6\t\t\t\t\t\tCAAGCAGAAGACGGCATACGAGATATTGGCGTGACTGGAGTTC\r\n-Illumina PCR Prime"..b"AAGGTGACTGGAGTTCCTTGGCACCCGAGAATTCCA\n+RNA PCR Primer, Index 13\t\t\t\t\t\tCAAGCAGAAGACGGCATACGAGATTTGACTGTGACTGGAGTTCCTTGGCACCCGAGAATTCCA\n+RNA PCR Primer, Index 14\t\t\t\t\t\tCAAGCAGAAGACGGCATACGAGATGGAACTGTGACTGGAGTTCCTTGGCACCCGAGAATTCCA\n+RNA PCR Primer, Index 15\t\t\t\t\t\tCAAGCAGAAGACGGCATACGAGATTGACATGTGACTGGAGTTCCTTGGCACCCGAGAATTCCA\n+RNA PCR Primer, Index 16\t\t\t\t\t\tCAAGCAGAAGACGGCATACGAGATGGACGGGTGACTGGAGTTCCTTGGCACCCGAGAATTCCA\n+RNA PCR Primer, Index 17\t\t\t\t\t\tCAAGCAGAAGACGGCATACGAGATCTCTACGTGACTGGAGTTCCTTGGCACCCGAGAATTCCA\n+RNA PCR Primer, Index 18\t\t\t\t\t\tCAAGCAGAAGACGGCATACGAGATGCGGACGTGACTGGAGTTCCTTGGCACCCGAGAATTCCA\n+RNA PCR Primer, Index 19\t\t\t\t\t\tCAAGCAGAAGACGGCATACGAGATTTTCACGTGACTGGAGTTCCTTGGCACCCGAGAATTCCA\n+RNA PCR Primer, Index 20\t\t\t\t\t\tCAAGCAGAAGACGGCATACGAGATGGCCACGTGACTGGAGTTCCTTGGCACCCGAGAATTCCA\n+RNA PCR Primer, Index 21\t\t\t\t\t\tCAAGCAGAAGACGGCATACGAGATCGAAACGTGACTGGAGTTCCTTGGCACCCGAGAATTCCA\n+RNA PCR Primer, Index 22\t\t\t\t\t\tCAAGCAGAAGACGGCATACGAGATCGTACGGTGACTGGAGTTCCTTGGCACCCGAGAATTCCA\n+RNA PCR Primer, Index 23\t\t\t\t\t\tCAAGCAGAAGACGGCATACGAGATCCACTCGTGACTGGAGTTCCTTGGCACCCGAGAATTCCA\n+RNA PCR Primer, Index 24\t\t\t\t\t\tCAAGCAGAAGACGGCATACGAGATGCTACCGTGACTGGAGTTCCTTGGCACCCGAGAATTCCA\n+RNA PCR Primer, Index 25\t\t\t\t\t\tCAAGCAGAAGACGGCATACGAGATATCAGTGTGACTGGAGTTCCTTGGCACCCGAGAATTCCA\n+RNA PCR Primer, Index 26\t\t\t\t\t\tCAAGCAGAAGACGGCATACGAGATGCTCATGTGACTGGAGTTCCTTGGCACCCGAGAATTCCA\n+RNA PCR Primer, Index 27\t\t\t\t\t\tCAAGCAGAAGACGGCATACGAGATAGGAATGTGACTGGAGTTCCTTGGCACCCGAGAATTCCA\n+RNA PCR Primer, Index 28\t\t\t\t\t\tCAAGCAGAAGACGGCATACGAGATCTTTTGGTGACTGGAGTTCCTTGGCACCCGAGAATTCCA\n+RNA PCR Primer, Index 29\t\t\t\t\t\tCAAGCAGAAGACGGCATACGAGATTAGTTGGTGACTGGAGTTCCTTGGCACCCGAGAATTCCA\n+RNA PCR Primer, Index 30\t\t\t\t\t\tCAAGCAGAAGACGGCATACGAGATCCGGTGGTGACTGGAGTTCCTTGGCACCCGAGAATTCCA\n+RNA PCR Primer, Index 31\t\t\t\t\t\tCAAGCAGAAGACGGCATACGAGATATCGTGGTGACTGGAGTTCCTTGGCACCCGAGAATTCCA\n+RNA PCR Primer, Index 32\t\t\t\t\t\tCAAGCAGAAGACGGCATACGAGATTGAGTGGTGACTGGAGTTCCTTGGCACCCGAGAATTCCA\n+RNA PCR Primer, Index 33\t\t\t\t\t\tCAAGCAGAAGACGGCATACGAGATCGCCTGGTGACTGGAGTTCCTTGGCACCCGAGAATTCCA\n+RNA PCR Primer, Index 34\t\t\t\t\t\tCAAGCAGAAGACGGCATACGAGATGCCATGGTGACTGGAGTTCCTTGGCACCCGAGAATTCCA\n+RNA PCR Primer, Index 35\t\t\t\t\t\tCAAGCAGAAGACGGCATACGAGATAAAATGGTGACTGGAGTTCCTTGGCACCCGAGAATTCCA\n+RNA PCR Primer, Index 36\t\t\t\t\t\tCAAGCAGAAGACGGCATACGAGATTGTTGGGTGACTGGAGTTCCTTGGCACCCGAGAATTCCA\n+RNA PCR Primer, Index 37\t\t\t\t\t\tCAAGCAGAAGACGGCATACGAGATATTCCGGTGACTGGAGTTCCTTGGCACCCGAGAATTCCA\n+RNA PCR Primer, Index 38\t\t\t\t\t\tCAAGCAGAAGACGGCATACGAGATAGCTAGGTGACTGGAGTTCCTTGGCACCCGAGAATTCCA\n+RNA PCR Primer, Index 39\t\t\t\t\t\tCAAGCAGAAGACGGCATACGAGATGTATAGGTGACTGGAGTTCCTTGGCACCCGAGAATTCCA\n+RNA PCR Primer, Index 40\t\t\t\t\t\tCAAGCAGAAGACGGCATACGAGATTCTGAGGTGACTGGAGTTCCTTGGCACCCGAGAATTCCA\n+RNA PCR Primer, Index 41\t\t\t\t\t\tCAAGCAGAAGACGGCATACGAGATGTCGTCGTGACTGGAGTTCCTTGGCACCCGAGAATTCCA\n+RNA PCR Primer, Index 42\t\t\t\t\t\tCAAGCAGAAGACGGCATACGAGATCGATTAGTGACTGGAGTTCCTTGGCACCCGAGAATTCCA\n+RNA PCR Primer, Index 43\t\t\t\t\t\tCAAGCAGAAGACGGCATACGAGATGCTGTAGTGACTGGAGTTCCTTGGCACCCGAGAATTCCA\n+RNA PCR Primer, Index 44\t\t\t\t\t\tCAAGCAGAAGACGGCATACGAGATATTATAGTGACTGGAGTTCCTTGGCACCCGAGAATTCCA\n+RNA PCR Primer, Index 45\t\t\t\t\t\tCAAGCAGAAGACGGCATACGAGATGAATGAGTGACTGGAGTTCCTTGGCACCCGAGAATTCCA\n+RNA PCR Primer, Index 46\t\t\t\t\t\tCAAGCAGAAGACGGCATACGAGATTCGGGAGTGACTGGAGTTCCTTGGCACCCGAGAATTCCA\n+RNA PCR Primer, Index 47\t\t\t\t\t\tCAAGCAGAAGACGGCATACGAGATCTTCGAGTGACTGGAGTTCCTTGGCACCCGAGAATTCCA\n+RNA PCR Primer, Index 48\t\t\t\t\t\tCAAGCAGAAGACGGCATACGAGATTGCCGAGTGACTGGAGTTCCTTGGCACCCGAGAATTCCA\n+\n+ABI Dynabead EcoP Oligo\t\t\t\t\t\t\tCTGATCTAGAGGTACCGGATCCCAGCAGT\n+ABI Solid3 Adapter A\t\t\t\t\t\t\tCTGCCCCGGGTTCCTCATTCTCTCAGCAGCATG\n+ABI Solid3 Adapter B\t\t\t\t\t\t\tCCACTACGCCTCCGCTTTCCTCTCTATGGGCAGTCGGTGAT\n+ABI Solid3 5' AMP Primer\t\t\t\t\t\tCCACTACGCCTCCGCTTTCCTCTCTATG\n+ABI Solid3 3' AMP Primer\t\t\t\t\t\tCTGCCCCGGGTTCCTCATTCT\n+ABI Solid3 EF1 alpha Sense Primer\t\t\t\tCATGTGTGTTGAGAGCTTC\n+ABI Solid3 EF1 alpha Antisense Primer\t\t\tGAAAACCAAAGTGGTCCAC\n+ABI Solid3 GAPDH Forward Primer\t\t\t\t\tTTAGCACCCCTGGCCAAGG\n+ABI Solid3 GAPDH Reverse Primer\t\t\t\t\tCTTACTCCTTGGAGGCCATG\n"
b
diff -r 3a458e268066 -r a00a6402d09a test-data/fastqc_customlimits.txt
--- a/test-data/fastqc_customlimits.txt Wed Nov 02 16:12:51 2016 -0400
+++ b/test-data/fastqc_customlimits.txt Wed Feb 08 12:43:43 2017 -0500
b
@@ -1,84 +1,84 @@
-# For each of the modules you can choose to not run that
-# module at all by setting the value below to 1 for the
-# modules you want to remove.
-duplication  ignore  1
-kmer  ignore  0
-n_content  ignore  0
-overrepresented  ignore  0
-quality_base  ignore  0
-sequence  ignore  0
-gc_sequence ignore  0
-quality_sequence ignore 1
-tile ignore 1
-sequence_length ignore 0
-adapter ignore 0
-
-# For the duplication module the value is the percentage
-# remaining after deduplication.  Measured levels below
-# these limits trigger the warning / error.
-duplication warn 70
-duplication error 50
-
-# For the kmer module the filter is on the -log10 binomial
-# pvalue for the most significant Kmer, so 5 would be 
-# 10^-5 = p<0.00001
-kmer warn 2
-kmer error 5
-
-# For the N module the filter is on the percentage of Ns
-# at any position in the library
-n_content warn 5
-n_content error 20
-
-# For the overrepresented seqs the warn value sets the
-# threshold for the overrepresented sequences to be reported
-# at all as the proportion of the library which must be seen
-# as a single sequence
-overrepresented warn 0.001
-overrepresented error 1
-
-# The per base quality filter uses two values, one for the value
-# of the lower quartile, and the other for the value of the
-# median quality.  Failing either of these will trigger the alert
-quality_base_lower warn 10
-quality_base_lower error 5
-quality_base_median warn 50
-quality_base_median error 20
-
-# The per base sequence content module tests the maximum deviation
-# between A and T or C and G
-sequence warn 2
-sequence error 5
-
-# The per sequence GC content tests the maximum deviation between
-# the theoretical distribution and the real distribution
-gc_sequence warn 15
-gc_sequence error 30
-
-# The per sequence quality module tests the phred score which is
-# most frequently observed
-quality_sequence warn 27
-quality_sequence error 20
-
-# The per tile module tests the maximum phred score loss between 
-# and individual tile and the average for that base across all tiles
-tile warn 5
-tile error 10
-
-# The sequence length module tests are binary, so the values here
-# simply turn them on or off.  The actual tests warn if you have
-# sequences of different length, and error if you have sequences
-# of zero length.
-
-sequence_length warn 1
-sequence_length error 1
-
-# The adapter module's warnings and errors are based on the 
-# percentage of reads in the library which have been observed
-# to contain an adapter associated Kmer at any point
-
-adapter warn 5
-adapter error 10
-
-
+# For each of the modules you can choose to not run that
+# module at all by setting the value below to 1 for the
+# modules you want to remove.
+duplication  ignore  1
+kmer  ignore  0
+n_content  ignore  0
+overrepresented  ignore  0
+quality_base  ignore  0
+sequence  ignore  0
+gc_sequence ignore  0
+quality_sequence ignore 1
+tile ignore 1
+sequence_length ignore 0
+adapter ignore 0
+
+# For the duplication module the value is the percentage
+# remaining after deduplication.  Measured levels below
+# these limits trigger the warning / error.
+duplication warn 70
+duplication error 50
+
+# For the kmer module the filter is on the -log10 binomial
+# pvalue for the most significant Kmer, so 5 would be 
+# 10^-5 = p<0.00001
+kmer warn 2
+kmer error 5
+
+# For the N module the filter is on the percentage of Ns
+# at any position in the library
+n_content warn 5
+n_content error 20
+
+# For the overrepresented seqs the warn value sets the
+# threshold for the overrepresented sequences to be reported
+# at all as the proportion of the library which must be seen
+# as a single sequence
+overrepresented warn 0.001
+overrepresented error 1
+
+# The per base quality filter uses two values, one for the value
+# of the lower quartile, and the other for the value of the
+# median quality.  Failing either of these will trigger the alert
+quality_base_lower warn 10
+quality_base_lower error 5
+quality_base_median warn 50
+quality_base_median error 20
+
+# The per base sequence content module tests the maximum deviation
+# between A and T or C and G
+sequence warn 2
+sequence error 5
+
+# The per sequence GC content tests the maximum deviation between
+# the theoretical distribution and the real distribution
+gc_sequence warn 15
+gc_sequence error 30
+
+# The per sequence quality module tests the phred score which is
+# most frequently observed
+quality_sequence warn 27
+quality_sequence error 20
+
+# The per tile module tests the maximum phred score loss between 
+# and individual tile and the average for that base across all tiles
+tile warn 5
+tile error 10
+
+# The sequence length module tests are binary, so the values here
+# simply turn them on or off.  The actual tests warn if you have
+# sequences of different length, and error if you have sequences
+# of zero length.
+
+sequence_length warn 1
+sequence_length error 1
+
+# The adapter module's warnings and errors are based on the 
+# percentage of reads in the library which have been observed
+# to contain an adapter associated Kmer at any point
+
+adapter warn 5
+adapter error 10
+
+
 
\ No newline at end of file
b
diff -r 3a458e268066 -r a00a6402d09a test-data/fastqc_report.html
--- a/test-data/fastqc_report.html Wed Nov 02 16:12:51 2016 -0400
+++ b/test-data/fastqc_report.html Wed Feb 08 12:43:43 2017 -0500
[
b'@@ -1,187 +1,187 @@\n-<html><head><title>1000gsample.fastq FastQC Report</title><style type="text/css">\r\n- @media screen {\r\n-  div.summary {\r\n-    width: 18em;\r\n-    position:fixed;\r\n-    top: 3em;\r\n-    margin:1em 0 0 1em;\r\n-  }\r\n-  \r\n-  div.main {\r\n-    display:block;\r\n-    position:absolute;\r\n-    overflow:auto;\r\n-    height:auto;\r\n-    width:auto;\r\n-    top:4.5em;\r\n-    bottom:2.3em;\r\n-    left:18em;\r\n-    right:0;\r\n-    border-left: 1px solid #CCC;\r\n-    padding:0 0 0 1em;\r\n-    background-color: white;\r\n-    z-index:1;\r\n-  }\r\n-  \r\n-  div.header {\r\n-    background-color: #EEE;\r\n-    border:0;\r\n-    margin:0;\r\n-    padding: 0.5em;\r\n-    font-size: 200%;\r\n-    font-weight: bold;\r\n-    position:fixed;\r\n-    width:100%;\r\n-    top:0;\r\n-    left:0;\r\n-    z-index:2;\r\n-  }\r\n-\r\n-  div.footer {\r\n-    background-color: #EEE;\r\n-    border:0;\r\n-    margin:0;\r\n-\tpadding:0.5em;\r\n-    height: 1.3em;\r\n-\toverflow:hidden;\r\n-    font-size: 100%;\r\n-    font-weight: bold;\r\n-    position:fixed;\r\n-    bottom:0;\r\n-    width:100%;\r\n-    z-index:2;\r\n-  }\r\n-  \r\n-  img.indented {\r\n-    margin-left: 3em;\r\n-  }\r\n- }\r\n- \r\n- @media print {\r\n-\timg {\r\n-\t\tmax-width:100% !important;\r\n-\t\tpage-break-inside: avoid;\r\n-\t}\r\n-\th2, h3 {\r\n-\t\tpage-break-after: avoid;\r\n-\t}\r\n-\tdiv.header {\r\n-      background-color: #FFF;\r\n-    }\r\n-\t\r\n- }\r\n- \r\n- body {    \r\n-  font-family: sans-serif;   \r\n-  color: #000;   \r\n-  background-color: #FFF;\r\n-  border: 0;\r\n-  margin: 0;\r\n-  padding: 0;\r\n-  }\r\n-  \r\n-  div.header {\r\n-  border:0;\r\n-  margin:0;\r\n-  padding: 0.5em;\r\n-  font-size: 200%;\r\n-  font-weight: bold;\r\n-  width:100%;\r\n-  }    \r\n-  \r\n-  #header_title {\r\n-  display:inline-block;\r\n-  float:left;\r\n-  clear:left;\r\n-  }\r\n-  #header_filename {\r\n-  display:inline-block;\r\n-  float:right;\r\n-  clear:right;\r\n-  font-size: 50%;\r\n-  margin-right:2em;\r\n-  text-align: right;\r\n-  }\r\n-\r\n-  div.header h3 {\r\n-  font-size: 50%;\r\n-  margin-bottom: 0;\r\n-  }\r\n-  \r\n-  div.summary ul {\r\n-  padding-left:0;\r\n-  list-style-type:none;\r\n-  }\r\n-  \r\n-  div.summary ul li img {\r\n-  margin-bottom:-0.5em;\r\n-  margin-top:0.5em;\r\n-  }\r\n-\t  \r\n-  div.main {\r\n-  background-color: white;\r\n-  }\r\n-      \r\n-  div.module {\r\n-  padding-bottom:1.5em;\r\n-  padding-top:1.5em;\r\n-  }\r\n-\t  \r\n-  div.footer {\r\n-  background-color: #EEE;\r\n-  border:0;\r\n-  margin:0;\r\n-  padding: 0.5em;\r\n-  font-size: 100%;\r\n-  font-weight: bold;\r\n-  width:100%;\r\n-  }\r\n-\r\n-\r\n-  a {\r\n-  color: #000080;\r\n-  }\r\n-\r\n-  a:hover {\r\n-  color: #800000;\r\n-  }\r\n-      \r\n-  h2 {\r\n-  color: #800000;\r\n-  padding-bottom: 0;\r\n-  margin-bottom: 0;\r\n-  clear:left;\r\n-  }\r\n-\r\n-  table { \r\n-  margin-left: 3em;\r\n-  text-align: center;\r\n-  }\r\n-  \r\n-  th { \r\n-  text-align: center;\r\n-  background-color: #000080;\r\n-  color: #FFF;\r\n-  padding: 0.4em;\r\n-  }      \r\n-  \r\n-  td { \r\n-  font-family: monospace; \r\n-  text-align: left;\r\n-  background-color: #EEE;\r\n-  color: #000;\r\n-  padding: 0.4em;\r\n-  }\r\n-\r\n-  img {\r\n-  padding-top: 0;\r\n-  margin-top: 0;\r\n-  border-top: 0;\r\n-  }\r\n-\r\n-  \r\n-  p {\r\n-  padding-top: 0;\r\n-  margin-top: 0;\r\n-  }\r\n+<html><head><title>1000gsample.fastq FastQC Report</title><style type="text/css">\n+ @media screen {\n+  div.summary {\n+    width: 18em;\n+    position:fixed;\n+    top: 3em;\n+    margin:1em 0 0 1em;\n+  }\n+  \n+  div.main {\n+    display:block;\n+    position:absolute;\n+    overflow:auto;\n+    height:auto;\n+    width:auto;\n+    top:4.5em;\n+    bottom:2.3em;\n+    left:18em;\n+    right:0;\n+    border-left: 1px solid #CCC;\n+    padding:0 0 0 1em;\n+    background-color: white;\n+    z-index:1;\n+  }\n+  \n+  div.header {\n+    background-color: #EEE;\n+    border:0;\n+    margin:0;\n+    padding: 0.5em;\n+    font-size: 200%;\n+    font-weight: bold;\n+    position:fixed;\n+    width:100%;\n+    top:0;\n+    left:0;\n+    z-index:2;\n+  }\n+\n+  div.footer {\n+    background-color: #EEE;\n+    border:0;\n+    margin:0;\n+\tpadding:0.5em;\n+    height: 1.3em;\n+\toverflow:hidden;\n+    font-size: 100%;\n+    font-weight: bold;\n+    position:fixed;\n+    bottom:0;\n+    width:100%;\n+    z-'..b'Xtx+o/acs1pitD/987+X/GW9gHTbs7ifv2zczMzMb677w3NcO47aBwGraD/77x+effjD1z11P3Hv6sbPL//VW3spbjeutnrx3/uxX5v/x1flzX59/5+H9713a//7l/Rce3X/x8do/n3/mgdPfnH/+2w80vYK38lbeyltt8K0+/PPDV14u8NN+AweWmZmZ2eQnsMzMzMx6C6xF0Z8iNDMzMxNYH3VVqd+DZWZmZiaw+pdy0y0v+7rEYtJbzU6u1/tkVtkY7sPA6xRP9pFYGZ8nXaztvQ8D73OqVvHPjbDlvHxuTPJzo+m+2i5r6CtVGQmS8XnZ8flkqe3S/a7Ieye93hurd0LMmzR9Kel4L0VaeZ8nHe/k4v+Sh+/Dsndj+D4sZQXOpfjnRpPVx+dG6/ssG8St92Hf59X350bTbenjPmx6/318bjT9i9b37er7cyNwRsW/JEa6xa0inxtjD6wib5562SbpTQb4kDq+h+zASnqrYb5hZ38wxa3Uz5Mi0TOk1Qc9zBflmIPr1erjc2OAbzAjOS+fGz43mu6rIa0y3+gFVsdP0OzH7BbdLuEKrA0G1sBX5vq4JC6werL6/ia39v57fdaswPK5sanzarrKOJi1c4HV9zOcuv8LkPQg5qrV5ZHT1ArMuC0xbziewBryYbsBoqfL50nG7ervi/Iw/5/oSC5RDPPduqfPjabb1VPoBx6aKf51I/xMx15vV69fN6r3YX9fNwZ7Htt4Amuyz8EassyKPGg92LPEun8DSPp3aVsCa4Bv1T09KWrj92Hfz6XYlLWRuhrgU3Ey5zWGK1gDPBbf6+fGBu/DAZ672evnYeu5dGqPrQisYR5YzP4ZvYEDq2ON9XS7xhBYg30t7v55slOB5XPDeY05sHp9xtLalaRhLhJPILBq76shrTLtMf7A6v4mvaLZP2uQfQl3mMBK/f+3NvtQ2gD/T+EA37Zb78Nt/CbaWjyTqav+0Jj7sNfzmupPES4Gv9A4/O3q+6cjB364f7CH4IsQG/g9WGP+zU/Zl5QG+01dXZ4clv0RZp9sf7+bqvY5B2W5mHfY9+0a8j4cwGo6sl6tAT43+v4muvH7cDHR303V01Wlwb5uLKb7u8QC0TPY80QLPKK1MDMzM7OyxeYuMDMzMxNYZmZmZgLLzMzMTGCZmZmZmcAyMzMzE1hmZmZmAsvMzMzMBJaZmZmZwDIzMzMTWGZm0/mC2PzfNsn+j6D19J/1MDOBZWbjaoju/z2vvv/79iMMrC4fnsAyE1hmNv3AKvi9f2LpILDMTGCZWeHAarqyVX3hh3+vvn7re1t7w/BHGP/Kax9D+FYEXl6rRL5++P1oLDOBZWa7GFjVRqltpqa/xL+31qtBqa9crZzwrYj5OFsDK+lmCiwzgWVm0w+swLWlQEvF/NPsl3d/5fg36YnI+0jMTGCZ2UQCK+bltQ9+bUVgJT2EJ7DMTGCZ2WYCKxATI7+C1bGKBJaZCSwz6xpYwzwHq+/Aar3SFv/EqVol4zlY6spMYJnZjgbWIv2nCKv/KPKnCPsLrMhbEf/Tf+HbFfl+BJaZwDIzs/r0zCtXv8ndTGCZmVl+hLkTzExgmZkJLDMTWGZmZmYCy8zMzGw39w+cI8K4UYXsgAAAAABJRU5ErkJg" alt="Adapter graph" width="800" height="600"/></p></div><div class="module"><h2 id="M11"><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAFlUlEQVR42s2XCUzTVxzHybIs0IgCLYqyQ9RtmhjCNKKbikajYVc22NThNjYjeC0yWBESxAV1Ckw8QEUF5ChnS4FyFETucwWU+7ClHKKiImLI4nCz9bv3/pS7ra1HtM1Lm/b/fp/ve+93PQMABq9y6D/Bz+ANNvethWxPw3Xs3wx/YAb9Tn6j/700AeZc1qccrhGPw2UNkk8Fx9voIceX9Tcz6Hf62/B/PPrsCxNgzjW043iyGjheRkOWQRzFt2IH/Nl4DDFyHjJ6siDoSoZ/YwB2VuyEffpGzA5iK+izdA6d+8wCyHa+SYyEsj2N/jU/aaL0vbIf0sF2tA92oOVBG+ruN6CqrwZldypR0FuMnBuXkX49C5GyaGwq3ASLU2ZKOpfaoLb0EmDibmLC8TQq5/iw/vlIaA1xjxiyQTmaH7Sitr8ekr5qlN6pQP6tImTfyIXoeiYEnSmIlSfiooyHc20R8G84htUZq0FtUFvUpk4ChldO4H6sRzvKXdEw0ISmgRZc7a/DXwRccrscebcKIb5xCWndGeB3CsGTJyBCGoPQtnCcajlLjugk/qgPxO+1h7Eqyw7UFrWpbiemCKBbRlW7lrmgcaAZV/prUXm3CsW3y3D5VgGyenKQ2p2OpM5k8NoTEC6Nxtm2MJxsPoPAxhM4XB+AA1cPwbvmADyqvPFLpQdsM1aodoIVqlUAdRp6bgv5HzBbXHFXgqLbpci9mY/MnmykdIuQ2CFATHs8wqRRONN6ASeaTyOg8TgO1fnDl4C9anzhLvHCnkp3uJTvgXOJC7YUOWN+0nww/jTJMSevvsHs+DRlSOsZFPaW4NLNPOLpYgi70pBAwFHtcbhwLRKnW8/jeHMIOecgHKw7iv1XD2Jf9X78KtmHyNZoiOQi/FiyHZsJ+Ov87/DZZUesEq8H+4SxkjLUCmDinISPY74jcm4Oe3RyVyriO/iIksUS8EWEtJ5DUFMwjhIH86s7Ap8rfvCs9oGbxBO7KtwQ3hKBrgdd6H94D3ypgIAdsD7nc6wWb8DyzDWYy58HyhifJ8ZWT5NMoLGCJ48jsZ2COHkSCSkezl+LQHBLKI40BGJLsRPW5qzDskxbLE5bDBuRDWwzV5DV2SGwNhCdAx0Yed172AdeWyyWpa/ColQbzE1+H7MTLcEOmKagrAkCaAqlWWwZf6kqlMY8+gDZ3jXZazEz0Rym8TPUDg+yetl9Kca/HikeIUUmgEXizAnPml2YDsoaSduMAJrHaSrdWvw9AYcR8LBHu0m4eJtvqRGsDS4k8DlJFlPnxM0AZVHmmABSTGg+31GxW+XRAfi51AWztKxaI/zxELNytXDVoCzKHBNAKhotKrsr9zIe7Vq+G5wEs9EJi1I+hFDKx7zkuTrAk7XCGQGERZlTBLiSuN1Ltn2BcMEEeGF3PoaI8dzObFgJ3nsuuHoBqiNwLNgMu+x1ow9SByrsyoNC+ZiBPFb8h5LrhWrhqTKhTnD1R6BywuWZn0zYejq2FTuj/k7tKEz5RPlccLVOOBKG7DATtZO+yXNATW81npD3ZHhaux5wTWE4kohoktA0cWPOelT3SkZFDMNT9ICbwCJplvpEND4Vm8ZqNrJBJWJIT7h5Ioek5a+wRLRUcyoeX4y0GaMiaEjqCn9X8A62le0ADXGLYLbmYjS+HJtGTdf5TLUNa5E1Kc8+8K09iPkJVk8vx+MbEm1H8bTBTjDFF3lfMlmVNipLREt0a0gmt2TPIsKKZEv3Ki5TU2gZt8+1168lm9yU6noc1MO3FDkxYNojhpH+YW2Gnf5Nqbq2nHHMWPVbbZNuA6firQghpZt2TRHSSGwn/eScYPNnb8s1XUxoDFtGWpD6sAgrxSvhSi4juypJ31f6ExwLSNsl/BicAOMXczF5ba5mr83l9GWN/wE1f784zfWjGwAAAABJRU5ErkJg" alt="[OK]"/>Kmer Content</h2><p>No overrepresented Kmers</p></div></div><div class="footer">Produced by <a href="http://www.bioinformatics.babraham.ac.uk/projects/fastqc/">FastQC</a>  (version 0.11.4)</div></body></html>\n\\ No newline at end of file\n'
b
diff -r 3a458e268066 -r a00a6402d09a test-data/fastqc_report2.html
--- a/test-data/fastqc_report2.html Wed Nov 02 16:12:51 2016 -0400
+++ b/test-data/fastqc_report2.html Wed Feb 08 12:43:43 2017 -0500
[
b'@@ -1,187 +1,187 @@\n-<html><head><title>1000gsample.fastq FastQC Report</title><style type="text/css">\r\n- @media screen {\r\n-  div.summary {\r\n-    width: 18em;\r\n-    position:fixed;\r\n-    top: 3em;\r\n-    margin:1em 0 0 1em;\r\n-  }\r\n-  \r\n-  div.main {\r\n-    display:block;\r\n-    position:absolute;\r\n-    overflow:auto;\r\n-    height:auto;\r\n-    width:auto;\r\n-    top:4.5em;\r\n-    bottom:2.3em;\r\n-    left:18em;\r\n-    right:0;\r\n-    border-left: 1px solid #CCC;\r\n-    padding:0 0 0 1em;\r\n-    background-color: white;\r\n-    z-index:1;\r\n-  }\r\n-  \r\n-  div.header {\r\n-    background-color: #EEE;\r\n-    border:0;\r\n-    margin:0;\r\n-    padding: 0.5em;\r\n-    font-size: 200%;\r\n-    font-weight: bold;\r\n-    position:fixed;\r\n-    width:100%;\r\n-    top:0;\r\n-    left:0;\r\n-    z-index:2;\r\n-  }\r\n-\r\n-  div.footer {\r\n-    background-color: #EEE;\r\n-    border:0;\r\n-    margin:0;\r\n-\tpadding:0.5em;\r\n-    height: 1.3em;\r\n-\toverflow:hidden;\r\n-    font-size: 100%;\r\n-    font-weight: bold;\r\n-    position:fixed;\r\n-    bottom:0;\r\n-    width:100%;\r\n-    z-index:2;\r\n-  }\r\n-  \r\n-  img.indented {\r\n-    margin-left: 3em;\r\n-  }\r\n- }\r\n- \r\n- @media print {\r\n-\timg {\r\n-\t\tmax-width:100% !important;\r\n-\t\tpage-break-inside: avoid;\r\n-\t}\r\n-\th2, h3 {\r\n-\t\tpage-break-after: avoid;\r\n-\t}\r\n-\tdiv.header {\r\n-      background-color: #FFF;\r\n-    }\r\n-\t\r\n- }\r\n- \r\n- body {    \r\n-  font-family: sans-serif;   \r\n-  color: #000;   \r\n-  background-color: #FFF;\r\n-  border: 0;\r\n-  margin: 0;\r\n-  padding: 0;\r\n-  }\r\n-  \r\n-  div.header {\r\n-  border:0;\r\n-  margin:0;\r\n-  padding: 0.5em;\r\n-  font-size: 200%;\r\n-  font-weight: bold;\r\n-  width:100%;\r\n-  }    \r\n-  \r\n-  #header_title {\r\n-  display:inline-block;\r\n-  float:left;\r\n-  clear:left;\r\n-  }\r\n-  #header_filename {\r\n-  display:inline-block;\r\n-  float:right;\r\n-  clear:right;\r\n-  font-size: 50%;\r\n-  margin-right:2em;\r\n-  text-align: right;\r\n-  }\r\n-\r\n-  div.header h3 {\r\n-  font-size: 50%;\r\n-  margin-bottom: 0;\r\n-  }\r\n-  \r\n-  div.summary ul {\r\n-  padding-left:0;\r\n-  list-style-type:none;\r\n-  }\r\n-  \r\n-  div.summary ul li img {\r\n-  margin-bottom:-0.5em;\r\n-  margin-top:0.5em;\r\n-  }\r\n-\t  \r\n-  div.main {\r\n-  background-color: white;\r\n-  }\r\n-      \r\n-  div.module {\r\n-  padding-bottom:1.5em;\r\n-  padding-top:1.5em;\r\n-  }\r\n-\t  \r\n-  div.footer {\r\n-  background-color: #EEE;\r\n-  border:0;\r\n-  margin:0;\r\n-  padding: 0.5em;\r\n-  font-size: 100%;\r\n-  font-weight: bold;\r\n-  width:100%;\r\n-  }\r\n-\r\n-\r\n-  a {\r\n-  color: #000080;\r\n-  }\r\n-\r\n-  a:hover {\r\n-  color: #800000;\r\n-  }\r\n-      \r\n-  h2 {\r\n-  color: #800000;\r\n-  padding-bottom: 0;\r\n-  margin-bottom: 0;\r\n-  clear:left;\r\n-  }\r\n-\r\n-  table { \r\n-  margin-left: 3em;\r\n-  text-align: center;\r\n-  }\r\n-  \r\n-  th { \r\n-  text-align: center;\r\n-  background-color: #000080;\r\n-  color: #FFF;\r\n-  padding: 0.4em;\r\n-  }      \r\n-  \r\n-  td { \r\n-  font-family: monospace; \r\n-  text-align: left;\r\n-  background-color: #EEE;\r\n-  color: #000;\r\n-  padding: 0.4em;\r\n-  }\r\n-\r\n-  img {\r\n-  padding-top: 0;\r\n-  margin-top: 0;\r\n-  border-top: 0;\r\n-  }\r\n-\r\n-  \r\n-  p {\r\n-  padding-top: 0;\r\n-  margin-top: 0;\r\n-  }\r\n+<html><head><title>1000gsample.fastq FastQC Report</title><style type="text/css">\n+ @media screen {\n+  div.summary {\n+    width: 18em;\n+    position:fixed;\n+    top: 3em;\n+    margin:1em 0 0 1em;\n+  }\n+  \n+  div.main {\n+    display:block;\n+    position:absolute;\n+    overflow:auto;\n+    height:auto;\n+    width:auto;\n+    top:4.5em;\n+    bottom:2.3em;\n+    left:18em;\n+    right:0;\n+    border-left: 1px solid #CCC;\n+    padding:0 0 0 1em;\n+    background-color: white;\n+    z-index:1;\n+  }\n+  \n+  div.header {\n+    background-color: #EEE;\n+    border:0;\n+    margin:0;\n+    padding: 0.5em;\n+    font-size: 200%;\n+    font-weight: bold;\n+    position:fixed;\n+    width:100%;\n+    top:0;\n+    left:0;\n+    z-index:2;\n+  }\n+\n+  div.footer {\n+    background-color: #EEE;\n+    border:0;\n+    margin:0;\n+\tpadding:0.5em;\n+    height: 1.3em;\n+\toverflow:hidden;\n+    font-size: 100%;\n+    font-weight: bold;\n+    position:fixed;\n+    bottom:0;\n+    width:100%;\n+    z-'..b'Xtx+o/acs1pitD/987+X/GW9gHTbs7ifv2zczMzMb677w3NcO47aBwGraD/77x+effjD1z11P3Hv6sbPL//VW3spbjeutnrx3/uxX5v/x1flzX59/5+H9713a//7l/Rce3X/x8do/n3/mgdPfnH/+2w80vYK38lbeyltt8K0+/PPDV14u8NN+AweWmZmZ2eQnsMzMzMx6C6xF0Z8iNDMzMxNYH3VVqd+DZWZmZiaw+pdy0y0v+7rEYtJbzU6u1/tkVtkY7sPA6xRP9pFYGZ8nXaztvQ8D73OqVvHPjbDlvHxuTPJzo+m+2i5r6CtVGQmS8XnZ8flkqe3S/a7Ieye93hurd0LMmzR9Kel4L0VaeZ8nHe/k4v+Sh+/Dsndj+D4sZQXOpfjnRpPVx+dG6/ssG8St92Hf59X350bTbenjPmx6/318bjT9i9b37er7cyNwRsW/JEa6xa0inxtjD6wib5562SbpTQb4kDq+h+zASnqrYb5hZ38wxa3Uz5Mi0TOk1Qc9zBflmIPr1erjc2OAbzAjOS+fGz43mu6rIa0y3+gFVsdP0OzH7BbdLuEKrA0G1sBX5vq4JC6werL6/ia39v57fdaswPK5sanzarrKOJi1c4HV9zOcuv8LkPQg5qrV5ZHT1ArMuC0xbziewBryYbsBoqfL50nG7ervi/Iw/5/oSC5RDPPduqfPjabb1VPoBx6aKf51I/xMx15vV69fN6r3YX9fNwZ7Htt4Amuyz8EassyKPGg92LPEun8DSPp3aVsCa4Bv1T09KWrj92Hfz6XYlLWRuhrgU3Ey5zWGK1gDPBbf6+fGBu/DAZ672evnYeu5dGqPrQisYR5YzP4ZvYEDq2ON9XS7xhBYg30t7v55slOB5XPDeY05sHp9xtLalaRhLhJPILBq76shrTLtMf7A6v4mvaLZP2uQfQl3mMBK/f+3NvtQ2gD/T+EA37Zb78Nt/CbaWjyTqav+0Jj7sNfzmupPES4Gv9A4/O3q+6cjB364f7CH4IsQG/g9WGP+zU/Zl5QG+01dXZ4clv0RZp9sf7+bqvY5B2W5mHfY9+0a8j4cwGo6sl6tAT43+v4muvH7cDHR303V01Wlwb5uLKb7u8QC0TPY80QLPKK1MDMzM7OyxeYuMDMzMxNYZmZmZgLLzMzMTGCZmZmZmcAyMzMzE1hmZmZmAsvMzMzMBJaZmZmZwDIzMzMTWGZm0/mC2PzfNsn+j6D19J/1MDOBZWbjaoju/z2vvv/79iMMrC4fnsAyE1hmNv3AKvi9f2LpILDMTGCZWeHAarqyVX3hh3+vvn7re1t7w/BHGP/Kax9D+FYEXl6rRL5++P1oLDOBZWa7GFjVRqltpqa/xL+31qtBqa9crZzwrYj5OFsDK+lmCiwzgWVm0w+swLWlQEvF/NPsl3d/5fg36YnI+0jMTGCZ2UQCK+bltQ9+bUVgJT2EJ7DMTGCZ2WYCKxATI7+C1bGKBJaZCSwz6xpYwzwHq+/Aar3SFv/EqVol4zlY6spMYJnZjgbWIv2nCKv/KPKnCPsLrMhbEf/Tf+HbFfl+BJaZwDIzs/r0zCtXv8ndTGCZmVl+hLkTzExgmZkJLDMTWGZmZmYCy8zMzGw39w+cI8K4UYXsgAAAAABJRU5ErkJg" alt="Adapter graph" width="800" height="600"/></p></div><div class="module"><h2 id="M11"><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAFlUlEQVR42s2XCUzTVxzHybIs0IgCLYqyQ9RtmhjCNKKbikajYVc22NThNjYjeC0yWBESxAV1Ckw8QEUF5ChnS4FyFETucwWU+7ClHKKiImLI4nCz9bv3/pS7ra1HtM1Lm/b/fp/ve+93PQMABq9y6D/Bz+ANNvethWxPw3Xs3wx/YAb9Tn6j/700AeZc1qccrhGPw2UNkk8Fx9voIceX9Tcz6Hf62/B/PPrsCxNgzjW043iyGjheRkOWQRzFt2IH/Nl4DDFyHjJ6siDoSoZ/YwB2VuyEffpGzA5iK+izdA6d+8wCyHa+SYyEsj2N/jU/aaL0vbIf0sF2tA92oOVBG+ruN6CqrwZldypR0FuMnBuXkX49C5GyaGwq3ASLU2ZKOpfaoLb0EmDibmLC8TQq5/iw/vlIaA1xjxiyQTmaH7Sitr8ekr5qlN6pQP6tImTfyIXoeiYEnSmIlSfiooyHc20R8G84htUZq0FtUFvUpk4ChldO4H6sRzvKXdEw0ISmgRZc7a/DXwRccrscebcKIb5xCWndGeB3CsGTJyBCGoPQtnCcajlLjugk/qgPxO+1h7Eqyw7UFrWpbiemCKBbRlW7lrmgcaAZV/prUXm3CsW3y3D5VgGyenKQ2p2OpM5k8NoTEC6Nxtm2MJxsPoPAxhM4XB+AA1cPwbvmADyqvPFLpQdsM1aodoIVqlUAdRp6bgv5HzBbXHFXgqLbpci9mY/MnmykdIuQ2CFATHs8wqRRONN6ASeaTyOg8TgO1fnDl4C9anzhLvHCnkp3uJTvgXOJC7YUOWN+0nww/jTJMSevvsHs+DRlSOsZFPaW4NLNPOLpYgi70pBAwFHtcbhwLRKnW8/jeHMIOecgHKw7iv1XD2Jf9X78KtmHyNZoiOQi/FiyHZsJ+Ov87/DZZUesEq8H+4SxkjLUCmDinISPY74jcm4Oe3RyVyriO/iIksUS8EWEtJ5DUFMwjhIH86s7Ap8rfvCs9oGbxBO7KtwQ3hKBrgdd6H94D3ypgIAdsD7nc6wWb8DyzDWYy58HyhifJ8ZWT5NMoLGCJ48jsZ2COHkSCSkezl+LQHBLKI40BGJLsRPW5qzDskxbLE5bDBuRDWwzV5DV2SGwNhCdAx0Yed172AdeWyyWpa/ColQbzE1+H7MTLcEOmKagrAkCaAqlWWwZf6kqlMY8+gDZ3jXZazEz0Rym8TPUDg+yetl9Kca/HikeIUUmgEXizAnPml2YDsoaSduMAJrHaSrdWvw9AYcR8LBHu0m4eJtvqRGsDS4k8DlJFlPnxM0AZVHmmABSTGg+31GxW+XRAfi51AWztKxaI/zxELNytXDVoCzKHBNAKhotKrsr9zIe7Vq+G5wEs9EJi1I+hFDKx7zkuTrAk7XCGQGERZlTBLiSuN1Ltn2BcMEEeGF3PoaI8dzObFgJ3nsuuHoBqiNwLNgMu+x1ow9SByrsyoNC+ZiBPFb8h5LrhWrhqTKhTnD1R6BywuWZn0zYejq2FTuj/k7tKEz5RPlccLVOOBKG7DATtZO+yXNATW81npD3ZHhaux5wTWE4kohoktA0cWPOelT3SkZFDMNT9ICbwCJplvpEND4Vm8ZqNrJBJWJIT7h5Ioek5a+wRLRUcyoeX4y0GaMiaEjqCn9X8A62le0ADXGLYLbmYjS+HJtGTdf5TLUNa5E1Kc8+8K09iPkJVk8vx+MbEm1H8bTBTjDFF3lfMlmVNipLREt0a0gmt2TPIsKKZEv3Ki5TU2gZt8+1168lm9yU6noc1MO3FDkxYNojhpH+YW2Gnf5Nqbq2nHHMWPVbbZNuA6firQghpZt2TRHSSGwn/eScYPNnb8s1XUxoDFtGWpD6sAgrxSvhSi4juypJ31f6ExwLSNsl/BicAOMXczF5ba5mr83l9GWN/wE1f784zfWjGwAAAABJRU5ErkJg" alt="[OK]"/>Kmer Content</h2><p>No overrepresented Kmers</p></div></div><div class="footer">Produced by <a href="http://www.bioinformatics.babraham.ac.uk/projects/fastqc/">FastQC</a>  (version 0.11.4)</div></body></html>\n\\ No newline at end of file\n'