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

Changeset 1:8fae48caaf06 (2014-11-11)
Previous changeset 0:e28c965eeed4 (2014-01-27) Next changeset 2:d2cf2c0c8a11 (2014-11-12)
Commit message:
Uploaded form GH
modified:
rgFastQC.py
rgFastQC.xml
test-data/fastqc_report.html
tool_dependencies.xml
added:
test-data/fastqc_customlimits.txt
test-data/fastqc_data.txt
test-data/fastqc_data2.txt
test-data/fastqc_report2.html
b
diff -r e28c965eeed4 -r 8fae48caaf06 rgFastQC.py
--- a/rgFastQC.py Mon Jan 27 09:29:14 2014 -0500
+++ b/rgFastQC.py Tue Nov 11 12:46:27 2014 -0500
[
b'@@ -1,83 +1,52 @@\n """\n-# May 2013 ross added check for bogus gz extension - fastqc gets confused\n-# added sanitizer for user supplied name\n-# removed shell and make cl a sequence for Popen call\n-# ross lazarus August 10 2012 in response to anon insecurity report\n-wrapper for fastqc\n+Rewrite of rgFastQC.py for Version 0.11.2 of FastQC.\n+\n+Changes implemented from tmcgowan at\n+https://testtoolshed.g2.bx.psu.edu/view/tmcgowan/fastqc\n+and iuc at https://toolshed.g2.bx.psu.edu/view/iuc/fastqc\n+with minor changes and bug fixes\n \n-called as\n-  <command interpreter="python">\n-    rgFastqc.py -i $input_file -d $html_file.files_path -o $html_file -n "$out_prefix"\n-  </command>\n+SYNOPSIS\n+\n+    rgFastQC.py -i input_file -j input_file.name -o output_html_file [-d output_directory]\n+        [-f fastq|bam|sam] [-n job_name] [-c contaminant_file] [-e fastqc_executable]\n \n-\n+EXAMPLE (generated by Galaxy)\n \n-Current release seems overly intolerant of sam/bam header strangeness\n-Author notified...\n-\n+    rgFastQC.py -i path/dataset_1.dat -j 1000gsample.fastq -o path/dataset_3.dat -d path/job_working_directory/subfolder\n+        -f fastq -n FastQC -c path/dataset_2.dat -e fastqc\n \n """\n+\n import re\n import os\n-import sys\n+import shutil\n import subprocess\n import optparse\n-import shutil\n import tempfile\n+import glob\n+import gzip\n+import bz2\n import zipfile\n-import gzip\n-\n \n-def getFileString(fpath, outpath):\n-    """\n-    format a nice file size string\n-    """\n-    size = \'\'\n-    fp = os.path.join(outpath, fpath)\n-    s = \'? ?\'\n-    if os.path.isfile(fp):\n-        n = float(os.path.getsize(fp))\n-        if n > 2**20:\n-            size = \' (%1.1f MB)\' % (n/2**20)\n-        elif n > 2**10:\n-            size = \' (%1.1f KB)\' % (n/2**10)\n-        elif n > 0:\n-            size = \' (%d B)\' % (int(n))\n-        s = \'%s %s\' % (fpath, size) \n-    return s\n-\n-\n-class FastQC():\n-    """wrapper\n-    """\n-    \n+class FastQCRunner(object):\n     \n     def __init__(self,opts=None):\n-        assert opts <> None\n-        self.opts = opts\n-        \n+        \'\'\'\n+        Initializes an object to run FastQC in Galaxy. To start the process, use the function run_fastqc()\n+        \'\'\'\n         \n-    def run_fastqc(self):\n-        """\n-        In batch mode fastqc behaves not very nicely - will write to a new folder in\n-        the same place as the infile called [infilebasename]_fastqc\n-    rlazarus@omics:/data/galaxy/test$ ls FC041_1_sequence_fastqc\n-    duplication_levels.png  fastqc_icon.png          per_base_n_content.png         per_sequence_gc_content.png       summary.txt\n-    error.png               fastqc_report.html       per_base_quality.png           per_sequence_quality.png          tick.png\n-    fastqc_data.txt         per_base_gc_content.png  per_base_sequence_content.png  sequence_length_distribution.png  warning.png\n+        # Check whether the options are specified and saves them into the object\n+        assert opts != None\n+        self.opts = opts\n \n-        """\n-        serr = \'\'\n-        dummy,tlog = tempfile.mkstemp(prefix=\'rgFastQC\',suffix=".log",dir=self.opts.outputdir)\n-        sout = open(tlog, \'w\')\n-        fastq = os.path.basename(self.opts.input)\n-        cl = [self.opts.executable,\'--outdir=%s\' % self.opts.outputdir]\n-        if self.opts.informat in [\'sam\',\'bam\']:\n-            cl.append(\'--f=%s\' % self.opts.informat)\n-        if self.opts.contaminants <> None :\n-            cl.append(\'--contaminants=%s\' % self.opts.contaminants)\n-        # patch suggested by bwlang https://bitbucket.org/galaxy/galaxy-central/pull-request/30\n-        # use a symlink in a temporary directory so that the FastQC report reflects the history input file name\n+    def prepare_command_line(self):\n+        \'\'\'\n+        Develops the Commandline to run FastQC in Galaxy\n+        \'\'\'\n+        \n+        # Check whether a given file compression format is valid\n+        # This prevents uncompression of already uncompressed files\n         infname = self.opts.inputfilename\n'..b'at is the case, please tell the relevant Galaxy administrator that it can be snarfed from<br/>\\n\',\n-                   \'http://www.bioinformatics.bbsrc.ac.uk/projects/fastqc/<br/>\\n\',]\n-            return res,1,serr\n-        self.fix_fastqcimages(odpath)\n-        flist = os.listdir(self.opts.outputdir) # these have now been fixed\n-        excludefiles = [\'tick.png\',\'warning.png\',\'fastqc_icon.png\',\'error.png\']\n-        flist = [x for x in flist if not x in excludefiles]\n-        for i in range(len(rep)): # need to fix links to Icons and Image subdirectories in lastest fastqc code - ugh\n-            rep[i] = rep[i].replace(\'Icons/\',\'\')\n-            rep[i] = rep[i].replace(\'Images/\',\'\')\n-\n-        html = self.fix_fastqc(rep,flist,runlog)\n-        return html,retval,serr\n-        \n-\n-        \n-    def fix_fastqc(self,rep=[],flist=[],runlog=[]):\n-        """ add some of our stuff to the html\n-        """\n-        bodyindex = len(rep) -1  # hope they don\'t change this\n-        footrow = bodyindex - 1 \n-        footer = rep[footrow]\n-        rep = rep[:footrow] + rep[footrow+1:]\n-        res = [\'<div class="module"><h2>Files created by FastQC</h2><table cellspacing="2" cellpadding="2">\\n\']\n-        flist.sort()\n-        for i,f in enumerate(flist):\n-            if not(os.path.isdir(f)):\n-                fn = os.path.split(f)[-1]\n-                res.append(\'<tr><td><a href="%s">%s</a></td></tr>\\n\' % (fn,getFileString(fn, self.opts.outputdir)))\n-        res.append(\'</table>\\n\') \n-        res.append(\'<a href="http://www.bioinformatics.bbsrc.ac.uk/projects/fastqc/">FastQC documentation and full attribution is here</a><br/><hr/>\\n\')\n-        res.append(\'FastQC was run by Galaxy using the rgenetics rgFastQC wrapper - see http://bitbucket.org/rgenetics for details and licensing\\n</div>\')\n-        res.append(footer)\n-        fixed = rep[:bodyindex] + res + rep[bodyindex:]\n-        return fixed # with our additions\n-\n-\n-    def fix_fastqcimages(self,odpath):\n-        """ Galaxy wants everything in the same files_dir\n-        """\n-        icpath = os.path.join(odpath,\'Icons\')\n-        impath = os.path.join(odpath,\'Images\')\n-        for adir in [icpath,impath,odpath]:\n-            if os.path.exists(adir):\n-                flist = os.listdir(adir) # get all files created\n-                for f in flist:\n-                    if not os.path.isdir(os.path.join(adir,f)):\n-                        sauce = os.path.join(adir,f)\n-                        dest = os.path.join(self.opts.outputdir,f)\n-                        shutil.move(sauce,dest)\n-                os.rmdir(adir)\n-\n-    \n \n if __name__ == \'__main__\':\n     op = optparse.OptionParser()\n     op.add_option(\'-i\', \'--input\', default=None)\n-    op.add_option(\'-j\', \'--inputfilename\', default=None)    \n+    op.add_option(\'-j\', \'--inputfilename\', default=None)\n     op.add_option(\'-o\', \'--htmloutput\', default=None)\n+    op.add_option(\'-t\', \'--textoutput\', default=None)\n     op.add_option(\'-d\', \'--outputdir\', default="/tmp/shortread")\n     op.add_option(\'-f\', \'--informat\', default=\'fastq\')\n     op.add_option(\'-n\', \'--namejob\', default=\'rgFastQC\')\n     op.add_option(\'-c\', \'--contaminants\', default=None)\n+    op.add_option(\'-l\', \'--limits\', default=None)\n     op.add_option(\'-e\', \'--executable\', default=\'fastqc\')\n     opts, args = op.parse_args()\n-    assert opts.input <> None\n+    \n+    assert opts.input != None\n+    assert opts.inputfilename != None\n+    assert opts.htmloutput != None\n     assert os.path.isfile(opts.executable),\'##rgFastQC.py error - cannot find executable %s\' % opts.executable\n     if not os.path.exists(opts.outputdir): \n         os.makedirs(opts.outputdir)\n-    f = FastQC(opts)\n-    html,retval,serr = f.run_fastqc()\n-    f = open(opts.htmloutput, \'w\')\n-    f.write(\'\'.join(html))\n-    f.close()\n-    if retval <> 0:\n-        print >> sys.stderr, serr # indicate failure\n-         \n     \n-\n+    fastqc_runner = FastQCRunner(opts)\n+    fastqc_runner.run_fastqc()\n\\ No newline at end of file\n'
b
diff -r e28c965eeed4 -r 8fae48caaf06 rgFastQC.xml
--- a/rgFastQC.xml Mon Jan 27 09:29:14 2014 -0500
+++ b/rgFastQC.xml Tue Nov 11 12:46:27 2014 -0500
b
@@ -1,13 +1,16 @@
-<tool name="FastQC:Read QC" id="fastqc" version="0.52">
+<tool name="FastQC:Read QC" id="fastqc" version="0.62">
   <description>reports using FastQC</description>
   <command interpreter="python">
-    rgFastQC.py -i "$input_file" -d "$html_file.files_path" -o "$html_file" -n "$out_prefix" -f "$input_file.ext" -j "$input_file.name" -e "\$JAVA_JAR_PATH/fastqc"
+    rgFastQC.py -i "$input_file" -d "$html_file.files_path" -o "$html_file" -t "$text_file" -n "$out_prefix" -f "$input_file.ext" -j "$input_file.name" -e "\$FASTQC_JAR_PATH/fastqc"
 #if $contaminants.dataset and str($contaminants) > ''
 -c "$contaminants"
 #end if
+#if $limits.dataset and str($limits) > ''
+-l "$limits"
+#end if
   </command>
   <requirements>
-    <requirement type="package" version="0.10.1">FastQC</requirement>
+    <requirement type="package" version="0.11.2">FastQC</requirement>
   </requirements>
   <inputs>
     <param format="fastqsanger,fastq,bam,sam" name="input_file" type="data" label="Short read data from your current history" />
@@ -18,10 +21,13 @@
     </sanitizer>
     </param>
     <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" />
   </inputs>
   <outputs>
-    <data format="html" name="html_file"  label="${out_prefix}_${input_file.name}.html" />
+    <data format="html" name="html_file"  label="${out_prefix}_${input_file.name}_Webpage.html" />
+    <data format="txt" name="text_file"  label="${out_prefix}_${input_file.name}_RawData.txt" />
   </outputs>
   <tests>
     <test>
@@ -29,6 +35,14 @@
       <param name="out_prefix" value="fastqc_out" />
       <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" />
+      <param name="out_prefix" value="fastqc_out" />
+      <param name="limits" value="fastqc_customlimits.txt" ftype="txt" />
+      <output name="html_file" file="fastqc_report2.html" ftype="html" lines_diff="100"/>
+      <output name="text_file" file="fastqc_data2.txt" ftype="txt" lines_diff="100"/>
     </test>
   </tests>
   <help>
@@ -65,6 +79,7 @@
 
 The contaminants file parameter was borrowed from the independently developed
 fastqcwrapper contributed to the Galaxy Community Tool Shed by J. Johnson.
+Adaption to version 0.11.2 by T. McGowan.
 
 -----
 
@@ -77,9 +92,11 @@
 
 This wrapper will accept a Galaxy fastq, sam or bam as the input read file to check.
 It will also take an optional file containing a list of contaminants information, in the form of
-a tab-delimited file with 2 columns, name and sequence.
+a tab-delimited file with 2 columns, name and sequence. As another option the tool takes a custom
+limits.txt file that allows setting the warning thresholds for the different modules and also specifies
+which modules to include in the output.
 
-The tool produces a single HTML output file that contains all of the results, including the following:
+The tool produces a basic text and a HTML output file that contain all of the results, including the following:
 
 - Basic Statistics
 - Per base sequence quality
b
diff -r e28c965eeed4 -r 8fae48caaf06 test-data/fastqc_customlimits.txt
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/fastqc_customlimits.txt Tue Nov 11 12:46:27 2014 -0500
b
@@ -0,0 +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
+
+
+
\ No newline at end of file
b
diff -r e28c965eeed4 -r 8fae48caaf06 test-data/fastqc_data.txt
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/fastqc_data.txt Tue Nov 11 12:46:27 2014 -0500
b
b'@@ -0,0 +1,934 @@\n+##FastQC\t0.11.2\n+>>Basic Statistics\tpass\n+#Measure\tValue\n+Filename\t1000gsample.fastq\n+File type\tConventional base calls\n+Encoding\tSanger / Illumina 1.9\n+Total Sequences\t5000\n+Sequences flagged as poor quality\t0\n+Sequence length\t54\n+%GC\t43\n+>>END_MODULE\n+>>Per base sequence quality\twarn\n+#Base\tMean\tMedian\tLower Quartile\tUpper Quartile\t10th Percentile\t90th Percentile\n+1\t28.9946\t31.0\t27.0\t33.0\t22.0\t34.0\n+2\t28.486\t30.0\t26.0\t32.0\t21.0\t33.0\n+3\t28.5272\t30.0\t26.0\t32.0\t21.0\t34.0\n+4\t28.6252\t30.0\t26.0\t32.0\t22.0\t33.0\n+5\t28.4804\t30.0\t26.0\t32.0\t21.0\t33.0\n+6\t28.5128\t30.0\t26.0\t32.0\t22.0\t33.0\n+7\t28.4102\t30.0\t26.0\t32.0\t21.0\t33.0\n+8\t28.4674\t30.0\t26.0\t32.0\t22.0\t33.0\n+9\t28.182\t30.0\t26.0\t32.0\t21.0\t33.0\n+10\t28.0908\t30.0\t26.0\t32.0\t21.0\t33.0\n+11\t28.1876\t30.0\t26.0\t32.0\t21.0\t33.0\n+12\t28.1742\t30.0\t26.0\t32.0\t21.0\t33.0\n+13\t27.923\t30.0\t25.0\t32.0\t20.0\t33.0\n+14\t27.8984\t29.0\t25.0\t32.0\t21.0\t33.0\n+15\t27.6112\t29.0\t25.0\t32.0\t20.0\t33.0\n+16\t27.6638\t29.0\t25.0\t32.0\t20.0\t33.0\n+17\t27.5734\t29.0\t25.0\t32.0\t20.0\t33.0\n+18\t27.6348\t29.0\t25.0\t32.0\t20.0\t33.0\n+19\t27.6526\t29.0\t25.0\t32.0\t20.0\t33.0\n+20\t27.2716\t29.0\t24.0\t32.0\t19.0\t33.0\n+21\t27.2642\t29.0\t25.0\t31.0\t19.0\t33.0\n+22\t26.881\t28.0\t24.0\t31.0\t19.0\t33.0\n+23\t26.8124\t28.0\t24.0\t31.0\t19.0\t33.0\n+24\t26.8204\t28.0\t24.0\t31.0\t19.0\t33.0\n+25\t26.6606\t28.0\t24.0\t31.0\t18.0\t33.0\n+26\t26.3806\t28.0\t23.0\t31.0\t18.0\t33.0\n+27\t25.947\t28.0\t23.0\t31.0\t17.0\t33.0\n+28\t25.7446\t27.0\t22.0\t31.0\t16.0\t33.0\n+29\t25.6856\t27.0\t22.0\t31.0\t16.0\t33.0\n+30\t25.5228\t27.0\t22.0\t31.0\t16.0\t33.0\n+31\t25.354\t27.0\t22.0\t30.0\t16.0\t32.0\n+32\t25.1656\t27.0\t22.0\t30.0\t16.0\t32.0\n+33\t25.0164\t26.0\t21.0\t30.0\t15.0\t32.0\n+34\t24.75\t26.0\t21.0\t30.0\t15.0\t32.0\n+35\t24.3926\t26.0\t21.0\t30.0\t15.0\t32.0\n+36\t24.1122\t25.0\t20.0\t30.0\t14.0\t32.0\n+37\t23.8612\t25.0\t20.0\t29.0\t13.0\t32.0\n+38\t23.7544\t25.0\t20.0\t29.0\t13.0\t32.0\n+39\t23.485\t25.0\t19.0\t29.0\t13.0\t32.0\n+40\t23.1984\t24.0\t19.0\t29.0\t13.0\t32.0\n+41\t23.0976\t24.0\t19.0\t29.0\t13.0\t32.0\n+42\t22.9212\t24.0\t19.0\t28.0\t13.0\t31.0\n+43\t22.5172\t24.0\t18.0\t28.0\t12.0\t31.0\n+44\t22.3234\t23.0\t18.0\t28.0\t12.0\t31.0\n+45\t22.1372\t23.0\t18.0\t28.0\t11.0\t31.0\n+46\t22.2166\t23.0\t18.0\t28.0\t11.0\t31.0\n+47\t22.075\t23.0\t18.0\t28.0\t11.0\t31.0\n+48\t21.4592\t22.0\t17.0\t27.0\t11.0\t31.0\n+49\t21.0954\t22.0\t16.0\t27.0\t10.0\t30.0\n+50\t20.9356\t22.0\t16.0\t27.0\t10.0\t30.0\n+51\t20.6152\t21.0\t15.0\t27.0\t9.0\t30.0\n+52\t20.6588\t21.0\t16.0\t27.0\t9.0\t30.0\n+53\t19.5852\t20.0\t14.0\t25.0\t9.0\t29.0\n+54\t19.9424\t21.0\t14.0\t26.0\t7.0\t30.0\n+>>END_MODULE\n+>>Per tile sequence quality\tpass\n+#Tile\tBase\tMean\n+1\t1\t0.4542485249902164\n+1\t2\t0.02493171505959424\n+1\t3\t0.004493134032774293\n+1\t4\t0.6119404948560927\n+1\t5\t0.5283275008594686\n+1\t6\t0.3741933003058371\n+1\t7\t-0.2985554485298749\n+1\t8\t0.6040181642739206\n+1\t9\t0.43795745033596845\n+1\t10\t0.05327706110314523\n+1\t11\t0.8097461135057031\n+1\t12\t0.9171964750225641\n+1\t13\t1.0716973449965757\n+1\t14\t0.562649938864773\n+1\t15\t0.5112535943737946\n+1\t16\t0.7098461441939676\n+1\t17\t0.3989886413671577\n+1\t18\t0.2351551176870892\n+1\t19\t0.002716666680861124\n+1\t20\t-0.5270840838615776\n+1\t21\t0.08959510509382795\n+1\t22\t-0.6322238602545553\n+1\t23\t-0.8566085860715056\n+1\t24\t-0.8167218970288026\n+1\t25\t0.7728199138173544\n+1\t26\t-0.26898877195552373\n+1\t27\t-0.7734079986509634\n+1\t28\t0.46313879073469266\n+1\t29\t-1.0803714983510417\n+1\t30\t-0.9107347156963463\n+1\t31\t-1.1279249650605188\n+1\t32\t0.03588141895047414\n+1\t33\t-0.3276409211703317\n+1\t34\t0.07833890179158587\n+1\t35\t-0.8393131051954583\n+1\t36\t-1.024889600311596\n+1\t37\t-1.4177418858492992\n+1\t38\t-1.912918888443187\n+1\t39\t-1.880569234686881\n+1\t40\t-0.9901560786471286\n+1\t41\t-1.9499635516515283\n+1\t42\t-2.3754765893384793\n+1\t43\t-1.6682056704307335\n+1\t44\t-2.2432919652101226\n+1\t45\t-2.1214550638335794\n+1\t46\t-1.6941624871292404\n+1\t47\t-2.261740586778952\n+1\t48\t-0.47246064535067234\n+1\t49\t-1.345180096970381\n+1\t50\t-1.3012642855865373\n+1\t51\t-1.6748103331735038\n+1\t52\t-1.4936238782530324\n+1\t53\t-0.9900326328970834\n+1\t54\t-0.9042724595665739\n+2\t1\t0.27305194379363584\n+2\t2\t-0.40803531790744074\n+2\t3\t-1.054114924575284\n+2\t4\t0.02463890755450393\n+2\t5\t-1.0899875174555511\n+2\t6\t-0.7630472369346997\n+2\t7\t-1.2563088062832328\n+2\t8\t0.09022085047'..b'6171233\t28.985797159431886\t27.545509101820365\t22.064412882576516\n+45\t21.86\t29.28\t26.740000000000002\t22.12\n+46\t21.26\t27.54\t27.74\t23.46\n+47\t21.628651460584233\t28.271308523409367\t28.051220488195277\t22.048819527811126\n+48\t21.279999999999998\t28.439999999999998\t26.400000000000002\t23.880000000000003\n+49\t21.044208841768352\t29.045809161832363\t27.185437087417487\t22.724544908981798\n+50\t21.82873149259704\t28.15126050420168\t26.810724289715886\t23.209283713485394\n+51\t21.028411364545818\t27.73109243697479\t28.011204481792717\t23.229291716686674\n+52\t21.824364872974595\t30.146029205841167\t25.94518903780756\t22.084416883376676\n+53\t21.164232846569313\t28.325665133026607\t28.045609121824366\t22.464492898579717\n+54\t21.53907976692787\t27.024311834438418\t26.90375728350412\t24.5328511151296\n+>>END_MODULE\n+>>Per sequence GC content\twarn\n+#GC Content\tCount\n+0\t3.0\n+1\t5.0\n+2\t7.0\n+3\t7.0\n+4\t7.0\n+5\t5.0\n+6\t2.0\n+7\t1.0\n+8\t1.5\n+9\t2.0\n+10\t1.5\n+11\t1.0\n+12\t2.5\n+13\t4.0\n+14\t4.0\n+15\t4.0\n+16\t5.0\n+17\t6.0\n+18\t11.0\n+19\t19.5\n+20\t23.0\n+21\t37.5\n+22\t52.0\n+23\t61.0\n+24\t70.0\n+25\t79.0\n+26\t88.0\n+27\t117.5\n+28\t147.0\n+29\t159.5\n+30\t172.0\n+31\t203.0\n+32\t243.0\n+33\t252.0\n+34\t290.0\n+35\t328.0\n+36\t330.0\n+37\t332.0\n+38\t332.5\n+39\t333.0\n+40\t342.0\n+41\t351.0\n+42\t343.5\n+43\t336.0\n+44\t318.5\n+45\t279.5\n+46\t258.0\n+47\t254.5\n+48\t251.0\n+49\t234.5\n+50\t218.0\n+51\t209.5\n+52\t201.0\n+53\t198.5\n+54\t196.0\n+55\t177.0\n+56\t162.5\n+57\t167.0\n+58\t147.0\n+59\t127.0\n+60\t106.5\n+61\t86.0\n+62\t85.0\n+63\t84.0\n+64\t61.5\n+65\t39.0\n+66\t42.5\n+67\t46.0\n+68\t34.0\n+69\t17.0\n+70\t12.0\n+71\t14.0\n+72\t16.0\n+73\t12.5\n+74\t9.0\n+75\t6.5\n+76\t4.0\n+77\t4.5\n+78\t5.0\n+79\t5.0\n+80\t5.0\n+81\t3.0\n+82\t1.0\n+83\t1.0\n+84\t1.0\n+85\t1.0\n+86\t1.0\n+87\t1.0\n+88\t1.0\n+89\t1.0\n+90\t2.0\n+91\t3.0\n+92\t2.5\n+93\t2.0\n+94\t2.0\n+95\t3.0\n+96\t4.0\n+97\t5.0\n+98\t6.0\n+99\t3.5\n+100\t1.0\n+>>END_MODULE\n+>>Per base N content\tpass\n+#Base\tN-Count\n+1\t0.0\n+2\t0.0\n+3\t0.0\n+4\t0.0\n+5\t0.0\n+6\t0.0\n+7\t0.0\n+8\t0.0\n+9\t0.0\n+10\t0.0\n+11\t0.0\n+12\t0.0\n+13\t0.0\n+14\t0.0\n+15\t0.0\n+16\t0.0\n+17\t0.0\n+18\t0.0\n+19\t0.0\n+20\t0.0\n+21\t0.0\n+22\t0.0\n+23\t0.0\n+24\t0.0\n+25\t0.0\n+26\t0.04\n+27\t0.02\n+28\t0.0\n+29\t0.02\n+30\t0.0\n+31\t0.0\n+32\t0.04\n+33\t0.02\n+34\t0.02\n+35\t0.02\n+36\t0.02\n+37\t0.04\n+38\t0.02\n+39\t0.04\n+40\t0.0\n+41\t0.06\n+42\t0.06\n+43\t0.02\n+44\t0.02\n+45\t0.0\n+46\t0.0\n+47\t0.04\n+48\t0.0\n+49\t0.02\n+50\t0.04\n+51\t0.04\n+52\t0.02\n+53\t0.02\n+54\t0.45999999999999996\n+>>END_MODULE\n+>>Sequence Length Distribution\tpass\n+#Length\tCount\n+54\t5000.0\n+>>END_MODULE\n+>>Sequence Duplication Levels\tpass\n+#Total Deduplicated Percentage\t99.52\n+#Duplication Level\tPercentage of deduplicated\tPercentage of total\n+1\t99.81913183279742\t99.33999999999999\n+2\t0.08038585209003216\t0.16\n+3\t0.04019292604501608\t0.12\n+4\t0.0\t0.0\n+5\t0.02009646302250804\t0.1\n+6\t0.0\t0.0\n+7\t0.04019292604501608\t0.27999999999999997\n+8\t0.0\t0.0\n+9\t0.0\t0.0\n+>10\t0.0\t0.0\n+>50\t0.0\t0.0\n+>100\t0.0\t0.0\n+>500\t0.0\t0.0\n+>1k\t0.0\t0.0\n+>5k\t0.0\t0.0\n+>10k+\t0.0\t0.0\n+>>END_MODULE\n+>>Overrepresented sequences\twarn\n+#Sequence\tCount\tPercentage\tPossible Source\n+CGGAAGAGCGGTTCAGCAGGAATGCCGAGATCGGAAGAGCGGTTCAGCAGGAAT\t7\t0.13999999999999999\tIllumina Paired End PCR Primer 2 (96% over 33bp)\n+CGGTTCAGCAGGAATGCCGAGATCGGAAGAGCGGTTCAGCAGGAATGCCGAGAC\t7\t0.13999999999999999\tIllumina Paired End PCR Primer 2 (100% over 35bp)\n+>>END_MODULE\n+>>Adapter Content\tpass\n+#Position\tIllumina Universal Adapter\tIllumina Small RNA Adapter\tNextera Transposase Sequence\n+1\t0.0\t0.0\t0.0\n+2\t0.02\t0.0\t0.0\n+3\t0.02\t0.0\t0.0\n+4\t0.02\t0.0\t0.0\n+5\t0.02\t0.0\t0.0\n+6\t0.02\t0.0\t0.0\n+7\t0.02\t0.0\t0.0\n+8\t0.02\t0.0\t0.0\n+9\t0.02\t0.0\t0.0\n+10\t0.02\t0.0\t0.0\n+11\t0.02\t0.0\t0.0\n+12\t0.02\t0.0\t0.0\n+13\t0.02\t0.0\t0.0\n+14\t0.02\t0.0\t0.0\n+15\t0.02\t0.0\t0.0\n+16\t0.02\t0.0\t0.0\n+17\t0.02\t0.0\t0.0\n+18\t0.02\t0.0\t0.0\n+19\t0.06\t0.0\t0.0\n+20\t0.36\t0.0\t0.0\n+21\t0.36\t0.0\t0.0\n+22\t0.36\t0.0\t0.0\n+23\t0.36\t0.0\t0.0\n+24\t0.36\t0.0\t0.0\n+25\t0.4\t0.0\t0.0\n+26\t0.4\t0.0\t0.0\n+27\t0.42\t0.0\t0.0\n+28\t0.62\t0.0\t0.0\n+29\t0.66\t0.0\t0.0\n+30\t0.68\t0.0\t0.0\n+31\t0.68\t0.0\t0.0\n+32\t0.68\t0.0\t0.0\n+33\t0.68\t0.0\t0.0\n+34\t0.7\t0.0\t0.0\n+35\t0.76\t0.0\t0.0\n+36\t0.8\t0.0\t0.0\n+37\t0.88\t0.0\t0.0\n+38\t1.0\t0.0\t0.0\n+39\t1.12\t0.0\t0.0\n+40\t1.22\t0.0\t0.0\n+41\t1.38\t0.0\t0.0\n+42\t1.48\t0.0\t0.0\n+>>END_MODULE\n+>>Kmer Content\tpass\n+>>END_MODULE\n'
b
diff -r e28c965eeed4 -r 8fae48caaf06 test-data/fastqc_data2.txt
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/fastqc_data2.txt Tue Nov 11 12:46:27 2014 -0500
b
b'@@ -0,0 +1,5859 @@\n+##FastQC\t0.11.2\n+>>Basic Statistics\tpass\n+#Measure\tValue\n+Filename\t1000gsample.fastq\n+File type\tConventional base calls\n+Encoding\tSanger / Illumina 1.9\n+Total Sequences\t5000\n+Sequences flagged as poor quality\t0\n+Sequence length\t54\n+%GC\t43\n+>>END_MODULE\n+>>Per base sequence quality\twarn\n+#Base\tMean\tMedian\tLower Quartile\tUpper Quartile\t10th Percentile\t90th Percentile\n+1\t28.9946\t31.0\t27.0\t33.0\t22.0\t34.0\n+2\t28.486\t30.0\t26.0\t32.0\t21.0\t33.0\n+3\t28.5272\t30.0\t26.0\t32.0\t21.0\t34.0\n+4\t28.6252\t30.0\t26.0\t32.0\t22.0\t33.0\n+5\t28.4804\t30.0\t26.0\t32.0\t21.0\t33.0\n+6\t28.5128\t30.0\t26.0\t32.0\t22.0\t33.0\n+7\t28.4102\t30.0\t26.0\t32.0\t21.0\t33.0\n+8\t28.4674\t30.0\t26.0\t32.0\t22.0\t33.0\n+9\t28.182\t30.0\t26.0\t32.0\t21.0\t33.0\n+10\t28.0908\t30.0\t26.0\t32.0\t21.0\t33.0\n+11\t28.1876\t30.0\t26.0\t32.0\t21.0\t33.0\n+12\t28.1742\t30.0\t26.0\t32.0\t21.0\t33.0\n+13\t27.923\t30.0\t25.0\t32.0\t20.0\t33.0\n+14\t27.8984\t29.0\t25.0\t32.0\t21.0\t33.0\n+15\t27.6112\t29.0\t25.0\t32.0\t20.0\t33.0\n+16\t27.6638\t29.0\t25.0\t32.0\t20.0\t33.0\n+17\t27.5734\t29.0\t25.0\t32.0\t20.0\t33.0\n+18\t27.6348\t29.0\t25.0\t32.0\t20.0\t33.0\n+19\t27.6526\t29.0\t25.0\t32.0\t20.0\t33.0\n+20\t27.2716\t29.0\t24.0\t32.0\t19.0\t33.0\n+21\t27.2642\t29.0\t25.0\t31.0\t19.0\t33.0\n+22\t26.881\t28.0\t24.0\t31.0\t19.0\t33.0\n+23\t26.8124\t28.0\t24.0\t31.0\t19.0\t33.0\n+24\t26.8204\t28.0\t24.0\t31.0\t19.0\t33.0\n+25\t26.6606\t28.0\t24.0\t31.0\t18.0\t33.0\n+26\t26.3806\t28.0\t23.0\t31.0\t18.0\t33.0\n+27\t25.947\t28.0\t23.0\t31.0\t17.0\t33.0\n+28\t25.7446\t27.0\t22.0\t31.0\t16.0\t33.0\n+29\t25.6856\t27.0\t22.0\t31.0\t16.0\t33.0\n+30\t25.5228\t27.0\t22.0\t31.0\t16.0\t33.0\n+31\t25.354\t27.0\t22.0\t30.0\t16.0\t32.0\n+32\t25.1656\t27.0\t22.0\t30.0\t16.0\t32.0\n+33\t25.0164\t26.0\t21.0\t30.0\t15.0\t32.0\n+34\t24.75\t26.0\t21.0\t30.0\t15.0\t32.0\n+35\t24.3926\t26.0\t21.0\t30.0\t15.0\t32.0\n+36\t24.1122\t25.0\t20.0\t30.0\t14.0\t32.0\n+37\t23.8612\t25.0\t20.0\t29.0\t13.0\t32.0\n+38\t23.7544\t25.0\t20.0\t29.0\t13.0\t32.0\n+39\t23.485\t25.0\t19.0\t29.0\t13.0\t32.0\n+40\t23.1984\t24.0\t19.0\t29.0\t13.0\t32.0\n+41\t23.0976\t24.0\t19.0\t29.0\t13.0\t32.0\n+42\t22.9212\t24.0\t19.0\t28.0\t13.0\t31.0\n+43\t22.5172\t24.0\t18.0\t28.0\t12.0\t31.0\n+44\t22.3234\t23.0\t18.0\t28.0\t12.0\t31.0\n+45\t22.1372\t23.0\t18.0\t28.0\t11.0\t31.0\n+46\t22.2166\t23.0\t18.0\t28.0\t11.0\t31.0\n+47\t22.075\t23.0\t18.0\t28.0\t11.0\t31.0\n+48\t21.4592\t22.0\t17.0\t27.0\t11.0\t31.0\n+49\t21.0954\t22.0\t16.0\t27.0\t10.0\t30.0\n+50\t20.9356\t22.0\t16.0\t27.0\t10.0\t30.0\n+51\t20.6152\t21.0\t15.0\t27.0\t9.0\t30.0\n+52\t20.6588\t21.0\t16.0\t27.0\t9.0\t30.0\n+53\t19.5852\t20.0\t14.0\t25.0\t9.0\t29.0\n+54\t19.9424\t21.0\t14.0\t26.0\t7.0\t30.0\n+>>END_MODULE\n+>>Per tile sequence quality\tpass\n+#Tile\tBase\tMean\n+1\t1\t0.4542485249902164\n+1\t2\t0.02493171505959424\n+1\t3\t0.004493134032774293\n+1\t4\t0.6119404948560927\n+1\t5\t0.5283275008594686\n+1\t6\t0.3741933003058371\n+1\t7\t-0.2985554485298749\n+1\t8\t0.6040181642739206\n+1\t9\t0.43795745033596845\n+1\t10\t0.05327706110314523\n+1\t11\t0.8097461135057031\n+1\t12\t0.9171964750225641\n+1\t13\t1.0716973449965757\n+1\t14\t0.562649938864773\n+1\t15\t0.5112535943737946\n+1\t16\t0.7098461441939676\n+1\t17\t0.3989886413671577\n+1\t18\t0.2351551176870892\n+1\t19\t0.002716666680861124\n+1\t20\t-0.5270840838615776\n+1\t21\t0.08959510509382795\n+1\t22\t-0.6322238602545553\n+1\t23\t-0.8566085860715056\n+1\t24\t-0.8167218970288026\n+1\t25\t0.7728199138173544\n+1\t26\t-0.26898877195552373\n+1\t27\t-0.7734079986509634\n+1\t28\t0.46313879073469266\n+1\t29\t-1.0803714983510417\n+1\t30\t-0.9107347156963463\n+1\t31\t-1.1279249650605188\n+1\t32\t0.03588141895047414\n+1\t33\t-0.3276409211703317\n+1\t34\t0.07833890179158587\n+1\t35\t-0.8393131051954583\n+1\t36\t-1.024889600311596\n+1\t37\t-1.4177418858492992\n+1\t38\t-1.912918888443187\n+1\t39\t-1.880569234686881\n+1\t40\t-0.9901560786471286\n+1\t41\t-1.9499635516515283\n+1\t42\t-2.3754765893384793\n+1\t43\t-1.6682056704307335\n+1\t44\t-2.2432919652101226\n+1\t45\t-2.1214550638335794\n+1\t46\t-1.6941624871292404\n+1\t47\t-2.261740586778952\n+1\t48\t-0.47246064535067234\n+1\t49\t-1.345180096970381\n+1\t50\t-1.3012642855865373\n+1\t51\t-1.6748103331735038\n+1\t52\t-1.4936238782530324\n+1\t53\t-0.9900326328970834\n+1\t54\t-0.9042724595665739\n+2\t1\t0.27305194379363584\n+2\t2\t-0.40803531790744074\n+2\t3\t-1.054114924575284\n+2\t4\t0.02463890755450393\n+2\t5\t-1.0899875174555511\n+2\t6\t-0.7630472369346997\n+2\t7\t-1.2563088062832328\n+2\t8\t0.0902208504'..b'TTGTCTCTTTAAAAGACTTTTATT\t1\t0.02\tNo Hit\n+AAAAGTTTATAGAAGACCTTAAAATGACTCTTTTTAAATGTATTTTCCACCAGG\t1\t0.02\tNo Hit\n+ACAGTTAACCATGCTGACCTCCTTCTTTTTGCCATTGCCTTTCTGGCTGAGTTG\t1\t0.02\tNo Hit\n+CATCAGCTGTGTGCTGGGCACATTAGTTGAGCACTATGCATGGGATCTAGGAAC\t1\t0.02\tNo Hit\n+AAAGCCAACATGTTTTTCCTCCACTGCTTTAAAGGATCATCAATAGGGACGGCA\t1\t0.02\tNo Hit\n+CACCAGAGTTTCCTCTGGCTTCGCCCTGCCCAGGCGTAGTTCACCATCTTTCGG\t1\t0.02\tNo Hit\n+ATGAAGTTGCTGCCAGATTTCATAATACGTTAGAACTGGTTTAAACCCCCCCCC\t1\t0.02\tNo Hit\n+AATCGATACCACAGAAATAAAAAAGATTATTCAGGGCTACTATAAACATCTTCA\t1\t0.02\tNo Hit\n+TTGTTAGGATTCAAAGCAGCTTTGGTGAATATAAATCAACATACAACTCTGATT\t1\t0.02\tNo Hit\n+TGCAAGTGGATATCTGGACCAAGTTGGGGCCTTACTTCGAAACGGGTATATCTT\t1\t0.02\tNo Hit\n+ATACCAGAGGCTTTGATCTTTGGCCCTCATCTCACAACGCTCAGGGATATGACT\t1\t0.02\tNo Hit\n+TGAGTGAGGTTCACCAAGAGCAGTGGTTCTCAAACCCGAGTGTGCATCCGAATC\t1\t0.02\tNo Hit\n+ACCAAAATACCAGTTACCAGCTTTTTAAAAAAAGCAACAACTAACAATGGTAGG\t1\t0.02\tNo Hit\n+CATAAGGCTGGGTGTGGTGGCTCATGCCTGTCATCGCAGCTCTTTGGGAGGCCG\t1\t0.02\tNo Hit\n+TCTACCCTGCCGGCACATCCTAATTAATTTAGGTTTGGAACGCTGTGTGCCAAT\t1\t0.02\tNo Hit\n+GGGCGACTCATGTTTGGGTGAGCAGCTGCCACCACTCCTTGTCATGTGCAGAGC\t1\t0.02\tNo Hit\n+CAGTGAAGTCACATCCCAATTACTTAATGCCCACGTACTGGTTGACAGCTCACT\t1\t0.02\tNo Hit\n+CATTGCATTCCATTCCATTCCATTCCCCTGCACTCGCGTTGATTCCATTCCATT\t1\t0.02\tNo Hit\n+GACTACTTAATTCCATTTATGTGATCAATTTTAGAGTAAGTGTTGTGTGGCGAT\t1\t0.02\tNo Hit\n+AATCAATCTGCTGTGACCAAACTCACCACCTCATCCTTCCACCCCAAATCAACT\t1\t0.02\tNo Hit\n+AGGAACCAACACACATGCTTTACATAAGCCATCTTATTTAAATTTTGCCATCGC\t1\t0.02\tNo Hit\n+TCAATTTTCTTGGTTGTAGTAATGGTATGTGGTTATGTAGGAAATGTAGATATT\t1\t0.02\tNo Hit\n+GACCAACAAGCAGACTATAGCATATTTGGAGTCACTGTATTAGGATTTTCCAGA\t1\t0.02\tNo Hit\n+TTCTCATTGAACTCTAGATTTTTGCCTGCTGTGGATAATCAAAAGATCTGGCTG\t1\t0.02\tNo Hit\n+TGGAGTCGAATGGAATGGACTGGAATGGAATGGATTCGAATGGAATCGAATGGA\t1\t0.02\tNo Hit\n+AGGTAAGAAGTCTGGTTGCCCCAGATACTATTGCTGATGTTTTGCTAAGCAGTT\t1\t0.02\tNo Hit\n+TAACTGCTCTATGAAAAGAAAGGTTAAACTCTGTGAGTTCAACGCACACCTCAC\t1\t0.02\tNo Hit\n+CAACAAAAGGAATAAGGATTTTAGTAACACTGTTGTACATGGATTATTTCATAC\t1\t0.02\tNo Hit\n+TTTTGGTTTTTGTGCCTTTATTTGTGGATCCTGGTTTGTTCTGTGGTAATACCC\t1\t0.02\tNo Hit\n+GACTTCTAACCCTAATTGGCTATCACGCTCACTATCCACATGTCTTCCTGAGTC\t1\t0.02\tNo Hit\n+AAACAGGGACAATTTGACTTCCTCTTTTCCTAATTGAATACCCTTTATTTCCTT\t1\t0.02\tNo Hit\n+CCCCAGGTGACAGTCTGGACCGGGATTCCAGAAGAAAGACCTAGATTATTCCTC\t1\t0.02\tNo Hit\n+AAGGGAAGAAACAACCTACAGAATGGAAGGAAATATTTGCACATAGTATATCTG\t1\t0.02\tNo Hit\n+AATCCTTCTTCACTGCGTAGCACCTTGCAGAACATTTGCACATATTAGGCTCTT\t1\t0.02\tNo Hit\n+AATAACACACCAAGATCAACTACGGTTTATTTCATGGATAAGAATGCAAGAATT\t1\t0.02\tNo Hit\n+GACTTTATTATAGCCATTATATTTTGTGTAAGAATAGCACCAATATATTGATAA\t1\t0.02\tNo Hit\n+AAATATCAGAGTTTCCGAGGCAAAAAGTTAATGTTTGTCTCTAGTCATTTGGAA\t1\t0.02\tNo Hit\n+CTTGAAGGGTAGTTTGGTGAGATAGGACTTATTTTATTTCTTTGAATACATACT\t1\t0.02\tNo Hit\n+AATTACTCACAGTTCAGCACGGCTGGGCGGCCTCAGGAAACTTATAATCATGGG\t1\t0.02\tNo Hit\n+CATGAGGCAGACACTGTTGATTGCTAAAAAGTAGTCACTCCTGCTTTCTTCCTT\t1\t0.02\tNo Hit\n+TTTTTCTCAACTAAGAATTTGAAAGATATTCCGATTTATATCTAGTGTTTTAAG\t1\t0.02\tNo Hit\n+TAGGGTCATTATAGATATAGTTAGATAAGATGAGGTCATATTGAAGCAGGATGG\t1\t0.02\tNo Hit\n+TTAGTGAAGCTCTCAAACCACTGAAGATTTTTTTCTTTCAAACGTTTCGAACTC\t1\t0.02\tNo Hit\n+GCAACCCACTCCAGGGCCTCCTCTCTCCTAGGAGCTGGGCAGACAACAGGACAC\t1\t0.02\tNo Hit\n+TCTACTGCCTGCACTGCCTTTTCATCTAGCTCCAATTTATATTCTTGTAGTTTA\t1\t0.02\tNo Hit\n+>>END_MODULE\n+>>Adapter Content\tpass\n+#Position\tIllumina Universal Adapter\tIllumina Small RNA Adapter\tNextera Transposase Sequence\n+1\t0.0\t0.0\t0.0\n+2\t0.02\t0.0\t0.0\n+3\t0.02\t0.0\t0.0\n+4\t0.02\t0.0\t0.0\n+5\t0.02\t0.0\t0.0\n+6\t0.02\t0.0\t0.0\n+7\t0.02\t0.0\t0.0\n+8\t0.02\t0.0\t0.0\n+9\t0.02\t0.0\t0.0\n+10\t0.02\t0.0\t0.0\n+11\t0.02\t0.0\t0.0\n+12\t0.02\t0.0\t0.0\n+13\t0.02\t0.0\t0.0\n+14\t0.02\t0.0\t0.0\n+15\t0.02\t0.0\t0.0\n+16\t0.02\t0.0\t0.0\n+17\t0.02\t0.0\t0.0\n+18\t0.02\t0.0\t0.0\n+19\t0.06\t0.0\t0.0\n+20\t0.36\t0.0\t0.0\n+21\t0.36\t0.0\t0.0\n+22\t0.36\t0.0\t0.0\n+23\t0.36\t0.0\t0.0\n+24\t0.36\t0.0\t0.0\n+25\t0.4\t0.0\t0.0\n+26\t0.4\t0.0\t0.0\n+27\t0.42\t0.0\t0.0\n+28\t0.62\t0.0\t0.0\n+29\t0.66\t0.0\t0.0\n+30\t0.68\t0.0\t0.0\n+31\t0.68\t0.0\t0.0\n+32\t0.68\t0.0\t0.0\n+33\t0.68\t0.0\t0.0\n+34\t0.7\t0.0\t0.0\n+35\t0.76\t0.0\t0.0\n+36\t0.8\t0.0\t0.0\n+37\t0.88\t0.0\t0.0\n+38\t1.0\t0.0\t0.0\n+39\t1.12\t0.0\t0.0\n+40\t1.22\t0.0\t0.0\n+41\t1.38\t0.0\t0.0\n+42\t1.48\t0.0\t0.0\n+>>END_MODULE\n+>>Kmer Content\tpass\n+>>END_MODULE\n'
b
diff -r e28c965eeed4 -r 8fae48caaf06 test-data/fastqc_report.html
--- a/test-data/fastqc_report.html Mon Jan 27 09:29:14 2014 -0500
+++ b/test-data/fastqc_report.html Tue Nov 11 12:46:27 2014 -0500
[
b'@@ -1,1809 +1,2 @@\n-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Strict//EN">\n-<html>\n-<head><title>dataset_1.dat FastQC Report</title>\n-\n-<style type="text/css">\n-\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-index:2;\n-  }\n-  \n-  img.indented {\n-    margin-left: 3em;\n-  }\n- }\n- \n- @media print {\n-\timg {\n-\t\tmax-width:100% !important;\n-\t\tpage-break-inside: avoid;\n-\t}\n-\th2, h3 {\n-\t\tpage-break-after: avoid;\n-\t}\n-\tdiv.header {\n-      background-color: #FFF;\n-    }\n-\t\n- }\n- \n- body {    \n-  font-family: sans-serif;   \n-  color: #000;   \n-  background-color: #FFF;\n-  border: 0;\n-  margin: 0;\n-  padding: 0;\n-  }\n-  \n-  div.header {\n-  border:0;\n-  margin:0;\n-  padding: 0.5em;\n-  font-size: 200%;\n-  font-weight: bold;\n-  width:100%;\n-  }    \n-  \n-  #header_title {\n-  display:inline-block;\n-  float:left;\n-  clear:left;\n-  }\n-  #header_filename {\n-  display:inline-block;\n-  float:right;\n-  clear:right;\n-  font-size: 50%;\n-  margin-right:2em;\n-  text-align: right;\n-  }\n-\n-  div.header h3 {\n-  font-size: 50%;\n-  margin-bottom: 0;\n-  }\n-  \n-  div.summary ul {\n-  padding-left:0;\n-  list-style-type:none;\n-  }\n-  \n-  div.summary ul li img {\n-  margin-bottom:-0.5em;\n-  margin-top:0.5em;\n-  }\n-\t  \n-  div.main {\n-  background-color: white;\n-  }\n-      \n-  div.module {\n-  padding-bottom:1.5em;\n-  padding-top:1.5em;\n-  }\n-\t  \n-  div.footer {\n-  background-color: #EEE;\n-  border:0;\n-  margin:0;\n-  padding: 0.5em;\n-  font-size: 100%;\n-  font-weight: bold;\n-  width:100%;\n-  }\n-\n-\n-  a {\n-  color: #000080;\n-  }\n-\n-  a:hover {\n-  color: #800000;\n-  }\n-      \n-  h2 {\n-  color: #800000;\n-  padding-bottom: 0;\n-  margin-bottom: 0;\n-  clear:left;\n-  }\n-\n-  table { \n-  margin-left: 3em;\n-  text-align: center;\n-  }\n-  \n-  th { \n-  text-align: center;\n-  background-color: #000080;\n-  color: #FFF;\n-  padding: 0.4em;\n-  }      \n-  \n-  td { \n-  font-family: monospace; \n-  text-align: left;\n-  background-color: #EEE;\n-  color: #000;\n-  padding: 0.4em;\n-  }\n-\n-  img {\n-  padding-top: 0;\n-  margin-top: 0;\n-  border-top: 0;\n-  }\n-\n-  \n-  p {\n-  padding-top: 0;\n-  margin-top: 0;\n-  }\n-  \n-</style>\n-\n-</head>\n-<body>\n-<div class="header">\n-<div id="header_title"><img src="fastqc_icon.png" alt="FastQC">FastQC Report</div>\n-<div id="header_filename">\n-Wed 16 Nov 2011<br />\n-dataset_1.dat\n-</div>\n-</div>\n-<div class="summary">\n-<h2>Summary</h2>\n-<ul>\n-<li><img src="tick.png" alt="[PASS]"> <a href="#M0">Basic Statistics</a></li>\n-<li><img src="warning.png" alt="[WARNING]"> <a href="#M1">Per base sequence quality</a></li>\n-<li><img src="warning.png" alt="[WARNING]"> <a href="#M2">Per sequence quality scores</a></li>\n-<li><img src="warning.png" alt="[WARNING]"> <a href="#M3">Per base sequence content</a></li>\n-<li><img src="tick.png" alt="[PASS]"> <a href="#M4">Per base GC content</a></li>\n-<li><img src="warning.png" alt="[WARNING]"> <a href="#M5">Per sequence GC content</a></li>\n-<li><img src="tick.png" alt="[PASS]"> <a href="#M6">Per base N content</a></li>\n-<li><img src="tick.png" alt="[PASS]"> <a href="#M7">Sequence Length Distribution</a></li>\n-<li><img src="tick.png" alt="[PASS]"> <a href="#M8">Sequence Duplication Levels</a></li>\n-<li><img src="warn'..b'09fuPr98QbWbsP+/EvnXd715MmTJ0+ePI326V1P/vVu9EoHVtO++p3H7/36xa5Pdz3+7jc/82d3fes+r+W1vNa4XuuJ95y99OGzTzx87qmPnvvXv936909sffdT29//zPZ//lPt0zuuPPhH/3Vm8b9NL+C1vJbX8lprfK3bT9/4n/8e5gf+SgaWmZmZ2VGYwDIzMzPLFljz4X6K0MzMzExg/SGwBvk9WGZmZmYCq4iUlG5pzdenFItZXV9xVtlIbsOmF8vR67VvMNN/GITfZoGPK9NHt5bzKnBktW8z9+dG4MgKWPk+N9Z1Xj43fG4Ebqus14ByfHqUvlKVUCHJr5ssdg2RAu9V8juZ9tC65befBs1z3uMc+KByW5m+ULbehrn/Tcz0EMymo8nxudH69nNb+b6JlvlUjzyjdbmDW7lvzAKfG8W+DEZ+bc+RqmW+p9QGVv+Pa+yBVThlbr9w7sDq/8nR6fJVWmB1fa0y37Bb31qZwEr4PMl3WGMOrPJflFtPrcwtWTIONvqbqM8NnxuR34sLfE8J/Oe0wKqp0YRXSYa6Rk+ZOzEFVr7/Bi0TWPkuvwusHFcOSn4TzfqQ2TLfRAOXDXJbuS+91N69VcDK97lR7Lxqb6vcnxtHOrCSL18ltEhua+UOuD53m+ZLwK7v4RgCq8y36pJ3ffb5PEkLx3yPbygWc2u/RDEvcj9avs+Npk/FAo99KfC5UeyO+KYWKXAb5v7cyP1Qtpi7cXNzw1wV2ojAKnDda5g7XHM+Lirt5ZP/ZVv+d2YjAqvwd9B58bsIs96GJWPO54bPjcjvcAX+k6nMHfElH+9V+Gr04J8bkQ+Eyv040UGUDQisvg/jz/wzeoUDq+dj8PN9XOv9JlrmoaNDfZ6M85tovv86XKOVtQmKfW6s9zac8N3HuX8n0Up8lLlIvOnn1XRbZb07MvBzplMOrJ73oCU/yCm3lVz9PS935bs1RnJXWsnP2JI/RbihMRf4YfWJ1VW+z42Y2zDreWX6JtqEDv65sa67VlsPrsxtmPW8Ct/dX+wnTIe66dbwe7CSf4dT2rWorBWYbPV5rT63fI5XCed/vt/70vRfh8U+YwtYJT+uSVo+N8ZpBW7AYlaOz42Ytzml23Be8LGb8/y/C33wTw+/sd3MzMxs6GJzE5iZmZkJLDMzMzOBZWZmZiawzMzMzExgmZmZmQksMzMzM4FlZmZmZgLLzMzMTGCZmZmZCSwzO6JfO7L9TSBZ//7dnh9R1r/b1MwElpltdhsN+Ld6TSYgBJaZCSwzG6wkehbAtAOr/20lsMwElpkd9cBqurJVff7tPzQ9P/DWll8x/O5FvuSKXiu2flydAiv8QVXfjsYyE1hmdnQDq1oqgT5o+qcxby3+Lbe+ZDWkwq8b816Fb6tOH6DAMhNYZnaEAitwbak1oeIDq/X58W854f67yCtkgxBp74mZCSwzm1RgxTy/9l62kQdWoB3D92YKLDMTWGZWOrACSTHaK1g9q0hgmZnAMrNhAiv+MUl9HoOVL7BaX8xjsMxMYJlZ0cCaR/wUXlNIdf0pwhyBNQ8+vKz2pwVbf4qw9t3o9FOE6spMYJmZWYcejWxWt6GZwDIzsywRZmYCy8zMBJaZCSwzMzMzgWVmZmY21f0WEZ3XMI3IozQAAAAASUVORK5C" height="600" width="800"></p></div><div class="module"><h2 id="M11"><img alt="[OK]" 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">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.2)</div></body></html>\n\\ No newline at end of file\n'
b
diff -r e28c965eeed4 -r 8fae48caaf06 test-data/fastqc_report2.html
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/fastqc_report2.html Tue Nov 11 12:46:27 2014 -0500
[
b'@@ -0,0 +1,2 @@\n+<html><head>\n+<meta http-equiv="content-type" content="text/html; charset=windows-1252"></head><body>1000gsample.fastq FastQC Report<div class="header"><div id="header_title"><img alt="FastQC" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAADfUlEQVR42rWXT0hUURTGj5ZpaZqDmYNaCZkuMjXFiiTThZEyoiRlZGmCBYlWMBU5kW+cmRwhKEQXEkRFEBkGQUbpQmnjwk0S4TKiFuWmFqlhf17fbe7Qm8e9z/dmpoEfDr57z/nueeeec4ZUVaVw6CNKdRM1KEQ3wWMwCSbAQ9AHakDSSnYsO4bRDDAAloC6Al9Bbz/R+qgIgLFy8MmEYz1zHqI8qQB8NoCtoAgcAPWgFZzXOC8D38NwHuQzyApLgJ8oBZs/Sgw/ZbngJcpmp8T34/jfa8naaXiLsfwKYNQlMejXG+TRSgJjoj2wVWtJADbF8vDpjb0ROdfsSweLgn3PLQnoJSqWnL7ZhPhBwb6FYaI4fQ4kgy2gEFRocwAh65AIyDAhoE6yt9S0ACx2CwwsG4VfI6BIkgcOKzkwIDDyXninaWQV6s5uIuUSuJdEzpeSCLRaEXBDYGA+1PFwHALVAafvgBokhS4Ia0IJOWaxvtaUANkVHCCKDzj3ZsPZtNZxkM3UJhSQSe3s+ZTZJDwmMoKik0vks8PQB5FzRhHVCwXg1ZgX4COyi4z0UCweKTMS5wvAc5ES3+r3dZFtia+ZMl0JWQnVG7pKq7/F0xWRc4jy5GLNfpHwaxTbiTWNYMhKKXaIjJ0h+99E0zhfBFl4Vg2+SNpzcljtGBtHRSIu01q1ifLVCqpkf1mkXoGfgrW/tfdfVIgyQT4oA1U8D06As2wNGypgZCaCdtxtNA+kghxQrGnHLeAc6NFEIQHcZqex4JgNMEeiNpIxtlHzgwYqVJ0Y+VZwPg/SojoTBiKm9AcTz0Zdag61qAXUyFqvXyBi6H8IcErufzqfiPXNx2UoAJ9EkAZQVmk7L0h7QCWoAYdBM2jnAuokAqpYl4TT+4JItBkJsPGZcCco506bwGmA07K5hG6BO1wAZkjll0DABHvOBg44HNcJ+KEfx8J+BVzEmDgKbge/MWv4bwgttn/7vdkRCugtkbyGZYhwsdlAInwXeAYmIxLAjXllnZDPBiOgGyD6yiMwq3ke0g3X8WKUwbsiS8QCUAr28cp4iBeoo+BkYJ8aA0N3DUQYMSVKwh1gL6jmmc9aMroX4RTs9ygNAjikJ6GRcHfyRmRFwHjEryBUxPWNMIrboswZOGU35wXADVMSoiogVIxvE6JSGej77lPgIGaEvKBTLX8AEZuD+ek/sxoAAAAASUVORK5C">FastQC Report</div><div id="header_filename">Thu 23 Oct 2014<br>1000gsample.fastq</div></div><div class="summary"><h2>Summary</h2><ul><li><img alt="[PASS]" 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"><a href="#M0">Basic Statistics</a></li><li><img alt="[WARNING]" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAEpklEQVR42s1XfUyUdRz/URrktNpaW/aHW1LLNdN0+U9WSzdfcq31/uLrWvZP+Y/2T+mc54GplSCOt4CBgqicpICGwokvSYkc3B3nQJxmBSo0K6fsiJe759Pn+zzccRx3xyGwvO07fvye5/f9fH7f90cBUP+nDP+QSd1XZ1LT6hPU/FqzWi4ia9mTZ2NGwLZZ'..b'09fuPr98QbWbsP+/EvnXd715MmTJ0+ePI326V1P/vVu9EoHVtO++p3H7/36xa5Pdz3+7jc/82d3fes+r+W1vNa4XuuJ95y99OGzTzx87qmPnvvXv936909sffdT29//zPZ//lPt0zuuPPhH/3Vm8b9NL+C1vJbX8lprfK3bT9/4n/8e5gf+SgaWmZmZ2VGYwDIzMzPLFljz4X6K0MzMzExg/SGwBvk9WGZmZmYCq4iUlG5pzdenFItZXV9xVtlIbsOmF8vR67VvMNN/GITfZoGPK9NHt5bzKnBktW8z9+dG4MgKWPk+N9Z1Xj43fG4Ebqus14ByfHqUvlKVUCHJr5ssdg2RAu9V8juZ9tC65befBs1z3uMc+KByW5m+ULbehrn/Tcz0EMymo8nxudH69nNb+b6JlvlUjzyjdbmDW7lvzAKfG8W+DEZ+bc+RqmW+p9QGVv+Pa+yBVThlbr9w7sDq/8nR6fJVWmB1fa0y37Bb31qZwEr4PMl3WGMOrPJflFtPrcwtWTIONvqbqM8NnxuR34sLfE8J/Oe0wKqp0YRXSYa6Rk+ZOzEFVr7/Bi0TWPkuvwusHFcOSn4TzfqQ2TLfRAOXDXJbuS+91N69VcDK97lR7Lxqb6vcnxtHOrCSL18ltEhua+UOuD53m+ZLwK7v4RgCq8y36pJ3ffb5PEkLx3yPbygWc2u/RDEvcj9avs+Npk/FAo99KfC5UeyO+KYWKXAb5v7cyP1Qtpi7cXNzw1wV2ojAKnDda5g7XHM+Lirt5ZP/ZVv+d2YjAqvwd9B58bsIs96GJWPO54bPjcjvcAX+k6nMHfElH+9V+Gr04J8bkQ+Eyv040UGUDQisvg/jz/wzeoUDq+dj8PN9XOv9JlrmoaNDfZ6M85tovv86XKOVtQmKfW6s9zac8N3HuX8n0Up8lLlIvOnn1XRbZb07MvBzplMOrJ73oCU/yCm3lVz9PS935bs1RnJXWsnP2JI/RbihMRf4YfWJ1VW+z42Y2zDreWX6JtqEDv65sa67VlsPrsxtmPW8Ct/dX+wnTIe66dbwe7CSf4dT2rWorBWYbPV5rT63fI5XCed/vt/70vRfh8U+YwtYJT+uSVo+N8ZpBW7AYlaOz42Ytzml23Be8LGb8/y/C33wTw+/sd3MzMxs6GJzE5iZmZkJLDMzMzOBZWZmZiawzMzMzExgmZmZmQksMzMzM4FlZmZmZgLLzMzMTGCZmZmZCSwzO6JfO7L9TSBZ//7dnh9R1r/b1MwElpltdhsN+Ld6TSYgBJaZCSwzG6wkehbAtAOr/20lsMwElpkd9cBqurJVff7tPzQ9P/DWll8x/O5FvuSKXiu2flydAiv8QVXfjsYyE1hmdnQDq1oqgT5o+qcxby3+Lbe+ZDWkwq8b816Fb6tOH6DAMhNYZnaEAitwbak1oeIDq/X58W854f67yCtkgxBp74mZCSwzm1RgxTy/9l62kQdWoB3D92YKLDMTWGZWOrACSTHaK1g9q0hgmZnAMrNhAiv+MUl9HoOVL7BaX8xjsMxMYJlZ0cCaR/wUXlNIdf0pwhyBNQ8+vKz2pwVbf4qw9t3o9FOE6spMYJmZWYcejWxWt6GZwDIzsywRZmYCy8zMBJaZCSwzMzMzgWVmZmY21f0WEZ3XMI3IozQAAAAASUVORK5C" height="600" width="800"></p></div><div class="module"><h2 id="M11"><img alt="[OK]" 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">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.2)</div></body></html>\n\\ No newline at end of file\n'
b
diff -r e28c965eeed4 -r 8fae48caaf06 tool_dependencies.xml
--- a/tool_dependencies.xml Mon Jan 27 09:29:14 2014 -0500
+++ b/tool_dependencies.xml Tue Nov 11 12:46:27 2014 -0500
b
@@ -1,6 +1,6 @@
 <?xml version="1.0"?>
 <tool_dependency>
-  <package name="FastQC" version="0.10.1">
-      <repository changeset_revision="4c650e5219e0" name="package_fastqc_0_10_1" owner="devteam" prior_installation_required="False" toolshed="http://toolshed.g2.bx.psu.edu" />
+  <package name="FastQC" version="0.11.2">
+      <repository changeset_revision="4b65f6e39cb0" name="package_fastqc_0_11_2" owner="devteam" toolshed="https://toolshed.g2.bx.psu.edu" />
     </package>
 </tool_dependency>