Merge ssh://jumpgate.caltech.edu/var/htsworkflow/htsworkflow
authorDiane Trout <diane@caltech.edu>
Fri, 25 May 2012 19:18:47 +0000 (12:18 -0700)
committerDiane Trout <diane@caltech.edu>
Fri, 25 May 2012 19:18:47 +0000 (12:18 -0700)
72 files changed:
encode_submission/encode_find.py
encode_submission/find-lib-by-cell.sparql
encode_submission/ucsc_gather.py
htsworkflow/frontend/samples/fixtures/initial_data.json
htsworkflow/pipelines/bustard.py
htsworkflow/pipelines/eland.py
htsworkflow/pipelines/gerald.py
htsworkflow/pipelines/runfolder.py
htsworkflow/pipelines/summary.py
htsworkflow/pipelines/test/simulate_runfolder.py
htsworkflow/pipelines/test/test_runfolder_rta1_12.py
htsworkflow/pipelines/test/test_summary.py
htsworkflow/pipelines/test/testdata/1_12/Status.htm [new file with mode: 0755]
htsworkflow/pipelines/test/testdata/1_12/Status_Files/ByCycle.htm [new file with mode: 0755]
htsworkflow/pipelines/test/testdata/1_12/Status_Files/ByCycle.js [new file with mode: 0755]
htsworkflow/pipelines/test/testdata/1_12/Status_Files/ByCycleFrame.htm [new file with mode: 0755]
htsworkflow/pipelines/test/testdata/1_12/Status_Files/ByLane.htm [new file with mode: 0755]
htsworkflow/pipelines/test/testdata/1_12/Status_Files/ByLane.js [new file with mode: 0755]
htsworkflow/pipelines/test/testdata/1_12/Status_Files/Charts.htm [new file with mode: 0755]
htsworkflow/pipelines/test/testdata/1_12/Status_Files/Charts.js [new file with mode: 0755]
htsworkflow/pipelines/test/testdata/1_12/Status_Files/Controls.htm [new file with mode: 0755]
htsworkflow/pipelines/test/testdata/1_12/Status_Files/Controls.js [new file with mode: 0755]
htsworkflow/pipelines/test/testdata/1_12/Status_Files/Controls.xsl [new file with mode: 0755]
htsworkflow/pipelines/test/testdata/1_12/Status_Files/Error.htm [new file with mode: 0755]
htsworkflow/pipelines/test/testdata/1_12/Status_Files/RefreshBtn/r1.png [new file with mode: 0755]
htsworkflow/pipelines/test/testdata/1_12/Status_Files/RefreshBtn/r2.png [new file with mode: 0755]
htsworkflow/pipelines/test/testdata/1_12/Status_Files/RefreshBtn/r3.png [new file with mode: 0755]
htsworkflow/pipelines/test/testdata/1_12/Status_Files/RunInfo.htm [new file with mode: 0755]
htsworkflow/pipelines/test/testdata/1_12/Status_Files/RunInfo.xsl [new file with mode: 0755]
htsworkflow/pipelines/test/testdata/1_12/Status_Files/RunName.xsl [new file with mode: 0755]
htsworkflow/pipelines/test/testdata/1_12/Status_Files/Status.css [new file with mode: 0755]
htsworkflow/pipelines/test/testdata/1_12/Status_Files/Status.js [new file with mode: 0755]
htsworkflow/pipelines/test/testdata/1_12/Status_Files/StatusError.htm [new file with mode: 0755]
htsworkflow/pipelines/test/testdata/1_12/Status_Files/StatusUpdate.xsl [new file with mode: 0755]
htsworkflow/pipelines/test/testdata/1_12/Status_Files/Summary.htm [new file with mode: 0755]
htsworkflow/pipelines/test/testdata/1_12/Status_Files/Summary.js [new file with mode: 0755]
htsworkflow/pipelines/test/testdata/1_12/Status_Files/Summary.xsl [new file with mode: 0755]
htsworkflow/pipelines/test/testdata/1_12/Status_Files/TilesPerLane.xsl [new file with mode: 0755]
htsworkflow/pipelines/test/testdata/1_12/Status_Files/illumina.png [new file with mode: 0755]
htsworkflow/pipelines/test/testdata/1_12/Summary-rta1_12.htm [new file with mode: 0755]
htsworkflow/pipelines/test/testdata/1_12/aligned_config_1_12.xml [new file with mode: 0644]
htsworkflow/pipelines/test/testdata/1_12/demultiplex_1.12.4.2.xml [new file with mode: 0644]
htsworkflow/pipelines/test/testdata/1_12/demultiplexed_bustard_1.12.4.2.xml [new file with mode: 0644]
htsworkflow/pipelines/test/testdata/1_12/demultiplexed_summary_1.12.4.2.xml [new file with mode: 0644]
htsworkflow/pipelines/test/testdata/1_12/reports/Process Control.png [new file with mode: 0755]
htsworkflow/pipelines/test/testdata/1_12/reports/Status.xml [new file with mode: 0755]
htsworkflow/pipelines/test/testdata/1_12/reports/StatusUpdate.xml [new file with mode: 0755]
htsworkflow/pipelines/test/testdata/1_12/reports/Summary/read1.xml [new file with mode: 0755]
htsworkflow/pipelines/test/testdata/1_12/reports/Summary/read2.xml [new file with mode: 0755]
htsworkflow/pipelines/test/testdata/1_12/rta_basecalls_config_1.12.4.2.xml [new file with mode: 0755]
htsworkflow/pipelines/test/testdata/1_12/rta_intensities_config_1.12.4.2.xml [new file with mode: 0755]
htsworkflow/pipelines/test/testdata/aligned_config_1_12.xml [deleted file]
htsworkflow/pipelines/test/testdata/demultiplex_1.12.4.2.xml [deleted file]
htsworkflow/pipelines/test/testdata/demultiplexed_bustard_1.12.4.2.xml [deleted file]
htsworkflow/pipelines/test/testdata/demultiplexed_summary_1.12.4.2.xml [deleted file]
htsworkflow/pipelines/test/testdata/rta_basecalls_config_1.12.4.2.xml [deleted file]
htsworkflow/pipelines/test/testdata/rta_intensities_config_1.12.4.2.xml [deleted file]
htsworkflow/submission/daf.py
htsworkflow/submission/geo.py
htsworkflow/submission/submission.py
htsworkflow/templates/geo_files.sparql [new file with mode: 0644]
htsworkflow/templates/geo_platform.sparql [new file with mode: 0644]
htsworkflow/templates/geo_samples.sparql [new file with mode: 0644]
htsworkflow/templates/geo_series.sparql [new file with mode: 0644]
htsworkflow/templates/geo_submission.soft
htsworkflow/templates/geo_submission.sparql [deleted file]
htsworkflow/templates/rdf_report.html [new file with mode: 0644]
htsworkflow/util/alphanum.py
htsworkflow/util/rdfhelp.py
htsworkflow/util/test/extra.turtle [new file with mode: 0644]
htsworkflow/util/test/test_alphanum.py
htsworkflow/util/test/test_rdfhelp.py

index 24ed16872cf7654d25cd40f5b0ad977976512e52..70f280f7e4f4f18c46c8206674ab27960001a82f 100644 (file)
@@ -20,6 +20,9 @@ import sys
 import urllib
 import urlparse
 
+if not 'DJANGO_SETTINGS_MODULE' in os.environ:
+    os.environ['DJANGO_SETTINGS_MODULE'] = 'htsworkflow.settings'
+
 from htsworkflow.submission import daf, ucsc
 
 from htsworkflow.util import api
@@ -124,7 +127,7 @@ def main(cmdline=None):
             load_encodedcc_files(model, **track_info )
 
     if opts.sparql is not None:
-        sparql_query(model, opts.sparql)
+        sparql_query(model, opts.sparql, 'html')
 
     if opts.find_submission_with_no_library:
         report_submissions_with_no_library(model)
index c4585c5bd4ce6cd7d038a85c64c993b2fee94934..eac66c14e8347630dd0050e16e4c6fbe6450f47d 100644 (file)
@@ -6,12 +6,15 @@ PREFIX libraryOntology:<http://jumpgate.caltech.edu/wiki/LibraryOntology#>
 
 SELECT distinct ?liburn ?cell ?replicate ?subid ?name ?submission_date
 WHERE {
-    ?subid ucscSubmission:name ?name .
-    OPTIONAL { ?subid ucscSubmission:library_urn ?liburn ;
-                       libraryOntology:date ?submission_date .
-               ?liburn libraryOntology:cell_line ?cell ;
-                       libraryOntology:replicate ?replicate . }
+    ?subid ucscSubmission:name ?name ;
+           ucscSubmission:library_urn ?liburn ;
+           libraryOntology:date ?submission_date.
+    ?liburn libraryOntology:cell_line ?cell ;
+            libraryOntology:replicate ?replicate ;
+            libraryOntology:species ?species .
+    OPTIONAL { ?liburn libraryOntology:treatement ?treatment . }
+    FILTER(regex(?species, "Homo sapiens", "i"))
     #filter(?submission_date > "2011-04-01T00:00:00Z"^^xsd:dateTime)
     #filter(!bound(?liburn))
 }
-ORDER BY ?submission_date ?cell ?replicate ?liburn
+ORDER BY  ?liburn ?submission_date
\ No newline at end of file
index 1cdf0118f6f990943adec84ab90492be44f360fe..c45e3820bbc8b9f146684bef9ed8f5443fb03f8e 100644 (file)
@@ -39,11 +39,19 @@ from htsworkflow.submission.condorfastq import CondorFastqExtract
 
 logger = logging.getLogger('ucsc_gather')
 
+TAR = '/bin/tar'
+LFTP = '/usr/bin/lftp'
+
 def main(cmdline=None):
     parser = make_parser()
     opts, args = parser.parse_args(cmdline)
     submission_uri = None
 
+    global TAR
+    global LFTP
+    TAR = opts.tar
+    LFTP = opts.lftp
+
     if opts.debug:
         logging.basicConfig(level = logging.DEBUG )
     elif opts.verbose:
@@ -56,7 +64,7 @@ def main(cmdline=None):
     model = get_model(opts.model, opts.db_path)
     mapper = None
     if opts.name:
-        mapper = UCSCSubmssion(opts.name, opts.daf,  model)
+        mapper = UCSCSubmission(opts.name, opts.daf,  model)
         if opts.library_url is not None:
             mapper.library_url = opts.library_url
         submission_uri = get_submission_uri(opts.name)
@@ -93,6 +101,10 @@ def main(cmdline=None):
         mapper.scan_submission_dirs(results)
 
     if opts.make_ddf:
+        if not os.path.exists(TAR):
+            parser.error("%s does not exist, please specify --tar" % (TAR,))
+        if not os.path.exists(LFTP):
+            parser.error("%s does not exist, please specify --lftp" % (LFTP,))
         make_all_ddfs(mapper, results, opts.daf, force=opts.force)
 
     if opts.zip_ddf:
@@ -120,6 +132,10 @@ def make_parser():
     model.add_option('--sparql', default=None, help="execute sparql query")
     model.add_option('--print-rdf', action="store_true", default=False,
       help="print ending model state")
+    model.add_option('--tar', default=TAR,
+                     help="override path to tar command")
+    model.add_option('--lftp', default=LFTP,
+                     help="override path to lftp command")
     parser.add_option_group(model)
     # commands
     commands = OptionGroup(parser, 'commands')
@@ -157,7 +173,7 @@ def make_parser():
 
 def make_all_ddfs(view_map, library_result_map, daf_name, make_condor=True, force=False):
     dag_fragment = []
-    for lib_id, result_dir in library_result_map:
+    for lib_id, result_dir in library_result_map.items():
         submissionNode = view_map.get_submission_node(result_dir)
         dag_fragment.extend(
             make_ddf(view_map, submissionNode, daf_name, make_condor, result_dir)
@@ -301,7 +317,7 @@ def zip_ddfs(view_map, library_result_map, daf_name):
 def make_condor_archive_script(name, files, outdir=None):
     script = """Universe = vanilla
 
-Executable = /bin/tar
+Executable = %(tar)s
 arguments = czvhf ../%(archivename)s %(filelist)s
 
 Error = compress.out.$(Process).log
@@ -323,7 +339,8 @@ queue
     context = {'archivename': make_submission_name(name),
                'filelist': " ".join(files),
                'initialdir': os.path.abspath(outdir),
-               'user': os.getlogin()}
+               'user': os.getlogin(),
+               'tar': TAR}
 
     condor_script = os.path.join(outdir, make_condor_name(name, 'archive'))
     condor_stream = open(condor_script,'w')
@@ -332,11 +349,11 @@ queue
     return condor_script
 
 
-def make_condor_upload_script(name, outdir=None):
+def make_condor_upload_script(name, lftp, outdir=None):
     script = """Universe = vanilla
 
-Executable = /usr/bin/lftp
-arguments = -c put ../%(archivename)s -o ftp://%(ftpuser)s:%(ftppassword)s@%(ftphost)s/%(archivename)s
+Executable = %(lftp)s
+arguments = -c put %(archivename)s -o ftp://%(ftpuser)s:%(ftppassword)s@%(ftphost)s/%(archivename)s
 
 Error = upload.out.$(Process).log
 Output = upload.out.$(Process).log
@@ -358,7 +375,8 @@ queue
                'user': os.getlogin(),
                'ftpuser': ftpuser,
                'ftppassword': ftppassword,
-               'ftphost': encodeftp}
+               'ftphost': encodeftp,
+               'lftp': LFTP}
 
     condor_script = os.path.join(outdir, make_condor_name(name, 'upload'))
     condor_stream = open(condor_script,'w')
index 76a221e029f920d1181b969017b4a273c61ca2ab..de3ad89a6211bc51319833ad45c5c4b0ab5dd9b8 100644 (file)
@@ -11,7 +11,7 @@
      "model": "samples.Cellline",
      "pk": 2,
      "fields": {
-        "cellline_name": "C2C12 Exponential",
+        "cellline_name": "C2C12",
         "notes": ""
      }
   },
index 5ebde3901cea490dedb3c1d4067d1e2f01edab8b..acdc60ea7a511c3a30386beaf0c9b6d10e777f0c 100644 (file)
@@ -219,6 +219,25 @@ class Bustard(object):
         if xml is not None:
             self.set_elements(xml)
 
+    def update_attributes_from_pathname(self):
+        """Update version, date, user from bustard directory names
+        Obviously this wont work for BaseCalls or later runfolders
+        """
+        if self.pathname is None:
+            raise ValueError(
+                "Set pathname before calling update_attributes_from_pathname")
+        path, name = os.path.split(self.pathname)
+
+        if not re.match('bustard', name, re.IGNORECASE):
+            return
+
+        groups = name.split("_")
+        version = re.search(VERSION_RE, groups[0])
+        self.version = version.group(1)
+        t = time.strptime(groups[1], EUROPEAN_STRPTIME)
+        self.date = date(*t[0:3])
+        self.user = groups[2]
+
     def _get_time(self):
         if self.date is None:
             return None
@@ -290,47 +309,92 @@ def bustard(pathname):
     :Return:
       Fully initialized Bustard object.
     """
-    b = Bustard()
     pathname = os.path.abspath(pathname)
+    bustard_filename = os.path.join(pathname, 'config.xml')
+    demultiplexed_filename = os.path.join(pathname,
+                                          'DemultiplexedBustardConfig.xml')
+
+    if os.path.exists(demultiplexed_filename):
+        b = bustard_from_hiseq(pathname, demultiplexed_filename)
+    elif os.path.exists(bustard_filename):
+        b = bustard_from_ga2(pathname, bustard_filename)
+    else:
+        b = bustard_from_ga1(pathname)
+
+    return b
+
+def bustard_from_ga1(pathname):
+    """Initialize bustard class from ga1 era runfolders.
+    """
     path, name = os.path.split(pathname)
+
     groups = name.split("_")
-    if groups[0].lower().startswith('bustard'):
-        version = re.search(VERSION_RE, groups[0])
-        b.version = version.group(1)
-        t = time.strptime(groups[1], EUROPEAN_STRPTIME)
-        b.date = date(*t[0:3])
-        b.user = groups[2]
-    elif groups[0] == 'BaseCalls':
-        # stub values
-        b.version = None
-        b.date = None
-        b.user = None
+    if len(groups) < 3:
+        msg = "Not enough information to create attributes"\
+              " from directory name: %s"
+        LOGGER.error(msg % (self.pathname,))
+        return None
 
+    b = Bustard()
     b.pathname = pathname
-    bustard_config_filename = os.path.join(pathname, 'config.xml')
-    paramfiles = glob(os.path.join(pathname, "params?.xml"))
-    for paramfile in paramfiles:
-        phasing = Phasing(paramfile)
-        assert (phasing.lane >= 1 and phasing.lane <= 8)
-        b.phasing[phasing.lane] = phasing
+    b.update_attributes_from_pathname()
+    version = re.search(VERSION_RE, groups[0])
+    b.version = version.group(1)
+    t = time.strptime(groups[1], EUROPEAN_STRPTIME)
+    b.date = date(*t[0:3])
+    b.user = groups[2]
+
     # I only found these in Bustard1.9.5/1.9.6 directories
     if b.version in ('1.9.5', '1.9.6'):
         # at least for our runfolders for 1.9.5 and 1.9.6 matrix[1-8].txt are always the same
         crosstalk_file = os.path.join(pathname, "matrix1.txt")
         b.crosstalk = CrosstalkMatrix(crosstalk_file)
+
+    add_phasing(b)
+    return b
+
+
+def bustard_from_ga2(pathname, config_filename):
+    """Initialize bustard class from ga2-era runfolder
+    Actually I don't quite remember if it is exactly the GA2s, but
+    its after the original runfolder style and before the HiSeq.
+    """
     # for version 1.3.2 of the pipeline the bustard version number went down
     # to match the rest of the pipeline. However there's now a nifty
     # new (useful) bustard config file.
-    elif os.path.exists(bustard_config_filename):
-        bustard_config_root = ElementTree.parse(bustard_config_filename)
-        b.bustard_config = bustard_config_root.getroot()
-        b.crosstalk = crosstalk_matrix_from_bustard_config(b.pathname, b.bustard_config)
-        software = bustard_config_root.find('*/Software')
-        b.version = software.attrib['Version']
-        #b.version = software.attrib['Name'] + "-" + software.attrib['Version']
+
+    # stub values
+    b = Bustard()
+    b.pathname = pathname
+    b.update_attributes_from_pathname()
+    bustard_config_root = ElementTree.parse(config_filename)
+    b.bustard_config = bustard_config_root.getroot()
+    b.crosstalk = crosstalk_matrix_from_bustard_config(b.pathname,
+                                                       b.bustard_config)
+    software = bustard_config_root.find('*/Software')
+    b.version = software.attrib['Version']
+    add_phasing(b)
 
     return b
 
+def bustard_from_hiseq(pathname, config_filename):
+    b = Bustard()
+    b.pathname = pathname
+    bustard_config_root = ElementTree.parse(config_filename)
+    b.bustard_config = bustard_config_root.getroot()
+    software = bustard_config_root.find('*/Software')
+    b.version = software.attrib['Version']
+    add_phasing(b)
+    return b
+
+def add_phasing(bustard_obj):
+    paramfiles = glob(os.path.join(bustard_obj.pathname,
+                                   "params?.xml"))
+    for paramfile in paramfiles:
+        phasing = Phasing(paramfile)
+        assert (phasing.lane >= 1 and phasing.lane <= 8)
+        bustard_obj.phasing[phasing.lane] = phasing
+
 def fromxml(tree):
     """
     Reconstruct a htsworkflow.pipelines.Bustard object from an xml block
index c3aa3274f70cc348edbedd5e168610fcf51bce57..cf6de6c55a05f867c01bd595c57ae931957a66b6 100644 (file)
@@ -133,7 +133,7 @@ class ElandLane(ResultLane):
         if os.stat(self.pathname)[stat.ST_SIZE] == 0:
             raise RuntimeError("Eland isn't done, try again later.")
 
-        LOGGER.info("summarizing results for %s" % (self.pathname))
+        LOGGER.debug("summarizing results for %s" % (self.pathname))
 
         stream = autoopen(self.pathname, 'r')
         if self.eland_type == ELAND_SINGLE:
@@ -582,7 +582,7 @@ def check_for_eland_file(basedir, pattern, lane_id, end):
       full_lane_id = "%d_%d" % ( lane_id, end )
 
    basename = pattern % (full_lane_id,)
-   LOGGER.info("Eland pattern: %s" %(basename,))
+   LOGGER.debug("Eland pattern: %s" %(basename,))
    pathname = os.path.join(basedir, basename)
    if os.path.exists(pathname):
        LOGGER.info('found eland file in %s' % (pathname,))
index 06fc94b5433cfb00a131a8aee5e6ab78684e0cc4..e13ac2ab22354a0a4d026b2e2e3d303e1f4214f9 100644 (file)
@@ -4,9 +4,10 @@ Provide access to information stored in the GERALD directory.
 from datetime import datetime, date
 import logging
 import os
+import stat
 import time
 
-from htsworkflow.pipelines.summary import Summary
+from htsworkflow.pipelines.summary import Summary, SummaryGA, SummaryHiSeq
 from htsworkflow.pipelines.eland import eland, ELAND
 
 from htsworkflow.pipelines.runfolder import \
@@ -91,6 +92,8 @@ class Gerald(object):
             self._lanes = {}
             tree = self._gerald.tree
             analysis = tree.find('LaneSpecificRunParameters/ANALYSIS')
+            if analysis is None:
+                return
             # according to the pipeline specs I think their fields
             # are sampleName_laneID, with sampleName defaulting to s
             # since laneIDs are constant lets just try using
@@ -104,6 +107,10 @@ class Gerald(object):
             if self._lane is None:
                 self._initalize_lanes()
             return self._lanes[key]
+        def get(self, key, default):
+            if self._lane is None:
+                self._initalize_lanes()
+            return self._lanes.get(key, None)
         def keys(self):
             if self._lane is None:
                 self._initalize_lanes()
@@ -138,8 +145,13 @@ class Gerald(object):
         if self.tree is None:
             return datetime.today()
         timestamp = self.tree.findtext('ChipWideRunParameters/TIME_STAMP')
-        epochstamp = time.mktime(time.strptime(timestamp, '%c'))
-        return datetime.fromtimestamp(epochstamp)
+        if timestamp is not None:
+            epochstamp = time.mktime(time.strptime(timestamp, '%c'))
+            return datetime.fromtimestamp(epochstamp)
+        if self.pathname is not None:
+            epochstamp = os.stat(self.pathname)[stat.ST_MTIME]
+            return datetime.fromtimestamp(epochstamp)
+        return datetime.today()
     date = property(_get_date)
 
     def _get_time(self):
@@ -155,27 +167,35 @@ class Gerald(object):
         if self.tree is None:
             return None
 
-        root = self._get_experiment_root()
-        if root is None:
-            root = ''
-        else:
-            root = os.path.join(root,'')
+        expt_root = os.path.normpath(self._get_experiment_root())
+        chip_expt_dir = self.tree.findtext('ChipWideRunParameters/EXPT_DIR')
+        # hiseqs renamed the experiment dir location
+        defaults_expt_dir = self.tree.findtext('Defaults/EXPT_DIR')
 
-        experiment_dir = self.tree.findtext('ChipWideRunParameters/EXPT_DIR')
-        if experiment_dir is None:
-            return None
-        experiment_dir = experiment_dir.replace(root, '')
-        if len(experiment_dir) == 0:
+        experiment_dir = None
+        if defaults_expt_dir is not None:
+            _, experiment_dir = os.path.split(defaults_expt_dir)
+        elif expt_root is not None and chip_expt_dir is not None:
+            experiment_dir = chip_expt_dir.replace(expt_root+os.path.sep, '')
+            experiment_dir = experiment_dir.split(os.path.sep)[0]
+
+        if experiment_dir is None or len(experiment_dir) == 0:
             return None
+        return experiment_dir
 
-        dirnames = experiment_dir.split(os.path.sep)
-        return dirnames[0]
     runfolder_name = property(_get_runfolder_name)
 
     def _get_version(self):
         if self.tree is None:
             return None
-        return self.tree.findtext('ChipWideRunParameters/SOFTWARE_VERSION')
+        ga_version = self.tree.findtext(
+            'ChipWideRunParameters/SOFTWARE_VERSION')
+        if ga_version is not None:
+            return ga_version
+        hiseq_software_node = self.tree.find('Software')
+        hiseq_version = hiseq_software_node.attrib['Version']
+        return hiseq_version
+
     version = property(_get_version)
 
     def _get_chip_attribute(self, value):
@@ -229,15 +249,23 @@ def gerald(pathname):
     g.tree = ElementTree.parse(config_pathname).getroot()
 
     # parse Summary.htm file
-    summary_pathname = os.path.join(g.pathname, 'Summary.xml')
-    if os.path.exists(summary_pathname):
+    summary_xml = os.path.join(g.pathname, 'Summary.xml')
+    summary_htm = os.path.join(g.pathname, 'Summary.htm')
+    report_summary = os.path.join(g.pathname, '..', 'Data',
+                                  'reports', 'Summary', )
+    if os.path.exists(summary_xml):
         LOGGER.info("Parsing Summary.xml")
-    else:
-        summary_pathname = os.path.join(g.pathname, 'Summary.htm')
+        g.summary = SummaryGA(summary_xml)
+        g.eland_results = eland(g.pathname, g)
+    elif os.path.exists(summary_htm):
         LOGGER.info("Parsing Summary.htm")
-    g.summary = Summary(summary_pathname)
+        g.summary = SummaryGA(summary_htm)
+        g.eland_results = eland(g.pathname, g)
+    elif os.path.isdir(report_summary):
+        LOGGER.info("Parsing %s" % (report_summary,))
+        g.summary = SummaryHiSeq(report_summary)
+
     # parse eland files
-    g.eland_results = eland(g.pathname, g)
     return g
 
 if __name__ == "__main__":
index 3389c2d9ab8ad6f3ffc4b2378c0c8fcd7ff8139a..9edba3113b1a8d097993d2795a83b9c56acc1ae2 100644 (file)
@@ -47,6 +47,7 @@ class PipelineRun(object):
           self.pathname = None
         self._name = None
         self._flowcell_id = flowcell_id
+        self.datadir = None
         self.image_analysis = None
         self.bustard = None
         self.gerald = None
@@ -177,7 +178,7 @@ def get_runs(runfolder, flowcell_id=None):
     from htsworkflow.pipelines import bustard
     from htsworkflow.pipelines import gerald
 
-    def scan_post_image_analysis(runs, runfolder, image_analysis, pathname):
+    def scan_post_image_analysis(runs, runfolder, datadir, image_analysis, pathname):
         LOGGER.info("Looking for bustard directories in %s" % (pathname,))
         bustard_dirs = glob(os.path.join(pathname, "Bustard*"))
         # RTA BaseCalls looks enough like Bustard.
@@ -185,19 +186,41 @@ def get_runs(runfolder, flowcell_id=None):
         for bustard_pathname in bustard_dirs:
             LOGGER.info("Found bustard directory %s" % (bustard_pathname,))
             b = bustard.bustard(bustard_pathname)
-            gerald_glob = os.path.join(bustard_pathname, 'GERALD*')
-            LOGGER.info("Looking for gerald directories in %s" % (pathname,))
-            for gerald_pathname in glob(gerald_glob):
-                LOGGER.info("Found gerald directory %s" % (gerald_pathname,))
-                try:
-                    g = gerald.gerald(gerald_pathname)
-                    p = PipelineRun(runfolder, flowcell_id)
-                    p.image_analysis = image_analysis
-                    p.bustard = b
-                    p.gerald = g
-                    runs.append(p)
-                except IOError, e:
-                    LOGGER.error("Ignoring " + str(e))
+            build_gerald_runs(runs, b, image_analysis, bustard_pathname, datadir, pathname, runfolder)
+
+            build_aligned_runs(image_analysis, runs, b, datadir, runfolder)
+
+    def build_gerald_runs(runs, b, image_analysis, bustard_pathname, datadir, pathname, runfolder):
+        gerald_glob = os.path.join(bustard_pathname, 'GERALD*')
+        LOGGER.info("Looking for gerald directories in %s" % (pathname,))
+        for gerald_pathname in glob(gerald_glob):
+            LOGGER.info("Found gerald directory %s" % (gerald_pathname,))
+            try:
+                g = gerald.gerald(gerald_pathname)
+                p = PipelineRun(runfolder, flowcell_id)
+                p.datadir = datadir
+                p.image_analysis = image_analysis
+                p.bustard = b
+                p.gerald = g
+                runs.append(p)
+            except IOError, e:
+                LOGGER.error("Ignoring " + str(e))
+
+
+    def build_aligned_runs(image_analysis, runs, b, datadir, runfolder):
+        aligned_glob = os.path.join(runfolder, 'Aligned*')
+        for aligned in glob(aligned_glob):
+            LOGGER.info("Found aligned directory %s" % (aligned,))
+            try:
+                g = gerald.gerald(aligned)
+                p = PipelineRun(runfolder, flowcell_id)
+                p.datadir = datadir
+                p.image_analysis = image_analysis
+                p.bustard = b
+                p.gerald = g
+                runs.append(p)
+            except IOError, e:
+                LOGGER.error("Ignoring " + str(e))
 
     datadir = os.path.join(runfolder, 'Data')
 
@@ -213,7 +236,7 @@ def get_runs(runfolder, flowcell_id=None):
             )
         else:
             scan_post_image_analysis(
-                runs, runfolder, image_analysis, firecrest_pathname
+                runs, runfolder, datadir, image_analysis, firecrest_pathname
             )
     # scan for IPAR directories
     ipar_dirs = glob(os.path.join(datadir, "IPAR_*"))
@@ -228,7 +251,7 @@ def get_runs(runfolder, flowcell_id=None):
             )
         else:
             scan_post_image_analysis(
-                runs, runfolder, image_analysis, ipar_pathname
+                runs, runfolder, datadir, image_analysis, ipar_pathname
             )
 
     return runs
@@ -407,12 +430,17 @@ def save_flowcell_reports(data_dir, cycle_dir):
         os.chdir(cwd)
 
 
-def save_summary_file(gerald_object, cycle_dir):
+def save_summary_file(pipeline, cycle_dir):
     # Copy Summary.htm
-    summary_path = os.path.join(gerald_object.pathname, 'Summary.htm')
-    if os.path.exists(summary_path):
-        LOGGER.info('Copying %s to %s' % (summary_path, cycle_dir))
-        shutil.copy(summary_path, cycle_dir)
+    gerald_object = pipeline.gerald
+    gerald_summary = os.path.join(gerald_object.pathname, 'Summary.htm')
+    status_files_summary = os.path.join(pipeline.datadir, 'Status_Files', 'Summary.htm')
+    if os.path.exists(gerald_summary):
+        LOGGER.info('Copying %s to %s' % (gerald_summary, cycle_dir))
+        shutil.copy(gerald_summary, cycle_dir)
+    elif os.path.exists(status_files_summary):
+        LOGGER.info('Copying %s to %s' % (status_files_summary, cycle_dir))
+        shutil.copy(status_files_summary, cycle_dir)
     else:
         LOGGER.info('Summary file %s was not found' % (summary_path,))
 
@@ -551,13 +579,17 @@ def extract_results(runs, output_base_dir=None, site="individual", num_jobs=1, r
       if site is not None:
         lanes = []
         for lane in range(1, 9):
-          if r.gerald.lanes[lane].analysis != 'none':
+          lane_parameters = r.gerald.lanes.get(lane, None)
+          if lane_parameters is not None and lane_parameters.analysis != 'none':
             lanes.append(lane)
 
         run_name = srf.pathname_to_run_name(r.pathname)
         seq_cmds = []
+        LOGGER.info("Raw Format is: %s" % (raw_format, ))
         if raw_format == 'fastq':
-            srf.copy_hiseq_project_fastqs(run_name, r.bustard.pathname, site, cycle_dir)
+            rawpath = os.path.join(r.pathname, r.gerald.runfolder_name)
+            LOGGER.info("raw data = %s" % (rawpath,))
+            srf.copy_hiseq_project_fastqs(run_name, rawpath, site, cycle_dir)
         elif raw_format == 'qseq':
             seq_cmds = srf.make_qseq_commands(run_name, r.bustard.pathname, lanes, site, cycle_dir)
         elif raw_format == 'srf':
@@ -571,7 +603,7 @@ def extract_results(runs, output_base_dir=None, site="individual", num_jobs=1, r
       g = r.gerald
 
       # save summary file
-      save_summary_file(g, cycle_dir)
+      save_summary_file(r, cycle_dir)
 
       # compress eland result files
       compress_eland_results(g, cycle_dir, num_jobs)
index 8c5ab7f91215d7c38198c124e1014b6637dd738a..6fdda43cf8b4abcee39100e4204df7182fa4a48b 100644 (file)
@@ -1,6 +1,7 @@
 """
 Analyze the Summary.htm file produced by GERALD
 """
+import os
 import logging
 import re
 import types
@@ -21,138 +22,6 @@ class Summary(object):
     XML_VERSION = 3
     SUMMARY = 'Summary'
 
-    class LaneResultSummary(object):
-        """
-        Parse the LaneResultSummary table out of Summary.htm
-        Mostly for the cluster number
-        """
-        LANE_RESULT_SUMMARY = 'LaneResultSummary'
-        TAGS = {
-          'LaneYield': 'lane_yield',
-          'Cluster': 'cluster', # Raw
-          'ClusterPF': 'cluster_pass_filter',
-          'AverageFirstCycleIntensity': 'average_first_cycle_intensity',
-          'PercentIntensityAfter20Cycles': 'percent_intensity_after_20_cycles',
-          'PercentPassFilterClusters': 'percent_pass_filter_clusters',
-          'PercentPassFilterAlign': 'percent_pass_filter_align',
-          'AverageAlignmentScore': 'average_alignment_score',
-          'PercentErrorRate': 'percent_error_rate'
-        }
-        # These are tags that have mean/stdev as found in the GERALD Summary.xml file
-        GERALD_TAGS = {
-          #'laneYield': 'lane_yield', #this is just a number
-          'clusterCountRaw': 'cluster', # Raw
-          'clusterCountPF': 'cluster_pass_filter',
-          'oneSig': 'average_first_cycle_intensity',
-          'signal20AsPctOf1': 'percent_intensity_after_20_cycles',
-          'percentClustersPF': 'percent_pass_filter_clusters',
-          'percentUniquelyAlignedPF': 'percent_pass_filter_align',
-          'averageAlignScorePF': 'average_alignment_score',
-          'errorPF': 'percent_error_rate'
-        }
-
-        def __init__(self, html=None, xml=None):
-            self.lane = None
-            self.end = 0
-            self.lane_yield = None
-            self.cluster = None
-            self.cluster_pass_filter = None
-            self.average_first_cycle_intensity = None
-            self.percent_intensity_after_20_cycles = None
-            self.percent_pass_filter_clusters = None
-            self.percent_pass_filter_align = None
-            self.average_alignment_score = None
-            self.percent_error_rate = None
-
-            if html is not None:
-                self.set_elements_from_source(html)
-            if xml is not None:
-                self.set_elements(xml)
-
-        def set_elements_from_source(self, data):
-            """Read from an initial summary data file. Either xml or html
-            """
-            if not len(data) in (8,10):
-                raise RuntimeError("Summary.htm file format changed, len(data)=%d" % (len(data),))
-
-            # same in pre-0.3.0 Summary file and 0.3 summary file
-            self.lane = int(data[0])
-
-            if len(data) == 8:
-                parsed_data = [ parse_mean_range(x) for x in data[1:] ]
-                # this is the < 0.3 Pipeline version
-                self.cluster = parsed_data[0]
-                self.average_first_cycle_intensity = parsed_data[1]
-                self.percent_intensity_after_20_cycles = parsed_data[2]
-                self.percent_pass_filter_clusters = parsed_data[3]
-                self.percent_pass_filter_align = parsed_data[4]
-                self.average_alignment_score = parsed_data[5]
-                self.percent_error_rate = parsed_data[6]
-            elif len(data) == 10:
-                parsed_data = [ parse_mean_range(x) for x in data[2:] ]
-                # this is the >= 0.3 summary file
-                self.lane_yield = data[1]
-                self.cluster = parsed_data[0]
-                self.cluster_pass_filter = parsed_data[1]
-                self.average_first_cycle_intensity = parsed_data[2]
-                self.percent_intensity_after_20_cycles = parsed_data[3]
-                self.percent_pass_filter_clusters = parsed_data[4]
-                self.percent_pass_filter_align = parsed_data[5]
-                self.average_alignment_score = parsed_data[6]
-                self.percent_error_rate = parsed_data[7]
-
-        def set_elements_from_gerald_xml(self, read, element):
-            self.lane = int(element.find('laneNumber').text)
-            self.end = read
-            lane_yield_node = element.find('laneYield')
-            if lane_yield_node is not None:
-                self.lane_yield = int(lane_yield_node.text)
-            else:
-                self.lane_yield = None
-
-            for GeraldName, LRSName in Summary.LaneResultSummary.GERALD_TAGS.items():
-                node = element.find(GeraldName)
-                if node is None:
-                    LOGGER.info("Couldn't find %s" % (GeraldName))
-                setattr(self, LRSName, parse_xml_mean_range(node))
-
-        def get_elements(self):
-            lane_result = etree.Element(
-                            Summary.LaneResultSummary.LANE_RESULT_SUMMARY,
-                            {'lane': unicode(self.lane), 'end': unicode(self.end)})
-            for tag, variable_name in Summary.LaneResultSummary.TAGS.items():
-                value = getattr(self, variable_name)
-                if value is None:
-                    continue
-                # it looks like a sequence
-                elif type(value) in (types.TupleType, types.ListType):
-                    element = make_mean_range_element(
-                      lane_result,
-                      tag,
-                      *value
-                    )
-                else:
-                    element = etree.SubElement(lane_result, tag)
-                    element.text = unicode(value)
-            return lane_result
-
-        def set_elements(self, tree):
-            if tree.tag != Summary.LaneResultSummary.LANE_RESULT_SUMMARY:
-                raise ValueError('Expected %s' % (
-                        Summary.LaneResultSummary.LANE_RESULT_SUMMARY))
-            self.lane = int(tree.attrib['lane'])
-            # default to the first end, for the older summary files
-            # that are single ended
-            self.end = int(tree.attrib.get('end', 0))
-            tags = Summary.LaneResultSummary.TAGS
-            for element in list(tree):
-                try:
-                    variable_name = tags[element.tag]
-                    setattr(self, variable_name,
-                            parse_summary_element(element))
-                except KeyError, e:
-                    LOGGER.warn('Unrecognized tag %s' % (element.tag,))
-
     def __init__(self, filename=None, xml=None):
         # lane results is a list of 1 or 2 ends containing
         # a dictionary of all the lanes reported in this
@@ -170,6 +39,41 @@ class Summary(object):
     def __len__(self):
         return len(self.lane_results)
 
+    def get_elements(self):
+        summary = etree.Element(Summary.SUMMARY,
+                                      {'version': unicode(Summary.XML_VERSION)})
+        for end in self.lane_results:
+            for lane in end.values():
+                summary.append(lane.get_elements())
+        return summary
+
+    def set_elements(self, tree):
+        if tree.tag != Summary.SUMMARY:
+            return ValueError("Expected %s" % (Summary.SUMMARY,))
+        xml_version = int(tree.attrib.get('version', 0))
+        if xml_version > Summary.XML_VERSION:
+            LOGGER.warn('Summary XML tree is a higher version than this class')
+        for element in list(tree):
+            lrs = LaneResultSummaryGA()
+            lrs.set_elements(element)
+            if len(self.lane_results) < (lrs.end + 1):
+              self.lane_results.append({})
+            self.lane_results[lrs.end][lrs.lane] = lrs
+
+    def is_paired_end(self):
+      return len(self.lane_results) == 2
+
+    def dump(self):
+        """
+        Debugging function, report current object
+        """
+        tree = self.get_elements()
+        print etree.tostring(tree)
+
+class SummaryGA(Summary):
+    def __init__(self, filename=None, xml=None):
+        super(SummaryGA, self).__init__(filename, xml)
+
     def _flattened_row(self, row):
         """
         flatten the children of a <tr>...</tr>
@@ -249,7 +153,7 @@ class Summary(object):
                 read = int(read_tree.find('readNumber').text)-1
                 for element in read_tree.getchildren():
                     if element.tag.lower() == "lane":
-                        lrs = Summary.LaneResultSummary()
+                        lrs = LaneResultSummaryGA()
                         lrs.set_elements_from_gerald_xml(read, element)
                         self.lane_results[lrs.end][lrs.lane] = lrs
         # probably not useful
@@ -299,41 +203,211 @@ class Summary(object):
           self.lane_results.append({})
 
         for r in lane_summary:
-            lrs = Summary.LaneResultSummary(html=r)
+            lrs = LaneResultSummaryGA(html=r)
             lrs.end = end
             self.lane_results[lrs.end][lrs.lane] = lrs
     ###### END HTML Table Extraction ########
 
+
+class SummaryHiSeq(Summary):
+    def __init__(self, filename=None, xml=None):
+        super(SummaryHiSeq, self).__init__(filename, xml)
+
+    def _extract_lane_results(self, filename):
+        read1 = os.path.join(filename, 'read1.xml')
+        read2 = os.path.join(filename, 'read2.xml')
+
+        if os.path.exists(read1):
+            self._extract_lane_results_for_end(read1, 0)
+        else:
+            LOGGER.warn("No read1.xml at %s." % (read1,))
+        if os.path.exists(read2):
+            self.lane_results.append({})
+            self._extract_lane_results_for_end(read2, 1)
+
+    def _extract_lane_results_for_end(self, filename, end):
+        self.tree = etree.parse(filename)
+        root = self.tree.getroot()
+        for lane in root.getchildren():
+            lrs = LaneResultSummaryHiSeq(data=lane)
+            lrs.end = end
+            self.lane_results[lrs.end][lrs.lane] = lrs
+
+
+class LaneResultSummary(object):
+    """
+    Parse the LaneResultSummary table out of Summary.htm
+    Mostly for the cluster number
+    """
+    LANE_RESULT_SUMMARY = 'LaneResultSummary'
+    TAGS = {
+      'LaneYield': 'lane_yield',
+      'Cluster': 'cluster', # Raw
+      'ClusterPF': 'cluster_pass_filter',
+      'AverageFirstCycleIntensity': 'average_first_cycle_intensity',
+      'PercentIntensityAfter20Cycles': 'percent_intensity_after_20_cycles',
+      'PercentPassFilterClusters': 'percent_pass_filter_clusters',
+      'PercentPassFilterAlign': 'percent_pass_filter_align',
+      'AverageAlignmentScore': 'average_alignment_score',
+      'PercentErrorRate': 'percent_error_rate'
+    }
+    # These are tags that have mean/stdev as found in the GERALD Summary.xml file
+    GERALD_TAGS = {
+      #'laneYield': 'lane_yield', #this is just a number
+      'clusterCountRaw': 'cluster', # Raw
+      'clusterCountPF': 'cluster_pass_filter',
+      'oneSig': 'average_first_cycle_intensity',
+      'signal20AsPctOf1': 'percent_intensity_after_20_cycles',
+      'percentClustersPF': 'percent_pass_filter_clusters',
+      'percentUniquelyAlignedPF': 'percent_pass_filter_align',
+      'averageAlignScorePF': 'average_alignment_score',
+      'errorPF': 'percent_error_rate'
+    }
+
+    def __init__(self, html=None, xml=None):
+        self.lane = None
+        self.end = 0
+        self.lane_yield = None
+        self.cluster = None
+        self.cluster_pass_filter = None
+        self.average_first_cycle_intensity = None
+        self.percent_intensity_after_20_cycles = None
+        self.percent_pass_filter_clusters = None
+        self.percent_pass_filter_align = None
+        self.average_alignment_score = None
+        self.percent_error_rate = None
+
+
     def get_elements(self):
-        summary = etree.Element(Summary.SUMMARY,
-                                      {'version': unicode(Summary.XML_VERSION)})
-        for end in self.lane_results:
-            for lane in end.values():
-                summary.append(lane.get_elements())
-        return summary
+        lane_result = etree.Element(
+                        LaneResultSummary.LANE_RESULT_SUMMARY,
+                        {'lane': unicode(self.lane), 'end': unicode(self.end)})
+        for tag, variable_name in LaneResultSummary.TAGS.items():
+            value = getattr(self, variable_name)
+            if value is None:
+                continue
+            # it looks like a sequence
+            elif type(value) in (types.TupleType, types.ListType):
+                element = make_mean_range_element(
+                  lane_result,
+                  tag,
+                  *value
+                )
+            else:
+                element = etree.SubElement(lane_result, tag)
+                element.text = unicode(value)
+        return lane_result
 
     def set_elements(self, tree):
-        if tree.tag != Summary.SUMMARY:
-            return ValueError("Expected %s" % (Summary.SUMMARY,))
-        xml_version = int(tree.attrib.get('version', 0))
-        if xml_version > Summary.XML_VERSION:
-            LOGGER.warn('Summary XML tree is a higher version than this class')
+        if tree.tag != LaneResultSummary.LANE_RESULT_SUMMARY:
+            raise ValueError('Expected %s' % (
+                    LaneResultSummary.LANE_RESULT_SUMMARY))
+        self.lane = int(tree.attrib['lane'])
+        # default to the first end, for the older summary files
+        # that are single ended
+        self.end = int(tree.attrib.get('end', 0))
+        tags = LaneResultSummary.TAGS
         for element in list(tree):
-            lrs = Summary.LaneResultSummary()
-            lrs.set_elements(element)
-            if len(self.lane_results) < (lrs.end + 1):
-              self.lane_results.append({})
-            self.lane_results[lrs.end][lrs.lane] = lrs
+            try:
+                variable_name = tags[element.tag]
+                setattr(self, variable_name,
+                        parse_summary_element(element))
+            except KeyError, e:
+                LOGGER.warn('Unrecognized tag %s' % (element.tag,))
 
-    def is_paired_end(self):
-      return len(self.lane_results) == 2
 
-    def dump(self):
+class LaneResultSummaryGA(LaneResultSummary):
+    def __init__(self, html=None, xml=None):
+        super(LaneResultSummaryGA, self).__init__(html, xml)
+
+        if html is not None:
+            self.set_elements_from_source(html)
+        if xml is not None:
+            self.set_elements(xml)
+
+    def set_elements_from_gerald_xml(self, read, element):
+        self.lane = int(element.find('laneNumber').text)
+        self.end = read
+        lane_yield_node = element.find('laneYield')
+        if lane_yield_node is not None:
+            self.lane_yield = int(lane_yield_node.text)
+        else:
+            self.lane_yield = None
+
+        for GeraldName, LRSName in LaneResultSummary.GERALD_TAGS.items():
+            node = element.find(GeraldName)
+            if node is None:
+                LOGGER.info("Couldn't find %s" % (GeraldName))
+            setattr(self, LRSName, parse_xml_mean_range(node))
+
+    def set_elements_from_source(self, data):
+        """Read from an initial summary data file. Either xml or html
         """
-        Debugging function, report current object
+        if not len(data) in (8,10):
+            raise RuntimeError("Summary.htm file format changed, len(data)=%d" % (len(data),))
+
+        # same in pre-0.3.0 Summary file and 0.3 summary file
+        self.lane = int(data[0])
+
+        if len(data) == 8:
+            parsed_data = [ parse_mean_range(x) for x in data[1:] ]
+            # this is the < 0.3 Pipeline version
+            self.cluster = parsed_data[0]
+            self.average_first_cycle_intensity = parsed_data[1]
+            self.percent_intensity_after_20_cycles = parsed_data[2]
+            self.percent_pass_filter_clusters = parsed_data[3]
+            self.percent_pass_filter_align = parsed_data[4]
+            self.average_alignment_score = parsed_data[5]
+            self.percent_error_rate = parsed_data[6]
+        elif len(data) == 10:
+            parsed_data = [ parse_mean_range(x) for x in data[2:] ]
+            # this is the >= 0.3 summary file
+            self.lane_yield = data[1]
+            self.cluster = parsed_data[0]
+            self.cluster_pass_filter = parsed_data[1]
+            self.average_first_cycle_intensity = parsed_data[2]
+            self.percent_intensity_after_20_cycles = parsed_data[3]
+            self.percent_pass_filter_clusters = parsed_data[4]
+            self.percent_pass_filter_align = parsed_data[5]
+            self.average_alignment_score = parsed_data[6]
+            self.percent_error_rate = parsed_data[7]
+
+
+class LaneResultSummaryHiSeq(LaneResultSummary):
+    def __init__(self, data=None, xml=None):
+        super(LaneResultSummaryHiSeq, self).__init__(data, xml)
+
+        if data is not None:
+            self.set_elements_from_source(data)
+        if xml is not None:
+            self.set_elements(xml)
+
+    def set_elements_from_source(self, element):
+        """Read from an initial summary data file. Either xml or html
         """
-        tree = self.get_elements()
-        print etree.tostring(tree)
+        # same in pre-0.3.0 Summary file and 0.3 summary file
+        lane = element.attrib
+        self.lane = int(lane['key'])
+        #self.lane_yield = data[1]
+        self.cluster = (int(lane['ClustersRaw']),
+                        float(lane['ClustersRawSD']))
+        self.cluster_pass_filter = (int(lane['ClustersPF']),
+                                    float(lane['ClustersPFSD']))
+        self.average_first_cycle_intensity = (int(lane['FirstCycleIntPF']),
+                                              float(lane['FirstCycleIntPFSD']))
+        self.percent_intensity_after_20_cycles = (
+            float(lane['PrcIntensityAfter20CyclesPF']),
+            float(lane['PrcIntensityAfter20CyclesPFSD']))
+        self.percent_pass_filter_clusters = (
+            float(lane['PrcPFClusters']),
+            float(lane['PrcPFClustersSD']))
+        self.percent_pass_filter_align = (
+            float(lane['PrcAlign']),
+            float(lane['PrcAlignSD']))
+        self.percent_error_rate = (
+            float(lane['ErrRatePhiX']),
+            float(lane['ErrRatePhiXSD']),)
+
 
 def tonumber(v):
     """
index 42cf421587b227bc466b8248e4b58124a775ac65..c6b4d587bbc245daa638b81971a2bee49c4bfd72 100644 (file)
@@ -57,19 +57,21 @@ def make_bustard_config132(image_dir):
 
 def make_aligned_config_1_12(aligned_dir):
     """This is rouglhly equivalent to the old gerald file"""
-    source = os.path.join(TESTDATA_DIR, 'aligned_config_1_12.xml')
+    source = os.path.join(TESTDATA_DIR, '1_12', 'aligned_config_1_12.xml')
     destination = os.path.join(aligned_dir, 'config.xml')
     shutil.copy(source, destination)
 
 def make_unaligned_config_1_12(unaligned_dir):
     demultiplex_pairs = [ # (src,
       # dest),
-        (os.path.join(TESTDATA_DIR, 'demultiplex_1.12.4.2.xml'),
-         os.path.join(unaligned_dir, 'DemultiplexConfig.xml')),
-        (os.path.join(TESTDATA_DIR, 'demultiplexed_bustard_1.12.4.2.xml'),
-         os.path.join(unaligned_dir, 'DemultiplexConfig.xml')),
-        (os.path.join(TESTDATA_DIR, 'demultiplexed_summary_1.12.4.2.xml'),
+        (os.path.join(TESTDATA_DIR, '1_12', 'demultiplex_1.12.4.2.xml'),
          os.path.join(unaligned_dir, 'DemultiplexConfig.xml')),
+        (os.path.join(TESTDATA_DIR, '1_12',
+                      'demultiplexed_bustard_1.12.4.2.xml'),
+         os.path.join(unaligned_dir, 'DemultiplexedBustardConfig.xml')),
+        (os.path.join(TESTDATA_DIR, '1_12',
+                      'demultiplexed_summary_1.12.4.2.xml'),
+         os.path.join(unaligned_dir, 'DemultiplexedBustardSummary.xml')),
     ]
     for src, dest in demultiplex_pairs:
         shutil.copy(src, dest)
@@ -134,7 +136,8 @@ def make_rta_intensities_1_12(data_dir, version='1.12.4.2'):
     if not os.path.exists(intensities_dir):
       os.mkdir(intensities_dir)
 
-    param_file = os.path.join(TESTDATA_DIR, 'rta_intensities_config_1.12.4.2.xml')
+    param_file = os.path.join(TESTDATA_DIR, '1_12',
+                              'rta_intensities_config_1.12.4.2.xml')
     shutil.copy(param_file, os.path.join(intensities_dir, 'RTAConfig.xml'))
 
     return intensities_dir
@@ -175,7 +178,8 @@ def make_rta_basecalls_1_12(intensities_dir):
         os.mkdir(basecalls_dir)
 
     make_qseqs(basecalls_dir, basecall_info=ABXX_BASE_CALL_INFO)
-    param_file = os.path.join(TESTDATA_DIR, 'rta_basecalls_config_1.12.4.2.xml')
+    param_file = os.path.join(TESTDATA_DIR, '1_12',
+                              'rta_basecalls_config_1.12.4.2.xml')
     shutil.copy(param_file, os.path.join(basecalls_dir, 'config.xml'))
 
     return basecalls_dir
@@ -357,6 +361,19 @@ def make_summary_casava1_7_xml(gerald_dir):
     destination = os.path.join(gerald_dir, 'Summary.xml')
     shutil.copy(source, destination)
 
+def make_status_rta1_12(datadir):
+    sourcedir = os.path.join(TESTDATA_DIR, '1_12')
+    status_htm = os.path.join(sourcedir, 'Status.htm')
+    destination = os.path.join(datadir, 'Status.htm')
+    shutil.copy(status_htm, destination)
+
+    status_dir = os.path.join(datadir, 'Status_Files')
+    status_source_dir = os.path.join(sourcedir, 'Status_Files')
+    shutil.copytree(status_source_dir, status_dir)
+
+    report_source_dir = os.path.join(sourcedir, 'reports')
+    report_dir = os.path.join(datadir, 'reports')
+    shutil.copytree(report_source_dir, report_dir)
 
 def make_eland_results(gerald_dir):
     eland_result = """>HWI-EAS229_24_207BTAAXX:1:7:599:759    ACATAGNCACAGACATAAACATAGACATAGAC U0      1       1       3       chrUextra.fa    28189829        R       D.
index 927cf61072f038eb626f4a07deecd937dbbd71b6..ed225bfd36b9ca4dbf5cf618e04eddd50d3af1af 100644 (file)
@@ -1,6 +1,7 @@
 #!/usr/bin/env python
 
 from datetime import datetime, date
+import logging
 import os
 import tempfile
 import shutil
@@ -32,6 +33,7 @@ def make_runfolder(obj=None):
     os.mkdir(data_dir)
 
     intensities_dir = make_rta_intensities_1_12(data_dir)
+    make_status_rta1_12(data_dir)
 
     basecalls_dir = make_rta_basecalls_1_12(intensities_dir)
     make_matrix_dir_rta_1_12(basecalls_dir)
@@ -70,7 +72,7 @@ class RunfolderTests(unittest.TestCase):
     def test_bustard(self):
         """Construct a bustard object"""
         b = bustard.bustard(self.bustard_dir)
-        self.failUnlessEqual(b.version, '1.8.70.0')
+        self.failUnlessEqual(b.version, '1.12.4.2')
         self.failUnlessEqual(b.date,    None)
         self.failUnlessEqual(b.user,    None)
         self.failUnlessEqual(len(b.phasing), 0)
@@ -85,13 +87,10 @@ class RunfolderTests(unittest.TestCase):
         # need to update gerald and make tests for it
         g = gerald.gerald(self.gerald_dir)
 
-        self.failUnlessEqual(g.version,
-            '@(#) Id: GERALD.pl,v 1.171 2008/05/19 17:36:14 mzerara Exp')
-        self.failUnlessEqual(g.date, datetime(2009,2,22,21,15,59))
+        self.failUnlessEqual(g.version, 'CASAVA-1.8.1')
         self.failUnlessEqual(len(g.lanes), len(g.lanes.keys()))
         self.failUnlessEqual(len(g.lanes), len(g.lanes.items()))
 
-
         # list of genomes, matches what was defined up in
         # make_gerald_config.
         # the first None is to offset the genomes list to be 1..9
@@ -283,9 +282,6 @@ def suite():
     return unittest.makeSuite(RunfolderTests,'test')
 
 if __name__ == "__main__":
-    #unittest.main(defaultTest="suite")
-    class Test(object): pass
-    t = Test()
-    make_runfolder(t)
-    print ('path ' + t.runfolder_dir)
+    logging.basicConfig(level=logging.WARN)
+    unittest.main(defaultTest="suite")
 
index ab9f96239a63ccd69ce633cd11d36b28e0fe7e4e..af0e90854bf30310b764f8ba75ae4ac5e0200813 100644 (file)
@@ -20,19 +20,19 @@ class SummaryTests(unittest.TestCase):
 
     def test_xml_summary_file(self):
         pathname = os.path.join(TESTDATA_DIR, 'Summary-casava1.7.xml')
-        s = summary.Summary(pathname)
+        s = summary.SummaryGA(pathname)
         self.failUnlessEqual(len(s.lane_results[0]), 8)
         self.failUnlessEqual(s.lane_results[0][1].cluster, (1073893, 146344))
 
     def test_html_summary_file(self):
         pathname = os.path.join(TESTDATA_DIR, 'Summary-ipar130.htm')
-        s = summary.Summary(pathname)
+        s = summary.SummaryGA(pathname)
         self.failUnlessEqual(len(s.lane_results[0]), 8)
         self.failUnlessEqual(s.lane_results[0][1].cluster, (126910, 4300))
 
     def test_hiseq_sample_summary_file(self):
         pathname = os.path.join(TESTDATA_DIR, 'sample_summary_1_12.htm')
-        s = summary.Summary(pathname)
+        s = summary.SummaryGA(pathname)
 
 def suite():
     return unittest.makeSuite(SummaryTests,'test')
diff --git a/htsworkflow/pipelines/test/testdata/1_12/Status.htm b/htsworkflow/pipelines/test/testdata/1_12/Status.htm
new file mode 100755 (executable)
index 0000000..ccc9395
--- /dev/null
@@ -0,0 +1,39 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+       <link rel="stylesheet" href="./Status_Files/Status.css" type="text/css" media="screen"/>\r
+       <script src="./Status_Files/Status.js" type="text/javascript"></script>\r
+       <title>Status</title>\r
+</head>\r
+<body>\r
+<table style="border:none"><tr>\r
+       <td><img alt="Refresh" title="Refresh" name="RefreshBtn" height="25" width="25" src="./Status_Files/RefreshBtn/r1.png"  onmouseout="this.src='./Status_Files/RefreshBtn/r1.png'" onmouseover="this.src='./Status_Files/RefreshBtn/r2.png'" onmousedown="this.src='./Status_Files/RefreshBtn/r3.png'" onmouseup="this.src='./Status_Files/RefreshBtn/r2.png'" onclick="window.location.reload(true)" />&#160;</td>\r
+       <td id="StatUpdateDiv" >\r
+               <table class="StatusTable"><tr>\r
+                       <th>Total:</th><td>0</td><th>Extracted:</th><td>0</td><th>Called:</th><td>0</td>\r
+                       <th>Scored:</th><td>0</td><th>Copied:</th><td>0</td><th>Err.Rated:</th><td>0</td>\r
+               </tr></table></td> \r
+       <td id="RunNameTD">Loading Run Data ...</td>\r
+       </tr></table>\r
+       <script type="text/javascript">\r
+               loadXSLTable('./reports/StatusUpdate.xml', './Status_Files/StatusUpdate.xsl', 'StatUpdateDiv');\r
+               runName = xslTransform(loadXMLDoc('./reports/Status.xml'), loadXMLDoc('./Status_Files/RunName.xsl'));\r
+               document.getElementById("RunNameTD").innerHTML = runName;\r
+               document.title = runName + " Status";\r
+</script>\r
+<ul id="tabmenu">\r
+       <li><a href="./Status_Files/RunInfo.htm">Run Info</a></li>\r
+       <li><a class="selected" href="Status.htm">Tile Status</a></li>\r
+       <li><a href="./Status_Files/Charts.htm">Charts</a></li>\r
+       <li><a href="./Status_Files/Summary.htm">Summary</a></li>\r
+  <li><a class="space">Plots:</a></li>\r
+       <li><a href="./Status_Files/ByLane.htm">Cluster Density</a></li>\r
+       <li><a href="./Status_Files/ByCycle.htm">Data By Cycle</a></li>\r
+</ul>\r
+<div id="container">\r
+  <img class="Chart" id="ProcessControlImg" src="./reports/Process Control.png" alt="Cannot display image"/>\r
+</div>\r
\r
+</body>\r
+</html>\r
+\r
diff --git a/htsworkflow/pipelines/test/testdata/1_12/Status_Files/ByCycle.htm b/htsworkflow/pipelines/test/testdata/1_12/Status_Files/ByCycle.htm
new file mode 100755 (executable)
index 0000000..f652cca
--- /dev/null
@@ -0,0 +1,107 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+       <link rel="stylesheet" href="./Status.css" type="text/css" media="screen"/>\r
+       <script src="./Status.js" type="text/javascript"></script>\r
+       <script src="./ByCycle.js" type="text/javascript"></script>\r
+       <title>Status</title>\r
+</head>\r
\r
+<body>\r
+ <table style="border:none"><tr>\r
+       <td><img alt="Refresh" title="Refresh" name="RefreshBtn" height="25" width="25" src="./RefreshBtn/r1.png"  onmouseout="this.src='./RefreshBtn/r1.png'" onmouseover="this.src='./RefreshBtn/r2.png'" onmousedown="this.src='./RefreshBtn/r3.png'" onmouseup="this.src='./RefreshBtn/r2.png'" onclick="window.location.reload(true)" />&#160;</td>\r
+       <td id="StatUpdateDiv" >\r
+               <table class="StatusTable"><tr>\r
+                       <th>Total:</th><td>0</td><th>Extracted:</th><td>0</td><th>Called:</th><td>0</td>\r
+                       <th>Scored:</th><td>0</td><th>Copied:</th><td>0</td><th>Err.Rated:</th><td>0</td>\r
+               </tr></table></td> \r
+       <td id="RunNameTD">Loading Run Data ...</td>\r
+ </tr></table>\r
+       <script type="text/javascript">\r
+               loadXSLTable('../reports/StatusUpdate.xml', './StatusUpdate.xsl', 'StatUpdateDiv');\r
+               var runName = xslTransform(loadXMLDoc('../reports/Status.xml'), loadXMLDoc('./RunName.xsl'));\r
+               document.getElementById("RunNameTD").innerHTML = runName;\r
+               document.title = runName + " Status";\r
+       </script>\r
+\r
+<ul id="tabmenu">\r
+\r
+\r
+       <li><a href="./RunInfo.htm">Run Info</a></li>\r
+       <li><a href="../Status.htm">Tile Status</a></li>\r
+       <li><a href="./Charts.htm">Charts</a></li>\r
+       <li><a href="./Summary.htm">Summary</a></li>\r
+       <li><a class="space">Plots:</a></li>\r
+       <li><a href="./ByLane.htm">Cluster Density</a></li>\r
+       <li><a class="selected" href="./ByCycle.htm">Data By Cycle</a></li>\r
+</ul>\r
\r
+<div id="container">\r
+   <form action="" name="Plot1" id="Plot1" style="margin: 0px 0px 0px 0px;">\r
+               <table style="border:none"><tr>\r
+               <td><img style="margin: 0px 0px -5px 0px;" alt="Refresh" name="RefreshBtn" height="25" width="25" src="./RefreshBtn/r1.png"  onmouseout="this.src='./RefreshBtn/r1.png'" onmouseover="this.src='./RefreshBtn/r2.png'" onmousedown="this.src='./RefreshBtn/r3.png'" onmouseup="this.src='./RefreshBtn/r2.png'" onclick="changeFrameSrc(Plot1)" />&#160;</td>\r
+               <td><select size="1" name="QCOptDropDown"  onchange="changeFrameSrc(this.form)">\r
+                       <option value="Intensity" selected="selected">Intensity</option>\r
+         <option value="FWHM">Focus Quality</option>\r
+                       <option value="QScore">Quality Score</option>\r
+                       <option value="NumGT30">%Q>=30</option>\r
+                       <option value="ErrRate">Error Rate</option>\r
+               </select> &#160;</td>                                                           \r
+               <td><select size="1" name="lanesDropDown"  style="display:inline" onchange="changeFrameSrc(this.form)">\r
+                       <option value="L0" selected="selected">All Lanes</option>\r
+                       <option value="L1">Lane 1</option>\r
+                       <option value="L2">Lane 2</option>\r
+                       <option value="L3">Lane 3</option>\r
+                       <option value="L4">Lane 4</option>\r
+                       <option value="L5">Lane 5</option>\r
+                       <option value="L6">Lane 6</option>\r
+                       <option value="L7">Lane 7</option>\r
+                       <option value="L8">Lane 8</option>\r
+               </select>&#160;&#160;</td>\r
+      <td><select size="1" name="baseDropDown" style="display:inline" onchange="changeFrameSrc(this.form)">\r
+         <option value="A">Base A</option>\r
+         <option value="C">Base C</option>\r
+         <option value="G">Base G</option>\r
+         <option value="T">Base T</option>\r
+      </select></td>\r
+      </tr></table> \r
+               <iframe name="Plot1Fr" src="./ByCycleFrame.htm?../reports/ByCycle/Intensity_L0a.png" height="387" width="95%" frameborder="0" >\r
+                  <img name="imgPlot" alt="No Data" src="../reports/ByCycle/Intensity_L0a.png"/>\r
+               </iframe >\r
+       </form >\r
+   <form action="" name="Plot2" id="Plot2" style="margin: 0px 0px 0px 0px;">\r
+               <table style="border:none"><tr>\r
+               <td><img style="margin: 0px 0px -5px 0px;" alt="Refresh" name="RefreshBtn" height="25" width="25" src="./RefreshBtn/r1.png"  onmouseout="this.src='./RefreshBtn/r1.png'" onmouseover="this.src='./RefreshBtn/r2.png'" onmousedown="this.src='./RefreshBtn/r3.png'" onmouseup="this.src='./RefreshBtn/r2.png'" onclick="changeFrameSrc(Plot2)" />&#160;</td>\r
+               <td><select size="1" name="QCOptDropDown"  onchange="changeFrameSrc(this.form)">\r
+                       <option value="Intensity">Intensity</option>\r
+         <option value="FWHM" selected="selected">Focus Quality</option>\r
+                       <option value="QScore">Quality Score</option>\r
+                       <option value="NumGT30">%Q>=30</option>\r
+                       <option value="ErrRate">Error Rate</option>\r
+               </select> &#160;</td>                                                           \r
+               <td><select size="1" name="lanesDropDown"  style="display:inline" onchange="changeFrameSrc(this.form)">\r
+                       <option value="L0" selected="selected">All Lanes</option>\r
+                       <option value="L1">Lane 1</option>\r
+                       <option value="L2">Lane 2</option>\r
+                       <option value="L3">Lane 3</option>\r
+                       <option value="L4">Lane 4</option>\r
+                       <option value="L5">Lane 5</option>\r
+                       <option value="L6">Lane 6</option>\r
+                       <option value="L7">Lane 7</option>\r
+                       <option value="L8">Lane 8</option>\r
+               </select>&#160;&#160;</td>\r
+      <td><select size="1" name="baseDropDown" style="display:inline" onchange="changeFrameSrc(this.form)">\r
+         <option value="A">Base A</option>\r
+         <option value="C">Base C</option>\r
+         <option value="G">Base G</option>\r
+         <option value="T">Base T</option>\r
+      </select></td>\r
+      </tr></table> \r
+               <iframe name="Plot2Fr" src="./ByCycleFrame.htm?../reports/ByCycle/FWHM_L0a.png" height="387" width="95%" frameborder="0">\r
+         <img name="imgPlot" alt="No Data" src="../reports/ByCycle/FWHM_L0a.png"/>\r
+               </iframe >\r
+       </form >\r
+</div>\r
+</body>\r
+</html>\r
+\r
diff --git a/htsworkflow/pipelines/test/testdata/1_12/Status_Files/ByCycle.js b/htsworkflow/pipelines/test/testdata/1_12/Status_Files/ByCycle.js
new file mode 100755 (executable)
index 0000000..14af70e
--- /dev/null
@@ -0,0 +1,23 @@
+\r
+window.onerror = function() {\r
+       parent.location = './Error.htm';\r
+}\r
+\r
+function changeFrameSrc(form) {\r
+       var imgName = null;\r
+       var base = "";\r
+       var qc = form.QCOptDropDown.value;\r
+       if (qc == 'QScore' || qc == 'NumGT30' || qc == 'ErrRate') {\r
+               form.baseDropDown.style.display = 'none';\r
+       } else {\r
+               form.baseDropDown.style.display = 'inline';\r
+               base = form.baseDropDown.value.toLowerCase();\r
+       };\r
+       var intensityURL = "../reports/IntensityFrame.htm?";\r
+\r
+       imgName = "../reports/ByCycle/" + form.QCOptDropDown.value + "_" + form.lanesDropDown.value + base + ".png";\r
+       if (window.frames[form.name + "Fr"] != null) window.frames[form.name + "Fr"].location = "./ByCycleFrame.htm?" + imgName;\r
+       if (form.imgPlot != null) form.imgPlot.src = "../reports/" + imgName;\r
+}\r
+\r
+\r
diff --git a/htsworkflow/pipelines/test/testdata/1_12/Status_Files/ByCycleFrame.htm b/htsworkflow/pipelines/test/testdata/1_12/Status_Files/ByCycleFrame.htm
new file mode 100755 (executable)
index 0000000..81b0419
--- /dev/null
@@ -0,0 +1,18 @@
+<html xmlns="http://www.w3.org/1999/xhtml">\r
+<head>\r
+<script type="text/javascript">\r
+    function setupImage() {\r
+       document.PlotImage.src = getParam() + "?" + (new Date().getMilliseconds());\r
+        document.PlotImage.style.display = "block"\r
+    }\r
+    function getParam() {\r
+       return location.href.substring(location.href.indexOf('?') + 1, location.href.length);\r
+    }\r
+</script>\r
+</head>\r
+<body onload='try{setupImage()}catch(err){};'>\r
+    <img name="PlotImage" id="PlotImage" title="Data by cycle" style="display:none" src="#" alt="No data"/>\r
+</body>\r
+</html>\r
+\r
+\r
diff --git a/htsworkflow/pipelines/test/testdata/1_12/Status_Files/ByLane.htm b/htsworkflow/pipelines/test/testdata/1_12/Status_Files/ByLane.htm
new file mode 100755 (executable)
index 0000000..26e4d60
--- /dev/null
@@ -0,0 +1,49 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+       <link rel="stylesheet" href="./Status.css" type="text/css" media="screen"/>\r
+       <script src="./Status.js" type="text/javascript"></script>\r
+       <script src="./ByLane.js" type="text/javascript"></script>\r
+       <title>Status</title>\r
+</head>\r
\r
+<body>\r
+ <table style="border:none"><tr>\r
+       <td><img alt="Refresh" title="Refresh" name="RefreshBtn" height="25" width="25" src="./RefreshBtn/r1.png"  onmouseout="this.src='./RefreshBtn/r1.png'" onmouseover="this.src='./RefreshBtn/r2.png'" onmousedown="this.src='./RefreshBtn/r3.png'" onmouseup="this.src='./RefreshBtn/r2.png'" onclick="window.location.reload(true)" />&#160;</td>\r
+       <td id="StatUpdateDiv" >\r
+               <table class="StatusTable"><tr>\r
+                       <th>Total:</th><td>0</td><th>Extracted:</th><td>0</td><th>Called:</th><td>0</td>\r
+                       <th>Scored:</th><td>0</td><th>Copied:</th><td>0</td><th>Err.Rated:</th><td>0</td>\r
+               </tr></table></td> \r
+       <td id="RunNameTD">Loading Run Data ...</td>\r
+ </tr></table>\r
+       <script type="text/javascript">\r
+               loadXSLTable('../reports/StatusUpdate.xml', './StatusUpdate.xsl', 'StatUpdateDiv');\r
+               var runName = xslTransform(loadXMLDoc('../reports/Status.xml'), loadXMLDoc('./RunName.xsl'));\r
+               document.getElementById("RunNameTD").innerHTML = runName;\r
+               document.title = runName + " Status";\r
+       </script>\r
+\r
+<ul id="tabmenu">\r
+       <li><a href="./RunInfo.htm">Run Info</a></li>\r
+       <li><a href="../Status.htm">Tile Status</a></li>\r
+       <li><a href="./Charts.htm">Charts</a></li>\r
+       <li><a href="./Summary.htm">Summary</a></li>\r
+    <li><a class="space">Plots:</a></li>\r
+       <li><a class="selected" href="./ByLane.htm">Cluster Density</a></li>\r
+       <li><a href="./ByCycle.htm">Data By Cycle</a></li>\r
+\r
+</ul>\r
\r
+<div id="container">\r
+   <p style="margin: 0px 0px 0px 120px;">\r
+       <input type="checkbox" name="PFOnlyBox" id="PFOnlyBox" title="Show only PF clusters" onclick="loadClustersByLane()"/>\r
+    Show PF only\r
+   </p>\r
+   <img class="Chart" alt="No Data" id="NumClustersImg" src="../reports/NumClusters By Lane.png"/>\r
+   <table class="DataTable" style="margin: 0px 0px 0px 20px" id="NumClustersTbl"></table >\r
+       <script type="text/javascript">loadClustersByLane();</script>\r
+</div>\r
+</body>\r
+</html>\r
+\r
diff --git a/htsworkflow/pipelines/test/testdata/1_12/Status_Files/ByLane.js b/htsworkflow/pipelines/test/testdata/1_12/Status_Files/ByLane.js
new file mode 100755 (executable)
index 0000000..db2cf17
--- /dev/null
@@ -0,0 +1,55 @@
+window.onerror = function() {\r
+       parent.location = './Error.htm';\r
+}\r
+\r
+function loadClustersByLane() {\r
+       name = name0 = '../reports/NumClusters By Lane';\r
+       if (document.getElementById('PFOnlyBox').checked) {\r
+               name = name0 + " PF";\r
+               try {\r
+                       xmlDoc = loadXMLDoc(name + '.xml');\r
+               } catch (e) { xmlDoc = null; };\r
+               if (xmlDoc == null || xmlDoc.getElementsByTagName('Data') == null) {\r
+                       name = name0;\r
+                       alert("No data available!");\r
+                       document.getElementById('PFOnlyBox').checked = false;\r
+               }\r
+       }\r
+       document.getElementById('NumClustersImg').src = name + ".png";\r
+       imgRefresh('NumClustersImg');\r
+       loadNumClustersTable(name + '.xml', 'NumClustersTbl', 'Lane');\r
+}\r
+\r
+function loadNumClustersTable(xmlName, tblName, tagsName) {\r
+       tbl = document.getElementById(tblName);\r
+       xmlDoc = loadXMLDoc(xmlName);\r
+       if (xmlDoc == null) return;\r
+       xmlRows = xmlDoc.getElementsByTagName(tagsName);\r
+       if (xmlRows == null) return;\r
+       while (tbl.rows.length > 0) tbl.deleteRow(tbl.rows.length - 1);\r
+       if (xmlRows.length > 0 && xmlRows[0].attributes.length > 0) {\r
+               tbl.insertRow(0);\r
+               for (j = xmlRows[0].attributes.length - 1; j >= 1; j--)\r
+                       tbl.insertRow(0);\r
+               for (i = xmlRows.length - 1; i >= 0; i--) {\r
+                       for (j = xmlRows[i].attributes.length - 1; j >= 1; j--) {\r
+                               tbl.rows[j].insertCell(0);\r
+                               val = new Number(xmlRows[i].attributes[j].value);\r
+                               if (val < 1000) strVal = val.toFixed(0);\r
+                               else strVal = (val / 1000).toFixed(0) + "K";\r
+                               tbl.rows[j].cells[0].innerHTML = strVal;\r
+                       }\r
+               }\r
+               for (j = xmlRows[0].attributes.length - 1; j >= 1; j--) {\r
+                       tbl.rows[j].insertCell(0);\r
+                       tbl.rows[j].cells[0].innerHTML = xmlRows[0].attributes[j].name.toUpperCase();\r
+                       //tbl.rows[j].insertCell(0); tbl.rows[j].insertCell(0);\r
+               }\r
+               for (i = xmlRows.length - 1; i >= 0; i--) {\r
+                       tbl.rows[0].insertCell(0);\r
+                       tbl.rows[j].cells[0].innerHTML = tagsName + " " + xmlRows[i].attributes[0].value;\r
+               }\r
+               tbl.rows[0].insertCell(0); //tbl.rows[0].insertCell(0); tbl.rows[0].insertCell(0);\r
+       }\r
+}\r
+\r
diff --git a/htsworkflow/pipelines/test/testdata/1_12/Status_Files/Charts.htm b/htsworkflow/pipelines/test/testdata/1_12/Status_Files/Charts.htm
new file mode 100755 (executable)
index 0000000..d0f1319
--- /dev/null
@@ -0,0 +1,100 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+       <link rel="stylesheet" href="./Status.css" type="text/css" media="screen"/>\r
+       <script src="./Status.js" type="text/javascript"></script>\r
+       <script src="./Charts.js" type="text/javascript"></script>\r
+       <title>Status</title>\r
+</head>\r
\r
+<body>\r
+ <table style="border:none"><tr>\r
+               <td><img alt="Refresh" title="Refresh" name="RefreshBtn" height="25" width="25" src="./RefreshBtn/r1.png"  onmouseout="this.src='./RefreshBtn/r1.png'" onmouseover="this.src='./RefreshBtn/r2.png'" onmousedown="this.src='./RefreshBtn/r3.png'" onmouseup="this.src='./RefreshBtn/r2.png'" onclick="window.location.reload(true)" />&#160;</td>\r
+       <td id="StatUpdateDiv" >\r
+               <table class="StatusTable"><tr>\r
+                       <th>Total:</th><td>0</td><th>Extracted:</th><td>0</td><th>Called:</th><td>0</td>\r
+                       <th>Scored:</th><td>0</td><th>Copied:</th><td>0</td><th>Err.Rated:</th><td>0</td>\r
+               </tr></table></td> \r
+       <td id="RunNameTD">Loading Run Data ...</td>\r
+ </tr></table>\r
+       <script type="text/javascript">\r
+               loadXSLTable('../reports/StatusUpdate.xml', './StatusUpdate.xsl', 'StatUpdateDiv');\r
+               var runName = xslTransform(loadXMLDoc('../reports/Status.xml'), loadXMLDoc('./RunName.xsl'));\r
+               document.getElementById("RunNameTD").innerHTML = runName;\r
+               document.title = runName + " Status";\r
+       </script>\r
+   <map name="tileMap" id = "tileMap"></map> \r
+       <script type="text/javascript">\r
+               var tilesPerLane = xslTransform(loadXMLDoc('../reports/Status.xml'), loadXMLDoc('./TilesPerLane.xsl'));\r
+               var tileMap = new TileMap(tilesPerLane);\r
+               var imgCycle = document.getElementById("ImgCycle");\r
+               if (imgCycle != null) imgCycle = imgCycle.innerHTML;\r
+               else imgCycle = 0;\r
+       </script>\r
+\r
+<ul id="tabmenu">\r
+       <li><a href="./RunInfo.htm">Run Info</a></li>\r
+       <li><a href="../Status.htm">Tile Status</a></li>\r
+       <li><a class="selected" href="./Charts.htm">Charts</a></li>\r
+       <li><a href="./Summary.htm">Summary</a></li>\r
+    <li><a class="space">Plots:</a></li>\r
+       <li><a href="./ByLane.htm">Cluster Density</a></li>\r
+       <li><a href="./ByCycle.htm">Data By Cycle</a></li>\r
+</ul>\r
\r
+<div id="container">\r
+   <table class="GreenLife" ><tr>\r
+   <td><form name="imgChartForm1" action="">\r
+       <select size="1" name="QCOptDropDown"  onchange="changeImage(this.form)">\r
+                       <option value="NumClusters"  selected="selected">Cluster Density</option>\r
+         <option value="PassedFilter25">%Cluster PF</option>\r
+         <option value="NumPassedFilter25">Cluster PF Density</option>\r
+       </select> \r
+        &#160;&#160;&#160;&#160;&#160;<label id="autoscale1lbl" for='autoscale1'>Autoscale </label><input type="checkbox" name="autoscale" id="autoscale1" title="Autoscale" onclick="changeImage(this.form)"/>\r
+                       <img name="Chart" class="Chart" id="imgChart1" src="../reports/NumClusters_Chart.png" usemap="#tileMap" onmouseover="tileMap.resetMap(this)" onerror="try{{if(this.src.indexOf('blank.png') == -1)showBlank('imgChart1'); /*setTimeout('imgReload(\'imgChart1\')',20000)*/}}catch(err){{errorPrint(err)}}" alt= "No Data"/>\r
+   </form ></td>\r
+   <td><form name="imgChartForm2" action="">  \r
+       <select size="1" name="QCOptDropDown" onchange="changeImage(this.form)">\r
+                       <option  value="Intensity" selected="selected">Intensity  </option>\r
+         <option value="FWHM">Focus Quality</option>\r
+         <option value="NumGT30">%Q>=30</option>\r
+         <option value="ErrorRate">Error Rate</option>\r
+       </select> \r
+       <select size="1" name="cyDropDown"  onchange="changeImage(this.form)"></select>\r
+                       <script type="text/javascript">\r
+                               fillCycles(document.imgChartForm2.cyDropDown, imgCycle);\r
+                       </script>\r
+      <select size="1" name="baseDropDown" onchange="changeImage(this.form)">\r
+         <option value="A" selected="selected">Base A</option>\r
+         <option value="C">Base C</option>\r
+         <option value="G">Base G</option>\r
+         <option value="T">Base T</option>\r
+       </select>\r
+                &#160;&#160;<label id="autoscale2lbl" for='autoscale2' style ="display :none ">Autoscale </label><input type="checkbox" name="autoscale" id="autoscale2" title="Autoscale" onclick="changeImage(this.form)"/>\r
+       <img name="Chart" class="Chart" id="imgChart2" src="../reports/Intensity/Chart_1_a.png" usemap="#tileMap" onmouseover="tileMap.resetMap(this)" onerror="try{{if(this.src.indexOf('blank.png') == -1)showBlank('imgChart2'); /*setTimeout('imgReload(\'imgChart2\')',20000)*/}}catch(err){{errorPrint(err)}}" alt ="No Data"/>\r
+   </form ></td>\r
+   <td><form name="imgChartForm3" action="">  \r
+       <select size="1" name="QCOptDropDown" onchange="changeImage(this.form)">\r
+                       <option  value="Intensity">Intensity  </option>\r
+         <option value="FWHM" selected="selected">Focus Quality</option>\r
+         <option value="NumGT30">%Q>=30</option>\r
+         <option value="ErrorRate">Error Rate</option>\r
+       </select> \r
+       <select size="1" name="cyDropDown"  onchange="changeImage(this.form)"></select>\r
+                       <script type="text/javascript">\r
+                               fillCycles(document.imgChartForm3.cyDropDown, imgCycle);\r
+                       </script>\r
+      <select size="1" name="baseDropDown" onchange="changeImage(this.form)">\r
+         <option value="A" selected="selected">Base A</option>\r
+         <option value="C">Base C</option>\r
+         <option value="G">Base G</option>\r
+         <option value="T">Base T</option>\r
+       </select>\r
+                &#160;&#160;<label id="autoscale3lbl" for='autoscale3' style ="display :none">Autoscale</label><input type="checkbox" name="autoscale" id="autoscale3" title="Autoscale" onclick="changeImage(this.form)"/>\r
+       <img name="Chart" class="Chart" id="imgChart3" src="../reports/FWHM/Chart_1_a.png" usemap="#tileMap" onmouseover="tileMap.resetMap(this)" onerror="try{{if(this.src.indexOf('blank.png') == -1)showBlank('imgChart3'); /*setTimeout('imgReload(\'imgChart3\')',20000)*/}}catch(err){{errorPrint(err)}}" alt ="No Data"/>\r
+   </form></td>\r
+  </tr></table>\r
+</div> \r
+</body>\r
+</html>\r
+\r
diff --git a/htsworkflow/pipelines/test/testdata/1_12/Status_Files/Charts.js b/htsworkflow/pipelines/test/testdata/1_12/Status_Files/Charts.js
new file mode 100755 (executable)
index 0000000..4e7eca7
--- /dev/null
@@ -0,0 +1,140 @@
+window.onerror = function() {\r
+       parent.location = './Error.htm';\r
+}\r
+\r
+var imageOnFocusId = null;\r
+function TileMap(nTiles) {\r
+       var numLanes = 8;\r
+       var numTiles = nTiles;\r
+       var width = 200;\r
+       var height = 750;\r
+       var X0 = 18;\r
+       var Y0 = 26;\r
+       var dL = width / numLanes;\r
+       var numCols = 2;\r
+       var numRows = numTiles / numCols;\r
+       var dX = width / (numCols * numLanes);\r
+       var dY = height / numRows;\r
+       var map = document.getElementById("tileMap");\r
+       var tileMapXML;\r
+       this.changeLayout = function(layoutNode) {\r
+               nCols = layoutNode.getAttribute("ColsPerLane");\r
+               if (nCols > 0) numCols = nCols;\r
+               nRows = layoutNode.getAttribute("RowsPerLane");\r
+               if (nRows > 0) numRows = nRows;\r
+               dX = width / (numCols * numLanes);\r
+               dY = height / numRows;\r
+       }\r
+       this.newToolTip = function(lane, idx) {\r
+               var area = document.createElement("area");\r
+               area.shape = "rect";\r
+               var col = Math.floor((idx - 1) / numRows);\r
+               var row = (idx - 1) % numRows;\r
+               if (idx - numRows <= 0) row = numRows - row - 1;\r
+               var X1 = Math.round(X0 + dX * col + (lane - 1) * dL);\r
+               var Y1 = Math.round(Y0 + dY * row);\r
+               var X2 = Math.round(X1 + dX);\r
+               var Y2 = Math.round(Y1 + dY);\r
+               area.coords = "'" + X1 + "," + Y1 + "," + X2 + "," + Y2 + "'";\r
+               area.title = "L:" + lane + " T:" + idx;\r
+               map.appendChild(area);\r
+       }\r
+\r
+       this.newToolTipVal = function(tile, base) {\r
+               var area = document.createElement("area");\r
+               area.shape = "rect";\r
+               key = tile.getAttribute("Key");\r
+               if (base == null) base = "Val";\r
+               val = tile.getAttribute(base);\r
+               lane = key.substring(0, 1);\r
+               idx = key.substring(2);\r
+               var col = Math.floor((idx - 1) / numRows);\r
+               var row = (idx - 1) % numRows;\r
+               if (idx - numRows <= 0) row = numRows - row - 1;\r
+               var X1 = Math.round(X0 + dX * col + (lane - 1) * dL);\r
+               var Y1 = Math.round(Y0 + dY * row);\r
+               var X2 = Math.round(X1 + dX);\r
+               var Y2 = Math.round(Y1 + dY);\r
+               area.coords = "'" + X1 + "," + Y1 + "," + X2 + "," + Y2 + "'";\r
+               area.title = "L:" + lane + " T:" + idx + "\n" + "Val= " + val;\r
+               map.appendChild(area);\r
+       }\r
+       this.resetMap = function(image) {\r
+               if (image.id == imageOnFocusId) return;\r
+               xmlName = image.src;\r
+               xmlName = xmlName.replace("@.png", ".png");\r
+               xmlName = xmlName.substring(0, xmlName.lastIndexOf('.')) + ".xml";\r
+               var base = null;\r
+               if (xmlName.lastIndexOf('_a.xml') > 0) base = 'A';\r
+               else if (xmlName.lastIndexOf('_c.xml') > 0) base = 'C';\r
+               else if (xmlName.lastIndexOf('_g.xml') > 0) base = 'G';\r
+               else if (xmlName.lastIndexOf('_t.xml') > 0) base = 'T';\r
+               if (base != null) xmlName = xmlName.substring(0, xmlName.lastIndexOf('_')) + ".xml";\r
+               try {\r
+                       this.tileMapXML = loadXMLDoc(xmlName);\r
+                       layout = this.tileMapXML.getElementsByTagName("Layout");\r
+                       if (layout != null && layout.length > 0) this.changeLayout(layout[0]);\r
+                       tiles = this.tileMapXML.getElementsByTagName("TL");\r
+                       while (map.lastChild != null) map.removeChild(map.lastChild);\r
+                       for (i = 0; i < tiles.length; i++) tileMap.newToolTipVal(tiles[i], base);\r
+               } catch (e) { this.blankMap(); }\r
+               imageOnFocusId = image.id;\r
+       }\r
+\r
+\r
+       this.blankMap = function() {\r
+               while (map.lastChild != null) map.removeChild(map.lastChild);\r
+               for (var l = 1; l <= numLanes; l++) {\r
+                       for (var i = 1; i <= numTiles; i++) {\r
+                               this.newToolTip(l, i);\r
+                       }\r
+               }\r
+       }\r
+}\r
+\r
+function fillCycles(CyBox, maxCy) {\r
+       for (var cy = 1; cy <= maxCy; cy++) {\r
+               var option = document.createElement('option');\r
+               option.setAttribute('value', cy);\r
+               option.appendChild(document.createTextNode(cy));\r
+               CyBox.appendChild(option);\r
+       }\r
+}\r
+\r
+function changeImage(form) {\r
+       var qc = form.QCOptDropDown.value;\r
+       var base = "";\r
+       var cycle = "";\r
+       //alert(form.autoscale.id);\r
+       //return;\r
+       if (form.baseDropDown != null) {\r
+          if (qc == "ErrorRate" || qc == "NumGT30") {\r
+             form.baseDropDown.style.display = 'none';\r
+             document.getElementById(form.autoscale.id.toString() + 'lbl').style.display = 'inline';\r
+          }\r
+          else {\r
+             form.baseDropDown.style.display = 'inline';\r
+             base = "_" + form.baseDropDown.value.toLowerCase();\r
+             document.getElementById(form.autoscale.id.toString() + 'lbl').style.display = 'none';\r
+\r
+          }\r
+       }\r
+       if (form.cyDropDown != null) {\r
+               form.cyDropDown.disabled = false;\r
+               if (form.cyDropDown != null && !form.cyDropDown.disabled) {\r
+                       cycle = "_" + form.cyDropDown.value.toLowerCase();\r
+                       qc = qc + "/";\r
+               }\r
+       } else qc = qc + "_";\r
+       auto = "";\r
+       if (form.autoscale.checked) auto = "@";\r
+       var suff = cycle + base + auto + ".png";\r
+       form.Chart.src = "../reports/" + qc + "Chart" + suff;\r
+       form.Chart.lowsrc = form.Chart.src;\r
+       imageOnFocusId = null;\r
+}\r
+\r
+function showBlank(imgId) {\r
+       document.getElementById(imgId).lowsrc = document.getElementById(imgId).src;\r
+       document.getElementById(imgId).src = "../reports/blank.png";\r
+}\r
diff --git a/htsworkflow/pipelines/test/testdata/1_12/Status_Files/Controls.htm b/htsworkflow/pipelines/test/testdata/1_12/Status_Files/Controls.htm
new file mode 100755 (executable)
index 0000000..1740921
--- /dev/null
@@ -0,0 +1,44 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+       <link rel="stylesheet" href="./Status.css" type="text/css" media="screen"/>\r
+       <script src="./Status.js" type="text/javascript"></script>\r
+       <script src="./Controls.js" type="text/javascript"></script>\r
+       <title>Status</title>\r
+</head>\r
\r
+<body>\r
+       <table style="border:none"><tr>\r
+               <td><img alt="Refresh" title="Refresh" name="RefreshBtn" height="25" width="25" src="./RefreshBtn/r1.png"  onmouseout="this.src='./RefreshBtn/r1.png'" onmouseover="this.src='./RefreshBtn/r2.png'" onmousedown="this.src='./RefreshBtn/r3.png'" onmouseup="this.src='./RefreshBtn/r2.png'" onclick="window.location.reload(true)" />&#160;</td>\r
+               <td id="StatUpdateDiv" >\r
+                       <table class="StatusTable"><tr>\r
+                               <th>Total:</th><td>0</td><th>Extracted:</th><td>0</td><th>Called:</th><td>0</td>\r
+                               <th>Scored:</th><td>0</td><th>Copied:</th><td>0</td><th>Err.Rated:</th><td>0</td>\r
+                       </tr></table></td> \r
+               <td id="RunNameTD">Loading Run Data ...</td>\r
+       </tr></table>\r
+       <script type="text/javascript">\r
+               loadXSLTable('../reports/StatusUpdate.xml', './StatusUpdate.xsl', 'StatUpdateDiv');\r
+               runName = xslTransform(loadXMLDoc('../reports/Status.xml'), loadXMLDoc('./RunName.xsl'));\r
+               document.getElementById("RunNameTD").innerHTML = runName;\r
+               document.title = runName + " Status";\r
+       </script>\r
+<ul id="tabmenu">\r
+       <li><a href="./RunInfo.htm">Run Info</a></li>\r
+       <li><a href="../Status.htm">Tile Status</a></li>\r
+       <li><a href="./Charts.htm">Charts</a></li>\r
+       <li><a href="./Summary.htm">Summary</a></li>\r
+       <li><a class="selected" href="./Controls.htm">Controls</a></li>\r
+       <li><a class="space">Plots:</a></li>\r
+       <li><a href="./ByLane.htm">Cluster Density</a></li>\r
+       <li><a href="./ByCycle.htm">Data By Cycle</a></li>\r
+</ul>\r
\r
+<div id="container">\r
+       <div id="ControlsTbl" ><p> No data available yet.</p></div>\r
+       <script type="text/javascript">loadControls()</script>\r
+</div>\r
\r
+</body>\r
+</html>\r
+\r
diff --git a/htsworkflow/pipelines/test/testdata/1_12/Status_Files/Controls.js b/htsworkflow/pipelines/test/testdata/1_12/Status_Files/Controls.js
new file mode 100755 (executable)
index 0000000..10c3f78
--- /dev/null
@@ -0,0 +1,7 @@
+window.onerror = function() {\r
+       parent.location = './Error.htm';\r
+}\r
+\r
+function loadControls() {\r
+   loadXSLTable('../reports/controls.xml', './controls.xsl', 'ControlsTbl');\r
+}
\ No newline at end of file
diff --git a/htsworkflow/pipelines/test/testdata/1_12/Status_Files/Controls.xsl b/htsworkflow/pipelines/test/testdata/1_12/Status_Files/Controls.xsl
new file mode 100755 (executable)
index 0000000..7fc53e7
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0"?> \r
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" \r
+version="1.0"> \r
+<xsl:output method="html" indent="yes" omit-xml-declaration="yes"/>\r
+<xsl:template match="/">\r
+       <table class="DataTable" >\r
+        <tr>\r
+     <th>Control</th>\r
+     <th >Lane 1</th><th >Lane 2</th><th >Lane 3</th><th >Lane 4</th>\r
+     <th >Lane 5</th><th >Lane 6</th><th >Lane 7</th><th >Lane 8</th>\r
+    </tr>\r
+    <xsl:for-each select="Controls/ctl"><tr>\r
+     <td><xsl:value-of select="@Key"/></td>         \r
+     <td><xsl:value-of select="@L1"/></td>         \r
+     <td><xsl:value-of select="@L2"/></td>         \r
+     <td><xsl:value-of select="@L3"/></td>         \r
+     <td><xsl:value-of select="@L4"/></td>         \r
+     <td><xsl:value-of select="@L5"/></td>         \r
+     <td><xsl:value-of select="@L6"/></td>         \r
+     <td><xsl:value-of select="@L7"/></td>         \r
+     <td><xsl:value-of select="@L8"/></td>\r
+    </tr></xsl:for-each>\r
+  </table >\r
+</xsl:template>\r
+</xsl:stylesheet>\r
diff --git a/htsworkflow/pipelines/test/testdata/1_12/Status_Files/Error.htm b/htsworkflow/pipelines/test/testdata/1_12/Status_Files/Error.htm
new file mode 100755 (executable)
index 0000000..100c67c
--- /dev/null
@@ -0,0 +1,8 @@
+<html xmlns="http://www.w3.org/1999/xhtml" >\r
+<head></head> \r
+<body>\r
+<p>There was a problem loading the file.</p>\r
+<p>Please click a link below to try again</p>\r
+<p><a href="..\Status.htm">Status.htm</a></p>\r
+</body>\r
+</html>\r
diff --git a/htsworkflow/pipelines/test/testdata/1_12/Status_Files/RefreshBtn/r1.png b/htsworkflow/pipelines/test/testdata/1_12/Status_Files/RefreshBtn/r1.png
new file mode 100755 (executable)
index 0000000..a05af5a
Binary files /dev/null and b/htsworkflow/pipelines/test/testdata/1_12/Status_Files/RefreshBtn/r1.png differ
diff --git a/htsworkflow/pipelines/test/testdata/1_12/Status_Files/RefreshBtn/r2.png b/htsworkflow/pipelines/test/testdata/1_12/Status_Files/RefreshBtn/r2.png
new file mode 100755 (executable)
index 0000000..a62f2b4
Binary files /dev/null and b/htsworkflow/pipelines/test/testdata/1_12/Status_Files/RefreshBtn/r2.png differ
diff --git a/htsworkflow/pipelines/test/testdata/1_12/Status_Files/RefreshBtn/r3.png b/htsworkflow/pipelines/test/testdata/1_12/Status_Files/RefreshBtn/r3.png
new file mode 100755 (executable)
index 0000000..bfdd95f
Binary files /dev/null and b/htsworkflow/pipelines/test/testdata/1_12/Status_Files/RefreshBtn/r3.png differ
diff --git a/htsworkflow/pipelines/test/testdata/1_12/Status_Files/RunInfo.htm b/htsworkflow/pipelines/test/testdata/1_12/Status_Files/RunInfo.htm
new file mode 100755 (executable)
index 0000000..995919f
--- /dev/null
@@ -0,0 +1,43 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+       <link rel="stylesheet" href="./Status.css" type="text/css" media="screen"/>\r
+       <script src="./Status.js" type="text/javascript"></script>\r
+       <title>Status</title>\r
+</head>\r
\r
+<body>\r
+       <table style="border:none"><tr>\r
+               <td><img alt="Refresh" title="Refresh" name="RefreshBtn" height="25" width="25" src="./RefreshBtn/r1.png"  onmouseout="this.src='./RefreshBtn/r1.png'" onmouseover="this.src='./RefreshBtn/r2.png'" onmousedown="this.src='./RefreshBtn/r3.png'" onmouseup="this.src='./RefreshBtn/r2.png'" onclick="window.location.reload(true)" />&#160;</td>\r
+               <td id="StatUpdateDiv" >\r
+                       <table class="StatusTable"><tr>\r
+                               <th>Total:</th><td>0</td><th>Extracted:</th><td>0</td><th>Called:</th><td>0</td>\r
+                               <th>Scored:</th><td>0</td><th>Copied:</th><td>0</td><th>Err.Rated:</th><td>0</td>\r
+                       </tr></table></td> \r
+               <td id="RunNameTD">Loading Run Data ...</td>\r
+       </tr></table>\r
+       <script type="text/javascript">\r
+               loadXSLTable('../reports/StatusUpdate.xml', './StatusUpdate.xsl', 'StatUpdateDiv');\r
+               runName = xslTransform(loadXMLDoc('../reports/Status.xml'), loadXMLDoc('./RunName.xsl'));\r
+               document.getElementById("RunNameTD").innerHTML = runName;\r
+               document.title = runName + " Status";\r
+       </script>\r
+<ul id="tabmenu">\r
+       <li><a class="selected" href="./RunInfo.htm">Run Info</a></li>\r
+       <li><a href="../Status.htm">Tile Status</a></li>\r
+       <li><a href="./Charts.htm">Charts</a></li>\r
+       <li><a href="./Summary.htm">Summary</a></li>\r
+   <li><a class="space">Plots:</a></li>\r
+       <li><a href="./ByLane.htm">Cluster Density</a></li>\r
+       <li><a href="./ByCycle.htm">Data By Cycle</a></li>\r
+</ul>\r
\r
+<div id="container">\r
+       <script type="text/javascript" >\r
+               loadXSLTable('../reports/Status.xml', './RunInfo.xsl', 'container');\r
+       </script>\r
+</div>\r
\r
+</body>\r
+</html>\r
+\r
diff --git a/htsworkflow/pipelines/test/testdata/1_12/Status_Files/RunInfo.xsl b/htsworkflow/pipelines/test/testdata/1_12/Status_Files/RunInfo.xsl
new file mode 100755 (executable)
index 0000000..7443e44
--- /dev/null
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"\r
+    xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl"\r
+                xmlns:lxslt="http://xml.apache.org/xslt">\r
+<xsl:output method="html" indent="yes"/>\r
+       <xsl:template match="/">\r
+                  <table class="InfoTable">\r
+                     <tr style="text-align: center;">Run Description<p/></tr>\r
+                     <tr><th>Software:</th><td><xsl:value-of select="/Status/Software"/></td></tr>\r
+                     <tr><th>Run name:</th><td><xsl:value-of select="/Status/RunName"/></td></tr>\r
+                     <tr><th>Cycles:</th><td><xsl:value-of select="/Status/NumCycles"/></td></tr>\r
+                     <tr><th>Instrument name:</th><td><xsl:value-of select="/Status/InstrumentName"/></td></tr>\r
+                     <tr><th>Run Started (Estimated):</th><td><xsl:value-of select="/Status/RunStarted"/></td></tr>\r
+                     <tr><th>Input Directory:</th><td><xsl:value-of select="/Status/InputDir"/></td></tr>\r
+                     <tr><th>Output Directory:</th><td><xsl:value-of select="/Status/OutputDir"/></td></tr>\r
+                     <tr><p/></tr>\r
+                  </table >\r
+      <p/>\r
+                  <table class="InfoTable">\r
+                     <tr style="text-align: center;">Configuration Settings<p/></tr>\r
+                     <tr><th><li type="square">Copy all run files:</li></th><td><xsl:value-of select="/Status/Configuration/CopyAllFiles"/></td></tr>\r
+                     <tr><th><li type="square">Copy images:</li></th><td><xsl:value-of select="/Status/Configuration/CopyImages"/></td></tr>\r
+                     <tr><th><li type="square">Delete image files:</li></th><td><xsl:value-of select="/Status/Configuration/DeleteImages"/></td></tr>\r
+                     <tr><th><li type="square">Delete intensity files:</li></th><td><xsl:value-of select="/Status/Configuration/DeleteIntensity"/></td></tr>\r
+                     <tr><th><li type="square">Run info file exists:</li></th><td><xsl:value-of select="/Status/Configuration/RunInfoExists"/></td></tr>\r
+                     <tr><th><li type="square">Is this a paired end run:</li></th><td><xsl:value-of select="/Status/Configuration/IsPairedEndRun"/></td></tr>\r
+                     <tr><th><li type="square">Total number of reads:</li></th><td><xsl:value-of select="/Status/Configuration/NumberOfReads"/></td></tr>\r
+                     <tr><th><li type="square">Number of lanes:</li></th><td><xsl:value-of select="/Status/Configuration/NumberOfLanes"/></td></tr>\r
+                     <tr><th><li type="square">Number of tiles per lane:</li></th><td><xsl:value-of select="/Status/Configuration/TilesPerLane"/></td></tr>\r
+                     <tr><th><li type="square">Control lane:</li></th>\r
+                        <td>\r
+                           <xsl:if test="/Status/Configuration/ControlLane = 0"> None</xsl:if>\r
+                           <xsl:if test="/Status/Configuration/ControlLane &gt; 0 ">\r
+                              <xsl:value-of select="/Status/Configuration/ControlLane"/>\r
+                           </xsl:if>\r
+                        </td>\r
+                     </tr>                     \r
+                  </table>\r
+  </xsl:template>\r
+</xsl:stylesheet>\r
diff --git a/htsworkflow/pipelines/test/testdata/1_12/Status_Files/RunName.xsl b/htsworkflow/pipelines/test/testdata/1_12/Status_Files/RunName.xsl
new file mode 100755 (executable)
index 0000000..a054fe8
--- /dev/null
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"\r
+    xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl"\r
+                xmlns:lxslt="http://xml.apache.org/xslt">\r
+<xsl:output method="html" indent="yes"/>\r
+       <xsl:template match="/">\r
+               <xsl:value-of select="/Status/RunName"/>\r
+  </xsl:template>\r
+</xsl:stylesheet>\r
diff --git a/htsworkflow/pipelines/test/testdata/1_12/Status_Files/Status.css b/htsworkflow/pipelines/test/testdata/1_12/Status_Files/Status.css
new file mode 100755 (executable)
index 0000000..9544549
--- /dev/null
@@ -0,0 +1,230 @@
+body\r
+{\r
+   margin: 0px;\r
+   font-family: Arial, Helvetica, sans-serif;\r
+   background-color: #F4F5F5;\r
+   border-top-style: solid;\r
+   border-top-color: #FF9900;\r
+   border-top-width: 10px;\r
+   padding-top: 3px;\r
+   background-image: url('../Status_Files/illumina.png');\r
+   background-repeat: no-repeat;\r
+   background-position: top right;\r
+   color: #555;\r
+   font-weight: bold;\r
+}\r
+\r
+#tabmenu\r
+{\r
+   font: normal 14px Arial, Helvetica, sans-serif;\r
+   list-style-type: none;\r
+   border-bottom: 1px solid #BB5500;\r
+   margin: 12px 0px 0px 0px;\r
+   padding-left: 0;\r
+   padding-right: 0;\r
+   padding-bottom: 26px;\r
+   font-weight: bold;\r
+}\r
+\r
+#tabmenu li\r
+{\r
+   display: inline;\r
+   float: left;\r
+   height: 24px;\r
+   min-width: 80px;\r
+   text-align: center;\r
+   padding: 0;\r
+}\r
+\r
+#tabmenu li a\r
+{\r
+   float: left;\r
+   color: #777;\r
+   text-decoration: none;\r
+   padding: 4px;\r
+   text-align: center;\r
+   background-color: #ddd;\r
+   min-width: 80px;\r
+   border: 1px solid gray;\r
+   border-bottom: none;\r
+   margin: 0px 1px 0px 1px;\r
+\r
+}\r
+\r
+#tabmenu li a.selected\r
+{\r
+   background-color: #F7F8f8;\r
+   color: #000;\r
+   font-size: 100%;\r
+   border:  1px solid #BB5500;\r
+       border-bottom: 2px solid #F7F8f8;\r
+\r
+}\r
+\r
+#tabmenu li a:hover\r
+{\r
+       color: #BB5500;\r
+       font-size :120%;\r
+   border:  1px solid #BB5500;\r
+}\r
+#tabmenu li a.selected:hover\r
+{\r
+       border-bottom: 2px solid #F7F8f8;\r
+}\r
+\r
+#container\r
+{\r
+       border: 1px solid #BB5500;\r
+       border-top: none;\r
+       padding: 10px;\r
+       left: 0;\r
+       top: 0;\r
+       background-color: #F7F8f8;\r
+       min-width: 1100px;\r
+}\r
+\r
+\r
+\r
+#tabmenu li a.space\r
+{\r
+       font-weight: normal;\r
+       font-size :100%;\r
+       color: #000;\r
+       background-color: #F5F5F5;\r
+       border: none;\r
+       text-align: right;\r
+}\r
+\r
+table.DataTable\r
+{\r
+       border-collapse: collapse;\r
+       background-color: #e0e0e0;\r
+   border: 1px dotted #BB5500;\r
+   padding: 10px;\r
+   padding:50px;\r
+\r
+}\r
+\r
+table.DataTable td, table.DataTable th\r
+{\r
+   font-family: Arial, Helvetica, sans-serif;\r
+   font-size: smaller;\r
+   font-weight: bold;\r
+   font-variant: normal;\r
+   text-transform: none;\r
+   padding: 3px; \r
+   border-right: dotted 1px #BB5500;\r
+   border-left: dotted 1px #BB5500;\r
+   color: #555555;\r
+}\r
+\r
+table.DataTable tr:hover td, table.DataTable tr:hover td a, table.DataTable tr:hover th a\r
+{\r
+       color: #BB5500;\r
+}\r
+\r
+table.DataTable th\r
+{\r
+   padding: 5px;\r
+   border: dotted 1px #BB5500;\r
+   color: #000000;\r
+}\r
+\r
+table.InfoTable\r
+{\r
+   margin: 20px;\r
+   border-style: none;\r
+   border-collapse: collapse;\r
+   background-color: #e0e0e0;\r
+   padding: 50px;\r
+   outline-style: solid;\r
+   outline-color: #e0e0e0;\r
+   outline-width: 10px;\r
+}\r
+\r
+table.InfoTable td, table.InfoTable th\r
+{\r
+   border-style: none;\r
+   font-family: Arial, Helvetica, sans-serif;\r
+   font-size: smaller;\r
+   font-weight: bold;\r
+   font-variant: normal;\r
+   text-transform: none;\r
+   padding: 5px 30px 5px 20px;\r
+   color: #555555;\r
+   text-align: left;\r
+}\r
+\r
+table.InfoTable tr:hover td, table.InfoTable tr:hover td a, table.InfoTable tr:hover th a\r
+{\r
+   color: #BB5500;\r
+}\r
+\r
+table.InfoTable th\r
+{\r
+   color: #000000;\r
+}\r
+\r
+table.StatusTable\r
+{\r
+   margin: 0px 0px 0px 0px;\r
+   border-collapse: collapse;\r
+   background-color: #e0e0e0;\r
+   padding: 1px;\r
+   /*outline-style: solid;\r
+   outline-color: #e0e0e0;\r
+   outline-width: 2px;*/\r
+   border: 1px dotted #BB5500;\r
+\r
+}\r
+\r
+table.StatusTable td, table.StatusTable th\r
+{\r
+   border: 1px dotted #BB5500;\r
+   font-family: Arial, Helvetica, sans-serif;\r
+   font-size: small;\r
+   font-weight: bold;\r
+   font-variant: normal;\r
+   text-transform: none;\r
+   color: #555555;\r
+   text-align: left;\r
+}\r
+table.StatusTable th\r
+{\r
+       border-right: none;\r
+       padding-right: 5px;\r
+}\r
+\r
+table.StatusTable td\r
+{\r
+       border-left: none;\r
+       padding-right: 5px;\r
+       color: #BB5500;\r
+}\r
+\r
+table.StatusTable tr:hover td, table.StatusTable tr:hover td a, table.StatusTable tr:hover th a\r
+{\r
+   color: #ff8800;\r
+}\r
+\r
+label\r
+{\r
+   font-size: smaller;\r
+   font-weight: normal;\r
+   color: #000000;\r
+}\r
+\r
+image.Chart\r
+{\r
+   border: 1px solid #BB5500;\r
+       margin: 5px 0px 0px 0px;\r
+}\r
+\r
+iframe\r
+{ \r
+       margin: 5px 0px 0px 0px;\r
+       border: 1px solid #BB5500;\r
+}\r
+\r
+#RunNameTD\r
+{font-size :100%; padding-left: 20px}
\ No newline at end of file
diff --git a/htsworkflow/pipelines/test/testdata/1_12/Status_Files/Status.js b/htsworkflow/pipelines/test/testdata/1_12/Status_Files/Status.js
new file mode 100755 (executable)
index 0000000..da12baf
--- /dev/null
@@ -0,0 +1,168 @@
+window.onerror = function() {\r
+       parent.location = "./Status_Files/StatusError.htm"\r
+}\r
+\r
+//Reading XML file\r
+var xmlhttp = false;\r
+/* running locally on IE5.5, IE6, IE7 */; /*@cc_on\r
+if (location.protocol == "file:") {\r
+   if (!xmlhttp) try { xmlhttp = new ActiveXObject("MSXML2.XMLHTTP"); } catch (e) { xmlhttp = false; }\r
+   if (!xmlhttp) try { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) { xmlhttp = false; }\r
+}\r
+/* IE7, Firefox, Safari, Opera...  */\r
+if (!xmlhttp) try { xmlhttp = new XMLHttpRequest(); } catch (e) { xmlhttp = false; }\r
+/* IE6 */\r
+if (typeof ActiveXObject != "undefined") {\r
+   if (!xmlhttp) try { xmlhttp = new ActiveXObject("MSXML2.XMLHTTP"); } catch (e) { xmlhttp = false; }\r
+   if (!xmlhttp) try { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) { xmlhttp = false; }\r
+}\r
+/* IceBrowser */\r
+if (!xmlhttp) try { xmlhttp = createRequest(); } catch (e) { xmlhttp = false; }\r
+\r
+function loadXMLDoc(dname) {\r
+   var xmlDoc = null;\r
+       try {\r
+               if (!xmlhttp) return "Your browser doesn't seem to support XMLHttpRequests.";\r
+               xmlhttp.open("GET", dname, false); //make sure open appears before onreadystatechange lest IE will encounter issues beyond the first request\r
+               xmlhttp.send(null);\r
+               var parser = false;\r
+               try {\r
+                       parser = new DOMParser();\r
+                       xmlDoc = parser.parseFromString(xmlhttp.responseText, "text/xml");\r
+               } catch (e) { parser = false }\r
+               if (!parser) {\r
+                       xmlDoc = new ActiveXObject("Microsoft.XMLDOM");\r
+                       //xmlDoc = new ActiveXObject("Msxml2.DOMDocument.6.0");\r
+                       xmlDoc.async = "false";\r
+                       xmlDoc.loadXML(xmlhttp.responseText);\r
+               }\r
+               if(xmlDoc.childNodes.length == 0)xmlDoc= null;\r
+       } catch(e){};\r
+   return xmlDoc;\r
+}\r
+//End of reading XML file\r
+\r
+\r
+function errorPrint(err) {\r
+   document.writeln(err.description);\r
+   document.writeln("<p>There was a problem loading the file.</p>");\r
+   document.writeln("<p>Please click a link below to try again</p>");\r
+   document.writeln("<p><a href='Status.htm'>Status.htm</a></p>");\r
+  }\r
+\r
+function imgRefresh(imgId) {\r
+   var s = document.getElementById(imgId).src;\r
+   if (s.indexOf('?') > 0) s = s.substring(0, s.indexOf('?'));\r
+   document.getElementById(imgId).src = s + "?" + (new Date().getMilliseconds());\r
+}\r
+\r
+function imgReload(imgId) {\r
+   document.getElementById(imgId).src = document.getElementById(imgId).lowsrc;\r
+}\r
+\r
+function getNodeText(node) {\r
+   var txt = "";\r
+   if (node.textContent != undefined) txt = node.textContent;\r
+   else if (node.text != undefined) txt = node.text;\r
+   return txt;\r
+}\r
+\r
+//  Cookie functions\r
+function setCookie(name, value, expires, path, domain, secure) {\r
+   document.cookie = name + "=" + escape(value) +\r
+        ((expires) ? "; expires=" + expires.toGMTString() : "") +\r
+        ((path) ? "; path=" + path : "") +\r
+        ((domain) ? "; domain=" + domain : "") +\r
+        ((secure) ? "; secure" : "");\r
+}\r
+\r
+function getCookie(name) {\r
+   var dc = document.cookie;\r
+   var prefix = name + "=";\r
+   var begin = dc.indexOf("; " + prefix);\r
+   if (begin == -1) {\r
+      begin = dc.indexOf(prefix);\r
+      if (begin != 0) return null;\r
+   } else {\r
+      begin += 2;\r
+   }\r
+   var end = document.cookie.indexOf(";", begin);\r
+   if (end == -1) {\r
+      end = dc.length;\r
+   }\r
+   return unescape(dc.substring(begin + prefix.length, end));\r
+}\r
+\r
+function deleteCookie(name, path, domain) {\r
+   if (getCookie(name)) {\r
+      document.cookie = name + "=" +\r
+            ((path) ? "; path=" + path : "") +\r
+            ((domain) ? "; domain=" + domain : "") +\r
+            "; expires=Thu, 01-Jan-70 00:00:01 GMT";\r
+   }\r
+}\r
+\r
+function loadNumClustersTableByLane(xmlName, tblName, tagsName) {\r
+   tbl = document.getElementById(tblName);\r
+   xmlDoc = loadXMLDoc(xmlName);\r
+   if (xmlDoc == null) return;\r
+   xmlRows = xmlDoc.getElementsByTagName(tagsName);\r
+   while (tbl.rows.length > 0) tbl.deleteRow(tbl.rows.length - 1);\r
+   if (xmlRows.length > 0 && xmlRows[0].attributes.length > 0) {\r
+      for (i = 0; i < xmlRows.length; i++) {\r
+         tbl.insertRow(0);\r
+         for (j = xmlRows[i].attributes.length - 1; j >= 0; j--) {\r
+            tbl.rows[0].insertCell(0);\r
+            tbl.rows[0].cells[0].innerHTML = xmlRows[i].attributes[j].value;\r
+         }\r
+         //create column titles\r
+         tbl.insertRow(0);\r
+      }\r
+      for (j = xmlRows[0].attributes.length - 1; j >= 0; j--) {\r
+         tbl.rows[0].insertCell(0);\r
+         tbl.rows[0].cells[0].innerHTML = xmlRows[0].attributes[j].name;\r
+      }\r
+      tbl.rows[0].cells[0].innerHTML = tagsName + "#"\r
+   }\r
+}\r
+\r
+function loadXSLTable(xmlName, xslName, tblName) {\r
+       tbl = document.getElementById(tblName);\r
+       xmlDoc = loadXMLDoc(xmlName);\r
+       xslDoc = loadXMLDoc(xslName);\r
+       if (xmlDoc == null || xslDoc == null) return false;\r
+       // code for IE\r
+       if (window.ActiveXObject) {\r
+               ex = xmlDoc.transformNode(xslDoc);\r
+               tbl.innerHTML = ex;\r
+       }\r
+       // code for Mozilla, Firefox, Opera, etc.\r
+       else if (document.implementation && document.implementation.createDocument) {\r
+               xsltProcessor = new XSLTProcessor();\r
+               xsltProcessor.importStylesheet(xslDoc);\r
+               resultDocument = xsltProcessor.transformToFragment(xmlDoc, document);\r
+               if ( tbl.hasChildNodes() )\r
+                       while ( tbl.childNodes.length >= 1 ) \r
+                               tbl.removeChild( tbl.firstChild );\r
+               tbl.appendChild(resultDocument);\r
+               return true;\r
+       }\r
+}\r
+\r
+function xslTransform(xmlDoc, xslDoc) {\r
+       resultDocument = null;\r
+       if (xmlDoc != null && xslDoc != null) {\r
+               // code for IE\r
+               if (window.ActiveXObject) {\r
+                       ex = xmlDoc.transformNode(xslDoc);\r
+                       resultDocument = ex;\r
+               }\r
+               // code for Mozilla, Firefox, Opera, etc.\r
+               else if (document.implementation && document.implementation.createDocument) {\r
+                       xsltProcessor = new XSLTProcessor();\r
+                       xsltProcessor.importStylesheet(xslDoc);\r
+                       resultDocument = xsltProcessor.transformToFragment(xmlDoc, document).textContent;\r
+               }\r
+       }\r
+       return resultDocument;\r
+}\r
diff --git a/htsworkflow/pipelines/test/testdata/1_12/Status_Files/StatusError.htm b/htsworkflow/pipelines/test/testdata/1_12/Status_Files/StatusError.htm
new file mode 100755 (executable)
index 0000000..705d39c
--- /dev/null
@@ -0,0 +1,8 @@
+<html xmlns="http://www.w3.org/1999/xhtml" >\r
+<head></head> \r
+<body>\r
+<p>There was a problem loading the file.</p>\r
+<p>Please click a link below to try again</p>\r
+<p><a href=".\Status.htm">Status.htm</a></p>\r
+</body>\r
+</html>\r
diff --git a/htsworkflow/pipelines/test/testdata/1_12/Status_Files/StatusUpdate.xsl b/htsworkflow/pipelines/test/testdata/1_12/Status_Files/StatusUpdate.xsl
new file mode 100755 (executable)
index 0000000..9d86eb9
--- /dev/null
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"\r
+    xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl"\r
+                xmlns:lxslt="http://xml.apache.org/xslt">\r
+<xsl:output method="html" indent="yes"/>\r
+       <xsl:template match="/">\r
+               <table class="StatusTable"><tr>\r
+                       <th>Total:</th><td id="NumCycles"><xsl:value-of select="/Status/NumCycles"/></td>\r
+                       <th>Extracted:</th><td id="ImgCycle"><xsl:value-of select="/Status/ImgCycle"/></td>\r
+                       <th>Called:</th><td id="CallCycle"><xsl:value-of select="/Status/CallCycle"/></td>\r
+                       <th>Scored:</th><td id="ScoreCycle"><xsl:value-of select="/Status/ScoreCycle"/></td>\r
+                       <th>Copied:</th><td id="CopyCycle"><xsl:value-of select="/Status/CopyCycle"/></td>\r
+               </tr></table>\r
+  </xsl:template>\r
+</xsl:stylesheet>\r
diff --git a/htsworkflow/pipelines/test/testdata/1_12/Status_Files/Summary.htm b/htsworkflow/pipelines/test/testdata/1_12/Status_Files/Summary.htm
new file mode 100755 (executable)
index 0000000..b11632d
--- /dev/null
@@ -0,0 +1,53 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+       <link rel="stylesheet" href="./Status.css" type="text/css" media="screen"/>\r
+       <script src="./Status.js" type="text/javascript"></script>\r
+       <script src="./Summary.js" type="text/javascript"></script>\r
+       <title>Status</title>\r
+</head>\r
\r
+<body>\r
+       <table style="border:none"><tr>\r
+               <td><img alt="Refresh" title="Refresh" name="RefreshBtn" height="25" width="25" src="./RefreshBtn/r1.png"  onmouseout="this.src='./RefreshBtn/r1.png'" onmouseover="this.src='./RefreshBtn/r2.png'" onmousedown="this.src='./RefreshBtn/r3.png'" onmouseup="this.src='./RefreshBtn/r2.png'" onclick="window.location.reload(true)" />&#160;</td>\r
+               <td id="StatUpdateDiv" >\r
+                       <table class="StatusTable"><tr>\r
+                               <th>Total:</th><td>0</td><th>Extracted:</th><td>0</td><th>Called:</th><td>0</td>\r
+                               <th>Scored:</th><td>0</td><th>Copied:</th><td>0</td><th>Err.Rated:</th><td>0</td>\r
+                       </tr></table></td> \r
+               <td id="RunNameTD">Loading Run Data ...</td>\r
+       </tr></table>\r
+       <script type="text/javascript">\r
+               loadXSLTable('../reports/StatusUpdate.xml', './StatusUpdate.xsl', 'StatUpdateDiv');\r
+               runName = xslTransform(loadXMLDoc('../reports/Status.xml'), loadXMLDoc('./RunName.xsl'));\r
+               document.getElementById("RunNameTD").innerHTML = runName;\r
+               document.title = runName + " Status";\r
+       </script>\r
+<ul id="tabmenu">\r
+       <li><a href="./RunInfo.htm">Run Info</a></li>\r
+       <li><a href="../Status.htm">Tile Status</a></li>\r
+       <li><a href="./Charts.htm">Charts</a></li>\r
+       <li><a class="selected" href="./Summary.htm">Summary</a></li>\r
+  <li><a class="space">Plots:</a></li>\r
+       <li><a href="./ByLane.htm">Cluster Density</a></li>\r
+       <li><a href="./ByCycle.htm">Data By Cycle</a></li>\r
+</ul>\r
\r
+<div id="container">\r
+       <div id="SumTbl1" ><p> No data available yet.</p></div>\r
+       <div id="SumTbl2"></div>\r
+       <div id="SumTbl3"></div>\r
+       <div id="SumTbl4"></div>\r
+       <div id="SumTbl5"></div>\r
+       <div id="SumTbl6"></div>\r
+       <div id="SumTbl7"></div>\r
+       <div id="SumTbl8"></div>\r
+       <div id="SumTbl9"></div>\r
+       <div id="SumTbl10"></div>\r
+       <div id="SumTbl11"></div>\r
+       <script type="text/javascript">loadSumTable()</script>\r
+</div>\r
\r
+</body>\r
+</html>\r
+\r
diff --git a/htsworkflow/pipelines/test/testdata/1_12/Status_Files/Summary.js b/htsworkflow/pipelines/test/testdata/1_12/Status_Files/Summary.js
new file mode 100755 (executable)
index 0000000..39b8884
--- /dev/null
@@ -0,0 +1,8 @@
+window.onerror = function() {\r
+       parent.location = './Error.htm';\r
+}\r
+\r
+function loadSumTable() {\r
+    for (i = 1; i < 12; i++)\r
+        loadXSLTable('../reports/Summary/read' + i + '.xml', './Summary.xsl', 'SumTbl' + i);\r
+}
\ No newline at end of file
diff --git a/htsworkflow/pipelines/test/testdata/1_12/Status_Files/Summary.xsl b/htsworkflow/pipelines/test/testdata/1_12/Status_Files/Summary.xsl
new file mode 100755 (executable)
index 0000000..8ebf359
--- /dev/null
@@ -0,0 +1,49 @@
+<?xml version="1.0"?> \r
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" \r
+version="1.0"> \r
+<xsl:output method="html" indent="yes" omit-xml-declaration="yes"/>\r
+<xsl:template match="/">\r
+               <p/>&#160;&#160;&#160;<b>Read #<xsl:value-of select="Summary/@Read"/></b>\r
+                <i><xsl:value-of select="Summary/@ReadType"/></i>\r
+       <table class="DataTable" >\r
+        <tr>\r
+      <th >Lane</th> <th>Tiles</th> <th>Clu.Dens. (#/mm<sup>2</sup>)</th>\r
+      <th>% PF Clusters </th> <th>Clusters PF (#/mm<sup>2</sup>)</th> <th>% Phas./Preph.</th>\r
+                <th>Cycles<br/>Err Rated</th> <th>% Aligned</th> <th>% Error Rate</th> \r
+               <th>% Error Rate<br/> 35 cycle</th > <th>% Error Rate<br/> 75 cycle</th > <th>% Error Rate<br/> 100 cycle</th > <th>1<sup>st</sup> Cycle Int</th>\r
+      <th>% Intensity<br/> Cycle 20</th>\r
+    </tr>\r
+    <xsl:variable name="densityRatio" select="Summary/@densityRatio"/>\r
+      <xsl:for-each select="Summary/Lane">\r
+                                       <tr>\r
+         <td><xsl:value-of select="@key"/></td>         \r
+         <td><xsl:value-of select="@TileCount"/></td>         \r
+         <td><xsl:value-of select="format-number(@ClustersRaw * $densityRatio div 1000,'#')"/>K +/- \r
+                               <xsl:value-of select="format-number(@ClustersRawSD * $densityRatio div 1000,'#.0')"/>K</td>         \r
+         <td><xsl:value-of select="@PrcPFClusters"/> +/- \r
+                               <xsl:value-of select="@PrcPFClustersSD"/></td>         \r
+         <td><xsl:value-of select="format-number(@ClustersPF* $densityRatio div 1000,'#.0')"/>K +/- \r
+                               <xsl:value-of select="format-number(@ClustersPFSD* $densityRatio div 1000,'#.00')"/>K</td>         \r
+         <td><xsl:value-of select="@Phasing"/> /\r
+                               <xsl:value-of select="@Prephasing"/></td>\r
+         <td><xsl:value-of select="@CalledCyclesMin"/>\r
+            <xsl:if test="@CalledCyclesMax &gt; @CalledCyclesMin">-<xsl:value-of select="@CalledCyclesMax"/></xsl:if></td>\r
+         <td><xsl:value-of select="@PrcAlign"/> +/-\r
+                               <xsl:value-of select="@PrcAlignSD"/></td>         \r
+         <td><xsl:value-of select="@ErrRatePhiX"/> +/-\r
+           <xsl:value-of select="@ErrRatePhiXSD"/></td>\r
+         <td><xsl:value-of select="@ErrRate35"/> +/-\r
+           <xsl:value-of select="@ErrRate35SD"/></td>\r
+         <td><xsl:value-of select="@ErrRate75"/> +/-\r
+           <xsl:value-of select="@ErrRate75SD"/></td>\r
+         <td><xsl:value-of select="@ErrRate100"/> +/-\r
+           <xsl:value-of select="@ErrRate100SD"/></td>\r
+         <td><xsl:value-of select="format-number(@FirstCycleIntPF,'#')"/> +/-\r
+             <xsl:value-of select="format-number(@FirstCycleIntPFSD,'#.0')"/></td>\r
+         <td><xsl:value-of select="format-number(@PrcIntensityAfter20CyclesPF,'#.0')"/> +/-\r
+             <xsl:value-of select="format-number(@PrcIntensityAfter20CyclesPFSD,'#.00')"/></td>\r
+                                       </tr>\r
+      </xsl:for-each>\r
+  </table >\r
+</xsl:template>\r
+</xsl:stylesheet>\r
diff --git a/htsworkflow/pipelines/test/testdata/1_12/Status_Files/TilesPerLane.xsl b/htsworkflow/pipelines/test/testdata/1_12/Status_Files/TilesPerLane.xsl
new file mode 100755 (executable)
index 0000000..550a4af
--- /dev/null
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"\r
+    xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl"\r
+                xmlns:lxslt="http://xml.apache.org/xslt">\r
+<xsl:output method="html" indent="yes"/>\r
+       <xsl:template match="/">\r
+               <xsl:value-of select="/Status/Configuration/TilesPerLane"/>\r
+  </xsl:template>\r
+</xsl:stylesheet>\r
diff --git a/htsworkflow/pipelines/test/testdata/1_12/Status_Files/illumina.png b/htsworkflow/pipelines/test/testdata/1_12/Status_Files/illumina.png
new file mode 100755 (executable)
index 0000000..4add57c
Binary files /dev/null and b/htsworkflow/pipelines/test/testdata/1_12/Status_Files/illumina.png differ
diff --git a/htsworkflow/pipelines/test/testdata/1_12/Summary-rta1_12.htm b/htsworkflow/pipelines/test/testdata/1_12/Summary-rta1_12.htm
new file mode 100755 (executable)
index 0000000..b11632d
--- /dev/null
@@ -0,0 +1,53 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+       <link rel="stylesheet" href="./Status.css" type="text/css" media="screen"/>\r
+       <script src="./Status.js" type="text/javascript"></script>\r
+       <script src="./Summary.js" type="text/javascript"></script>\r
+       <title>Status</title>\r
+</head>\r
\r
+<body>\r
+       <table style="border:none"><tr>\r
+               <td><img alt="Refresh" title="Refresh" name="RefreshBtn" height="25" width="25" src="./RefreshBtn/r1.png"  onmouseout="this.src='./RefreshBtn/r1.png'" onmouseover="this.src='./RefreshBtn/r2.png'" onmousedown="this.src='./RefreshBtn/r3.png'" onmouseup="this.src='./RefreshBtn/r2.png'" onclick="window.location.reload(true)" />&#160;</td>\r
+               <td id="StatUpdateDiv" >\r
+                       <table class="StatusTable"><tr>\r
+                               <th>Total:</th><td>0</td><th>Extracted:</th><td>0</td><th>Called:</th><td>0</td>\r
+                               <th>Scored:</th><td>0</td><th>Copied:</th><td>0</td><th>Err.Rated:</th><td>0</td>\r
+                       </tr></table></td> \r
+               <td id="RunNameTD">Loading Run Data ...</td>\r
+       </tr></table>\r
+       <script type="text/javascript">\r
+               loadXSLTable('../reports/StatusUpdate.xml', './StatusUpdate.xsl', 'StatUpdateDiv');\r
+               runName = xslTransform(loadXMLDoc('../reports/Status.xml'), loadXMLDoc('./RunName.xsl'));\r
+               document.getElementById("RunNameTD").innerHTML = runName;\r
+               document.title = runName + " Status";\r
+       </script>\r
+<ul id="tabmenu">\r
+       <li><a href="./RunInfo.htm">Run Info</a></li>\r
+       <li><a href="../Status.htm">Tile Status</a></li>\r
+       <li><a href="./Charts.htm">Charts</a></li>\r
+       <li><a class="selected" href="./Summary.htm">Summary</a></li>\r
+  <li><a class="space">Plots:</a></li>\r
+       <li><a href="./ByLane.htm">Cluster Density</a></li>\r
+       <li><a href="./ByCycle.htm">Data By Cycle</a></li>\r
+</ul>\r
\r
+<div id="container">\r
+       <div id="SumTbl1" ><p> No data available yet.</p></div>\r
+       <div id="SumTbl2"></div>\r
+       <div id="SumTbl3"></div>\r
+       <div id="SumTbl4"></div>\r
+       <div id="SumTbl5"></div>\r
+       <div id="SumTbl6"></div>\r
+       <div id="SumTbl7"></div>\r
+       <div id="SumTbl8"></div>\r
+       <div id="SumTbl9"></div>\r
+       <div id="SumTbl10"></div>\r
+       <div id="SumTbl11"></div>\r
+       <script type="text/javascript">loadSumTable()</script>\r
+</div>\r
\r
+</body>\r
+</html>\r
+\r
diff --git a/htsworkflow/pipelines/test/testdata/1_12/aligned_config_1_12.xml b/htsworkflow/pipelines/test/testdata/1_12/aligned_config_1_12.xml
new file mode 100644 (file)
index 0000000..2b7f3af
--- /dev/null
@@ -0,0 +1,234 @@
+<?xml version="1.0"?>
+<RunParameters>
+  <Barcodes>
+  </Barcodes>
+  <Defaults>
+    <ANALYSIS>none</ANALYSIS>
+    <CHROM_NAME_SOURCE>fileName</CHROM_NAME_SOURCE>
+    <CHROM_NAME_VALIDATION>on</CHROM_NAME_VALIDATION>
+    <CMDPREFIX></CMDPREFIX>
+    <DATASET_POST_RUN_COMMAND></DATASET_POST_RUN_COMMAND>
+    <ELAND_EXTENDED_MULTI_READS>off</ELAND_EXTENDED_MULTI_READS>
+    <ELAND_FASTQ_FILES_PER_PROCESS>3</ELAND_FASTQ_FILES_PER_PROCESS>
+    <ELAND_GENOME></ELAND_GENOME>
+    <ELAND_GENOME_MASK>*.fa</ELAND_GENOME_MASK>
+    <ELAND_MAX_MATCHES></ELAND_MAX_MATCHES>
+    <ELAND_PARAMS></ELAND_PARAMS>
+    <ELAND_REPEAT></ELAND_REPEAT>
+    <ELAND_RNA_GENE_MD_GROUP_LABEL></ELAND_RNA_GENE_MD_GROUP_LABEL>
+    <ELAND_RNA_GENOME_ANNOTATION></ELAND_RNA_GENOME_ANNOTATION>
+    <ELAND_RNA_GENOME_CONTAM></ELAND_RNA_GENOME_CONTAM>
+    <ELAND_RNA_GENOME_CONTAM_MASK>*.fa</ELAND_RNA_GENOME_CONTAM_MASK>
+    <ELAND_RNA_MULTI_READS>off</ELAND_RNA_MULTI_READS>
+    <ELAND_SEED_LENGTH1>32</ELAND_SEED_LENGTH1>
+    <ELAND_SEED_LENGTH2></ELAND_SEED_LENGTH2>
+    <EMAIL_DOMAIN>domain.com</EMAIL_DOMAIN>
+    <EMAIL_LIST>${logName}</EMAIL_LIST>
+    <EMAIL_SERVER>localhost:25</EMAIL_SERVER>
+    <EXPT_DIR>/mmjggl/nicodemus/data01/sequencer/110815_SN787_0101_AD07K6ACXX/Unaligned_1MM</EXPT_DIR>
+    <FLAT_TXT_GZ_SUFFIX>Flat.txt.gz</FLAT_TXT_GZ_SUFFIX>
+    <FLOWCELL>D07K6ACXX</FLOWCELL>
+    <GENE_MD_GZ_SUFFIX>_gene.md.gz</GENE_MD_GZ_SUFFIX>
+    <INCREASED_SENSITIVITY></INCREASED_SENSITIVITY>
+    <KAGU_PAIR_PARAMS>--muf 0</KAGU_PAIR_PARAMS>
+    <KAGU_PARAMS>--mmaq 4</KAGU_PARAMS>
+    <NUM_LEADING_DIRS_TO_STRIP>2</NUM_LEADING_DIRS_TO_STRIP>
+    <OA_SUFFIX>.oa</OA_SUFFIX>
+    <ORIGINAL_READS>1</ORIGINAL_READS>
+    <ORIGINAL_READ_LENGTH1>50</ORIGINAL_READ_LENGTH1>
+    <ORPHAN_ALIGNER_PARAMS>2</ORPHAN_ALIGNER_PARAMS>
+    <OUT_DIR>/mmjggl/nicodemus/data01/sequencer/110815_SN787_0101_AD07K6ACXX/Aligned_1MM</OUT_DIR>
+    <PAS_PARAMS></PAS_PARAMS>
+    <RAMM_REPORT_TYPE></RAMM_REPORT_TYPE>
+    <READS>1</READS>
+    <READ_LENGTH1>49</READ_LENGTH1>
+    <RNAQC_COUNT_CLUSTERS_CMD>$(WC) -l</RNAQC_COUNT_CLUSTERS_CMD>
+    <RNAQC_COUNT_CLUSTERS_NAME>totalClusters</RNAQC_COUNT_CLUSTERS_NAME>
+    <RNAQC_COUNT_GENOME_CMD>($(GREP) -cvE '^((NM|QC|RM|[0-9]+:[0-9]+:[0-9]+)$$|splice_sites)' || exit 0)</RNAQC_COUNT_GENOME_CMD>
+    <RNAQC_COUNT_GENOME_NAME>genomeUsable</RNAQC_COUNT_GENOME_NAME>
+    <RNAQC_COUNT_NM_CMD>($(FGREP) -wc NM || exit 0)</RNAQC_COUNT_NM_CMD>
+    <RNAQC_COUNT_NM_NAME>noMatch</RNAQC_COUNT_NM_NAME>
+    <RNAQC_COUNT_PF_CMD>$(WC) -l</RNAQC_COUNT_PF_CMD>
+    <RNAQC_COUNT_PF_NAME>PFClusters</RNAQC_COUNT_PF_NAME>
+    <RNAQC_COUNT_QC_CMD>($(FGREP) -wc QC || exit 0)</RNAQC_COUNT_QC_CMD>
+    <RNAQC_COUNT_QC_NAME>QC</RNAQC_COUNT_QC_NAME>
+    <RNAQC_COUNT_RM_CMD>($(FGREP) -wc RM || exit 0)</RNAQC_COUNT_RM_CMD>
+    <RNAQC_COUNT_RM_NAME>repeatMasked</RNAQC_COUNT_RM_NAME>
+    <RNAQC_COUNT_SPLICE_CMD>($(FGREP) -c splice_sites || exit 0)</RNAQC_COUNT_SPLICE_CMD>
+    <RNAQC_COUNT_SPLICE_NAME>spliceUsable</RNAQC_COUNT_SPLICE_NAME>
+    <RNAQC_COUNT_USABLE_CMD>$(CUT) -f13 |($(EGREP) [0-9] || exit 0)|$(WC) -l</RNAQC_COUNT_USABLE_CMD>
+    <RNAQC_COUNT_USABLE_NAME>usable</RNAQC_COUNT_USABLE_NAME>
+    <RNAQC_FIND_CONTAMS_CMD>($(GREP) -vE '^(NM|QC|RM|[0-9]+:[0-9]+:[0-9]+)$$' || exit 0)</RNAQC_FIND_CONTAMS_CMD>
+    <SAMTOOLS_GENOME></SAMTOOLS_GENOME>
+    <SEQGENEMD2REFFLAT_PARAMS></SEQGENEMD2REFFLAT_PARAMS>
+    <SINGLESEED></SINGLESEED>
+    <SPLCSTS_PARAMS>-v $(CASAVA_LOG_LEVEL)</SPLCSTS_PARAMS>
+    <SQUASH_GENOME_PARAMS></SQUASH_GENOME_PARAMS>
+    <UNGAPPED></UNGAPPED>
+    <USE_BASES>y*n</USE_BASES>
+    <USE_BASES1>yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyn</USE_BASES1>
+    <WEB_DIR_ROOT>http://host.domain.com/yourshare/</WEB_DIR_ROOT>
+    <WITH_ORPHAN_ALIGNER>true</WITH_ORPHAN_ALIGNER>
+  </Defaults>
+  <Lanes>
+    <Lane index="1">
+      <Barcodes></Barcodes>
+      <Defaults>
+        <ANALYSIS>eland_extended</ANALYSIS>
+        <CHROM_NAME_SOURCE>fileName</CHROM_NAME_SOURCE>
+        <ELAND_GENOME>/mmjggl/nicodemus/data01/genomes/elegans190/chromosomes/</ELAND_GENOME>
+        <ELAND_GENOME_MASK>*.fa</ELAND_GENOME_MASK>
+        <ELAND_SEED_LENGTH1>32</ELAND_SEED_LENGTH1>
+        <READS>1</READS>
+        <READ_LENGTH1>49</READ_LENGTH1>
+        <Tiles>1101 1102 1103 1104 1105 1106 1107 1108 1201 1202 1203 1204 1205 1206 1207 1208 1301 1302 1303 1304 1305 1306 1307 1308 2101 2102 2103 2104 2105 2106 2107 2108 2201 2202 2203 2204 2205 2206 2207 2208 2301 2302 2303 2304 2305 2306 2307 2308</Tiles>
+        <USE_BASES>Y*n</USE_BASES>
+        <USE_BASES1>yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyn</USE_BASES1>
+      </Defaults>
+      <Projects></Projects>
+      <References></References>
+      <Samples></Samples>
+    </Lane>
+    <Lane index="2">
+      <Barcodes></Barcodes>
+      <Defaults>
+        <ANALYSIS>eland_extended</ANALYSIS>
+        <CHROM_NAME_SOURCE>fileName</CHROM_NAME_SOURCE>
+        <ELAND_GENOME>/mmjggl/nicodemus/data01/genomes/elegans190/chromosomes/</ELAND_GENOME>
+        <ELAND_GENOME_MASK>*.fa</ELAND_GENOME_MASK>
+        <ELAND_SEED_LENGTH1>32</ELAND_SEED_LENGTH1>
+        <READS>1</READS>
+        <READ_LENGTH1>49</READ_LENGTH1>
+        <Tiles>1101 1102 1103 1104 1105 1106 1107 1108 1201 1202 1203 1204 1205 1206 1207 1208 1301 1302 1303 1304 1305 1306 1307 1308 2101 2102 2103 2104 2105 2106 2107 2108 2201 2202 2203 2204 2205 2206 2207 2208 2301 2302 2303 2304 2305 2306 2307 2308</Tiles>
+        <USE_BASES>Y*n</USE_BASES>
+        <USE_BASES1>yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyn</USE_BASES1>
+      </Defaults>
+      <Projects></Projects>
+      <References></References>
+      <Samples></Samples>
+    </Lane>
+    <Lane index="4">
+      <Barcodes></Barcodes>
+      <Defaults>
+        <ANALYSIS>eland_extended</ANALYSIS>
+        <CHROM_NAME_SOURCE>fileName</CHROM_NAME_SOURCE>
+        <ELAND_GENOME>/mmjggl/nicodemus/data01/genomes/hg18/chromosomes/</ELAND_GENOME>
+        <ELAND_GENOME_MASK>*.fa</ELAND_GENOME_MASK>
+        <ELAND_SEED_LENGTH1>32</ELAND_SEED_LENGTH1>
+        <READS>1</READS>
+        <READ_LENGTH1>49</READ_LENGTH1>
+        <Tiles>1101 1102 1103 1104 1105 1106 1107 1108 1201 1202 1203 1204 1205 1206 1207 1208 1301 1302 1303 1304 1305 1306 1307 1308 2101 2102 2103 2104 2105 2106 2107 2108 2201 2202 2203 2204 2205 2206 2207 2208 2301 2302 2303 2304 2305 2306 2307 2308</Tiles>
+        <USE_BASES>Y*n</USE_BASES>
+        <USE_BASES1>yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyn</USE_BASES1>
+      </Defaults>
+      <Projects></Projects>
+      <References></References>
+      <Samples></Samples>
+    </Lane>
+    <Lane index="5">
+      <Barcodes></Barcodes>
+      <Defaults>
+        <ANALYSIS>eland_extended</ANALYSIS>
+        <CHROM_NAME_SOURCE>fileName</CHROM_NAME_SOURCE>
+        <ELAND_GENOME>/mmjggl/nicodemus/data01/genomes/hg18/chromosomes/</ELAND_GENOME>
+        <ELAND_GENOME_MASK>*.fa</ELAND_GENOME_MASK>
+        <ELAND_SEED_LENGTH1>32</ELAND_SEED_LENGTH1>
+        <READS>1</READS>
+        <READ_LENGTH1>49</READ_LENGTH1>
+        <Tiles>1101 1102 1103 1104 1105 1106 1107 1108 1201 1202 1203 1204 1205 1206 1207 1208 1301 1302 1303 1304 1305 1306 1307 1308 2101 2102 2103 2104 2105 2106 2107 2108 2201 2202 2203 2204 2205 2206 2207 2208 2301 2302 2303 2304 2305 2306 2307 2308</Tiles>
+        <USE_BASES>Y*n</USE_BASES>
+        <USE_BASES1>yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyn</USE_BASES1>
+      </Defaults>
+      <Projects></Projects>
+      <References></References>
+      <Samples></Samples>
+    </Lane>
+    <Lane index="6">
+      <Barcodes></Barcodes>
+      <Defaults>
+        <ANALYSIS>eland_extended</ANALYSIS>
+        <CHROM_NAME_SOURCE>fileName</CHROM_NAME_SOURCE>
+        <ELAND_GENOME>/mmjggl/nicodemus/data01/genomes/hg18/chromosomes/</ELAND_GENOME>
+        <ELAND_GENOME_MASK>*.fa</ELAND_GENOME_MASK>
+        <ELAND_SEED_LENGTH1>32</ELAND_SEED_LENGTH1>
+        <READS>1</READS>
+        <READ_LENGTH1>49</READ_LENGTH1>
+        <Tiles>1101 1102 1103 1104 1105 1106 1107 1108 1201 1202 1203 1204 1205 1206 1207 1208 1301 1302 1303 1304 1305 1306 1307 1308 2101 2102 2103 2104 2105 2106 2107 2108 2201 2202 2203 2204 2205 2206 2207 2208 2301 2302 2303 2304 2305 2306 2307 2308</Tiles>
+        <USE_BASES>Y*n</USE_BASES>
+        <USE_BASES1>yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyn</USE_BASES1>
+      </Defaults>
+      <Projects></Projects>
+      <References></References>
+      <Samples></Samples>
+    </Lane>
+    <Lane index="7">
+      <Barcodes></Barcodes>
+      <Defaults>
+        <ANALYSIS>none</ANALYSIS>
+        <Tiles>1101 1102 1103 1104 1105 1106 1107 1108 1201 1202 1203 1204 1205 1206 1207 1208 1301 1302 1303 1304 1305 1306 1307 1308 2101 2102 2103 2104 2105 2106 2107 2108 2201 2202 2203 2204 2205 2206 2207 2208 2301 2302 2303 2304 2305 2306 2307 2308</Tiles>
+      </Defaults>
+      <Projects></Projects>
+      <References></References>
+      <Samples></Samples>
+    </Lane>
+    <Lane index="8">
+      <Barcodes></Barcodes>
+      <Defaults>
+        <ANALYSIS>none</ANALYSIS>
+        <Tiles>1101 1102 1103 1104 1105 1106 1107 1108 1201 1202 1203 1204 1205 1206 1207 1208 1301 1302 1303 1304 1305 1306 1307 1308 2101 2102 2103 2104 2105 2106 2107 2108 2201 2202 2203 2204 2205 2206 2207 2208 2301 2302 2303 2304 2305 2306 2307 2308</Tiles>
+      </Defaults>
+      <Projects></Projects>
+      <References></References>
+      <Samples></Samples>
+    </Lane>
+    <Lane index="3">
+      <Barcodes></Barcodes>
+      <Defaults>
+        <Tiles>1101 1102 1103 1104 1105 1106 1107 1108 1201 1202 1203 1204 1205 1206 1207 1208 1301 1302 1303 1304 1305 1306 1307 1308 2101 2102 2103 2104 2105 2106 2107 2108 2201 2202 2203 2204 2205 2206 2207 2208 2301 2302 2303 2304 2305 2306 2307 2308</Tiles>
+      </Defaults>
+      <Projects></Projects>
+      <References></References>
+      <Samples></Samples>
+    </Lane>
+  </Lanes>
+  <Projects>
+    <Project name="12383">
+      <ANALYSIS>eland_extended</ANALYSIS>
+      <CHROM_NAME_SOURCE>fileName</CHROM_NAME_SOURCE>
+      <ELAND_GENOME>/mmjggl/nicodemus/data01/genomes/hg18/chromosomes/</ELAND_GENOME>
+      <ELAND_GENOME_MASK>*.fa</ELAND_GENOME_MASK>
+      <ELAND_SEED_LENGTH1>32</ELAND_SEED_LENGTH1>
+      <READS>1</READS>
+      <READ_LENGTH1>49</READ_LENGTH1>
+      <USE_BASES>Y*n</USE_BASES>
+      <USE_BASES1>yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyn</USE_BASES1>
+    </Project>
+    <Project name="Undetermined_indices">
+      <ANALYSIS>none</ANALYSIS>
+    </Project>
+  </Projects>
+  <References>
+    <Reference name="mm9">
+      <ANALYSIS>eland_extended</ANALYSIS>
+      <CHROM_NAME_SOURCE>fileName</CHROM_NAME_SOURCE>
+      <ELAND_GENOME>/mmjggl/nicodemus/data01/genomes/mm9/chromosomes/</ELAND_GENOME>
+      <ELAND_GENOME_MASK>*.fa</ELAND_GENOME_MASK>
+      <ELAND_SEED_LENGTH1>32</ELAND_SEED_LENGTH1>
+      <READS>1</READS>
+      <READ_LENGTH1>49</READ_LENGTH1>
+      <USE_BASES>Y*n</USE_BASES>
+      <USE_BASES1>yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyn</USE_BASES1>
+    </Reference>
+  </References>
+  <Samples>
+  </Samples>
+  <Software CmdAndArgs="/mmjggl/nicodemus/data01/casava-v1.8.1/bin/configureAlignment.pl config.txt --EXPT_DIR /mmjggl/nicodemus/data01/sequencer/110815_SN787_0101_AD07K6ACXX/Unaligned_1MM/ --OUT_DIR /mmjggl/nicodemus/data01/sequencer/110815_SN787_0101_AD07K6ACXX/Aligned_1MM -make" Name="configureAlignment.pl" Version="CASAVA-1.8.1">
+    <Software CmdAndArgs="/mmjggl/nicodemus/data01/casava-v1.8.1/bin/configureBclToFastq.pl --input-dir Data/Intensities/BaseCalls/ --output-dir Unaligned_1MM --sample-sheet Data/Intensities/BaseCalls/SampleSheet.csv --mismatches 1" Name="configureBclToFastq.pl" Version="CASAVA-1.8.1">
+      <Software Name="RTA" Version="1.12.4.2">
+        <Software Name="RTA" Version="1.12.4.2">
+          <Software Name="HiSeq Control Software" Platform="HiSeq" Version="1.4.8" />
+        </Software>
+      </Software>
+    </Software>
+  </Software>
+</RunParameters>
diff --git a/htsworkflow/pipelines/test/testdata/1_12/demultiplex_1.12.4.2.xml b/htsworkflow/pipelines/test/testdata/1_12/demultiplex_1.12.4.2.xml
new file mode 100644 (file)
index 0000000..e7ee38d
--- /dev/null
@@ -0,0 +1,71 @@
+<DemultiplexConfig>
+  <Software Version="CASAVA-1.8.1" CmdAndArgs="/mmjggl/nicodemus/data01/casava-v1.8.1/bin/configureBclToFastq.pl --input-dir Data/Intensities/BaseCalls/ --output-dir Unaligned --sample-sheet Data/Intensities/BaseCalls/SampleSheet.csv" Name="configureBclToFastq.pl">
+    <Software Version="1.12.4.2" Name="RTA">
+      <Software Version="1.12.4.2" Name="RTA">
+        <Software Version="1.4.8" Platform="HiSeq" Name="HiSeq Control Software" />
+      </Software>
+    </Software>
+  </Software>
+  <FlowcellInfo ID="D07K6ACXX" Operator="Lorian" Recipe="SR_indexing" Desc="">
+    <Lane Number="1">
+      <Sample ProjectId="12281" Control="N" Index="ACAGTG" SampleId="12281" Desc="Index #5 AWCon cell#3_N2" Ref="elegans190" />
+      <Sample ProjectId="12279" Control="N" Index="CGATGT" SampleId="12279" Desc="Index #2 AWCon cell#1_N2" Ref="elegans190" />
+      <Sample ProjectId="12280" Control="N" Index="TGACCA" SampleId="12280" Desc="Index #4 AWCon cell#2_N2" Ref="elegans190" />
+      <Sample ProjectId="Undetermined_indices" Control="N" Index="Undetermined" SampleId="lane1" Desc="Clusters with unmatched barcodes for lane 1" Ref="unknown" />
+    </Lane>
+    <Lane Number="2">
+      <Sample ProjectId="12345" Control="N" Index="ACAGTG" SampleId="12345" Desc="Index #5 3 AWC ablated CX3695" Ref="elegans190" />
+      <Sample ProjectId="12283" Control="N" Index="CAGATC" SampleId="12283" Desc="Index #7 AWCon cell#5_N2" Ref="elegans190" />
+      <Sample ProjectId="12282" Control="N" Index="GCCAAT" SampleId="12282" Desc="Index #6 AWCon cell#4_N2" Ref="elegans190" />
+      <Sample ProjectId="Undetermined_indices" Control="N" Index="Undetermined" SampleId="lane2" Desc="Clusters with unmatched barcodes for lane 2" Ref="unknown" />
+    </Lane>
+    <Lane Number="3">
+      <Sample ProjectId="12331" Control="N" Index="ACAGTG" SampleId="12331" Desc="Index #5 060111 FLDN2b(d8.5) H3K4me3 ChIP" Ref="mm9" />
+      <Sample ProjectId="12383" Control="N" Index="CGATGT" SampleId="12383" Desc="Index #2 jwp ix-65 ni 16h" Ref="hg18" />
+      <Sample ProjectId="12330" Control="N" Index="TGACCA" SampleId="12330" Desc="Index #4 060111 Bcl11bKO DL4 FLDN2a H3K4me3 ChIP" Ref="mm9" />
+      <Sample ProjectId="Undetermined_indices" Control="N" Index="Undetermined" SampleId="lane3" Desc="Clusters with unmatched barcodes for lane 3" Ref="unknown" />
+    </Lane>
+    <Lane Number="4">
+      <Sample ProjectId="12385" Control="N" Index="ACAGTG" SampleId="12385" Desc="Index #5 jwp ix-65 i 16h" Ref="hg18" />
+      <Sample ProjectId="12386" Control="N" Index="GCCAAT" SampleId="12386" Desc="Index #6 jwp ix-71 NI 16h" Ref="hg18" />
+      <Sample ProjectId="12384" Control="N" Index="TGACCA" SampleId="12384" Desc="index #4 jwp ix-65 RD 16h" Ref="hg18" />
+      <Sample ProjectId="Undetermined_indices" Control="N" Index="Undetermined" SampleId="lane4" Desc="Clusters with unmatched barcodes for lane 4" Ref="unknown" />
+    </Lane>
+    <Lane Number="5">
+      <Sample ProjectId="12387" Control="N" Index="CAGATC" SampleId="12387" Desc="Index #7 jwp ix-71 RD 16h" Ref="hg18" />
+      <Sample ProjectId="12388" Control="N" Index="CTTGTA" SampleId="12388" Desc="Index #12 jwp ix-71 i 16h" Ref="hg18" />
+      <Sample ProjectId="Undetermined_indices" Control="N" Index="Undetermined" SampleId="lane5" Desc="Clusters with unmatched barcodes for lane 5" Ref="unknown" />
+    </Lane>
+    <Lane Number="6">
+      <Sample ProjectId="12391" Control="N" Index="ACTTGA" SampleId="12391" Desc="Index #8 jwp ix-63 NI 4h" Ref="hg18" />
+      <Sample ProjectId="12392" Control="N" Index="GATCAG" SampleId="12392" Desc="Index #9 jwp ix-63 DHT 10uM PA 4h" Ref="hg18" />
+      <Sample ProjectId="12393" Control="N" Index="TAGCTT" SampleId="12393" Desc="Index #10 jwp ix-63 DHT 4h" Ref="hg18" />
+      <Sample ProjectId="Undetermined_indices" Control="N" Index="Undetermined" SampleId="lane6" Desc="Clusters with unmatched barcodes for lane 6" Ref="unknown" />
+    </Lane>
+    <Lane Number="7">
+      <Sample ProjectId="12348_Index5" Control="N" Index="ACAGTG" SampleId="12348" Desc="Indices #1-9 Small RNA OSS TJ-GFP and constr.E-H" Ref="dm3" />
+      <Sample ProjectId="12348_Index8" Control="N" Index="ACTTGA" SampleId="12348" Desc="Indices #1-9 Small RNA OSS TJ-GFP and constr.E-H" Ref="dm3" />
+      <Sample ProjectId="12348_Index1" Control="N" Index="ATCACG" SampleId="12348" Desc="Indices #1-9 Small RNA OSS TJ-GFP and constr.E-H" Ref="dm3" />
+      <Sample ProjectId="12348_Index7" Control="N" Index="CAGATC" SampleId="12348" Desc="Indices #1-9 Small RNA OSS TJ-GFP and constr.E-H" Ref="dm3" />
+      <Sample ProjectId="12348_Index2" Control="N" Index="CGATGT" SampleId="12348" Desc="Indices #1-9 Small RNA OSS TJ-GFP and constr.E-H" Ref="dm3" />
+      <Sample ProjectId="12348_Index9" Control="N" Index="GATCAG" SampleId="12348" Desc="Indices #1-9 Small RNA OSS TJ-GFP and constr.E-H" Ref="dm3" />
+      <Sample ProjectId="12348_Index6" Control="N" Index="GCCAAT" SampleId="12348" Desc="Indices #1-9 Small RNA OSS TJ-GFP and constr.E-H" Ref="dm3" />
+      <Sample ProjectId="12348_Index4" Control="N" Index="TGACCA" SampleId="12348" Desc="Indices #1-9 Small RNA OSS TJ-GFP and constr.E-H" Ref="dm3" />
+      <Sample ProjectId="12348_Index3" Control="N" Index="TTAGGC" SampleId="12348" Desc="Indices #1-9 Small RNA OSS TJ-GFP and constr.E-H" Ref="dm3" />
+      <Sample ProjectId="Undetermined_indices" Control="N" Index="Undetermined" SampleId="lane7" Desc="Clusters with unmatched barcodes for lane 7" Ref="unknown" />
+    </Lane>
+    <Lane Number="8">
+      <Sample ProjectId="12382_Index5" Control="N" Index="ACAGTG" SampleId="12382" Desc="Small RNA Index #RPI1-RPI10 Human bladder cancer small RNA" Ref="hg18" />
+      <Sample ProjectId="12382_Index8" Control="N" Index="ACTTGA" SampleId="12382" Desc="Small RNA Index #RPI1-RPI10 Human bladder cancer small RNA" Ref="hg18" />
+      <Sample ProjectId="12382_Index1" Control="N" Index="ATCACG" SampleId="12382" Desc="Small RNA Index #RPI1-RPI10 Human bladder cancer small RNA" Ref="hg18" />
+      <Sample ProjectId="12382_Index7" Control="N" Index="CAGATC" SampleId="12382" Desc="Small RNA Index #RPI1-RPI10 Human bladder cancer small RNA" Ref="hg18" />
+      <Sample ProjectId="12382_Index2" Control="N" Index="CGATGT" SampleId="12382" Desc="Small RNA Index #RPI1-RPI10 Human bladder cancer small RNA" Ref="hg18" />
+      <Sample ProjectId="12382_Index9" Control="N" Index="GATCAG" SampleId="12382" Desc="Small RNA Index #RPI1-RPI10 Human bladder cancer small RNA" Ref="hg18" />
+      <Sample ProjectId="12382_Index6" Control="N" Index="GCCAAT" SampleId="12382" Desc="Small RNA Index #RPI1-RPI10 Human bladder cancer small RNA" Ref="hg18" />
+      <Sample ProjectId="12382_Index10" Control="N" Index="TAGCTT" SampleId="12382" Desc="Small RNA Index #RPI1-RPI10 Human bladder cancer small RNA" Ref="hg18" />
+      <Sample ProjectId="12382_Index4" Control="N" Index="TGACCA" SampleId="12382" Desc="Small RNA Index #RPI1-RPI10 Human bladder cancer small RNA" Ref="hg18" />
+      <Sample ProjectId="12382_Index3" Control="N" Index="TTAGGC" SampleId="12382" Desc="Small RNA Index #RPI1-RPI10 Human bladder cancer small RNA" Ref="hg18" />
+      <Sample ProjectId="Undetermined_indices" Control="N" Index="Undetermined" SampleId="lane8" Desc="Clusters with unmatched barcodes for lane 8" Ref="unknown" />
+    </Lane>
+  </FlowcellInfo>
+</DemultiplexConfig>
diff --git a/htsworkflow/pipelines/test/testdata/1_12/demultiplexed_bustard_1.12.4.2.xml b/htsworkflow/pipelines/test/testdata/1_12/demultiplexed_bustard_1.12.4.2.xml
new file mode 100644 (file)
index 0000000..ea6a596
--- /dev/null
@@ -0,0 +1,503 @@
+<?xml version="1.0"?>
+<BaseCallAnalysis xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+  <Run Name="BaseCalls">
+    <BaseCallParameters>
+      <ChastityThreshold>0.6</ChastityThreshold>
+      <Matrix Path="">
+        <AutoFlag>2</AutoFlag>
+        <AutoLane>0</AutoLane>
+        <Cycle>1</Cycle>
+        <CycleOffset>0</CycleOffset>
+        <FirstCycle>1</FirstCycle>
+        <LastCycle>50</LastCycle>
+        <Read>1</Read>
+      </Matrix>
+      <Matrix Path="">
+        <AutoFlag>2</AutoFlag>
+        <AutoLane>0</AutoLane>
+        <Cycle>51</Cycle>
+        <CycleOffset>0</CycleOffset>
+        <FirstCycle>51</FirstCycle>
+        <LastCycle>57</LastCycle>
+        <Read>2</Read>
+      </Matrix>
+      <Phasing Path="">
+        <AutoFlag>2</AutoFlag>
+        <AutoLane>0</AutoLane>
+        <Cycle>2</Cycle>
+        <CycleOffset>1</CycleOffset>
+        <FirstCycle>1</FirstCycle>
+        <LastCycle>50</LastCycle>
+        <PhasingRate>0</PhasingRate>
+        <PrephasingRate>0</PrephasingRate>
+        <Read>1</Read>
+      </Phasing>
+      <Phasing Path="">
+        <AutoFlag>2</AutoFlag>
+        <AutoLane>0</AutoLane>
+        <Cycle>52</Cycle>
+        <CycleOffset>1</CycleOffset>
+        <FirstCycle>51</FirstCycle>
+        <LastCycle>57</LastCycle>
+        <PhasingRate>0</PhasingRate>
+        <PrephasingRate>0</PrephasingRate>
+        <Read>2</Read>
+      </Phasing>
+      <PureBases>0</PureBases>
+      <SmtFilter>failed-chastity</SmtFilter>
+      <SmtRelation>le</SmtRelation>
+      <SmtThreshold>1.0</SmtThreshold>
+    </BaseCallParameters>
+    <Cycles First="1" Last="57" Number="57"/>
+    <RunParameters>
+      <AutoCycleFlag>0</AutoCycleFlag>
+      <Barcode>
+        <Cycle Use="true">51</Cycle>
+        <Cycle Use="true">52</Cycle>
+        <Cycle Use="true">53</Cycle>
+        <Cycle Use="true">54</Cycle>
+        <Cycle Use="true">55</Cycle>
+        <Cycle Use="true">56</Cycle>
+        <Cycle Use="true">57</Cycle>
+      </Barcode>
+      <BasecallFlag>0</BasecallFlag>
+      <Deblocked>0</Deblocked>
+      <DebugFlag>0</DebugFlag>
+      <FirstRunOnlyFlag>0</FirstRunOnlyFlag>
+      <ImagingReads Index="1">
+        <FirstCycle>1</FirstCycle>
+        <LastCycle>50</LastCycle>
+      </ImagingReads>
+      <ImagingReads Index="2">
+        <FirstCycle>51</FirstCycle>
+        <LastCycle>57</LastCycle>
+        <RunFolder>110815_SN787_0101_AD07K6ACXX</RunFolder>
+      </ImagingReads>
+      <Instrument>HWI-ST0787</Instrument>
+      <IterativeMatrixFlag>0</IterativeMatrixFlag>
+      <MakeFlag>0</MakeFlag>
+      <MaxCycle>0</MaxCycle>
+      <MinCycle>0</MinCycle>
+      <QTableVersion>New6</QTableVersion>
+      <RunFlowcellId>D07K6ACXX</RunFlowcellId>
+      <RunFolder>110815_SN787_0101_AD07K6ACXX</RunFolder>
+      <RunFolderDate>110815</RunFolderDate>
+      <RunFolderId>0101</RunFolderId>
+      <Reads Index="1">
+        <FirstCycle>1</FirstCycle>
+        <LastCycle>50</LastCycle>
+      </Reads>
+    </RunParameters>
+    <Software Name="RTA" Version="1.12.4.2"/>
+    <TileSelection>
+      <Lane Index="1">
+        <Sample>s</Sample>
+        <Tile>1102</Tile>
+        <Tile>1101</Tile>
+        <Tile>1103</Tile>
+        <Tile>1106</Tile>
+        <Tile>1104</Tile>
+        <Tile>1105</Tile>
+        <Tile>1108</Tile>
+        <Tile>1107</Tile>
+        <Tile>1202</Tile>
+        <Tile>1201</Tile>
+        <Tile>1206</Tile>
+        <Tile>1204</Tile>
+        <Tile>1203</Tile>
+        <Tile>1205</Tile>
+        <Tile>1302</Tile>
+        <Tile>1208</Tile>
+        <Tile>1207</Tile>
+        <Tile>1301</Tile>
+        <Tile>1306</Tile>
+        <Tile>1304</Tile>
+        <Tile>1305</Tile>
+        <Tile>2102</Tile>
+        <Tile>1303</Tile>
+        <Tile>1308</Tile>
+        <Tile>2101</Tile>
+        <Tile>1307</Tile>
+        <Tile>2106</Tile>
+        <Tile>2104</Tile>
+        <Tile>2105</Tile>
+        <Tile>2103</Tile>
+        <Tile>2202</Tile>
+        <Tile>2108</Tile>
+        <Tile>2201</Tile>
+        <Tile>2206</Tile>
+        <Tile>2107</Tile>
+        <Tile>2205</Tile>
+        <Tile>2204</Tile>
+        <Tile>2203</Tile>
+        <Tile>2302</Tile>
+        <Tile>2301</Tile>
+        <Tile>2208</Tile>
+        <Tile>2306</Tile>
+        <Tile>2207</Tile>
+        <Tile>2305</Tile>
+        <Tile>2303</Tile>
+        <Tile>2304</Tile>
+        <Tile>2308</Tile>
+        <Tile>2307</Tile>
+      </Lane>
+      <Lane Index="2">
+        <Sample>s</Sample>
+        <Tile>1101</Tile>
+        <Tile>1102</Tile>
+        <Tile>1105</Tile>
+        <Tile>1106</Tile>
+        <Tile>1104</Tile>
+        <Tile>1103</Tile>
+        <Tile>1201</Tile>
+        <Tile>1202</Tile>
+        <Tile>1108</Tile>
+        <Tile>1206</Tile>
+        <Tile>1107</Tile>
+        <Tile>1205</Tile>
+        <Tile>1302</Tile>
+        <Tile>1204</Tile>
+        <Tile>1301</Tile>
+        <Tile>1203</Tile>
+        <Tile>1208</Tile>
+        <Tile>1306</Tile>
+        <Tile>1305</Tile>
+        <Tile>1207</Tile>
+        <Tile>1304</Tile>
+        <Tile>2101</Tile>
+        <Tile>2102</Tile>
+        <Tile>1308</Tile>
+        <Tile>2105</Tile>
+        <Tile>1303</Tile>
+        <Tile>2201</Tile>
+        <Tile>2106</Tile>
+        <Tile>2104</Tile>
+        <Tile>1307</Tile>
+        <Tile>2205</Tile>
+        <Tile>2202</Tile>
+        <Tile>2108</Tile>
+        <Tile>2206</Tile>
+        <Tile>2103</Tile>
+        <Tile>2301</Tile>
+        <Tile>2204</Tile>
+        <Tile>2208</Tile>
+        <Tile>2107</Tile>
+        <Tile>2302</Tile>
+        <Tile>2305</Tile>
+        <Tile>2304</Tile>
+        <Tile>2203</Tile>
+        <Tile>2306</Tile>
+        <Tile>2308</Tile>
+        <Tile>2207</Tile>
+        <Tile>2303</Tile>
+        <Tile>2307</Tile>
+      </Lane>
+      <Lane Index="3">
+        <Sample>s</Sample>
+        <Tile>1101</Tile>
+        <Tile>1102</Tile>
+        <Tile>1105</Tile>
+        <Tile>1104</Tile>
+        <Tile>1108</Tile>
+        <Tile>1106</Tile>
+        <Tile>1201</Tile>
+        <Tile>1103</Tile>
+        <Tile>1204</Tile>
+        <Tile>1202</Tile>
+        <Tile>1205</Tile>
+        <Tile>1107</Tile>
+        <Tile>1208</Tile>
+        <Tile>1206</Tile>
+        <Tile>1301</Tile>
+        <Tile>1304</Tile>
+        <Tile>1203</Tile>
+        <Tile>1302</Tile>
+        <Tile>1308</Tile>
+        <Tile>1305</Tile>
+        <Tile>1207</Tile>
+        <Tile>2101</Tile>
+        <Tile>2104</Tile>
+        <Tile>1306</Tile>
+        <Tile>1303</Tile>
+        <Tile>2102</Tile>
+        <Tile>2105</Tile>
+        <Tile>2108</Tile>
+        <Tile>1307</Tile>
+        <Tile>2106</Tile>
+        <Tile>2204</Tile>
+        <Tile>2201</Tile>
+        <Tile>2103</Tile>
+        <Tile>2208</Tile>
+        <Tile>2202</Tile>
+        <Tile>2107</Tile>
+        <Tile>2205</Tile>
+        <Tile>2301</Tile>
+        <Tile>2304</Tile>
+        <Tile>2203</Tile>
+        <Tile>2206</Tile>
+        <Tile>2207</Tile>
+        <Tile>2305</Tile>
+        <Tile>2308</Tile>
+        <Tile>2302</Tile>
+        <Tile>2303</Tile>
+        <Tile>2307</Tile>
+        <Tile>2306</Tile>
+      </Lane>
+      <Lane Index="4">
+        <Sample>s</Sample>
+        <Tile>1101</Tile>
+        <Tile>1104</Tile>
+        <Tile>1103</Tile>
+        <Tile>1102</Tile>
+        <Tile>1108</Tile>
+        <Tile>1105</Tile>
+        <Tile>1107</Tile>
+        <Tile>1106</Tile>
+        <Tile>1204</Tile>
+        <Tile>1201</Tile>
+        <Tile>1203</Tile>
+        <Tile>1202</Tile>
+        <Tile>1208</Tile>
+        <Tile>1205</Tile>
+        <Tile>1207</Tile>
+        <Tile>1206</Tile>
+        <Tile>1304</Tile>
+        <Tile>1301</Tile>
+        <Tile>1302</Tile>
+        <Tile>1308</Tile>
+        <Tile>1303</Tile>
+        <Tile>1305</Tile>
+        <Tile>1306</Tile>
+        <Tile>1307</Tile>
+        <Tile>2104</Tile>
+        <Tile>2101</Tile>
+        <Tile>2108</Tile>
+        <Tile>2102</Tile>
+        <Tile>2103</Tile>
+        <Tile>2105</Tile>
+        <Tile>2204</Tile>
+        <Tile>2106</Tile>
+        <Tile>2107</Tile>
+        <Tile>2201</Tile>
+        <Tile>2208</Tile>
+        <Tile>2202</Tile>
+        <Tile>2203</Tile>
+        <Tile>2304</Tile>
+        <Tile>2205</Tile>
+        <Tile>2206</Tile>
+        <Tile>2207</Tile>
+        <Tile>2308</Tile>
+        <Tile>2301</Tile>
+        <Tile>2302</Tile>
+        <Tile>2303</Tile>
+        <Tile>2305</Tile>
+        <Tile>2307</Tile>
+        <Tile>2306</Tile>
+      </Lane>
+      <Lane Index="5">
+        <Sample>s</Sample>
+        <Tile>1104</Tile>
+        <Tile>1108</Tile>
+        <Tile>1101</Tile>
+        <Tile>1204</Tile>
+        <Tile>1102</Tile>
+        <Tile>1103</Tile>
+        <Tile>1106</Tile>
+        <Tile>1105</Tile>
+        <Tile>1107</Tile>
+        <Tile>1208</Tile>
+        <Tile>1201</Tile>
+        <Tile>1202</Tile>
+        <Tile>1203</Tile>
+        <Tile>1304</Tile>
+        <Tile>1205</Tile>
+        <Tile>1206</Tile>
+        <Tile>1301</Tile>
+        <Tile>1308</Tile>
+        <Tile>1207</Tile>
+        <Tile>1302</Tile>
+        <Tile>2104</Tile>
+        <Tile>1303</Tile>
+        <Tile>1305</Tile>
+        <Tile>1306</Tile>
+        <Tile>2101</Tile>
+        <Tile>2102</Tile>
+        <Tile>1307</Tile>
+        <Tile>2108</Tile>
+        <Tile>2204</Tile>
+        <Tile>2103</Tile>
+        <Tile>2105</Tile>
+        <Tile>2107</Tile>
+        <Tile>2106</Tile>
+        <Tile>2201</Tile>
+        <Tile>2208</Tile>
+        <Tile>2203</Tile>
+        <Tile>2202</Tile>
+        <Tile>2304</Tile>
+        <Tile>2206</Tile>
+        <Tile>2205</Tile>
+        <Tile>2207</Tile>
+        <Tile>2302</Tile>
+        <Tile>2301</Tile>
+        <Tile>2303</Tile>
+        <Tile>2308</Tile>
+        <Tile>2305</Tile>
+        <Tile>2307</Tile>
+        <Tile>2306</Tile>
+      </Lane>
+      <Lane Index="6">
+        <Sample>s</Sample>
+        <Tile>1104</Tile>
+        <Tile>1101</Tile>
+        <Tile>1103</Tile>
+        <Tile>1102</Tile>
+        <Tile>1108</Tile>
+        <Tile>1107</Tile>
+        <Tile>1105</Tile>
+        <Tile>1106</Tile>
+        <Tile>1204</Tile>
+        <Tile>1203</Tile>
+        <Tile>1201</Tile>
+        <Tile>1202</Tile>
+        <Tile>1208</Tile>
+        <Tile>1207</Tile>
+        <Tile>1205</Tile>
+        <Tile>1206</Tile>
+        <Tile>1304</Tile>
+        <Tile>1303</Tile>
+        <Tile>1301</Tile>
+        <Tile>1302</Tile>
+        <Tile>1308</Tile>
+        <Tile>1307</Tile>
+        <Tile>1305</Tile>
+        <Tile>2104</Tile>
+        <Tile>1306</Tile>
+        <Tile>2103</Tile>
+        <Tile>2101</Tile>
+        <Tile>2102</Tile>
+        <Tile>2108</Tile>
+        <Tile>2107</Tile>
+        <Tile>2105</Tile>
+        <Tile>2106</Tile>
+        <Tile>2204</Tile>
+        <Tile>2203</Tile>
+        <Tile>2202</Tile>
+        <Tile>2201</Tile>
+        <Tile>2208</Tile>
+        <Tile>2207</Tile>
+        <Tile>2206</Tile>
+        <Tile>2205</Tile>
+        <Tile>2304</Tile>
+        <Tile>2303</Tile>
+        <Tile>2302</Tile>
+        <Tile>2301</Tile>
+        <Tile>2307</Tile>
+        <Tile>2308</Tile>
+        <Tile>2306</Tile>
+        <Tile>2305</Tile>
+      </Lane>
+      <Lane Index="7">
+        <Sample>s</Sample>
+        <Tile>1103</Tile>
+        <Tile>1107</Tile>
+        <Tile>1104</Tile>
+        <Tile>1108</Tile>
+        <Tile>1203</Tile>
+        <Tile>1101</Tile>
+        <Tile>1102</Tile>
+        <Tile>1204</Tile>
+        <Tile>1105</Tile>
+        <Tile>1207</Tile>
+        <Tile>1106</Tile>
+        <Tile>1208</Tile>
+        <Tile>1201</Tile>
+        <Tile>1202</Tile>
+        <Tile>1303</Tile>
+        <Tile>1205</Tile>
+        <Tile>1206</Tile>
+        <Tile>1307</Tile>
+        <Tile>1304</Tile>
+        <Tile>1301</Tile>
+        <Tile>1302</Tile>
+        <Tile>1305</Tile>
+        <Tile>1308</Tile>
+        <Tile>2103</Tile>
+        <Tile>1306</Tile>
+        <Tile>2101</Tile>
+        <Tile>2107</Tile>
+        <Tile>2104</Tile>
+        <Tile>2105</Tile>
+        <Tile>2102</Tile>
+        <Tile>2108</Tile>
+        <Tile>2203</Tile>
+        <Tile>2201</Tile>
+        <Tile>2106</Tile>
+        <Tile>2205</Tile>
+        <Tile>2207</Tile>
+        <Tile>2202</Tile>
+        <Tile>2204</Tile>
+        <Tile>2301</Tile>
+        <Tile>2303</Tile>
+        <Tile>2206</Tile>
+        <Tile>2208</Tile>
+        <Tile>2305</Tile>
+        <Tile>2307</Tile>
+        <Tile>2302</Tile>
+        <Tile>2304</Tile>
+        <Tile>2306</Tile>
+        <Tile>2308</Tile>
+      </Lane>
+      <Lane Index="8">
+        <Sample>s</Sample>
+        <Tile>1101</Tile>
+        <Tile>1103</Tile>
+        <Tile>1102</Tile>
+        <Tile>1105</Tile>
+        <Tile>1107</Tile>
+        <Tile>1104</Tile>
+        <Tile>1106</Tile>
+        <Tile>1201</Tile>
+        <Tile>1108</Tile>
+        <Tile>1203</Tile>
+        <Tile>1202</Tile>
+        <Tile>1205</Tile>
+        <Tile>1207</Tile>
+        <Tile>1204</Tile>
+        <Tile>1206</Tile>
+        <Tile>1301</Tile>
+        <Tile>1208</Tile>
+        <Tile>1303</Tile>
+        <Tile>1302</Tile>
+        <Tile>1305</Tile>
+        <Tile>1307</Tile>
+        <Tile>1304</Tile>
+        <Tile>1306</Tile>
+        <Tile>2101</Tile>
+        <Tile>1308</Tile>
+        <Tile>2103</Tile>
+        <Tile>2105</Tile>
+        <Tile>2102</Tile>
+        <Tile>2107</Tile>
+        <Tile>2106</Tile>
+        <Tile>2104</Tile>
+        <Tile>2201</Tile>
+        <Tile>2205</Tile>
+        <Tile>2202</Tile>
+        <Tile>2203</Tile>
+        <Tile>2108</Tile>
+        <Tile>2206</Tile>
+        <Tile>2301</Tile>
+        <Tile>2207</Tile>
+        <Tile>2204</Tile>
+        <Tile>2305</Tile>
+        <Tile>2302</Tile>
+        <Tile>2303</Tile>
+        <Tile>2208</Tile>
+        <Tile>2306</Tile>
+        <Tile>2307</Tile>
+        <Tile>2304</Tile>
+        <Tile>2308</Tile>
+      </Lane>
+    </TileSelection>
+  </Run>
+</BaseCallAnalysis>
diff --git a/htsworkflow/pipelines/test/testdata/1_12/demultiplexed_summary_1.12.4.2.xml b/htsworkflow/pipelines/test/testdata/1_12/demultiplexed_summary_1.12.4.2.xml
new file mode 100644 (file)
index 0000000..ebc9f4a
--- /dev/null
@@ -0,0 +1,3669 @@
+<?xml version="1.0"?>
+<BustardSummary>
+  <ChipResultsSummary>
+    <clusterCountPF>454185731</clusterCountPF>
+    <clusterCountRaw>781064977</clusterCountRaw>
+    <yield>25888586667</yield>
+  </ChipResultsSummary>
+  <ChipSummary>
+    <ChipID>unknown</ChipID>
+    <Machine>HWI-ST0787</Machine>
+    <RunFolder>110815_SN787_0101_AD07K6ACXX</RunFolder>
+  </ChipSummary>
+  <Date>2011-08-18 20:18:19</Date>
+  <ExpandedLaneSummary>
+    <Read>
+      <Lane>
+        <clusterCountRaw>
+          <mean>3707807.14</mean>
+          <stdev>573671.11</stdev>
+          <sumsq>393825007132852.00</sumsq>
+        </clusterCountRaw>
+        <laneNumber>1</laneNumber>
+        <percentClustersPF>
+          <mean>47.64</mean>
+          <stdev>19.64</stdev>
+          <sumsq>73957.00</sumsq>
+        </percentClustersPF>
+        <phasingApplied>0.3810</phasingApplied>
+        <prephasingApplied>0.0844</prephasingApplied>
+        <signalAverage1to3>
+          <mean>677.00</mean>
+          <stdev>148.48</stdev>
+          <sumsq>13428576.43</sumsq>
+        </signalAverage1to3>
+        <signalAverage2to4>
+          <mean>908.15</mean>
+          <stdev>81.51</stdev>
+          <sumsq>23271897.61</sumsq>
+        </signalAverage2to4>
+        <signalLoss10to20>
+          <mean>-0.30</mean>
+          <stdev>0.38</stdev>
+          <sumsq>6.33</sumsq>
+        </signalLoss10to20>
+        <signalLoss2to10>
+          <mean>-34.61</mean>
+          <stdev>26.97</stdev>
+          <sumsq>53175.44</sumsq>
+        </signalLoss2to10>
+      </Lane>
+      <Lane>
+        <clusterCountRaw>
+          <mean>3329777.81</mean>
+          <stdev>1102200.81</stdev>
+          <sumsq>318644092316267.00</sumsq>
+        </clusterCountRaw>
+        <laneNumber>2</laneNumber>
+        <percentClustersPF>
+          <mean>24.71</mean>
+          <stdev>17.39</stdev>
+          <sumsq>23436.66</sumsq>
+        </percentClustersPF>
+        <phasingApplied>0.3694</phasingApplied>
+        <prephasingApplied>0.2507</prephasingApplied>
+        <signalAverage1to3>
+          <mean>820.85</mean>
+          <stdev>175.96</stdev>
+          <sumsq>18292849.43</sumsq>
+        </signalAverage1to3>
+        <signalAverage2to4>
+          <mean>864.16</mean>
+          <stdev>95.34</stdev>
+          <sumsq>19643349.08</sumsq>
+        </signalAverage2to4>
+        <signalLoss10to20>
+          <mean>-5.69</mean>
+          <stdev>12.59</stdev>
+          <sumsq>4807.74</sumsq>
+        </signalLoss10to20>
+        <signalLoss2to10>
+          <mean>-34.31</mean>
+          <stdev>22.59</stdev>
+          <sumsq>43354.50</sumsq>
+        </signalLoss2to10>
+      </Lane>
+      <Lane>
+        <clusterCountRaw>
+          <mean>6268934.50</mean>
+          <stdev>241767.87</stdev>
+          <sumsq>314805480030044.00</sumsq>
+        </clusterCountRaw>
+        <laneNumber>3</laneNumber>
+        <percentClustersPF>
+          <mean>36.04</mean>
+          <stdev>12.81</stdev>
+          <sumsq>11541.60</sumsq>
+        </percentClustersPF>
+        <phasingApplied>0.2469</phasingApplied>
+        <prephasingApplied>0.2002</prephasingApplied>
+        <signalAverage1to3>
+          <mean>1094.84</mean>
+          <stdev>135.96</stdev>
+          <sumsq>9718779.89</sumsq>
+        </signalAverage1to3>
+        <signalAverage2to4>
+          <mean>1114.24</mean>
+          <stdev>57.49</stdev>
+          <sumsq>9955389.55</sumsq>
+        </signalAverage2to4>
+        <signalLoss10to20>
+          <mean>-4.20</mean>
+          <stdev>13.18</stdev>
+          <sumsq>1357.57</sumsq>
+        </signalLoss10to20>
+        <signalLoss2to10>
+          <mean>-53.53</mean>
+          <stdev>38.21</stdev>
+          <sumsq>33143.61</sumsq>
+        </signalLoss2to10>
+      </Lane>
+      <Lane>
+        <clusterCountRaw>
+          <mean>6055508.12</mean>
+          <stdev>166741.39</stdev>
+          <sumsq>293548048051419.00</sumsq>
+        </clusterCountRaw>
+        <laneNumber>4</laneNumber>
+        <percentClustersPF>
+          <mean>32.69</mean>
+          <stdev>7.60</stdev>
+          <sumsq>8952.16</sumsq>
+        </percentClustersPF>
+        <phasingApplied>0.2104</phasingApplied>
+        <prephasingApplied>0.1803</prephasingApplied>
+        <signalAverage1to3>
+          <mean>1106.96</mean>
+          <stdev>62.20</stdev>
+          <sumsq>9829917.93</sumsq>
+        </signalAverage1to3>
+        <signalAverage2to4>
+          <mean>1036.31</mean>
+          <stdev>128.16</stdev>
+          <sumsq>8706439.16</sumsq>
+        </signalAverage2to4>
+        <signalLoss10to20>
+          <mean>-9.55</mean>
+          <stdev>18.68</stdev>
+          <sumsq>3171.25</sumsq>
+        </signalLoss10to20>
+        <signalLoss2to10>
+          <mean>-44.30</mean>
+          <stdev>34.27</stdev>
+          <sumsq>23924.49</sumsq>
+        </signalLoss2to10>
+      </Lane>
+      <Lane>
+        <clusterCountRaw>
+          <mean>5643648.67</mean>
+          <stdev>137235.86</stdev>
+          <sumsq>95589978179428.00</sumsq>
+        </clusterCountRaw>
+        <laneNumber>5</laneNumber>
+        <percentClustersPF>
+          <mean>14.96</mean>
+          <stdev>10.60</stdev>
+          <sumsq>895.87</sumsq>
+        </percentClustersPF>
+        <phasingApplied>0.0000</phasingApplied>
+        <prephasingApplied>0.0000</prephasingApplied>
+        <signalAverage1to3>
+          <mean>-593.62</mean>
+          <stdev>74.55</stdev>
+          <sumsq>1068254.69</sumsq>
+        </signalAverage1to3>
+        <signalAverage2to4>
+          <mean>-623.07</mean>
+          <stdev>71.93</stdev>
+          <sumsq>1174981.61</sumsq>
+        </signalAverage2to4>
+        <signalLoss10to20>
+          <mean>100.00</mean>
+          <stdev>0.00</stdev>
+          <sumsq>30000.00</sumsq>
+        </signalLoss10to20>
+        <signalLoss2to10>
+          <mean>100.00</mean>
+          <stdev>0.00</stdev>
+          <sumsq>30000.00</sumsq>
+        </signalLoss2to10>
+      </Lane>
+      <Lane>
+        <clusterCountRaw>
+          <mean>5707954.48</mean>
+          <stdev>553352.88</stdev>
+          <sumsq>953415170485172.00</sumsq>
+        </clusterCountRaw>
+        <laneNumber>6</laneNumber>
+        <percentClustersPF>
+          <mean>42.22</mean>
+          <stdev>22.39</stdev>
+          <sumsq>65737.40</sumsq>
+        </percentClustersPF>
+        <phasingApplied>0.2670</phasingApplied>
+        <prephasingApplied>0.2116</prephasingApplied>
+        <signalAverage1to3>
+          <mean>976.36</mean>
+          <stdev>216.47</stdev>
+          <sumsq>28956965.77</sumsq>
+        </signalAverage1to3>
+        <signalAverage2to4>
+          <mean>1054.88</mean>
+          <stdev>90.27</stdev>
+          <sumsq>32498684.57</sumsq>
+        </signalAverage2to4>
+        <signalLoss10to20>
+          <mean>0.20</mean>
+          <stdev>0.11</stdev>
+          <sumsq>1.47</sumsq>
+        </signalLoss10to20>
+        <signalLoss2to10>
+          <mean>-79.61</mean>
+          <stdev>16.62</stdev>
+          <sumsq>191509.02</sumsq>
+        </signalLoss2to10>
+      </Lane>
+      <Lane>
+        <clusterCountRaw>
+          <mean>1867305.95</mean>
+          <stdev>444617.44</stdev>
+          <sumsq>158236511701682.00</sumsq>
+        </clusterCountRaw>
+        <laneNumber>7</laneNumber>
+        <percentClustersPF>
+          <mean>94.84</mean>
+          <stdev>11.12</stdev>
+          <sumsq>391931.07</sumsq>
+        </percentClustersPF>
+        <phasingApplied>0.1329</phasingApplied>
+        <prephasingApplied>0.2410</prephasingApplied>
+        <signalAverage1to3>
+          <mean>1399.64</mean>
+          <stdev>129.00</stdev>
+          <sumsq>84935084.50</sumsq>
+        </signalAverage1to3>
+        <signalAverage2to4>
+          <mean>1377.83</mean>
+          <stdev>128.32</stdev>
+          <sumsq>82324018.13</sumsq>
+        </signalAverage2to4>
+        <signalLoss10to20>
+          <mean>0.28</mean>
+          <stdev>0.09</stdev>
+          <sumsq>3.65</sumsq>
+        </signalLoss10to20>
+        <signalLoss2to10>
+          <mean>-4.22</mean>
+          <stdev>14.27</stdev>
+          <sumsq>9317.43</sumsq>
+        </signalLoss2to10>
+      </Lane>
+      <Lane>
+        <clusterCountRaw>
+          <mean>4777517.31</mean>
+          <stdev>599178.35</stdev>
+          <sumsq>1112457930812391.00</sumsq>
+        </clusterCountRaw>
+        <laneNumber>8</laneNumber>
+        <percentClustersPF>
+          <mean>86.54</mean>
+          <stdev>7.43</stdev>
+          <sumsq>362059.12</sumsq>
+        </percentClustersPF>
+        <phasingApplied>0.2192</phasingApplied>
+        <prephasingApplied>0.2346</prephasingApplied>
+        <signalAverage1to3>
+          <mean>1256.98</mean>
+          <stdev>106.05</stdev>
+          <sumsq>76368309.15</sumsq>
+        </signalAverage1to3>
+        <signalAverage2to4>
+          <mean>1233.08</mean>
+          <stdev>110.91</stdev>
+          <sumsq>73561027.92</sumsq>
+        </signalAverage2to4>
+        <signalLoss10to20>
+          <mean>0.63</mean>
+          <stdev>0.08</stdev>
+          <sumsq>19.47</sumsq>
+        </signalLoss10to20>
+        <signalLoss2to10>
+          <mean>-3.98</mean>
+          <stdev>11.04</stdev>
+          <sumsq>6489.36</sumsq>
+        </signalLoss2to10>
+      </Lane>
+      <readNumber>1</readNumber>
+    </Read>
+    
+  </ExpandedLaneSummary>
+  <LaneResultsSummary>
+    <Read>
+      <Lane>
+        <clusterCountPF>
+          <mean>1783290</mean>
+          <stdev>789504</stdev>
+          <sumsq>105873063750160</sumsq>
+        </clusterCountPF>
+        <clusterCountRaw>
+          <mean>3707807</mean>
+          <stdev>573671</stdev>
+          <sumsq>393825007132852</sumsq>
+        </clusterCountRaw>
+        <laneNumber>1</laneNumber>
+        <laneYield>2496606</laneYield>
+        <oneSig>
+          <mean>164</mean>
+          <stdev>410</stdev>
+          <sumsq>5304965</sumsq>
+        </oneSig>
+        <percentClustersPF>
+          <mean>47.64</mean>
+          <stdev>19.64</stdev>
+          <sumsq>73957.00</sumsq>
+        </percentClustersPF>
+        <signal20AsPctOf1>
+          <mean>9.00</mean>
+          <stdev>22.48</stdev>
+          <sumsq>15909.69</sumsq>
+        </signal20AsPctOf1>
+      </Lane>
+      <Lane>
+        <clusterCountPF>
+          <mean>875778</mean>
+          <stdev>826947</stdev>
+          <sumsq>37037748584192</sumsq>
+        </clusterCountPF>
+        <clusterCountRaw>
+          <mean>3329777</mean>
+          <stdev>1102200</stdev>
+          <sumsq>318644092316267</sumsq>
+        </clusterCountRaw>
+        <laneNumber>2</laneNumber>
+        <laneYield>1138512</laneYield>
+        <oneSig>
+          <mean>702</mean>
+          <stdev>480</stdev>
+          <sumsq>18627652</sumsq>
+        </oneSig>
+        <percentClustersPF>
+          <mean>24.71</mean>
+          <stdev>17.39</stdev>
+          <sumsq>23436.66</sumsq>
+        </percentClustersPF>
+        <signal20AsPctOf1>
+          <mean>56.49</mean>
+          <stdev>38.83</stdev>
+          <sumsq>120674.01</sumsq>
+        </signal20AsPctOf1>
+      </Lane>
+      <Lane>
+        <clusterCountPF>
+          <mean>2259006</mean>
+          <stdev>798869</stdev>
+          <sumsq>45292218394019</sumsq>
+        </clusterCountPF>
+        <clusterCountRaw>
+          <mean>6268934</mean>
+          <stdev>241767</stdev>
+          <sumsq>314805480030044</sumsq>
+        </clusterCountRaw>
+        <laneNumber>3</laneNumber>
+        <laneYield>903602</laneYield>
+        <oneSig>
+          <mean>1031</mean>
+          <stdev>419</stdev>
+          <sumsq>9747483</sumsq>
+        </oneSig>
+        <percentClustersPF>
+          <mean>36.04</mean>
+          <stdev>12.81</stdev>
+          <sumsq>11541.60</sumsq>
+        </percentClustersPF>
+        <signal20AsPctOf1>
+          <mean>75.63</mean>
+          <stdev>30.73</stdev>
+          <sumsq>52366.46</sumsq>
+        </signal20AsPctOf1>
+      </Lane>
+      <Lane>
+        <clusterCountPF>
+          <mean>1978985</mean>
+          <stdev>462424</stdev>
+          <sumsq>32827917903219</sumsq>
+        </clusterCountPF>
+        <clusterCountRaw>
+          <mean>6055508</mean>
+          <stdev>166741</stdev>
+          <sumsq>293548048051419</sumsq>
+        </clusterCountRaw>
+        <laneNumber>4</laneNumber>
+        <laneYield>791594</laneYield>
+        <oneSig>
+          <mean>1161</mean>
+          <stdev>61</stdev>
+          <sumsq>10827946</sumsq>
+        </oneSig>
+        <percentClustersPF>
+          <mean>32.69</mean>
+          <stdev>7.60</stdev>
+          <sumsq>8952.16</sumsq>
+        </percentClustersPF>
+        <signal20AsPctOf1>
+          <mean>63.64</mean>
+          <stdev>39.29</stdev>
+          <sumsq>43206.11</sumsq>
+        </signal20AsPctOf1>
+      </Lane>
+      <Lane>
+        <clusterCountPF>
+          <mean>834976</mean>
+          <stdev>570615</stdev>
+          <sumsq>2742761639691</sumsq>
+        </clusterCountPF>
+        <clusterCountRaw>
+          <mean>5643648</mean>
+          <stdev>137235</stdev>
+          <sumsq>95589978179428</sumsq>
+        </clusterCountRaw>
+        <laneNumber>5</laneNumber>
+        <laneYield>125246</laneYield>
+        <oneSig>
+          <mean>-596</mean>
+          <stdev>79</stdev>
+          <sumsq>1080823</sumsq>
+        </oneSig>
+        <percentClustersPF>
+          <mean>14.96</mean>
+          <stdev>10.60</stdev>
+          <sumsq>895.87</sumsq>
+        </percentClustersPF>
+        <signal20AsPctOf1>
+          <mean>147.21</mean>
+          <stdev>7.83</stdev>
+          <sumsq>65137.15</sumsq>
+        </signal20AsPctOf1>
+      </Lane>
+      <Lane>
+        <clusterCountPF>
+          <mean>2467696</mean>
+          <stdev>1423659</stdev>
+          <sumsq>233346910460595</sumsq>
+        </clusterCountPF>
+        <clusterCountRaw>
+          <mean>5707954</mean>
+          <stdev>553352</stdev>
+          <sumsq>953415170485172</sumsq>
+        </clusterCountRaw>
+        <laneNumber>6</laneNumber>
+        <laneYield>3578160</laneYield>
+        <oneSig>
+          <mean>820</mean>
+          <stdev>521</stdev>
+          <sumsq>27135464</sumsq>
+        </oneSig>
+        <percentClustersPF>
+          <mean>42.22</mean>
+          <stdev>22.39</stdev>
+          <sumsq>65737.40</sumsq>
+        </percentClustersPF>
+        <signal20AsPctOf1>
+          <mean>64.69</mean>
+          <stdev>40.68</stdev>
+          <sumsq>167697.34</sumsq>
+        </signal20AsPctOf1>
+      </Lane>
+      <Lane>
+        <clusterCountPF>
+          <mean>1769448</mean>
+          <stdev>464939</stdev>
+          <sumsq>143709845032850</sumsq>
+        </clusterCountPF>
+        <clusterCountRaw>
+          <mean>1867305</mean>
+          <stdev>444617</stdev>
+          <sumsq>158236511701682</sumsq>
+        </clusterCountRaw>
+        <laneNumber>7</laneNumber>
+        <laneYield>3804314</laneYield>
+        <oneSig>
+          <mean>1442</mean>
+          <stdev>84</stdev>
+          <sumsq>89752104</sumsq>
+        </oneSig>
+        <percentClustersPF>
+          <mean>94.84</mean>
+          <stdev>11.12</stdev>
+          <sumsq>391931.07</sumsq>
+        </percentClustersPF>
+        <signal20AsPctOf1>
+          <mean>91.96</mean>
+          <stdev>1.75</stdev>
+          <sumsq>363782.22</sumsq>
+        </signal20AsPctOf1>
+      </Lane>
+      <Lane>
+        <clusterCountPF>
+          <mean>4113020</mean>
+          <stdev>444275</stdev>
+          <sumsq>821290075103817</sumsq>
+        </clusterCountPF>
+        <clusterCountRaw>
+          <mean>4777517</mean>
+          <stdev>599178</stdev>
+          <sumsq>1112457930812391</sumsq>
+        </clusterCountRaw>
+        <laneNumber>8</laneNumber>
+        <laneYield>9871250</laneYield>
+        <oneSig>
+          <mean>1334</mean>
+          <stdev>72</stdev>
+          <sumsq>85708238</sumsq>
+        </oneSig>
+        <percentClustersPF>
+          <mean>86.54</mean>
+          <stdev>7.43</stdev>
+          <sumsq>362059.12</sumsq>
+        </percentClustersPF>
+        <signal20AsPctOf1>
+          <mean>88.24</mean>
+          <stdev>1.70</stdev>
+          <sumsq>373841.88</sumsq>
+        </signal20AsPctOf1>
+      </Lane>
+      <readNumber>1</readNumber>
+    </Read>
+    
+  </LaneResultsSummary>
+  <Software>CASAVA-1.8.1</Software>
+  <TileResultsByLane>
+    <Lane>
+      <Read>
+        <Tile>
+          <clusterCountPF>2195814</clusterCountPF>
+          <clusterCountRaw>3782916</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>58.05</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1101</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>2278273</clusterCountPF>
+          <clusterCountRaw>3732743</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>61.03</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1102</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>4020211</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1103</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>3895725</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1104</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>4134124</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1105</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>4304874</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1106</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>4406771</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1107</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>4057296</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1108</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>2235184</clusterCountPF>
+          <clusterCountRaw>3576569</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>62.50</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1201</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>2303817</clusterCountPF>
+          <clusterCountRaw>3670759</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>62.76</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1202</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>2228868</clusterCountPF>
+          <clusterCountRaw>3917599</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>56.89</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1203</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>4063543</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1204</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>4018922</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1205</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>2207175</clusterCountPF>
+          <clusterCountRaw>4204009</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>52.50</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1206</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>4440729</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1207</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>768164</clusterCountPF>
+          <clusterCountRaw>3715012</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>20.68</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1208</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>2261727</clusterCountPF>
+          <clusterCountRaw>3621480</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>62.45</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1301</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>2347049</clusterCountPF>
+          <clusterCountRaw>3868987</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>60.66</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1302</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>4029778</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1303</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>4153522</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1304</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>4253486</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1305</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>598571</clusterCountPF>
+          <clusterCountRaw>1511883</clusterCountRaw>
+          <oneSig>1096.02</oneSig>
+          <percentClustersPF>39.59</percentClustersPF>
+          <signal20AsPctOf1>63.03</signal20AsPctOf1>
+          <tileNumber>1306</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>4540851</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1307</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>762937</clusterCountPF>
+          <clusterCountRaw>3797909</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>20.09</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1308</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>2212968</clusterCountPF>
+          <clusterCountRaw>3718396</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>59.51</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2101</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>2340883</clusterCountPF>
+          <clusterCountRaw>3785970</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>61.83</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2102</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>2181836</clusterCountPF>
+          <clusterCountRaw>3995288</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>54.61</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2103</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>4140850</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2104</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>344088</clusterCountPF>
+          <clusterCountRaw>3742840</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>9.19</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2105</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>4417907</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2106</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>633399</clusterCountPF>
+          <clusterCountRaw>3982483</clusterCountRaw>
+          <oneSig>1075.65</oneSig>
+          <percentClustersPF>15.90</percentClustersPF>
+          <signal20AsPctOf1>64.87</signal20AsPctOf1>
+          <tileNumber>2107</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>4249399</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2108</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>2273067</clusterCountPF>
+          <clusterCountRaw>3616092</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>62.86</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2201</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>2371559</clusterCountPF>
+          <clusterCountRaw>3725669</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>63.65</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2202</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>2333375</clusterCountPF>
+          <clusterCountRaw>3836500</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>60.82</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2203</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>2185419</clusterCountPF>
+          <clusterCountRaw>3910181</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>55.89</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2204</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>2311644</clusterCountPF>
+          <clusterCountRaw>4017955</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>57.53</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2205</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>4331923</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2206</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>2238184</clusterCountPF>
+          <clusterCountRaw>4417665</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>50.66</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2207</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>4514102</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2208</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>2087282</clusterCountPF>
+          <clusterCountRaw>3641497</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>57.32</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2301</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>2372969</clusterCountPF>
+          <clusterCountRaw>3752096</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>63.24</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2302</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>2356197</clusterCountPF>
+          <clusterCountRaw>3904880</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>60.34</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2303</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>334562</clusterCountPF>
+          <clusterCountRaw>2147785</clusterCountRaw>
+          <oneSig>1289.76</oneSig>
+          <percentClustersPF>15.58</percentClustersPF>
+          <signal20AsPctOf1>59.07</signal20AsPctOf1>
+          <tileNumber>2304</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>2020376</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2305</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>4367266</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2306</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>906827</clusterCountPF>
+          <clusterCountRaw>4298608</clusterCountRaw>
+          <oneSig>1132.79</oneSig>
+          <percentClustersPF>21.10</percentClustersPF>
+          <signal20AsPctOf1>65.11</signal20AsPctOf1>
+          <tileNumber>2307</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>260294</clusterCountPF>
+          <clusterCountRaw>3924829</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>6.63</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2308</tileNumber>
+        </Tile>
+        <readNumber>1</readNumber>
+      </Read>
+      
+      <laneNumber>1</laneNumber>
+    </Lane>
+    <Lane>
+      <Read>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>4448159</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1101</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>2773172</clusterCountPF>
+          <clusterCountRaw>4366122</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>63.52</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1102</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>4564670</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1103</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>4585876</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1104</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>4635377</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1105</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>669217</clusterCountPF>
+          <clusterCountRaw>4420397</clusterCountRaw>
+          <oneSig>930.85</oneSig>
+          <percentClustersPF>15.14</percentClustersPF>
+          <signal20AsPctOf1>76.28</signal20AsPctOf1>
+          <tileNumber>1106</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>4676917</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1107</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>4535868</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1108</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>4334415</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1201</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>640314</clusterCountPF>
+          <clusterCountRaw>2059919</clusterCountRaw>
+          <oneSig>1000.53</oneSig>
+          <percentClustersPF>31.08</percentClustersPF>
+          <signal20AsPctOf1>85.05</signal20AsPctOf1>
+          <tileNumber>1202</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>2607069</clusterCountPF>
+          <clusterCountRaw>4434379</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>58.79</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1203</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>775741</clusterCountPF>
+          <clusterCountRaw>3750712</clusterCountRaw>
+          <oneSig>996.69</oneSig>
+          <percentClustersPF>20.68</percentClustersPF>
+          <signal20AsPctOf1>74.98</signal20AsPctOf1>
+          <tileNumber>1204</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>440909</clusterCountPF>
+          <clusterCountRaw>4058935</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>10.86</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1205</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>214300</clusterCountPF>
+          <clusterCountRaw>1790590</clusterCountRaw>
+          <oneSig>927.63</oneSig>
+          <percentClustersPF>11.97</percentClustersPF>
+          <signal20AsPctOf1>74.32</signal20AsPctOf1>
+          <tileNumber>1206</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>4699049</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1207</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>4541983</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1208</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>504330</clusterCountPF>
+          <clusterCountRaw>1946513</clusterCountRaw>
+          <oneSig>1041.75</oneSig>
+          <percentClustersPF>25.91</percentClustersPF>
+          <signal20AsPctOf1>73.96</signal20AsPctOf1>
+          <tileNumber>1301</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>4553087</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1302</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>1143910</clusterCountPF>
+          <clusterCountRaw>3886939</clusterCountRaw>
+          <oneSig>1001.45</oneSig>
+          <percentClustersPF>29.43</percentClustersPF>
+          <signal20AsPctOf1>79.86</signal20AsPctOf1>
+          <tileNumber>1303</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>394814</clusterCountPF>
+          <clusterCountRaw>1620637</clusterCountRaw>
+          <oneSig>903.30</oneSig>
+          <percentClustersPF>24.36</percentClustersPF>
+          <signal20AsPctOf1>85.19</signal20AsPctOf1>
+          <tileNumber>1304</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>751155</clusterCountPF>
+          <clusterCountRaw>3901741</clusterCountRaw>
+          <oneSig>924.69</oneSig>
+          <percentClustersPF>19.25</percentClustersPF>
+          <signal20AsPctOf1>82.04</signal20AsPctOf1>
+          <tileNumber>1305</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>279109</clusterCountPF>
+          <clusterCountRaw>4312437</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>6.47</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1306</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>4877078</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1307</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>4716643</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1308</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>621210</clusterCountPF>
+          <clusterCountRaw>2055906</clusterCountRaw>
+          <oneSig>1083.69</oneSig>
+          <percentClustersPF>30.22</percentClustersPF>
+          <signal20AsPctOf1>80.10</signal20AsPctOf1>
+          <tileNumber>2101</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>4511240</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2102</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>967970</clusterCountPF>
+          <clusterCountRaw>4049067</clusterCountRaw>
+          <oneSig>1094.71</oneSig>
+          <percentClustersPF>23.91</percentClustersPF>
+          <signal20AsPctOf1>81.54</signal20AsPctOf1>
+          <tileNumber>2103</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>610322</clusterCountPF>
+          <clusterCountRaw>4256141</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>14.34</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2104</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>945727</clusterCountPF>
+          <clusterCountRaw>4036212</clusterCountRaw>
+          <oneSig>1045.43</oneSig>
+          <percentClustersPF>23.43</percentClustersPF>
+          <signal20AsPctOf1>81.22</signal20AsPctOf1>
+          <tileNumber>2105</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>4826884</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2106</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>4806977</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2107</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>4634388</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2108</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>522871</clusterCountPF>
+          <clusterCountRaw>3978361</clusterCountRaw>
+          <oneSig>991.67</oneSig>
+          <percentClustersPF>13.14</percentClustersPF>
+          <signal20AsPctOf1>97.22</signal20AsPctOf1>
+          <tileNumber>2201</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>699409</clusterCountPF>
+          <clusterCountRaw>4040193</clusterCountRaw>
+          <oneSig>1042.31</oneSig>
+          <percentClustersPF>17.31</percentClustersPF>
+          <signal20AsPctOf1>91.73</signal20AsPctOf1>
+          <tileNumber>2202</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>234576</clusterCountPF>
+          <clusterCountRaw>1982322</clusterCountRaw>
+          <oneSig>1097.76</oneSig>
+          <percentClustersPF>11.83</percentClustersPF>
+          <signal20AsPctOf1>91.23</signal20AsPctOf1>
+          <tileNumber>2203</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>312538</clusterCountPF>
+          <clusterCountRaw>1846815</clusterCountRaw>
+          <oneSig>1060.29</oneSig>
+          <percentClustersPF>16.92</percentClustersPF>
+          <signal20AsPctOf1>81.85</signal20AsPctOf1>
+          <tileNumber>2204</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>4877670</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2205</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>4352080</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2206</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>4565158</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2207</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>4595892</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2208</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>2688747</clusterCountPF>
+          <clusterCountRaw>4326152</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>62.15</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2301</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>2702172</clusterCountPF>
+          <clusterCountRaw>4401275</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>61.40</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2302</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>375919</clusterCountPF>
+          <clusterCountRaw>1897193</clusterCountRaw>
+          <oneSig>1064.46</oneSig>
+          <percentClustersPF>19.81</percentClustersPF>
+          <signal20AsPctOf1>73.90</signal20AsPctOf1>
+          <tileNumber>2303</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>170457</clusterCountPF>
+          <clusterCountRaw>1856395</clusterCountRaw>
+          <oneSig>970.76</oneSig>
+          <percentClustersPF>9.18</percentClustersPF>
+          <signal20AsPctOf1>86.28</signal20AsPctOf1>
+          <tileNumber>2304</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>464174</clusterCountPF>
+          <clusterCountRaw>3035669</clusterCountRaw>
+          <oneSig>1098.56</oneSig>
+          <percentClustersPF>15.29</percentClustersPF>
+          <signal20AsPctOf1>72.01</signal20AsPctOf1>
+          <tileNumber>2305</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>4768558</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2306</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>260108</clusterCountPF>
+          <clusterCountRaw>4263201</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>6.10</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2307</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>4508484</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2308</tileNumber>
+        </Tile>
+        <readNumber>1</readNumber>
+      </Read>
+      
+      <laneNumber>2</laneNumber>
+    </Lane>
+    <Lane>
+      <Read>
+        <Tile>
+          <clusterCountPF>2375385</clusterCountPF>
+          <clusterCountRaw>6313330</clusterCountRaw>
+          <oneSig>1139.10</oneSig>
+          <percentClustersPF>37.62</percentClustersPF>
+          <signal20AsPctOf1>85.17</signal20AsPctOf1>
+          <tileNumber>1101</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>6286613</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1102</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>5994999</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1103</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>3262679</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1104</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>6237718</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1105</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>6033743</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1106</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>6120542</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1107</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>5567004</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1108</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>2986982</clusterCountPF>
+          <clusterCountRaw>6143687</clusterCountRaw>
+          <oneSig>1179.26</oneSig>
+          <percentClustersPF>48.62</percentClustersPF>
+          <signal20AsPctOf1>83.37</signal20AsPctOf1>
+          <tileNumber>1201</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>6160371</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1202</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>6336417</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1203</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>5941459</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1204</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>6294748</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1205</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>5833916</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1206</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>5913050</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1207</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>5886712</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1208</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>3249310</clusterCountPF>
+          <clusterCountRaw>6355086</clusterCountRaw>
+          <oneSig>1175.05</oneSig>
+          <percentClustersPF>51.13</percentClustersPF>
+          <signal20AsPctOf1>86.62</signal20AsPctOf1>
+          <tileNumber>1301</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>2482602</clusterCountPF>
+          <clusterCountRaw>6345936</clusterCountRaw>
+          <oneSig>1114.27</oneSig>
+          <percentClustersPF>39.12</percentClustersPF>
+          <signal20AsPctOf1>86.48</signal20AsPctOf1>
+          <tileNumber>1302</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>6391130</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1303</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>6306326</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1304</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>3278126</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1305</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>3954980</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1306</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>4991640</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1307</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>4731299</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1308</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>2363698</clusterCountPF>
+          <clusterCountRaw>6670949</clusterCountRaw>
+          <oneSig>1261.88</oneSig>
+          <percentClustersPF>35.43</percentClustersPF>
+          <signal20AsPctOf1>82.59</signal20AsPctOf1>
+          <tileNumber>2101</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>1287696</clusterCountPF>
+          <clusterCountRaw>6380853</clusterCountRaw>
+          <oneSig>1205.05</oneSig>
+          <percentClustersPF>20.18</percentClustersPF>
+          <signal20AsPctOf1>87.75</signal20AsPctOf1>
+          <tileNumber>2102</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>3299242</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2103</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>6024321</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2104</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>6041139</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2105</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>6065842</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2106</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>5924388</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2107</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>5810177</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2108</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>6081345</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2201</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>6434511</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2202</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>4547035</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2203</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>5924309</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2204</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>5981859</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2205</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>5706415</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2206</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>6033825</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2207</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>6078240</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2208</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>2447011</clusterCountPF>
+          <clusterCountRaw>5856223</clusterCountRaw>
+          <oneSig>1180.01</oneSig>
+          <percentClustersPF>41.78</percentClustersPF>
+          <signal20AsPctOf1>93.05</signal20AsPctOf1>
+          <tileNumber>2301</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>879365</clusterCountPF>
+          <clusterCountRaw>6085412</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>14.45</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2302</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>3459940</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2303</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>6354552</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2304</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>5912596</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2305</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>5914029</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2306</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>5058019</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2307</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>5899621</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2308</tileNumber>
+        </Tile>
+        <readNumber>1</readNumber>
+      </Read>
+      
+      <laneNumber>3</laneNumber>
+    </Lane>
+    <Lane>
+      <Read>
+        <Tile>
+          <clusterCountPF>2890389</clusterCountPF>
+          <clusterCountRaw>6154619</clusterCountRaw>
+          <oneSig>1106.26</oneSig>
+          <percentClustersPF>46.96</percentClustersPF>
+          <signal20AsPctOf1>84.42</signal20AsPctOf1>
+          <tileNumber>1101</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>3859115</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1102</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>6150759</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1103</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>6062610</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1104</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>6041213</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1105</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>6048818</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1106</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>5891349</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1107</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>5878432</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1108</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>2392573</clusterCountPF>
+          <clusterCountRaw>5835186</clusterCountRaw>
+          <oneSig>1125.79</oneSig>
+          <percentClustersPF>41.00</percentClustersPF>
+          <signal20AsPctOf1>83.06</signal20AsPctOf1>
+          <tileNumber>1201</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>1735497</clusterCountPF>
+          <clusterCountRaw>5951872</clusterCountRaw>
+          <oneSig>1071.67</oneSig>
+          <percentClustersPF>29.16</percentClustersPF>
+          <signal20AsPctOf1>86.07</signal20AsPctOf1>
+          <tileNumber>1202</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>5968968</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1203</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>5974093</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1204</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>6089365</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1205</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>5465613</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1206</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>6034569</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1207</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>4926479</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1208</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>1813170</clusterCountPF>
+          <clusterCountRaw>6065205</clusterCountRaw>
+          <oneSig>1134.80</oneSig>
+          <percentClustersPF>29.89</percentClustersPF>
+          <signal20AsPctOf1>83.87</signal20AsPctOf1>
+          <tileNumber>1301</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>6072760</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1302</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>6022433</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1303</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>5914380</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1304</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>6035108</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1305</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>6110769</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1306</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>5874705</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1307</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>5932065</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1308</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>1933417</clusterCountPF>
+          <clusterCountRaw>6057448</clusterCountRaw>
+          <oneSig>1230.29</oneSig>
+          <percentClustersPF>31.92</percentClustersPF>
+          <signal20AsPctOf1>85.88</signal20AsPctOf1>
+          <tileNumber>2101</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>5897444</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2102</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>6389435</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2103</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>3815684</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2104</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>6071732</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2105</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>5821758</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2106</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>5873744</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2107</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>6008801</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2108</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>1611899</clusterCountPF>
+          <clusterCountRaw>5880262</clusterCountRaw>
+          <oneSig>1241.48</oneSig>
+          <percentClustersPF>27.41</percentClustersPF>
+          <signal20AsPctOf1>0.00</signal20AsPctOf1>
+          <tileNumber>2201</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>1996737</clusterCountPF>
+          <clusterCountRaw>6347857</clusterCountRaw>
+          <oneSig>1188.53</oneSig>
+          <percentClustersPF>31.46</percentClustersPF>
+          <signal20AsPctOf1>0.00</signal20AsPctOf1>
+          <tileNumber>2202</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>6362861</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2203</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>5852976</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2204</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>6177697</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2205</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>6022917</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2206</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>6123053</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2207</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>4798958</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2208</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>4627342</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2301</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>1458201</clusterCountPF>
+          <clusterCountRaw>6151616</clusterCountRaw>
+          <oneSig>1197.06</oneSig>
+          <percentClustersPF>23.70</percentClustersPF>
+          <signal20AsPctOf1>85.80</signal20AsPctOf1>
+          <tileNumber>2302</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>6007566</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2303</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>6300233</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2304</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>5970238</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2305</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>5954738</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2306</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>6046864</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2307</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>6017839</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2308</tileNumber>
+        </Tile>
+        <readNumber>1</readNumber>
+      </Read>
+      
+      <laneNumber>4</laneNumber>
+    </Lane>
+    <Lane>
+      <Read>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>5631135</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1101</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>2681269</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1102</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>2607227</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1103</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>5940868</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1104</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>3300266</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1105</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>3183165</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1106</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>3168588</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1107</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>3105604</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1108</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>3054041</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1201</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>4779051</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1202</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>5324239</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1203</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>5972215</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1204</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>3287230</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1205</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>2762623</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1206</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>3156192</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1207</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>2971658</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1208</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>496907</clusterCountPF>
+          <clusterCountRaw>5676984</clusterCountRaw>
+          <oneSig>-685.71</oneSig>
+          <percentClustersPF>8.75</percentClustersPF>
+          <signal20AsPctOf1>138.72</signal20AsPctOf1>
+          <tileNumber>1301</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>5350372</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1302</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>5418521</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1303</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>5941481</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1304</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>3314554</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1305</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>3168898</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1306</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>3124790</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1307</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>3116740</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1308</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>1493791</clusterCountPF>
+          <clusterCountRaw>5492816</clusterCountRaw>
+          <oneSig>-532.02</oneSig>
+          <percentClustersPF>27.20</percentClustersPF>
+          <signal20AsPctOf1>148.77</signal20AsPctOf1>
+          <tileNumber>2101</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>514231</clusterCountPF>
+          <clusterCountRaw>5761146</clusterCountRaw>
+          <oneSig>-572.34</oneSig>
+          <percentClustersPF>8.93</percentClustersPF>
+          <signal20AsPctOf1>154.15</signal20AsPctOf1>
+          <tileNumber>2102</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>3834974</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2103</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>6041237</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2104</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>3371454</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2105</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>3271578</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2106</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>3145886</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2107</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>2812963</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2108</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>5714487</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2201</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>4323735</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2202</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>5689972</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2203</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>5590891</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2204</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>2565274</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2205</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>3103834</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2206</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>2775071</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2207</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>2721788</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2208</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>2808679</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2301</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>5740118</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2302</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>2710478</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2303</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>6053923</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2304</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>3311585</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2305</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>3229925</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2306</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>3052698</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2307</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>3161815</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2308</tileNumber>
+        </Tile>
+        <readNumber>1</readNumber>
+      </Read>
+      
+      <laneNumber>5</laneNumber>
+    </Lane>
+    <Lane>
+      <Read>
+        <Tile>
+          <clusterCountPF>4328250</clusterCountPF>
+          <clusterCountRaw>6108747</clusterCountRaw>
+          <oneSig>1170.17</oneSig>
+          <percentClustersPF>70.85</percentClustersPF>
+          <signal20AsPctOf1>85.98</signal20AsPctOf1>
+          <tileNumber>1101</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>3763550</clusterCountPF>
+          <clusterCountRaw>5974162</clusterCountRaw>
+          <oneSig>1171.51</oneSig>
+          <percentClustersPF>63.00</percentClustersPF>
+          <signal20AsPctOf1>85.49</signal20AsPctOf1>
+          <tileNumber>1102</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>3376849</clusterCountPF>
+          <clusterCountRaw>5986042</clusterCountRaw>
+          <oneSig>1127.66</oneSig>
+          <percentClustersPF>56.41</percentClustersPF>
+          <signal20AsPctOf1>86.28</signal20AsPctOf1>
+          <tileNumber>1103</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>1454678</clusterCountPF>
+          <clusterCountRaw>5553026</clusterCountRaw>
+          <oneSig>1038.63</oneSig>
+          <percentClustersPF>26.20</percentClustersPF>
+          <signal20AsPctOf1>90.35</signal20AsPctOf1>
+          <tileNumber>1104</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>836786</clusterCountPF>
+          <clusterCountRaw>5751374</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>14.55</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1105</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>1008081</clusterCountPF>
+          <clusterCountRaw>5436595</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>18.54</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1106</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>1089073</clusterCountPF>
+          <clusterCountRaw>4720242</clusterCountRaw>
+          <oneSig>970.77</oneSig>
+          <percentClustersPF>23.07</percentClustersPF>
+          <signal20AsPctOf1>87.99</signal20AsPctOf1>
+          <tileNumber>1107</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>5628492</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1108</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>4255350</clusterCountPF>
+          <clusterCountRaw>6074637</clusterCountRaw>
+          <oneSig>1111.85</oneSig>
+          <percentClustersPF>70.05</percentClustersPF>
+          <signal20AsPctOf1>90.15</signal20AsPctOf1>
+          <tileNumber>1201</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>3764335</clusterCountPF>
+          <clusterCountRaw>5992750</clusterCountRaw>
+          <oneSig>1122.60</oneSig>
+          <percentClustersPF>62.81</percentClustersPF>
+          <signal20AsPctOf1>87.23</signal20AsPctOf1>
+          <tileNumber>1202</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>2949541</clusterCountPF>
+          <clusterCountRaw>5863819</clusterCountRaw>
+          <oneSig>1041.75</oneSig>
+          <percentClustersPF>50.30</percentClustersPF>
+          <signal20AsPctOf1>91.25</signal20AsPctOf1>
+          <tileNumber>1203</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>1960969</clusterCountPF>
+          <clusterCountRaw>5759754</clusterCountRaw>
+          <oneSig>985.74</oneSig>
+          <percentClustersPF>34.05</percentClustersPF>
+          <signal20AsPctOf1>94.16</signal20AsPctOf1>
+          <tileNumber>1204</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>1458718</clusterCountPF>
+          <clusterCountRaw>5348340</clusterCountRaw>
+          <oneSig>973.95</oneSig>
+          <percentClustersPF>27.27</percentClustersPF>
+          <signal20AsPctOf1>92.07</signal20AsPctOf1>
+          <tileNumber>1205</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>6188127</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1206</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>6029568</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1207</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>5783284</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1208</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>4164137</clusterCountPF>
+          <clusterCountRaw>6062113</clusterCountRaw>
+          <oneSig>1111.15</oneSig>
+          <percentClustersPF>68.69</percentClustersPF>
+          <signal20AsPctOf1>90.64</signal20AsPctOf1>
+          <tileNumber>1301</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>3807278</clusterCountPF>
+          <clusterCountRaw>6009706</clusterCountRaw>
+          <oneSig>1103.05</oneSig>
+          <percentClustersPF>63.35</percentClustersPF>
+          <signal20AsPctOf1>89.93</signal20AsPctOf1>
+          <tileNumber>1302</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>2646889</clusterCountPF>
+          <clusterCountRaw>5860357</clusterCountRaw>
+          <oneSig>1047.72</oneSig>
+          <percentClustersPF>45.17</percentClustersPF>
+          <signal20AsPctOf1>91.04</signal20AsPctOf1>
+          <tileNumber>1303</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>618116</clusterCountPF>
+          <clusterCountRaw>5936009</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>10.41</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1304</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>966704</clusterCountPF>
+          <clusterCountRaw>5780730</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>16.72</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1305</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>985185</clusterCountPF>
+          <clusterCountRaw>5442490</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>18.10</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1306</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>5865063</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1307</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>5759999</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>1308</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>4457818</clusterCountPF>
+          <clusterCountRaw>6178104</clusterCountRaw>
+          <oneSig>1290.91</oneSig>
+          <percentClustersPF>72.16</percentClustersPF>
+          <signal20AsPctOf1>87.89</signal20AsPctOf1>
+          <tileNumber>2101</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>4135701</clusterCountPF>
+          <clusterCountRaw>6067338</clusterCountRaw>
+          <oneSig>1270.47</oneSig>
+          <percentClustersPF>68.16</percentClustersPF>
+          <signal20AsPctOf1>87.91</signal20AsPctOf1>
+          <tileNumber>2102</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>3142805</clusterCountPF>
+          <clusterCountRaw>5915123</clusterCountRaw>
+          <oneSig>1190.65</oneSig>
+          <percentClustersPF>53.13</percentClustersPF>
+          <signal20AsPctOf1>91.67</signal20AsPctOf1>
+          <tileNumber>2103</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>2857800</clusterCountPF>
+          <clusterCountRaw>5959413</clusterCountRaw>
+          <oneSig>1192.35</oneSig>
+          <percentClustersPF>47.95</percentClustersPF>
+          <signal20AsPctOf1>88.82</signal20AsPctOf1>
+          <tileNumber>2104</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>1231733</clusterCountPF>
+          <clusterCountRaw>5733754</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>21.48</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2105</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>2633715</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2106</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>719661</clusterCountPF>
+          <clusterCountRaw>5147810</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>13.98</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2107</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>5662637</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2108</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>5811788</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2201</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>5919142</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2202</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>5921326</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2203</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>5683685</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2204</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>5369472</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2205</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>5594894</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2206</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>5888075</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2207</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>5533822</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2208</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>4347658</clusterCountPF>
+          <clusterCountRaw>6149228</clusterCountRaw>
+          <oneSig>1270.97</oneSig>
+          <percentClustersPF>70.70</percentClustersPF>
+          <signal20AsPctOf1>87.57</signal20AsPctOf1>
+          <tileNumber>2301</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>3927517</clusterCountPF>
+          <clusterCountRaw>6038155</clusterCountRaw>
+          <oneSig>1260.11</oneSig>
+          <percentClustersPF>65.04</percentClustersPF>
+          <signal20AsPctOf1>88.09</signal20AsPctOf1>
+          <tileNumber>2302</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>1031548</clusterCountPF>
+          <clusterCountRaw>3463054</clusterCountRaw>
+          <oneSig>1223.05</oneSig>
+          <percentClustersPF>29.79</percentClustersPF>
+          <signal20AsPctOf1>88.74</signal20AsPctOf1>
+          <tileNumber>2303</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>464073</clusterCountPF>
+          <clusterCountRaw>6006755</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>7.73</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2304</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>1812404</clusterCountPF>
+          <clusterCountRaw>5211053</clusterCountRaw>
+          <oneSig>1109.48</oneSig>
+          <percentClustersPF>34.78</percentClustersPF>
+          <signal20AsPctOf1>92.72</signal20AsPctOf1>
+          <tileNumber>2305</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>6128662</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2306</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>5927816</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2307</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>5684780</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2308</tileNumber>
+        </Tile>
+        <readNumber>1</readNumber>
+      </Read>
+      
+      <laneNumber>6</laneNumber>
+    </Lane>
+    <Lane>
+      <Read>
+        <Tile>
+          <clusterCountPF>1290892</clusterCountPF>
+          <clusterCountRaw>1318384</clusterCountRaw>
+          <oneSig>1457.61</oneSig>
+          <percentClustersPF>97.91</percentClustersPF>
+          <signal20AsPctOf1>93.12</signal20AsPctOf1>
+          <tileNumber>1101</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>1405177</clusterCountPF>
+          <clusterCountRaw>1435753</clusterCountRaw>
+          <oneSig>1428.15</oneSig>
+          <percentClustersPF>97.87</percentClustersPF>
+          <signal20AsPctOf1>93.14</signal20AsPctOf1>
+          <tileNumber>1102</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>1518681</clusterCountPF>
+          <clusterCountRaw>1553867</clusterCountRaw>
+          <oneSig>1415.45</oneSig>
+          <percentClustersPF>97.74</percentClustersPF>
+          <signal20AsPctOf1>93.14</signal20AsPctOf1>
+          <tileNumber>1103</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>1674083</clusterCountPF>
+          <clusterCountRaw>1713366</clusterCountRaw>
+          <oneSig>1397.13</oneSig>
+          <percentClustersPF>97.71</percentClustersPF>
+          <signal20AsPctOf1>91.75</signal20AsPctOf1>
+          <tileNumber>1104</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>1848975</clusterCountPF>
+          <clusterCountRaw>1894031</clusterCountRaw>
+          <oneSig>1453.02</oneSig>
+          <percentClustersPF>97.62</percentClustersPF>
+          <signal20AsPctOf1>87.65</signal20AsPctOf1>
+          <tileNumber>1105</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>2036288</clusterCountPF>
+          <clusterCountRaw>2089577</clusterCountRaw>
+          <oneSig>1351.03</oneSig>
+          <percentClustersPF>97.45</percentClustersPF>
+          <signal20AsPctOf1>92.96</signal20AsPctOf1>
+          <tileNumber>1106</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>2235825</clusterCountPF>
+          <clusterCountRaw>2300996</clusterCountRaw>
+          <oneSig>1330.80</oneSig>
+          <percentClustersPF>97.17</percentClustersPF>
+          <signal20AsPctOf1>92.09</signal20AsPctOf1>
+          <tileNumber>1107</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>2451380</clusterCountPF>
+          <clusterCountRaw>2541307</clusterCountRaw>
+          <oneSig>1293.67</oneSig>
+          <percentClustersPF>96.46</percentClustersPF>
+          <signal20AsPctOf1>91.71</signal20AsPctOf1>
+          <tileNumber>1108</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>1248007</clusterCountPF>
+          <clusterCountRaw>1271398</clusterCountRaw>
+          <oneSig>1456.86</oneSig>
+          <percentClustersPF>98.16</percentClustersPF>
+          <signal20AsPctOf1>92.75</signal20AsPctOf1>
+          <tileNumber>1201</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>1353214</clusterCountPF>
+          <clusterCountRaw>1379519</clusterCountRaw>
+          <oneSig>1373.11</oneSig>
+          <percentClustersPF>98.09</percentClustersPF>
+          <signal20AsPctOf1>92.92</signal20AsPctOf1>
+          <tileNumber>1202</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>1476775</clusterCountPF>
+          <clusterCountRaw>1506069</clusterCountRaw>
+          <oneSig>1406.85</oneSig>
+          <percentClustersPF>98.05</percentClustersPF>
+          <signal20AsPctOf1>92.17</signal20AsPctOf1>
+          <tileNumber>1203</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>1596576</clusterCountPF>
+          <clusterCountRaw>1629689</clusterCountRaw>
+          <oneSig>1395.32</oneSig>
+          <percentClustersPF>97.97</percentClustersPF>
+          <signal20AsPctOf1>90.76</signal20AsPctOf1>
+          <tileNumber>1204</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>1802357</clusterCountPF>
+          <clusterCountRaw>1838238</clusterCountRaw>
+          <oneSig>1383.42</oneSig>
+          <percentClustersPF>98.05</percentClustersPF>
+          <signal20AsPctOf1>91.84</signal20AsPctOf1>
+          <tileNumber>1205</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>1985501</clusterCountPF>
+          <clusterCountRaw>2028373</clusterCountRaw>
+          <oneSig>1355.39</oneSig>
+          <percentClustersPF>97.89</percentClustersPF>
+          <signal20AsPctOf1>91.43</signal20AsPctOf1>
+          <tileNumber>1206</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>2182408</clusterCountPF>
+          <clusterCountRaw>2237640</clusterCountRaw>
+          <oneSig>1326.23</oneSig>
+          <percentClustersPF>97.53</percentClustersPF>
+          <signal20AsPctOf1>91.95</signal20AsPctOf1>
+          <tileNumber>1207</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>2412726</clusterCountPF>
+          <clusterCountRaw>2498414</clusterCountRaw>
+          <oneSig>1284.50</oneSig>
+          <percentClustersPF>96.57</percentClustersPF>
+          <signal20AsPctOf1>91.14</signal20AsPctOf1>
+          <tileNumber>1208</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>1329553</clusterCountPF>
+          <clusterCountRaw>1353194</clusterCountRaw>
+          <oneSig>1500.38</oneSig>
+          <percentClustersPF>98.25</percentClustersPF>
+          <signal20AsPctOf1>90.00</signal20AsPctOf1>
+          <tileNumber>1301</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>1448646</clusterCountPF>
+          <clusterCountRaw>1475015</clusterCountRaw>
+          <oneSig>1426.92</oneSig>
+          <percentClustersPF>98.21</percentClustersPF>
+          <signal20AsPctOf1>91.04</signal20AsPctOf1>
+          <tileNumber>1302</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>1584849</clusterCountPF>
+          <clusterCountRaw>1618578</clusterCountRaw>
+          <oneSig>1418.87</oneSig>
+          <percentClustersPF>97.92</percentClustersPF>
+          <signal20AsPctOf1>90.98</signal20AsPctOf1>
+          <tileNumber>1303</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>1703358</clusterCountPF>
+          <clusterCountRaw>1738426</clusterCountRaw>
+          <oneSig>1408.33</oneSig>
+          <percentClustersPF>97.98</percentClustersPF>
+          <signal20AsPctOf1>90.65</signal20AsPctOf1>
+          <tileNumber>1304</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>1962537</clusterCountPF>
+          <clusterCountRaw>2003605</clusterCountRaw>
+          <oneSig>1417.26</oneSig>
+          <percentClustersPF>97.95</percentClustersPF>
+          <signal20AsPctOf1>88.90</signal20AsPctOf1>
+          <tileNumber>1305</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>2155571</clusterCountPF>
+          <clusterCountRaw>2205956</clusterCountRaw>
+          <oneSig>1353.91</oneSig>
+          <percentClustersPF>97.72</percentClustersPF>
+          <signal20AsPctOf1>91.89</signal20AsPctOf1>
+          <tileNumber>1306</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>2371794</clusterCountPF>
+          <clusterCountRaw>2438582</clusterCountRaw>
+          <oneSig>1349.40</oneSig>
+          <percentClustersPF>97.26</percentClustersPF>
+          <signal20AsPctOf1>87.65</signal20AsPctOf1>
+          <tileNumber>1307</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>2609442</clusterCountPF>
+          <clusterCountRaw>2697578</clusterCountRaw>
+          <oneSig>1273.05</oneSig>
+          <percentClustersPF>96.73</percentClustersPF>
+          <signal20AsPctOf1>89.13</signal20AsPctOf1>
+          <tileNumber>1308</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>1274462</clusterCountPF>
+          <clusterCountRaw>1301586</clusterCountRaw>
+          <oneSig>1601.86</oneSig>
+          <percentClustersPF>97.92</percentClustersPF>
+          <signal20AsPctOf1>92.97</signal20AsPctOf1>
+          <tileNumber>2101</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>1383611</clusterCountPF>
+          <clusterCountRaw>1413798</clusterCountRaw>
+          <oneSig>1567.26</oneSig>
+          <percentClustersPF>97.86</percentClustersPF>
+          <signal20AsPctOf1>92.72</signal20AsPctOf1>
+          <tileNumber>2102</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>1500886</clusterCountPF>
+          <clusterCountRaw>1538148</clusterCountRaw>
+          <oneSig>1575.16</oneSig>
+          <percentClustersPF>97.58</percentClustersPF>
+          <signal20AsPctOf1>91.30</signal20AsPctOf1>
+          <tileNumber>2103</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>1658029</clusterCountPF>
+          <clusterCountRaw>1695613</clusterCountRaw>
+          <oneSig>1551.84</oneSig>
+          <percentClustersPF>97.78</percentClustersPF>
+          <signal20AsPctOf1>92.03</signal20AsPctOf1>
+          <tileNumber>2104</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>1833421</clusterCountPF>
+          <clusterCountRaw>1876931</clusterCountRaw>
+          <oneSig>1525.11</oneSig>
+          <percentClustersPF>97.68</percentClustersPF>
+          <signal20AsPctOf1>92.43</signal20AsPctOf1>
+          <tileNumber>2105</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>2026973</clusterCountPF>
+          <clusterCountRaw>2078853</clusterCountRaw>
+          <oneSig>1509.17</oneSig>
+          <percentClustersPF>97.50</percentClustersPF>
+          <signal20AsPctOf1>91.91</signal20AsPctOf1>
+          <tileNumber>2106</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>2259381</clusterCountPF>
+          <clusterCountRaw>2325032</clusterCountRaw>
+          <oneSig>1467.69</oneSig>
+          <percentClustersPF>97.18</percentClustersPF>
+          <signal20AsPctOf1>92.25</signal20AsPctOf1>
+          <tileNumber>2107</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>2558255</clusterCountPF>
+          <clusterCountRaw>2655400</clusterCountRaw>
+          <oneSig>1444.06</oneSig>
+          <percentClustersPF>96.34</percentClustersPF>
+          <signal20AsPctOf1>91.44</signal20AsPctOf1>
+          <tileNumber>2108</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>970653</clusterCountPF>
+          <clusterCountRaw>1235179</clusterCountRaw>
+          <oneSig>1584.09</oneSig>
+          <percentClustersPF>78.58</percentClustersPF>
+          <signal20AsPctOf1>93.93</signal20AsPctOf1>
+          <tileNumber>2201</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>1342455</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2202</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>1465297</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2203</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>675140</clusterCountPF>
+          <clusterCountRaw>1582751</clusterCountRaw>
+          <oneSig>1505.46</oneSig>
+          <percentClustersPF>42.66</percentClustersPF>
+          <signal20AsPctOf1>94.13</signal20AsPctOf1>
+          <tileNumber>2204</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>1775056</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2205</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>1957270</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2206</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>0</clusterCountPF>
+          <clusterCountRaw>2164043</clusterCountRaw>
+          <oneSig>0.00</oneSig>
+          <percentClustersPF>0.00</percentClustersPF>
+          <signal20AsPctOf1>N/A</signal20AsPctOf1>
+          <tileNumber>2207</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>1254733</clusterCountPF>
+          <clusterCountRaw>2441653</clusterCountRaw>
+          <oneSig>1444.53</oneSig>
+          <percentClustersPF>51.39</percentClustersPF>
+          <signal20AsPctOf1>93.17</signal20AsPctOf1>
+          <tileNumber>2208</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>1296622</clusterCountPF>
+          <clusterCountRaw>1325781</clusterCountRaw>
+          <oneSig>1494.17</oneSig>
+          <percentClustersPF>97.80</percentClustersPF>
+          <signal20AsPctOf1>98.31</signal20AsPctOf1>
+          <tileNumber>2301</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>1424658</clusterCountPF>
+          <clusterCountRaw>1452340</clusterCountRaw>
+          <oneSig>1528.87</oneSig>
+          <percentClustersPF>98.09</percentClustersPF>
+          <signal20AsPctOf1>93.49</signal20AsPctOf1>
+          <tileNumber>2302</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>1569437</clusterCountPF>
+          <clusterCountRaw>1602067</clusterCountRaw>
+          <oneSig>1539.36</oneSig>
+          <percentClustersPF>97.96</percentClustersPF>
+          <signal20AsPctOf1>93.10</signal20AsPctOf1>
+          <tileNumber>2303</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>1682427</clusterCountPF>
+          <clusterCountRaw>1720505</clusterCountRaw>
+          <oneSig>1521.03</oneSig>
+          <percentClustersPF>97.79</percentClustersPF>
+          <signal20AsPctOf1>92.61</signal20AsPctOf1>
+          <tileNumber>2304</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>1939141</clusterCountPF>
+          <clusterCountRaw>1979800</clusterCountRaw>
+          <oneSig>1523.67</oneSig>
+          <percentClustersPF>97.95</percentClustersPF>
+          <signal20AsPctOf1>91.62</signal20AsPctOf1>
+          <tileNumber>2305</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>2134547</clusterCountPF>
+          <clusterCountRaw>2184095</clusterCountRaw>
+          <oneSig>1486.10</oneSig>
+          <percentClustersPF>97.73</percentClustersPF>
+          <signal20AsPctOf1>92.33</signal20AsPctOf1>
+          <tileNumber>2306</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>2356389</clusterCountPF>
+          <clusterCountRaw>2421537</clusterCountRaw>
+          <oneSig>1466.46</oneSig>
+          <percentClustersPF>97.31</percentClustersPF>
+          <signal20AsPctOf1>91.63</signal20AsPctOf1>
+          <tileNumber>2307</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>2602908</clusterCountPF>
+          <clusterCountRaw>2695532</clusterCountRaw>
+          <oneSig>1428.19</oneSig>
+          <percentClustersPF>96.56</percentClustersPF>
+          <signal20AsPctOf1>92.25</signal20AsPctOf1>
+          <tileNumber>2308</tileNumber>
+        </Tile>
+        <readNumber>1</readNumber>
+      </Read>
+      
+      <laneNumber>7</laneNumber>
+    </Lane>
+    <Lane>
+      <Read>
+        <Tile>
+          <clusterCountPF>3672425</clusterCountPF>
+          <clusterCountRaw>3999929</clusterCountRaw>
+          <oneSig>1359.39</oneSig>
+          <percentClustersPF>91.81</percentClustersPF>
+          <signal20AsPctOf1>88.45</signal20AsPctOf1>
+          <tileNumber>1101</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>3843360</clusterCountPF>
+          <clusterCountRaw>4214896</clusterCountRaw>
+          <oneSig>1338.54</oneSig>
+          <percentClustersPF>91.19</percentClustersPF>
+          <signal20AsPctOf1>88.01</signal20AsPctOf1>
+          <tileNumber>1102</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>3985275</clusterCountPF>
+          <clusterCountRaw>4432069</clusterCountRaw>
+          <oneSig>1321.41</oneSig>
+          <percentClustersPF>89.92</percentClustersPF>
+          <signal20AsPctOf1>88.40</signal20AsPctOf1>
+          <tileNumber>1103</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>4195701</clusterCountPF>
+          <clusterCountRaw>4688257</clusterCountRaw>
+          <oneSig>1298.99</oneSig>
+          <percentClustersPF>89.49</percentClustersPF>
+          <signal20AsPctOf1>87.97</signal20AsPctOf1>
+          <tileNumber>1104</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>4416383</clusterCountPF>
+          <clusterCountRaw>4972645</clusterCountRaw>
+          <oneSig>1283.87</oneSig>
+          <percentClustersPF>88.81</percentClustersPF>
+          <signal20AsPctOf1>88.72</signal20AsPctOf1>
+          <tileNumber>1105</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>4542437</clusterCountPF>
+          <clusterCountRaw>5209248</clusterCountRaw>
+          <oneSig>1258.05</oneSig>
+          <percentClustersPF>87.20</percentClustersPF>
+          <signal20AsPctOf1>87.14</signal20AsPctOf1>
+          <tileNumber>1106</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>4596548</clusterCountPF>
+          <clusterCountRaw>5399922</clusterCountRaw>
+          <oneSig>1230.54</oneSig>
+          <percentClustersPF>85.12</percentClustersPF>
+          <signal20AsPctOf1>87.31</signal20AsPctOf1>
+          <tileNumber>1107</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>4316902</clusterCountPF>
+          <clusterCountRaw>5826697</clusterCountRaw>
+          <oneSig>1182.73</oneSig>
+          <percentClustersPF>74.09</percentClustersPF>
+          <signal20AsPctOf1>87.01</signal20AsPctOf1>
+          <tileNumber>1108</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>3559633</clusterCountPF>
+          <clusterCountRaw>3873994</clusterCountRaw>
+          <oneSig>1365.15</oneSig>
+          <percentClustersPF>91.89</percentClustersPF>
+          <signal20AsPctOf1>87.07</signal20AsPctOf1>
+          <tileNumber>1201</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>3742085</clusterCountPF>
+          <clusterCountRaw>4103838</clusterCountRaw>
+          <oneSig>1345.87</oneSig>
+          <percentClustersPF>91.19</percentClustersPF>
+          <signal20AsPctOf1>87.69</signal20AsPctOf1>
+          <tileNumber>1202</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>3809926</clusterCountPF>
+          <clusterCountRaw>4219389</clusterCountRaw>
+          <oneSig>1314.55</oneSig>
+          <percentClustersPF>90.30</percentClustersPF>
+          <signal20AsPctOf1>88.34</signal20AsPctOf1>
+          <tileNumber>1203</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>4095946</clusterCountPF>
+          <clusterCountRaw>4572435</clusterCountRaw>
+          <oneSig>1296.18</oneSig>
+          <percentClustersPF>89.58</percentClustersPF>
+          <signal20AsPctOf1>88.12</signal20AsPctOf1>
+          <tileNumber>1204</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>4329806</clusterCountPF>
+          <clusterCountRaw>4852097</clusterCountRaw>
+          <oneSig>1291.90</oneSig>
+          <percentClustersPF>89.24</percentClustersPF>
+          <signal20AsPctOf1>87.70</signal20AsPctOf1>
+          <tileNumber>1205</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>4484284</clusterCountPF>
+          <clusterCountRaw>5103542</clusterCountRaw>
+          <oneSig>1271.54</oneSig>
+          <percentClustersPF>87.87</percentClustersPF>
+          <signal20AsPctOf1>86.33</signal20AsPctOf1>
+          <tileNumber>1206</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>4545978</clusterCountPF>
+          <clusterCountRaw>5322851</clusterCountRaw>
+          <oneSig>1240.07</oneSig>
+          <percentClustersPF>85.40</percentClustersPF>
+          <signal20AsPctOf1>86.60</signal20AsPctOf1>
+          <tileNumber>1207</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>4236437</clusterCountPF>
+          <clusterCountRaw>5399609</clusterCountRaw>
+          <oneSig>1200.52</oneSig>
+          <percentClustersPF>78.46</percentClustersPF>
+          <signal20AsPctOf1>82.29</signal20AsPctOf1>
+          <tileNumber>1208</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>3745093</clusterCountPF>
+          <clusterCountRaw>4091803</clusterCountRaw>
+          <oneSig>1377.26</oneSig>
+          <percentClustersPF>91.53</percentClustersPF>
+          <signal20AsPctOf1>85.86</signal20AsPctOf1>
+          <tileNumber>1301</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>3938377</clusterCountPF>
+          <clusterCountRaw>4338397</clusterCountRaw>
+          <oneSig>1338.33</oneSig>
+          <percentClustersPF>90.78</percentClustersPF>
+          <signal20AsPctOf1>87.63</signal20AsPctOf1>
+          <tileNumber>1302</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>3963514</clusterCountPF>
+          <clusterCountRaw>4395406</clusterCountRaw>
+          <oneSig>1308.84</oneSig>
+          <percentClustersPF>90.17</percentClustersPF>
+          <signal20AsPctOf1>88.08</signal20AsPctOf1>
+          <tileNumber>1303</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>4282045</clusterCountPF>
+          <clusterCountRaw>4835601</clusterCountRaw>
+          <oneSig>1287.81</oneSig>
+          <percentClustersPF>88.55</percentClustersPF>
+          <signal20AsPctOf1>87.58</signal20AsPctOf1>
+          <tileNumber>1304</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>4498474</clusterCountPF>
+          <clusterCountRaw>5114668</clusterCountRaw>
+          <oneSig>1282.81</oneSig>
+          <percentClustersPF>87.95</percentClustersPF>
+          <signal20AsPctOf1>87.46</signal20AsPctOf1>
+          <tileNumber>1305</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>4602295</clusterCountPF>
+          <clusterCountRaw>5337911</clusterCountRaw>
+          <oneSig>1257.03</oneSig>
+          <percentClustersPF>86.22</percentClustersPF>
+          <signal20AsPctOf1>86.97</signal20AsPctOf1>
+          <tileNumber>1306</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>4600782</clusterCountPF>
+          <clusterCountRaw>5501477</clusterCountRaw>
+          <oneSig>1225.51</oneSig>
+          <percentClustersPF>83.63</percentClustersPF>
+          <signal20AsPctOf1>86.53</signal20AsPctOf1>
+          <tileNumber>1307</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>4145380</clusterCountPF>
+          <clusterCountRaw>5872929</clusterCountRaw>
+          <oneSig>1175.25</oneSig>
+          <percentClustersPF>70.58</percentClustersPF>
+          <signal20AsPctOf1>83.85</signal20AsPctOf1>
+          <tileNumber>1308</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>3654318</clusterCountPF>
+          <clusterCountRaw>3969110</clusterCountRaw>
+          <oneSig>1467.08</oneSig>
+          <percentClustersPF>92.07</percentClustersPF>
+          <signal20AsPctOf1>90.01</signal20AsPctOf1>
+          <tileNumber>2101</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>3839864</clusterCountPF>
+          <clusterCountRaw>4184268</clusterCountRaw>
+          <oneSig>1439.99</oneSig>
+          <percentClustersPF>91.77</percentClustersPF>
+          <signal20AsPctOf1>90.66</signal20AsPctOf1>
+          <tileNumber>2102</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>3969051</clusterCountPF>
+          <clusterCountRaw>4413583</clusterCountRaw>
+          <oneSig>1422.63</oneSig>
+          <percentClustersPF>89.93</percentClustersPF>
+          <signal20AsPctOf1>90.66</signal20AsPctOf1>
+          <tileNumber>2103</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>4219627</clusterCountPF>
+          <clusterCountRaw>4681613</clusterCountRaw>
+          <oneSig>1403.97</oneSig>
+          <percentClustersPF>90.13</percentClustersPF>
+          <signal20AsPctOf1>90.49</signal20AsPctOf1>
+          <tileNumber>2104</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>4414065</clusterCountPF>
+          <clusterCountRaw>4956383</clusterCountRaw>
+          <oneSig>1386.15</oneSig>
+          <percentClustersPF>89.06</percentClustersPF>
+          <signal20AsPctOf1>89.95</signal20AsPctOf1>
+          <tileNumber>2105</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>4579204</clusterCountPF>
+          <clusterCountRaw>5232590</clusterCountRaw>
+          <oneSig>1365.53</oneSig>
+          <percentClustersPF>87.51</percentClustersPF>
+          <signal20AsPctOf1>89.26</signal20AsPctOf1>
+          <tileNumber>2106</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>4682961</clusterCountPF>
+          <clusterCountRaw>5469205</clusterCountRaw>
+          <oneSig>1333.32</oneSig>
+          <percentClustersPF>85.62</percentClustersPF>
+          <signal20AsPctOf1>89.03</signal20AsPctOf1>
+          <tileNumber>2107</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>3928926</clusterCountPF>
+          <clusterCountRaw>5870004</clusterCountRaw>
+          <oneSig>1286.80</oneSig>
+          <percentClustersPF>66.93</percentClustersPF>
+          <signal20AsPctOf1>87.34</signal20AsPctOf1>
+          <tileNumber>2108</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>3556282</clusterCountPF>
+          <clusterCountRaw>3852699</clusterCountRaw>
+          <oneSig>1457.50</oneSig>
+          <percentClustersPF>92.31</percentClustersPF>
+          <signal20AsPctOf1>88.49</signal20AsPctOf1>
+          <tileNumber>2201</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>3741136</clusterCountPF>
+          <clusterCountRaw>4072130</clusterCountRaw>
+          <oneSig>1441.42</oneSig>
+          <percentClustersPF>91.87</percentClustersPF>
+          <signal20AsPctOf1>89.42</signal20AsPctOf1>
+          <tileNumber>2202</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>3842742</clusterCountPF>
+          <clusterCountRaw>4212391</clusterCountRaw>
+          <oneSig>1415.97</oneSig>
+          <percentClustersPF>91.22</percentClustersPF>
+          <signal20AsPctOf1>89.95</signal20AsPctOf1>
+          <tileNumber>2203</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>4140127</clusterCountPF>
+          <clusterCountRaw>4577001</clusterCountRaw>
+          <oneSig>1387.43</oneSig>
+          <percentClustersPF>90.46</percentClustersPF>
+          <signal20AsPctOf1>89.88</signal20AsPctOf1>
+          <tileNumber>2204</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>4372303</clusterCountPF>
+          <clusterCountRaw>4862284</clusterCountRaw>
+          <oneSig>1384.77</oneSig>
+          <percentClustersPF>89.92</percentClustersPF>
+          <signal20AsPctOf1>88.76</signal20AsPctOf1>
+          <tileNumber>2205</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>4531801</clusterCountPF>
+          <clusterCountRaw>5119662</clusterCountRaw>
+          <oneSig>1367.26</oneSig>
+          <percentClustersPF>88.52</percentClustersPF>
+          <signal20AsPctOf1>88.81</signal20AsPctOf1>
+          <tileNumber>2206</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>4148375</clusterCountPF>
+          <clusterCountRaw>5301292</clusterCountRaw>
+          <oneSig>1326.28</oneSig>
+          <percentClustersPF>78.25</percentClustersPF>
+          <signal20AsPctOf1>89.46</signal20AsPctOf1>
+          <tileNumber>2207</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>3747919</clusterCountPF>
+          <clusterCountRaw>5523881</clusterCountRaw>
+          <oneSig>1328.04</oneSig>
+          <percentClustersPF>67.85</percentClustersPF>
+          <signal20AsPctOf1>85.54</signal20AsPctOf1>
+          <tileNumber>2208</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>3685991</clusterCountPF>
+          <clusterCountRaw>4034260</clusterCountRaw>
+          <oneSig>1437.04</oneSig>
+          <percentClustersPF>91.37</percentClustersPF>
+          <signal20AsPctOf1>88.87</signal20AsPctOf1>
+          <tileNumber>2301</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>3894450</clusterCountPF>
+          <clusterCountRaw>4285846</clusterCountRaw>
+          <oneSig>1425.73</oneSig>
+          <percentClustersPF>90.87</percentClustersPF>
+          <signal20AsPctOf1>89.86</signal20AsPctOf1>
+          <tileNumber>2302</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>3941822</clusterCountPF>
+          <clusterCountRaw>4382141</clusterCountRaw>
+          <oneSig>1397.98</oneSig>
+          <percentClustersPF>89.95</percentClustersPF>
+          <signal20AsPctOf1>90.41</signal20AsPctOf1>
+          <tileNumber>2303</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>4299760</clusterCountPF>
+          <clusterCountRaw>4825173</clusterCountRaw>
+          <oneSig>1380.92</oneSig>
+          <percentClustersPF>89.11</percentClustersPF>
+          <signal20AsPctOf1>89.99</signal20AsPctOf1>
+          <tileNumber>2304</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>4523197</clusterCountPF>
+          <clusterCountRaw>5101827</clusterCountRaw>
+          <oneSig>1374.81</oneSig>
+          <percentClustersPF>88.66</percentClustersPF>
+          <signal20AsPctOf1>89.72</signal20AsPctOf1>
+          <tileNumber>2305</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>4658536</clusterCountPF>
+          <clusterCountRaw>5357124</clusterCountRaw>
+          <oneSig>1362.66</oneSig>
+          <percentClustersPF>86.96</percentClustersPF>
+          <signal20AsPctOf1>88.93</signal20AsPctOf1>
+          <tileNumber>2306</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>4706753</clusterCountPF>
+          <clusterCountRaw>5569616</clusterCountRaw>
+          <oneSig>1336.27</oneSig>
+          <percentClustersPF>84.51</percentClustersPF>
+          <signal20AsPctOf1>89.15</signal20AsPctOf1>
+          <tileNumber>2307</tileNumber>
+        </Tile>
+        <Tile>
+          <clusterCountPF>2196707</clusterCountPF>
+          <clusterCountRaw>3787138</clusterCountRaw>
+          <oneSig>1265.29</oneSig>
+          <percentClustersPF>58.00</percentClustersPF>
+          <signal20AsPctOf1>89.55</signal20AsPctOf1>
+          <tileNumber>2308</tileNumber>
+        </Tile>
+        <readNumber>1</readNumber>
+      </Read>
+      
+      <laneNumber>8</laneNumber>
+    </Lane>
+  </TileResultsByLane>
+</BustardSummary>
diff --git a/htsworkflow/pipelines/test/testdata/1_12/reports/Process Control.png b/htsworkflow/pipelines/test/testdata/1_12/reports/Process Control.png
new file mode 100755 (executable)
index 0000000..24c0ecf
Binary files /dev/null and b/htsworkflow/pipelines/test/testdata/1_12/reports/Process Control.png differ
diff --git a/htsworkflow/pipelines/test/testdata/1_12/reports/Status.xml b/htsworkflow/pipelines/test/testdata/1_12/reports/Status.xml
new file mode 100755 (executable)
index 0000000..0560a05
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!--Illumina RTA Status Report-->\r
+<Status>\r
+  <Software>Illumina RTA 1.12.4.2</Software>\r
+  <RunName>110815_SN787_0101_AD07K6ACXX</RunName>\r
+  <InstrumentName>HWI-ST0787</InstrumentName>\r
+  <RunStarted>Thursday, August 18, 2011 12:33 PM</RunStarted>\r
+  <NumCycles>57</NumCycles>\r
+  <ImgCycle>57</ImgCycle>\r
+  <ScoreCycle>57</ScoreCycle>\r
+  <CallCycle>57</CallCycle>\r
+  <InputDir>D:\Illumina\HiSeqTemp\110815_SN787_0101_AD07K6ACXX</InputDir>\r
+  <OutputDir>\\NICODEMUS\volvox\110815_SN787_0101_AD07K6ACXX</OutputDir>\r
+  <Configuration>\r
+    <CopyAllFiles>true</CopyAllFiles>\r
+    <CopyImages>False</CopyImages>\r
+    <DeleteImages>True</DeleteImages>\r
+    <RunInfoExists>True</RunInfoExists>\r
+    <IsPairedEndRun>False</IsPairedEndRun>\r
+    <NumberOfReads>2</NumberOfReads>\r
+    <NumberOfLanes>8</NumberOfLanes>\r
+    <TilesPerLane>48</TilesPerLane>\r
+    <ControlLane>0</ControlLane>\r
+  </Configuration>\r
+</Status>
\ No newline at end of file
diff --git a/htsworkflow/pipelines/test/testdata/1_12/reports/StatusUpdate.xml b/htsworkflow/pipelines/test/testdata/1_12/reports/StatusUpdate.xml
new file mode 100755 (executable)
index 0000000..a6a0121
--- /dev/null
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><!--Illumina RTA Status Report--><Status><NumCycles>57</NumCycles><ImgCycle>57</ImgCycle><ScoreCycle>57</ScoreCycle><CopyCycle>57</CopyCycle><CallCycle>57</CallCycle><ErrRateCycle>57</ErrRateCycle></Status>
\ No newline at end of file
diff --git a/htsworkflow/pipelines/test/testdata/1_12/reports/Summary/read1.xml b/htsworkflow/pipelines/test/testdata/1_12/reports/Summary/read1.xml
new file mode 100755 (executable)
index 0000000..c84b3bd
--- /dev/null
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><!--Illumina RTA Data--><Summary Read="1" densityRatio="0.173619792"><Lane key="1" TileCount="48" ClustersRaw="3878755" ClustersRawSD="579626.0" ClustersPF="1040253" ClustersPFSD="1059982.5" PrcPFClusters="27.8" PrcPFClustersSD="27.72" Phasing="0.381" Prephasing="0.084" CalledCyclesMin="0" CalledCyclesMax="0" PrcAlign="0.00" PrcAlignSD="0.000" ErrRatePhiX="0.00" ErrRatePhiXSD="0.000" ErrRate35="0.00" ErrRate35SD="0.000" ErrRate75="0.00" ErrRate75SD="0.000" ErrRate100="0.00" ErrRate100SD="0.000" FirstCycleIntPF="707" FirstCycleIntPFSD="2076.1" PrcIntensityAfter20CyclesPF="60.0" PrcIntensityAfter20CyclesPFSD="6.61" /><Lane key="2" TileCount="48" ClustersRaw="3920639" ClustersRawSD="1027332.4" ClustersPF="474380" ClustersPFSD="739312.7" PrcPFClusters="13.4" PrcPFClustersSD="17.58" Phasing="0.369" Prephasing="0.251" CalledCyclesMin="0" CalledCyclesMax="0" PrcAlign="0.00" PrcAlignSD="0.000" ErrRatePhiX="0.00" ErrRatePhiXSD="0.000" ErrRate35="0.00" ErrRate35SD="0.000" ErrRate75="0.00" ErrRate75SD="0.000" ErrRate100="0.00" ErrRate100SD="0.000" FirstCycleIntPF="2617" FirstCycleIntPFSD="3391.7" PrcIntensityAfter20CyclesPF="60.0" PrcIntensityAfter20CyclesPFSD="5.30" /><Lane key="3" TileCount="48" ClustersRaw="5713049" ClustersRawSD="876187.3" ClustersPF="376501" ClustersPFSD="895452.3" PrcPFClusters="6.0" PrcPFClustersSD="14.30" Phasing="0.247" Prephasing="0.200" CalledCyclesMin="0" CalledCyclesMax="0" PrcAlign="0.00" PrcAlignSD="0.000" ErrRatePhiX="0.00" ErrRatePhiXSD="0.000" ErrRate35="0.00" ErrRate35SD="0.000" ErrRate75="0.00" ErrRate75SD="0.000" ErrRate100="0.00" ErrRate100SD="0.000" FirstCycleIntPF="5279" FirstCycleIntPFSD="1974.8" PrcIntensityAfter20CyclesPF="21.8" PrcIntensityAfter20CyclesPFSD="35.10" /><Lane key="4" TileCount="48" ClustersRaw="5852907" ClustersRawSD="538640.6" ClustersPF="329831" ClustersPFSD="758370.9" PrcPFClusters="5.4" PrcPFClustersSD="12.52" Phasing="0.210" Prephasing="0.180" CalledCyclesMin="0" CalledCyclesMax="0" PrcAlign="0.00" PrcAlignSD="0.000" ErrRatePhiX="0.00" ErrRatePhiXSD="0.000" ErrRate35="0.00" ErrRate35SD="0.000" ErrRate75="0.00" ErrRate75SD="0.000" ErrRate100="0.00" ErrRate100SD="0.000" FirstCycleIntPF="4181" FirstCycleIntPFSD="1283.3" PrcIntensityAfter20CyclesPF="29.0" PrcIntensityAfter20CyclesPFSD="45.34" /><Lane key="5" TileCount="48" ClustersRaw="4006751" ClustersRawSD="1265247.4" ClustersPF="52186" ClustersPFSD="233275.6" PrcPFClusters="0.9" PrcPFClustersSD="4.22" Phasing="0.000" Prephasing="0.000" CalledCyclesMin="0" CalledCyclesMax="0" PrcAlign="0.00" PrcAlignSD="0.000" ErrRatePhiX="0.00" ErrRatePhiXSD="0.000" ErrRate35="0.00" ErrRate35SD="0.000" ErrRate75="0.00" ErrRate75SD="0.000" ErrRate100="0.00" ErrRate100SD="0.000" FirstCycleIntPF="2579" FirstCycleIntPFSD="2952.5" PrcIntensityAfter20CyclesPF="16.0" PrcIntensityAfter20CyclesPFSD="29.57" /><Lane key="6" TileCount="48" ClustersRaw="5678021" ClustersRawSD="627070.7" ClustersPF="1490900" ClustersPFSD="1624380.0" PrcPFClusters="25.5" PrcPFClustersSD="26.81" Phasing="0.267" Prephasing="0.212" CalledCyclesMin="0" CalledCyclesMax="0" PrcAlign="0.00" PrcAlignSD="0.000" ErrRatePhiX="0.00" ErrRatePhiXSD="0.000" ErrRate35="0.00" ErrRate35SD="0.000" ErrRate75="0.00" ErrRate75SD="0.000" ErrRate100="0.00" ErrRate100SD="0.000" FirstCycleIntPF="6221" FirstCycleIntPFSD="675.5" PrcIntensityAfter20CyclesPF="76.9" PrcIntensityAfter20CyclesPFSD="4.87" /><Lane key="7" TileCount="48" ClustersRaw="1854131" ClustersRawSD="429053.2" ClustersPF="1585131" ClustersPFSD="693768.5" PrcPFClusters="85.0" PrcPFClustersSD="30.78" Phasing="0.133" Prephasing="0.241" CalledCyclesMin="0" CalledCyclesMax="0" PrcAlign="0.00" PrcAlignSD="0.000" ErrRatePhiX="0.00" ErrRatePhiXSD="0.000" ErrRate35="0.00" ErrRate35SD="0.000" ErrRate75="0.00" ErrRate75SD="0.000" ErrRate100="0.00" ErrRate100SD="0.000" FirstCycleIntPF="6584" FirstCycleIntPFSD="455.9" PrcIntensityAfter20CyclesPF="109.1" PrcIntensityAfter20CyclesPFSD="4.78" /><Lane key="8" TileCount="48" ClustersRaw="4777517" ClustersRawSD="592904.0" ClustersPF="4113021" ClustersPFSD="439623.7" PrcPFClusters="86.5" PrcPFClustersSD="7.36" Phasing="0.219" Prephasing="0.235" CalledCyclesMin="0" CalledCyclesMax="0" PrcAlign="0.00" PrcAlignSD="0.000" ErrRatePhiX="0.00" ErrRatePhiXSD="0.000" ErrRate35="0.00" ErrRate35SD="0.000" ErrRate75="0.00" ErrRate75SD="0.000" ErrRate100="0.00" ErrRate100SD="0.000" FirstCycleIntPF="6314" FirstCycleIntPFSD="760.7" PrcIntensityAfter20CyclesPF="37.3" PrcIntensityAfter20CyclesPFSD="9.19" /></Summary>
\ No newline at end of file
diff --git a/htsworkflow/pipelines/test/testdata/1_12/reports/Summary/read2.xml b/htsworkflow/pipelines/test/testdata/1_12/reports/Summary/read2.xml
new file mode 100755 (executable)
index 0000000..97b691e
--- /dev/null
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><!--Illumina RTA Data--><Summary Read="2" ReadType=" (Index)" densityRatio="0.173619792"><Lane key="1" TileCount="48" ClustersRaw="3878755" ClustersRawSD="579626.0" ClustersPF="1040253" ClustersPFSD="1059982.5" PrcPFClusters="27.8" PrcPFClustersSD="27.72" Phasing="0.000" Prephasing="0.000" CalledCyclesMin="0" CalledCyclesMax="0" PrcAlign="0.00" PrcAlignSD="0.000" ErrRatePhiX="0.00" ErrRatePhiXSD="0.000" ErrRate35="0.00" ErrRate35SD="0.000" ErrRate75="0.00" ErrRate75SD="0.000" ErrRate100="0.00" ErrRate100SD="0.000" FirstCycleIntPF="991" FirstCycleIntPFSD="2165.9" PrcIntensityAfter20CyclesPF="0.0" PrcIntensityAfter20CyclesPFSD="0.00" /><Lane key="2" TileCount="48" ClustersRaw="3920639" ClustersRawSD="1027332.4" ClustersPF="474380" ClustersPFSD="739312.7" PrcPFClusters="13.4" PrcPFClustersSD="17.58" Phasing="0.000" Prephasing="0.000" CalledCyclesMin="0" CalledCyclesMax="0" PrcAlign="0.00" PrcAlignSD="0.000" ErrRatePhiX="0.00" ErrRatePhiXSD="0.000" ErrRate35="0.00" ErrRate35SD="0.000" ErrRate75="0.00" ErrRate75SD="0.000" ErrRate100="0.00" ErrRate100SD="0.000" FirstCycleIntPF="925" FirstCycleIntPFSD="2096.4" PrcIntensityAfter20CyclesPF="0.0" PrcIntensityAfter20CyclesPFSD="0.00" /><Lane key="3" TileCount="48" ClustersRaw="5713049" ClustersRawSD="876187.3" ClustersPF="376501" ClustersPFSD="895452.3" PrcPFClusters="6.0" PrcPFClustersSD="14.30" Phasing="0.000" Prephasing="0.000" CalledCyclesMin="0" CalledCyclesMax="0" PrcAlign="0.00" PrcAlignSD="0.000" ErrRatePhiX="0.00" ErrRatePhiXSD="0.000" ErrRate35="0.00" ErrRate35SD="0.000" ErrRate75="0.00" ErrRate75SD="0.000" ErrRate100="0.00" ErrRate100SD="0.000" FirstCycleIntPF="1181" FirstCycleIntPFSD="1800.6" PrcIntensityAfter20CyclesPF="0.0" PrcIntensityAfter20CyclesPFSD="0.00" /><Lane key="4" TileCount="48" ClustersRaw="5852907" ClustersRawSD="538640.6" ClustersPF="329831" ClustersPFSD="758370.9" PrcPFClusters="5.4" PrcPFClustersSD="12.52" Phasing="0.000" Prephasing="0.000" CalledCyclesMin="0" CalledCyclesMax="0" PrcAlign="0.00" PrcAlignSD="0.000" ErrRatePhiX="0.00" ErrRatePhiXSD="0.000" ErrRate35="0.00" ErrRate35SD="0.000" ErrRate75="0.00" ErrRate75SD="0.000" ErrRate100="0.00" ErrRate100SD="0.000" FirstCycleIntPF="483" FirstCycleIntPFSD="1007.8" PrcIntensityAfter20CyclesPF="0.0" PrcIntensityAfter20CyclesPFSD="0.00" /><Lane key="5" TileCount="48" ClustersRaw="4006751" ClustersRawSD="1265247.4" ClustersPF="52186" ClustersPFSD="233275.6" PrcPFClusters="0.9" PrcPFClustersSD="4.22" Phasing="0.000" Prephasing="0.000" CalledCyclesMin="0" CalledCyclesMax="0" PrcAlign="0.00" PrcAlignSD="0.000" ErrRatePhiX="0.00" ErrRatePhiXSD="0.000" ErrRate35="0.00" ErrRate35SD="0.000" ErrRate75="0.00" ErrRate75SD="0.000" ErrRate100="0.00" ErrRate100SD="0.000" FirstCycleIntPF="1592" FirstCycleIntPFSD="1930.7" PrcIntensityAfter20CyclesPF="0.0" PrcIntensityAfter20CyclesPFSD="0.00" /><Lane key="6" TileCount="48" ClustersRaw="5678021" ClustersRawSD="627070.7" ClustersPF="1490900" ClustersPFSD="1624380.0" PrcPFClusters="25.5" PrcPFClustersSD="26.81" Phasing="0.000" Prephasing="0.000" CalledCyclesMin="0" CalledCyclesMax="0" PrcAlign="0.00" PrcAlignSD="0.000" ErrRatePhiX="0.00" ErrRatePhiXSD="0.000" ErrRate35="0.00" ErrRate35SD="0.000" ErrRate75="0.00" ErrRate75SD="0.000" ErrRate100="0.00" ErrRate100SD="0.000" FirstCycleIntPF="2308" FirstCycleIntPFSD="2746.0" PrcIntensityAfter20CyclesPF="0.0" PrcIntensityAfter20CyclesPFSD="0.00" /><Lane key="7" TileCount="48" ClustersRaw="1854131" ClustersRawSD="429053.2" ClustersPF="1585131" ClustersPFSD="693768.5" PrcPFClusters="85.0" PrcPFClustersSD="30.78" Phasing="0.000" Prephasing="0.000" CalledCyclesMin="0" CalledCyclesMax="0" PrcAlign="0.00" PrcAlignSD="0.000" ErrRatePhiX="0.00" ErrRatePhiXSD="0.000" ErrRate35="0.00" ErrRate35SD="0.000" ErrRate75="0.00" ErrRate75SD="0.000" ErrRate100="0.00" ErrRate100SD="0.000" FirstCycleIntPF="5761" FirstCycleIntPFSD="3328.6" PrcIntensityAfter20CyclesPF="0.0" PrcIntensityAfter20CyclesPFSD="0.00" /><Lane key="8" TileCount="48" ClustersRaw="4777517" ClustersRawSD="592904.0" ClustersPF="4113021" ClustersPFSD="439623.7" PrcPFClusters="86.5" PrcPFClustersSD="7.36" Phasing="0.000" Prephasing="0.000" CalledCyclesMin="0" CalledCyclesMax="0" PrcAlign="0.00" PrcAlignSD="0.000" ErrRatePhiX="0.00" ErrRatePhiXSD="0.000" ErrRate35="0.00" ErrRate35SD="0.000" ErrRate75="0.00" ErrRate75SD="0.000" ErrRate100="0.00" ErrRate100SD="0.000" FirstCycleIntPF="2791" FirstCycleIntPFSD="3369.4" PrcIntensityAfter20CyclesPF="0.0" PrcIntensityAfter20CyclesPFSD="0.00" /></Summary>
\ No newline at end of file
diff --git a/htsworkflow/pipelines/test/testdata/1_12/rta_basecalls_config_1.12.4.2.xml b/htsworkflow/pipelines/test/testdata/1_12/rta_basecalls_config_1.12.4.2.xml
new file mode 100755 (executable)
index 0000000..9da5d01
--- /dev/null
@@ -0,0 +1,511 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<BaseCallAnalysis xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">\r
+  <Run Name="BaseCalls">\r
+    <BaseCallParameters>\r
+      <ChastityThreshold>0.6</ChastityThreshold>\r
+      <Matrix Path="">\r
+        <AutoFlag>2</AutoFlag>\r
+        <AutoLane>0</AutoLane>\r
+        <Cycle>1</Cycle>\r
+        <CycleOffset>0</CycleOffset>\r
+        <FirstCycle>1</FirstCycle>\r
+        <LastCycle>50</LastCycle>\r
+        <Read>1</Read>\r
+      </Matrix>\r
+      <Matrix Path="">\r
+        <AutoFlag>2</AutoFlag>\r
+        <AutoLane>0</AutoLane>\r
+        <Cycle>51</Cycle>\r
+        <CycleOffset>0</CycleOffset>\r
+        <FirstCycle>51</FirstCycle>\r
+        <LastCycle>57</LastCycle>\r
+        <Read>2</Read>\r
+      </Matrix>\r
+      <Phasing Path="">\r
+        <AutoFlag>2</AutoFlag>\r
+        <AutoLane>0</AutoLane>\r
+        <Cycle>2</Cycle>\r
+        <CycleOffset>1</CycleOffset>\r
+        <FirstCycle>1</FirstCycle>\r
+        <LastCycle>50</LastCycle>\r
+        <Read>1</Read>\r
+        <PhasingRate>0</PhasingRate>\r
+        <PrephasingRate>0</PrephasingRate>\r
+      </Phasing>\r
+      <Phasing Path="">\r
+        <AutoFlag>2</AutoFlag>\r
+        <AutoLane>0</AutoLane>\r
+        <Cycle>52</Cycle>\r
+        <CycleOffset>1</CycleOffset>\r
+        <FirstCycle>51</FirstCycle>\r
+        <LastCycle>57</LastCycle>\r
+        <Read>2</Read>\r
+        <PhasingRate>0</PhasingRate>\r
+        <PrephasingRate>0</PrephasingRate>\r
+      </Phasing>\r
+      <PureBases>0</PureBases>\r
+      <SmtFilter>failed-chastity</SmtFilter>\r
+      <SmtRelation>le</SmtRelation>\r
+      <SmtThreshold>1.0</SmtThreshold>\r
+    </BaseCallParameters>\r
+    <Cycles First="1" Last="57" Number="57" />\r
+    <Input />\r
+    <RunParameters>\r
+      <AutoCycleFlag>0</AutoCycleFlag>\r
+      <BasecallFlag>0</BasecallFlag>\r
+      <Deblocked>0</Deblocked>\r
+      <DebugFlag>0</DebugFlag>\r
+      <FirstRunOnlyFlag>0</FirstRunOnlyFlag>\r
+      <ImagingReads Index="1">\r
+        <FirstCycle>1</FirstCycle>\r
+        <LastCycle>50</LastCycle>\r
+      </ImagingReads>\r
+      <ImagingReads Index="2">\r
+        <FirstCycle>51</FirstCycle>\r
+        <LastCycle>57</LastCycle>\r
+        <RunFolder>110815_SN787_0101_AD07K6ACXX</RunFolder>\r
+      </ImagingReads>\r
+      <Instrument>HWI-ST0787</Instrument>\r
+      <IterativeMatrixFlag>0</IterativeMatrixFlag>\r
+      <MakeFlag>0</MakeFlag>\r
+      <MaxCycle>0</MaxCycle>\r
+      <MinCycle>0</MinCycle>\r
+      <Reads Index="1">\r
+        <FirstCycle>1</FirstCycle>\r
+        <LastCycle>50</LastCycle>\r
+      </Reads>\r
+      <Reads Index="2">\r
+        <FirstCycle>51</FirstCycle>\r
+        <LastCycle>57</LastCycle>\r
+        <RunFolder>110815_SN787_0101_AD07K6ACXX</RunFolder>\r
+      </Reads>\r
+      <RunFolder>110815_SN787_0101_AD07K6ACXX</RunFolder>\r
+      <RunFolderDate>110815</RunFolderDate>\r
+      <RunFolderId>0101</RunFolderId>\r
+      <RunFlowcellId>D07K6ACXX</RunFlowcellId>\r
+      <Barcode>\r
+        <Cycle Use="true">51</Cycle>\r
+        <Cycle Use="true">52</Cycle>\r
+        <Cycle Use="true">53</Cycle>\r
+        <Cycle Use="true">54</Cycle>\r
+        <Cycle Use="true">55</Cycle>\r
+        <Cycle Use="true">56</Cycle>\r
+        <Cycle Use="true">57</Cycle>\r
+      </Barcode>\r
+      <QTableVersion>New6</QTableVersion>\r
+    </RunParameters>\r
+    <Software Name="RTA" Version="1.12.4.2" />\r
+    <TileSelection>\r
+      <Lane Index="1">\r
+        <Sample>s</Sample>\r
+        <Tile>1102</Tile>\r
+        <Tile>1101</Tile>\r
+        <Tile>1103</Tile>\r
+        <Tile>1106</Tile>\r
+        <Tile>1104</Tile>\r
+        <Tile>1105</Tile>\r
+        <Tile>1108</Tile>\r
+        <Tile>1107</Tile>\r
+        <Tile>1202</Tile>\r
+        <Tile>1201</Tile>\r
+        <Tile>1206</Tile>\r
+        <Tile>1204</Tile>\r
+        <Tile>1203</Tile>\r
+        <Tile>1205</Tile>\r
+        <Tile>1302</Tile>\r
+        <Tile>1208</Tile>\r
+        <Tile>1207</Tile>\r
+        <Tile>1301</Tile>\r
+        <Tile>1306</Tile>\r
+        <Tile>1304</Tile>\r
+        <Tile>1305</Tile>\r
+        <Tile>2102</Tile>\r
+        <Tile>1303</Tile>\r
+        <Tile>1308</Tile>\r
+        <Tile>2101</Tile>\r
+        <Tile>1307</Tile>\r
+        <Tile>2106</Tile>\r
+        <Tile>2104</Tile>\r
+        <Tile>2105</Tile>\r
+        <Tile>2103</Tile>\r
+        <Tile>2202</Tile>\r
+        <Tile>2108</Tile>\r
+        <Tile>2201</Tile>\r
+        <Tile>2206</Tile>\r
+        <Tile>2107</Tile>\r
+        <Tile>2205</Tile>\r
+        <Tile>2204</Tile>\r
+        <Tile>2203</Tile>\r
+        <Tile>2302</Tile>\r
+        <Tile>2301</Tile>\r
+        <Tile>2208</Tile>\r
+        <Tile>2306</Tile>\r
+        <Tile>2207</Tile>\r
+        <Tile>2305</Tile>\r
+        <Tile>2303</Tile>\r
+        <Tile>2304</Tile>\r
+        <Tile>2308</Tile>\r
+        <Tile>2307</Tile>\r
+      </Lane>\r
+      <Lane Index="2">\r
+        <Sample>s</Sample>\r
+        <Tile>1101</Tile>\r
+        <Tile>1102</Tile>\r
+        <Tile>1105</Tile>\r
+        <Tile>1106</Tile>\r
+        <Tile>1104</Tile>\r
+        <Tile>1103</Tile>\r
+        <Tile>1201</Tile>\r
+        <Tile>1202</Tile>\r
+        <Tile>1108</Tile>\r
+        <Tile>1206</Tile>\r
+        <Tile>1107</Tile>\r
+        <Tile>1205</Tile>\r
+        <Tile>1302</Tile>\r
+        <Tile>1204</Tile>\r
+        <Tile>1301</Tile>\r
+        <Tile>1203</Tile>\r
+        <Tile>1208</Tile>\r
+        <Tile>1306</Tile>\r
+        <Tile>1305</Tile>\r
+        <Tile>1207</Tile>\r
+        <Tile>1304</Tile>\r
+        <Tile>2101</Tile>\r
+        <Tile>2102</Tile>\r
+        <Tile>1308</Tile>\r
+        <Tile>2105</Tile>\r
+        <Tile>1303</Tile>\r
+        <Tile>2201</Tile>\r
+        <Tile>2106</Tile>\r
+        <Tile>2104</Tile>\r
+        <Tile>1307</Tile>\r
+        <Tile>2205</Tile>\r
+        <Tile>2202</Tile>\r
+        <Tile>2108</Tile>\r
+        <Tile>2206</Tile>\r
+        <Tile>2103</Tile>\r
+        <Tile>2301</Tile>\r
+        <Tile>2204</Tile>\r
+        <Tile>2208</Tile>\r
+        <Tile>2107</Tile>\r
+        <Tile>2302</Tile>\r
+        <Tile>2305</Tile>\r
+        <Tile>2304</Tile>\r
+        <Tile>2203</Tile>\r
+        <Tile>2306</Tile>\r
+        <Tile>2308</Tile>\r
+        <Tile>2207</Tile>\r
+        <Tile>2303</Tile>\r
+        <Tile>2307</Tile>\r
+      </Lane>\r
+      <Lane Index="3">\r
+        <Sample>s</Sample>\r
+        <Tile>1101</Tile>\r
+        <Tile>1102</Tile>\r
+        <Tile>1105</Tile>\r
+        <Tile>1104</Tile>\r
+        <Tile>1108</Tile>\r
+        <Tile>1106</Tile>\r
+        <Tile>1201</Tile>\r
+        <Tile>1103</Tile>\r
+        <Tile>1204</Tile>\r
+        <Tile>1202</Tile>\r
+        <Tile>1205</Tile>\r
+        <Tile>1107</Tile>\r
+        <Tile>1208</Tile>\r
+        <Tile>1206</Tile>\r
+        <Tile>1301</Tile>\r
+        <Tile>1304</Tile>\r
+        <Tile>1203</Tile>\r
+        <Tile>1302</Tile>\r
+        <Tile>1308</Tile>\r
+        <Tile>1305</Tile>\r
+        <Tile>1207</Tile>\r
+        <Tile>2101</Tile>\r
+        <Tile>2104</Tile>\r
+        <Tile>1306</Tile>\r
+        <Tile>1303</Tile>\r
+        <Tile>2102</Tile>\r
+        <Tile>2105</Tile>\r
+        <Tile>2108</Tile>\r
+        <Tile>1307</Tile>\r
+        <Tile>2106</Tile>\r
+        <Tile>2204</Tile>\r
+        <Tile>2201</Tile>\r
+        <Tile>2103</Tile>\r
+        <Tile>2208</Tile>\r
+        <Tile>2202</Tile>\r
+        <Tile>2107</Tile>\r
+        <Tile>2205</Tile>\r
+        <Tile>2301</Tile>\r
+        <Tile>2304</Tile>\r
+        <Tile>2203</Tile>\r
+        <Tile>2206</Tile>\r
+        <Tile>2207</Tile>\r
+        <Tile>2305</Tile>\r
+        <Tile>2308</Tile>\r
+        <Tile>2302</Tile>\r
+        <Tile>2303</Tile>\r
+        <Tile>2307</Tile>\r
+        <Tile>2306</Tile>\r
+      </Lane>\r
+      <Lane Index="4">\r
+        <Sample>s</Sample>\r
+        <Tile>1101</Tile>\r
+        <Tile>1104</Tile>\r
+        <Tile>1103</Tile>\r
+        <Tile>1102</Tile>\r
+        <Tile>1108</Tile>\r
+        <Tile>1105</Tile>\r
+        <Tile>1107</Tile>\r
+        <Tile>1106</Tile>\r
+        <Tile>1204</Tile>\r
+        <Tile>1201</Tile>\r
+        <Tile>1203</Tile>\r
+        <Tile>1202</Tile>\r
+        <Tile>1208</Tile>\r
+        <Tile>1205</Tile>\r
+        <Tile>1207</Tile>\r
+        <Tile>1206</Tile>\r
+        <Tile>1304</Tile>\r
+        <Tile>1301</Tile>\r
+        <Tile>1302</Tile>\r
+        <Tile>1308</Tile>\r
+        <Tile>1303</Tile>\r
+        <Tile>1305</Tile>\r
+        <Tile>1306</Tile>\r
+        <Tile>1307</Tile>\r
+        <Tile>2104</Tile>\r
+        <Tile>2101</Tile>\r
+        <Tile>2108</Tile>\r
+        <Tile>2102</Tile>\r
+        <Tile>2103</Tile>\r
+        <Tile>2105</Tile>\r
+        <Tile>2204</Tile>\r
+        <Tile>2106</Tile>\r
+        <Tile>2107</Tile>\r
+        <Tile>2201</Tile>\r
+        <Tile>2208</Tile>\r
+        <Tile>2202</Tile>\r
+        <Tile>2203</Tile>\r
+        <Tile>2304</Tile>\r
+        <Tile>2205</Tile>\r
+        <Tile>2206</Tile>\r
+        <Tile>2207</Tile>\r
+        <Tile>2308</Tile>\r
+        <Tile>2301</Tile>\r
+        <Tile>2302</Tile>\r
+        <Tile>2303</Tile>\r
+        <Tile>2305</Tile>\r
+        <Tile>2307</Tile>\r
+        <Tile>2306</Tile>\r
+      </Lane>\r
+      <Lane Index="5">\r
+        <Sample>s</Sample>\r
+        <Tile>1104</Tile>\r
+        <Tile>1108</Tile>\r
+        <Tile>1101</Tile>\r
+        <Tile>1204</Tile>\r
+        <Tile>1102</Tile>\r
+        <Tile>1103</Tile>\r
+        <Tile>1106</Tile>\r
+        <Tile>1105</Tile>\r
+        <Tile>1107</Tile>\r
+        <Tile>1208</Tile>\r
+        <Tile>1201</Tile>\r
+        <Tile>1202</Tile>\r
+        <Tile>1203</Tile>\r
+        <Tile>1304</Tile>\r
+        <Tile>1205</Tile>\r
+        <Tile>1206</Tile>\r
+        <Tile>1301</Tile>\r
+        <Tile>1308</Tile>\r
+        <Tile>1207</Tile>\r
+        <Tile>1302</Tile>\r
+        <Tile>2104</Tile>\r
+        <Tile>1303</Tile>\r
+        <Tile>1305</Tile>\r
+        <Tile>1306</Tile>\r
+        <Tile>2101</Tile>\r
+        <Tile>2102</Tile>\r
+        <Tile>1307</Tile>\r
+        <Tile>2108</Tile>\r
+        <Tile>2204</Tile>\r
+        <Tile>2103</Tile>\r
+        <Tile>2105</Tile>\r
+        <Tile>2107</Tile>\r
+        <Tile>2106</Tile>\r
+        <Tile>2201</Tile>\r
+        <Tile>2208</Tile>\r
+        <Tile>2203</Tile>\r
+        <Tile>2202</Tile>\r
+        <Tile>2304</Tile>\r
+        <Tile>2206</Tile>\r
+        <Tile>2205</Tile>\r
+        <Tile>2207</Tile>\r
+        <Tile>2302</Tile>\r
+        <Tile>2301</Tile>\r
+        <Tile>2303</Tile>\r
+        <Tile>2308</Tile>\r
+        <Tile>2305</Tile>\r
+        <Tile>2307</Tile>\r
+        <Tile>2306</Tile>\r
+      </Lane>\r
+      <Lane Index="6">\r
+        <Sample>s</Sample>\r
+        <Tile>1104</Tile>\r
+        <Tile>1101</Tile>\r
+        <Tile>1103</Tile>\r
+        <Tile>1102</Tile>\r
+        <Tile>1108</Tile>\r
+        <Tile>1107</Tile>\r
+        <Tile>1105</Tile>\r
+        <Tile>1106</Tile>\r
+        <Tile>1204</Tile>\r
+        <Tile>1203</Tile>\r
+        <Tile>1201</Tile>\r
+        <Tile>1202</Tile>\r
+        <Tile>1208</Tile>\r
+        <Tile>1207</Tile>\r
+        <Tile>1205</Tile>\r
+        <Tile>1206</Tile>\r
+        <Tile>1304</Tile>\r
+        <Tile>1303</Tile>\r
+        <Tile>1301</Tile>\r
+        <Tile>1302</Tile>\r
+        <Tile>1308</Tile>\r
+        <Tile>1307</Tile>\r
+        <Tile>1305</Tile>\r
+        <Tile>2104</Tile>\r
+        <Tile>1306</Tile>\r
+        <Tile>2103</Tile>\r
+        <Tile>2101</Tile>\r
+        <Tile>2102</Tile>\r
+        <Tile>2108</Tile>\r
+        <Tile>2107</Tile>\r
+        <Tile>2105</Tile>\r
+        <Tile>2106</Tile>\r
+        <Tile>2204</Tile>\r
+        <Tile>2203</Tile>\r
+        <Tile>2202</Tile>\r
+        <Tile>2201</Tile>\r
+        <Tile>2208</Tile>\r
+        <Tile>2207</Tile>\r
+        <Tile>2206</Tile>\r
+        <Tile>2205</Tile>\r
+        <Tile>2304</Tile>\r
+        <Tile>2303</Tile>\r
+        <Tile>2302</Tile>\r
+        <Tile>2301</Tile>\r
+        <Tile>2307</Tile>\r
+        <Tile>2308</Tile>\r
+        <Tile>2306</Tile>\r
+        <Tile>2305</Tile>\r
+      </Lane>\r
+      <Lane Index="7">\r
+        <Sample>s</Sample>\r
+        <Tile>1103</Tile>\r
+        <Tile>1107</Tile>\r
+        <Tile>1104</Tile>\r
+        <Tile>1108</Tile>\r
+        <Tile>1203</Tile>\r
+        <Tile>1101</Tile>\r
+        <Tile>1102</Tile>\r
+        <Tile>1204</Tile>\r
+        <Tile>1105</Tile>\r
+        <Tile>1207</Tile>\r
+        <Tile>1106</Tile>\r
+        <Tile>1208</Tile>\r
+        <Tile>1201</Tile>\r
+        <Tile>1202</Tile>\r
+        <Tile>1303</Tile>\r
+        <Tile>1205</Tile>\r
+        <Tile>1206</Tile>\r
+        <Tile>1307</Tile>\r
+        <Tile>1304</Tile>\r
+        <Tile>1301</Tile>\r
+        <Tile>1302</Tile>\r
+        <Tile>1305</Tile>\r
+        <Tile>1308</Tile>\r
+        <Tile>2103</Tile>\r
+        <Tile>1306</Tile>\r
+        <Tile>2101</Tile>\r
+        <Tile>2107</Tile>\r
+        <Tile>2104</Tile>\r
+        <Tile>2105</Tile>\r
+        <Tile>2102</Tile>\r
+        <Tile>2108</Tile>\r
+        <Tile>2203</Tile>\r
+        <Tile>2201</Tile>\r
+        <Tile>2106</Tile>\r
+        <Tile>2205</Tile>\r
+        <Tile>2207</Tile>\r
+        <Tile>2202</Tile>\r
+        <Tile>2204</Tile>\r
+        <Tile>2301</Tile>\r
+        <Tile>2303</Tile>\r
+        <Tile>2206</Tile>\r
+        <Tile>2208</Tile>\r
+        <Tile>2305</Tile>\r
+        <Tile>2307</Tile>\r
+        <Tile>2302</Tile>\r
+        <Tile>2304</Tile>\r
+        <Tile>2306</Tile>\r
+        <Tile>2308</Tile>\r
+      </Lane>\r
+      <Lane Index="8">\r
+        <Sample>s</Sample>\r
+        <Tile>1101</Tile>\r
+        <Tile>1103</Tile>\r
+        <Tile>1102</Tile>\r
+        <Tile>1105</Tile>\r
+        <Tile>1107</Tile>\r
+        <Tile>1104</Tile>\r
+        <Tile>1106</Tile>\r
+        <Tile>1201</Tile>\r
+        <Tile>1108</Tile>\r
+        <Tile>1203</Tile>\r
+        <Tile>1202</Tile>\r
+        <Tile>1205</Tile>\r
+        <Tile>1207</Tile>\r
+        <Tile>1204</Tile>\r
+        <Tile>1206</Tile>\r
+        <Tile>1301</Tile>\r
+        <Tile>1208</Tile>\r
+        <Tile>1303</Tile>\r
+        <Tile>1302</Tile>\r
+        <Tile>1305</Tile>\r
+        <Tile>1307</Tile>\r
+        <Tile>1304</Tile>\r
+        <Tile>1306</Tile>\r
+        <Tile>2101</Tile>\r
+        <Tile>1308</Tile>\r
+        <Tile>2103</Tile>\r
+        <Tile>2105</Tile>\r
+        <Tile>2102</Tile>\r
+        <Tile>2107</Tile>\r
+        <Tile>2106</Tile>\r
+        <Tile>2104</Tile>\r
+        <Tile>2201</Tile>\r
+        <Tile>2205</Tile>\r
+        <Tile>2202</Tile>\r
+        <Tile>2203</Tile>\r
+        <Tile>2108</Tile>\r
+        <Tile>2206</Tile>\r
+        <Tile>2301</Tile>\r
+        <Tile>2207</Tile>\r
+        <Tile>2204</Tile>\r
+        <Tile>2305</Tile>\r
+        <Tile>2302</Tile>\r
+        <Tile>2303</Tile>\r
+        <Tile>2208</Tile>\r
+        <Tile>2306</Tile>\r
+        <Tile>2307</Tile>\r
+        <Tile>2304</Tile>\r
+        <Tile>2308</Tile>\r
+      </Lane>\r
+    </TileSelection>\r
+    <Time />\r
+    <User />\r
+  </Run>\r
+</BaseCallAnalysis>
\ No newline at end of file
diff --git a/htsworkflow/pipelines/test/testdata/1_12/rta_intensities_config_1.12.4.2.xml b/htsworkflow/pipelines/test/testdata/1_12/rta_intensities_config_1.12.4.2.xml
new file mode 100755 (executable)
index 0000000..6d43157
--- /dev/null
@@ -0,0 +1,472 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<ImageAnalysis xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">\r
+  <Run Name="Intensities">\r
+    <Cycles First="1" Last="57" Number="57" />\r
+    <ImageParameters>\r
+      <AutoOffsetFlag>0</AutoOffsetFlag>\r
+      <AutoSizeFlag>0</AutoSizeFlag>\r
+      <Fwhm>0</Fwhm>\r
+      <RemappingDistance>0</RemappingDistance>\r
+      <Threshold>0</Threshold>\r
+    </ImageParameters>\r
+    <RunParameters>\r
+      <AutoCycleFlag>0</AutoCycleFlag>\r
+      <BasecallFlag>0</BasecallFlag>\r
+      <Deblocked>0</Deblocked>\r
+      <DebugFlag>0</DebugFlag>\r
+      <FirstRunOnlyFlag>0</FirstRunOnlyFlag>\r
+      <ImagingReads Index="1">\r
+        <FirstCycle>1</FirstCycle>\r
+        <LastCycle>50</LastCycle>\r
+        <RunFolder>110815_SN787_0101_AD07K6ACXX</RunFolder>\r
+      </ImagingReads>\r
+      <ImagingReads Index="2">\r
+        <FirstCycle>51</FirstCycle>\r
+        <LastCycle>57</LastCycle>\r
+        <RunFolder>110815_SN787_0101_AD07K6ACXX</RunFolder>\r
+      </ImagingReads>\r
+      <Instrument>HWI-ST0787</Instrument>\r
+      <IterativeMatrixFlag>0</IterativeMatrixFlag>\r
+      <MakeFlag>0</MakeFlag>\r
+      <MaxCycle>0</MaxCycle>\r
+      <MinCycle>0</MinCycle>\r
+      <Reads Index="1">\r
+        <FirstCycle>1</FirstCycle>\r
+        <LastCycle>50</LastCycle>\r
+        <RunFolder>110815_SN787_0101_AD07K6ACXX</RunFolder>\r
+      </Reads>\r
+      <Reads Index="2">\r
+        <FirstCycle>51</FirstCycle>\r
+        <LastCycle>57</LastCycle>\r
+        <RunFolder>110815_SN787_0101_AD07K6ACXX</RunFolder>\r
+      </Reads>\r
+      <RunFolder>110815_SN787_0101_AD07K6ACXX</RunFolder>\r
+      <RunFolderDate>110815</RunFolderDate>\r
+      <RunFolderId>0101</RunFolderId>\r
+      <RunFlowcellId>D07K6ACXX</RunFlowcellId>\r
+      <Barcode>\r
+        <Cycle Use="true">51</Cycle>\r
+        <Cycle Use="true">52</Cycle>\r
+        <Cycle Use="true">53</Cycle>\r
+        <Cycle Use="true">54</Cycle>\r
+        <Cycle Use="true">55</Cycle>\r
+        <Cycle Use="true">56</Cycle>\r
+        <Cycle Use="true">57</Cycle>\r
+      </Barcode>\r
+      <QTableVersion>New6</QTableVersion>\r
+    </RunParameters>\r
+    <Software Name="RTA" Version="1.12.4.2" />\r
+    <TileSelection>\r
+      <Lane Index="1">\r
+        <Sample>s</Sample>\r
+        <Tile>1101</Tile>\r
+        <Tile>1102</Tile>\r
+        <Tile>1104</Tile>\r
+        <Tile>1103</Tile>\r
+        <Tile>1106</Tile>\r
+        <Tile>1105</Tile>\r
+        <Tile>1108</Tile>\r
+        <Tile>1107</Tile>\r
+        <Tile>1201</Tile>\r
+        <Tile>1204</Tile>\r
+        <Tile>1202</Tile>\r
+        <Tile>1205</Tile>\r
+        <Tile>1206</Tile>\r
+        <Tile>1208</Tile>\r
+        <Tile>1301</Tile>\r
+        <Tile>1302</Tile>\r
+        <Tile>1304</Tile>\r
+        <Tile>1203</Tile>\r
+        <Tile>1305</Tile>\r
+        <Tile>1306</Tile>\r
+        <Tile>1308</Tile>\r
+        <Tile>2102</Tile>\r
+        <Tile>2101</Tile>\r
+        <Tile>1207</Tile>\r
+        <Tile>2105</Tile>\r
+        <Tile>2106</Tile>\r
+        <Tile>2104</Tile>\r
+        <Tile>1303</Tile>\r
+        <Tile>2201</Tile>\r
+        <Tile>2202</Tile>\r
+        <Tile>1307</Tile>\r
+        <Tile>2206</Tile>\r
+        <Tile>2205</Tile>\r
+        <Tile>2108</Tile>\r
+        <Tile>2302</Tile>\r
+        <Tile>2103</Tile>\r
+        <Tile>2301</Tile>\r
+        <Tile>2204</Tile>\r
+        <Tile>2305</Tile>\r
+        <Tile>2107</Tile>\r
+        <Tile>2203</Tile>\r
+        <Tile>2208</Tile>\r
+        <Tile>2306</Tile>\r
+        <Tile>2207</Tile>\r
+        <Tile>2304</Tile>\r
+        <Tile>2303</Tile>\r
+        <Tile>2308</Tile>\r
+        <Tile>2307</Tile>\r
+      </Lane>\r
+      <Lane Index="2">\r
+        <Sample>s</Sample>\r
+        <Tile>1101</Tile>\r
+        <Tile>1105</Tile>\r
+        <Tile>1102</Tile>\r
+        <Tile>1106</Tile>\r
+        <Tile>1201</Tile>\r
+        <Tile>1103</Tile>\r
+        <Tile>1104</Tile>\r
+        <Tile>1202</Tile>\r
+        <Tile>1205</Tile>\r
+        <Tile>1107</Tile>\r
+        <Tile>1206</Tile>\r
+        <Tile>1108</Tile>\r
+        <Tile>1203</Tile>\r
+        <Tile>1302</Tile>\r
+        <Tile>1204</Tile>\r
+        <Tile>1301</Tile>\r
+        <Tile>1208</Tile>\r
+        <Tile>1207</Tile>\r
+        <Tile>1305</Tile>\r
+        <Tile>1306</Tile>\r
+        <Tile>1304</Tile>\r
+        <Tile>2101</Tile>\r
+        <Tile>1303</Tile>\r
+        <Tile>2102</Tile>\r
+        <Tile>1308</Tile>\r
+        <Tile>2105</Tile>\r
+        <Tile>1307</Tile>\r
+        <Tile>2106</Tile>\r
+        <Tile>2201</Tile>\r
+        <Tile>2104</Tile>\r
+        <Tile>2103</Tile>\r
+        <Tile>2202</Tile>\r
+        <Tile>2205</Tile>\r
+        <Tile>2107</Tile>\r
+        <Tile>2108</Tile>\r
+        <Tile>2206</Tile>\r
+        <Tile>2301</Tile>\r
+        <Tile>2203</Tile>\r
+        <Tile>2204</Tile>\r
+        <Tile>2208</Tile>\r
+        <Tile>2207</Tile>\r
+        <Tile>2302</Tile>\r
+        <Tile>2305</Tile>\r
+        <Tile>2303</Tile>\r
+        <Tile>2304</Tile>\r
+        <Tile>2306</Tile>\r
+        <Tile>2307</Tile>\r
+        <Tile>2308</Tile>\r
+      </Lane>\r
+      <Lane Index="3">\r
+        <Sample>s</Sample>\r
+        <Tile>1101</Tile>\r
+        <Tile>1103</Tile>\r
+        <Tile>1102</Tile>\r
+        <Tile>1104</Tile>\r
+        <Tile>1105</Tile>\r
+        <Tile>1106</Tile>\r
+        <Tile>1107</Tile>\r
+        <Tile>1108</Tile>\r
+        <Tile>1201</Tile>\r
+        <Tile>1204</Tile>\r
+        <Tile>1202</Tile>\r
+        <Tile>1203</Tile>\r
+        <Tile>1205</Tile>\r
+        <Tile>1206</Tile>\r
+        <Tile>1207</Tile>\r
+        <Tile>1208</Tile>\r
+        <Tile>1302</Tile>\r
+        <Tile>1301</Tile>\r
+        <Tile>1303</Tile>\r
+        <Tile>1304</Tile>\r
+        <Tile>1306</Tile>\r
+        <Tile>1305</Tile>\r
+        <Tile>1308</Tile>\r
+        <Tile>2101</Tile>\r
+        <Tile>2102</Tile>\r
+        <Tile>2105</Tile>\r
+        <Tile>1307</Tile>\r
+        <Tile>2104</Tile>\r
+        <Tile>2106</Tile>\r
+        <Tile>2201</Tile>\r
+        <Tile>2108</Tile>\r
+        <Tile>2103</Tile>\r
+        <Tile>2107</Tile>\r
+        <Tile>2202</Tile>\r
+        <Tile>2205</Tile>\r
+        <Tile>2204</Tile>\r
+        <Tile>2301</Tile>\r
+        <Tile>2206</Tile>\r
+        <Tile>2305</Tile>\r
+        <Tile>2203</Tile>\r
+        <Tile>2208</Tile>\r
+        <Tile>2302</Tile>\r
+        <Tile>2207</Tile>\r
+        <Tile>2304</Tile>\r
+        <Tile>2306</Tile>\r
+        <Tile>2303</Tile>\r
+        <Tile>2308</Tile>\r
+        <Tile>2307</Tile>\r
+      </Lane>\r
+      <Lane Index="4">\r
+        <Sample>s</Sample>\r
+        <Tile>1101</Tile>\r
+        <Tile>1105</Tile>\r
+        <Tile>1201</Tile>\r
+        <Tile>1102</Tile>\r
+        <Tile>1106</Tile>\r
+        <Tile>1205</Tile>\r
+        <Tile>1104</Tile>\r
+        <Tile>1202</Tile>\r
+        <Tile>1103</Tile>\r
+        <Tile>1301</Tile>\r
+        <Tile>1206</Tile>\r
+        <Tile>1108</Tile>\r
+        <Tile>1107</Tile>\r
+        <Tile>1305</Tile>\r
+        <Tile>1302</Tile>\r
+        <Tile>2101</Tile>\r
+        <Tile>1203</Tile>\r
+        <Tile>1306</Tile>\r
+        <Tile>1204</Tile>\r
+        <Tile>1207</Tile>\r
+        <Tile>2102</Tile>\r
+        <Tile>1208</Tile>\r
+        <Tile>2105</Tile>\r
+        <Tile>1303</Tile>\r
+        <Tile>2106</Tile>\r
+        <Tile>1304</Tile>\r
+        <Tile>2201</Tile>\r
+        <Tile>1307</Tile>\r
+        <Tile>1308</Tile>\r
+        <Tile>2202</Tile>\r
+        <Tile>2103</Tile>\r
+        <Tile>2104</Tile>\r
+        <Tile>2205</Tile>\r
+        <Tile>2206</Tile>\r
+        <Tile>2302</Tile>\r
+        <Tile>2108</Tile>\r
+        <Tile>2301</Tile>\r
+        <Tile>2107</Tile>\r
+        <Tile>2305</Tile>\r
+        <Tile>2306</Tile>\r
+        <Tile>2204</Tile>\r
+        <Tile>2203</Tile>\r
+        <Tile>2208</Tile>\r
+        <Tile>2207</Tile>\r
+        <Tile>2303</Tile>\r
+        <Tile>2304</Tile>\r
+        <Tile>2308</Tile>\r
+        <Tile>2307</Tile>\r
+      </Lane>\r
+      <Lane Index="5">\r
+        <Sample>s</Sample>\r
+        <Tile>1102</Tile>\r
+        <Tile>1101</Tile>\r
+        <Tile>1106</Tile>\r
+        <Tile>1105</Tile>\r
+        <Tile>1202</Tile>\r
+        <Tile>1201</Tile>\r
+        <Tile>1205</Tile>\r
+        <Tile>1206</Tile>\r
+        <Tile>1301</Tile>\r
+        <Tile>1104</Tile>\r
+        <Tile>1302</Tile>\r
+        <Tile>1103</Tile>\r
+        <Tile>1108</Tile>\r
+        <Tile>1305</Tile>\r
+        <Tile>1306</Tile>\r
+        <Tile>1107</Tile>\r
+        <Tile>2102</Tile>\r
+        <Tile>1203</Tile>\r
+        <Tile>1204</Tile>\r
+        <Tile>2101</Tile>\r
+        <Tile>2106</Tile>\r
+        <Tile>1207</Tile>\r
+        <Tile>2202</Tile>\r
+        <Tile>1303</Tile>\r
+        <Tile>1208</Tile>\r
+        <Tile>2105</Tile>\r
+        <Tile>2201</Tile>\r
+        <Tile>1304</Tile>\r
+        <Tile>1307</Tile>\r
+        <Tile>2206</Tile>\r
+        <Tile>2103</Tile>\r
+        <Tile>2205</Tile>\r
+        <Tile>2302</Tile>\r
+        <Tile>2107</Tile>\r
+        <Tile>1308</Tile>\r
+        <Tile>2301</Tile>\r
+        <Tile>2203</Tile>\r
+        <Tile>2104</Tile>\r
+        <Tile>2305</Tile>\r
+        <Tile>2207</Tile>\r
+        <Tile>2108</Tile>\r
+        <Tile>2306</Tile>\r
+        <Tile>2303</Tile>\r
+        <Tile>2204</Tile>\r
+        <Tile>2307</Tile>\r
+        <Tile>2208</Tile>\r
+        <Tile>2304</Tile>\r
+        <Tile>2308</Tile>\r
+      </Lane>\r
+      <Lane Index="6">\r
+        <Sample>s</Sample>\r
+        <Tile>1101</Tile>\r
+        <Tile>1102</Tile>\r
+        <Tile>1103</Tile>\r
+        <Tile>1106</Tile>\r
+        <Tile>1105</Tile>\r
+        <Tile>1107</Tile>\r
+        <Tile>1202</Tile>\r
+        <Tile>1201</Tile>\r
+        <Tile>1203</Tile>\r
+        <Tile>1207</Tile>\r
+        <Tile>1205</Tile>\r
+        <Tile>1206</Tile>\r
+        <Tile>1301</Tile>\r
+        <Tile>1303</Tile>\r
+        <Tile>1302</Tile>\r
+        <Tile>1104</Tile>\r
+        <Tile>1305</Tile>\r
+        <Tile>1306</Tile>\r
+        <Tile>2101</Tile>\r
+        <Tile>1108</Tile>\r
+        <Tile>2102</Tile>\r
+        <Tile>1307</Tile>\r
+        <Tile>2103</Tile>\r
+        <Tile>2105</Tile>\r
+        <Tile>1204</Tile>\r
+        <Tile>2106</Tile>\r
+        <Tile>2107</Tile>\r
+        <Tile>2201</Tile>\r
+        <Tile>2202</Tile>\r
+        <Tile>1208</Tile>\r
+        <Tile>2203</Tile>\r
+        <Tile>2206</Tile>\r
+        <Tile>2205</Tile>\r
+        <Tile>1304</Tile>\r
+        <Tile>2302</Tile>\r
+        <Tile>2207</Tile>\r
+        <Tile>2301</Tile>\r
+        <Tile>1308</Tile>\r
+        <Tile>2306</Tile>\r
+        <Tile>2303</Tile>\r
+        <Tile>2305</Tile>\r
+        <Tile>2307</Tile>\r
+        <Tile>2104</Tile>\r
+        <Tile>2108</Tile>\r
+        <Tile>2204</Tile>\r
+        <Tile>2208</Tile>\r
+        <Tile>2304</Tile>\r
+        <Tile>2308</Tile>\r
+      </Lane>\r
+      <Lane Index="7">\r
+        <Sample>s</Sample>\r
+        <Tile>1102</Tile>\r
+        <Tile>1106</Tile>\r
+        <Tile>1101</Tile>\r
+        <Tile>1105</Tile>\r
+        <Tile>1202</Tile>\r
+        <Tile>1201</Tile>\r
+        <Tile>1206</Tile>\r
+        <Tile>1205</Tile>\r
+        <Tile>1103</Tile>\r
+        <Tile>1302</Tile>\r
+        <Tile>1301</Tile>\r
+        <Tile>1107</Tile>\r
+        <Tile>1306</Tile>\r
+        <Tile>1305</Tile>\r
+        <Tile>1203</Tile>\r
+        <Tile>2101</Tile>\r
+        <Tile>2102</Tile>\r
+        <Tile>2105</Tile>\r
+        <Tile>1207</Tile>\r
+        <Tile>2106</Tile>\r
+        <Tile>2201</Tile>\r
+        <Tile>2202</Tile>\r
+        <Tile>2205</Tile>\r
+        <Tile>1303</Tile>\r
+        <Tile>1307</Tile>\r
+        <Tile>2206</Tile>\r
+        <Tile>2301</Tile>\r
+        <Tile>2103</Tile>\r
+        <Tile>2305</Tile>\r
+        <Tile>2302</Tile>\r
+        <Tile>2107</Tile>\r
+        <Tile>2306</Tile>\r
+        <Tile>2203</Tile>\r
+        <Tile>2207</Tile>\r
+        <Tile>2303</Tile>\r
+        <Tile>2307</Tile>\r
+        <Tile>1104</Tile>\r
+        <Tile>1108</Tile>\r
+        <Tile>1204</Tile>\r
+        <Tile>1208</Tile>\r
+        <Tile>1304</Tile>\r
+        <Tile>1308</Tile>\r
+        <Tile>2104</Tile>\r
+        <Tile>2108</Tile>\r
+        <Tile>2204</Tile>\r
+        <Tile>2208</Tile>\r
+        <Tile>2304</Tile>\r
+        <Tile>2308</Tile>\r
+      </Lane>\r
+      <Lane Index="8">\r
+        <Sample>s</Sample>\r
+        <Tile>1101</Tile>\r
+        <Tile>1102</Tile>\r
+        <Tile>1105</Tile>\r
+        <Tile>1106</Tile>\r
+        <Tile>1201</Tile>\r
+        <Tile>1202</Tile>\r
+        <Tile>1103</Tile>\r
+        <Tile>1205</Tile>\r
+        <Tile>1206</Tile>\r
+        <Tile>1107</Tile>\r
+        <Tile>1301</Tile>\r
+        <Tile>1302</Tile>\r
+        <Tile>1203</Tile>\r
+        <Tile>1306</Tile>\r
+        <Tile>1305</Tile>\r
+        <Tile>1207</Tile>\r
+        <Tile>2101</Tile>\r
+        <Tile>1303</Tile>\r
+        <Tile>2102</Tile>\r
+        <Tile>1307</Tile>\r
+        <Tile>2105</Tile>\r
+        <Tile>2103</Tile>\r
+        <Tile>2106</Tile>\r
+        <Tile>2201</Tile>\r
+        <Tile>2107</Tile>\r
+        <Tile>2205</Tile>\r
+        <Tile>2202</Tile>\r
+        <Tile>2206</Tile>\r
+        <Tile>2203</Tile>\r
+        <Tile>2301</Tile>\r
+        <Tile>2305</Tile>\r
+        <Tile>2302</Tile>\r
+        <Tile>2306</Tile>\r
+        <Tile>1104</Tile>\r
+        <Tile>2207</Tile>\r
+        <Tile>1108</Tile>\r
+        <Tile>1204</Tile>\r
+        <Tile>2303</Tile>\r
+        <Tile>2307</Tile>\r
+        <Tile>1208</Tile>\r
+        <Tile>1304</Tile>\r
+        <Tile>1308</Tile>\r
+        <Tile>2104</Tile>\r
+        <Tile>2108</Tile>\r
+        <Tile>2204</Tile>\r
+        <Tile>2208</Tile>\r
+        <Tile>2304</Tile>\r
+        <Tile>2308</Tile>\r
+      </Lane>\r
+    </TileSelection>\r
+    <Time />\r
+    <User />\r
+  </Run>\r
+</ImageAnalysis>
\ No newline at end of file
diff --git a/htsworkflow/pipelines/test/testdata/aligned_config_1_12.xml b/htsworkflow/pipelines/test/testdata/aligned_config_1_12.xml
deleted file mode 100644 (file)
index 2b7f3af..0000000
+++ /dev/null
@@ -1,234 +0,0 @@
-<?xml version="1.0"?>
-<RunParameters>
-  <Barcodes>
-  </Barcodes>
-  <Defaults>
-    <ANALYSIS>none</ANALYSIS>
-    <CHROM_NAME_SOURCE>fileName</CHROM_NAME_SOURCE>
-    <CHROM_NAME_VALIDATION>on</CHROM_NAME_VALIDATION>
-    <CMDPREFIX></CMDPREFIX>
-    <DATASET_POST_RUN_COMMAND></DATASET_POST_RUN_COMMAND>
-    <ELAND_EXTENDED_MULTI_READS>off</ELAND_EXTENDED_MULTI_READS>
-    <ELAND_FASTQ_FILES_PER_PROCESS>3</ELAND_FASTQ_FILES_PER_PROCESS>
-    <ELAND_GENOME></ELAND_GENOME>
-    <ELAND_GENOME_MASK>*.fa</ELAND_GENOME_MASK>
-    <ELAND_MAX_MATCHES></ELAND_MAX_MATCHES>
-    <ELAND_PARAMS></ELAND_PARAMS>
-    <ELAND_REPEAT></ELAND_REPEAT>
-    <ELAND_RNA_GENE_MD_GROUP_LABEL></ELAND_RNA_GENE_MD_GROUP_LABEL>
-    <ELAND_RNA_GENOME_ANNOTATION></ELAND_RNA_GENOME_ANNOTATION>
-    <ELAND_RNA_GENOME_CONTAM></ELAND_RNA_GENOME_CONTAM>
-    <ELAND_RNA_GENOME_CONTAM_MASK>*.fa</ELAND_RNA_GENOME_CONTAM_MASK>
-    <ELAND_RNA_MULTI_READS>off</ELAND_RNA_MULTI_READS>
-    <ELAND_SEED_LENGTH1>32</ELAND_SEED_LENGTH1>
-    <ELAND_SEED_LENGTH2></ELAND_SEED_LENGTH2>
-    <EMAIL_DOMAIN>domain.com</EMAIL_DOMAIN>
-    <EMAIL_LIST>${logName}</EMAIL_LIST>
-    <EMAIL_SERVER>localhost:25</EMAIL_SERVER>
-    <EXPT_DIR>/mmjggl/nicodemus/data01/sequencer/110815_SN787_0101_AD07K6ACXX/Unaligned_1MM</EXPT_DIR>
-    <FLAT_TXT_GZ_SUFFIX>Flat.txt.gz</FLAT_TXT_GZ_SUFFIX>
-    <FLOWCELL>D07K6ACXX</FLOWCELL>
-    <GENE_MD_GZ_SUFFIX>_gene.md.gz</GENE_MD_GZ_SUFFIX>
-    <INCREASED_SENSITIVITY></INCREASED_SENSITIVITY>
-    <KAGU_PAIR_PARAMS>--muf 0</KAGU_PAIR_PARAMS>
-    <KAGU_PARAMS>--mmaq 4</KAGU_PARAMS>
-    <NUM_LEADING_DIRS_TO_STRIP>2</NUM_LEADING_DIRS_TO_STRIP>
-    <OA_SUFFIX>.oa</OA_SUFFIX>
-    <ORIGINAL_READS>1</ORIGINAL_READS>
-    <ORIGINAL_READ_LENGTH1>50</ORIGINAL_READ_LENGTH1>
-    <ORPHAN_ALIGNER_PARAMS>2</ORPHAN_ALIGNER_PARAMS>
-    <OUT_DIR>/mmjggl/nicodemus/data01/sequencer/110815_SN787_0101_AD07K6ACXX/Aligned_1MM</OUT_DIR>
-    <PAS_PARAMS></PAS_PARAMS>
-    <RAMM_REPORT_TYPE></RAMM_REPORT_TYPE>
-    <READS>1</READS>
-    <READ_LENGTH1>49</READ_LENGTH1>
-    <RNAQC_COUNT_CLUSTERS_CMD>$(WC) -l</RNAQC_COUNT_CLUSTERS_CMD>
-    <RNAQC_COUNT_CLUSTERS_NAME>totalClusters</RNAQC_COUNT_CLUSTERS_NAME>
-    <RNAQC_COUNT_GENOME_CMD>($(GREP) -cvE '^((NM|QC|RM|[0-9]+:[0-9]+:[0-9]+)$$|splice_sites)' || exit 0)</RNAQC_COUNT_GENOME_CMD>
-    <RNAQC_COUNT_GENOME_NAME>genomeUsable</RNAQC_COUNT_GENOME_NAME>
-    <RNAQC_COUNT_NM_CMD>($(FGREP) -wc NM || exit 0)</RNAQC_COUNT_NM_CMD>
-    <RNAQC_COUNT_NM_NAME>noMatch</RNAQC_COUNT_NM_NAME>
-    <RNAQC_COUNT_PF_CMD>$(WC) -l</RNAQC_COUNT_PF_CMD>
-    <RNAQC_COUNT_PF_NAME>PFClusters</RNAQC_COUNT_PF_NAME>
-    <RNAQC_COUNT_QC_CMD>($(FGREP) -wc QC || exit 0)</RNAQC_COUNT_QC_CMD>
-    <RNAQC_COUNT_QC_NAME>QC</RNAQC_COUNT_QC_NAME>
-    <RNAQC_COUNT_RM_CMD>($(FGREP) -wc RM || exit 0)</RNAQC_COUNT_RM_CMD>
-    <RNAQC_COUNT_RM_NAME>repeatMasked</RNAQC_COUNT_RM_NAME>
-    <RNAQC_COUNT_SPLICE_CMD>($(FGREP) -c splice_sites || exit 0)</RNAQC_COUNT_SPLICE_CMD>
-    <RNAQC_COUNT_SPLICE_NAME>spliceUsable</RNAQC_COUNT_SPLICE_NAME>
-    <RNAQC_COUNT_USABLE_CMD>$(CUT) -f13 |($(EGREP) [0-9] || exit 0)|$(WC) -l</RNAQC_COUNT_USABLE_CMD>
-    <RNAQC_COUNT_USABLE_NAME>usable</RNAQC_COUNT_USABLE_NAME>
-    <RNAQC_FIND_CONTAMS_CMD>($(GREP) -vE '^(NM|QC|RM|[0-9]+:[0-9]+:[0-9]+)$$' || exit 0)</RNAQC_FIND_CONTAMS_CMD>
-    <SAMTOOLS_GENOME></SAMTOOLS_GENOME>
-    <SEQGENEMD2REFFLAT_PARAMS></SEQGENEMD2REFFLAT_PARAMS>
-    <SINGLESEED></SINGLESEED>
-    <SPLCSTS_PARAMS>-v $(CASAVA_LOG_LEVEL)</SPLCSTS_PARAMS>
-    <SQUASH_GENOME_PARAMS></SQUASH_GENOME_PARAMS>
-    <UNGAPPED></UNGAPPED>
-    <USE_BASES>y*n</USE_BASES>
-    <USE_BASES1>yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyn</USE_BASES1>
-    <WEB_DIR_ROOT>http://host.domain.com/yourshare/</WEB_DIR_ROOT>
-    <WITH_ORPHAN_ALIGNER>true</WITH_ORPHAN_ALIGNER>
-  </Defaults>
-  <Lanes>
-    <Lane index="1">
-      <Barcodes></Barcodes>
-      <Defaults>
-        <ANALYSIS>eland_extended</ANALYSIS>
-        <CHROM_NAME_SOURCE>fileName</CHROM_NAME_SOURCE>
-        <ELAND_GENOME>/mmjggl/nicodemus/data01/genomes/elegans190/chromosomes/</ELAND_GENOME>
-        <ELAND_GENOME_MASK>*.fa</ELAND_GENOME_MASK>
-        <ELAND_SEED_LENGTH1>32</ELAND_SEED_LENGTH1>
-        <READS>1</READS>
-        <READ_LENGTH1>49</READ_LENGTH1>
-        <Tiles>1101 1102 1103 1104 1105 1106 1107 1108 1201 1202 1203 1204 1205 1206 1207 1208 1301 1302 1303 1304 1305 1306 1307 1308 2101 2102 2103 2104 2105 2106 2107 2108 2201 2202 2203 2204 2205 2206 2207 2208 2301 2302 2303 2304 2305 2306 2307 2308</Tiles>
-        <USE_BASES>Y*n</USE_BASES>
-        <USE_BASES1>yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyn</USE_BASES1>
-      </Defaults>
-      <Projects></Projects>
-      <References></References>
-      <Samples></Samples>
-    </Lane>
-    <Lane index="2">
-      <Barcodes></Barcodes>
-      <Defaults>
-        <ANALYSIS>eland_extended</ANALYSIS>
-        <CHROM_NAME_SOURCE>fileName</CHROM_NAME_SOURCE>
-        <ELAND_GENOME>/mmjggl/nicodemus/data01/genomes/elegans190/chromosomes/</ELAND_GENOME>
-        <ELAND_GENOME_MASK>*.fa</ELAND_GENOME_MASK>
-        <ELAND_SEED_LENGTH1>32</ELAND_SEED_LENGTH1>
-        <READS>1</READS>
-        <READ_LENGTH1>49</READ_LENGTH1>
-        <Tiles>1101 1102 1103 1104 1105 1106 1107 1108 1201 1202 1203 1204 1205 1206 1207 1208 1301 1302 1303 1304 1305 1306 1307 1308 2101 2102 2103 2104 2105 2106 2107 2108 2201 2202 2203 2204 2205 2206 2207 2208 2301 2302 2303 2304 2305 2306 2307 2308</Tiles>
-        <USE_BASES>Y*n</USE_BASES>
-        <USE_BASES1>yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyn</USE_BASES1>
-      </Defaults>
-      <Projects></Projects>
-      <References></References>
-      <Samples></Samples>
-    </Lane>
-    <Lane index="4">
-      <Barcodes></Barcodes>
-      <Defaults>
-        <ANALYSIS>eland_extended</ANALYSIS>
-        <CHROM_NAME_SOURCE>fileName</CHROM_NAME_SOURCE>
-        <ELAND_GENOME>/mmjggl/nicodemus/data01/genomes/hg18/chromosomes/</ELAND_GENOME>
-        <ELAND_GENOME_MASK>*.fa</ELAND_GENOME_MASK>
-        <ELAND_SEED_LENGTH1>32</ELAND_SEED_LENGTH1>
-        <READS>1</READS>
-        <READ_LENGTH1>49</READ_LENGTH1>
-        <Tiles>1101 1102 1103 1104 1105 1106 1107 1108 1201 1202 1203 1204 1205 1206 1207 1208 1301 1302 1303 1304 1305 1306 1307 1308 2101 2102 2103 2104 2105 2106 2107 2108 2201 2202 2203 2204 2205 2206 2207 2208 2301 2302 2303 2304 2305 2306 2307 2308</Tiles>
-        <USE_BASES>Y*n</USE_BASES>
-        <USE_BASES1>yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyn</USE_BASES1>
-      </Defaults>
-      <Projects></Projects>
-      <References></References>
-      <Samples></Samples>
-    </Lane>
-    <Lane index="5">
-      <Barcodes></Barcodes>
-      <Defaults>
-        <ANALYSIS>eland_extended</ANALYSIS>
-        <CHROM_NAME_SOURCE>fileName</CHROM_NAME_SOURCE>
-        <ELAND_GENOME>/mmjggl/nicodemus/data01/genomes/hg18/chromosomes/</ELAND_GENOME>
-        <ELAND_GENOME_MASK>*.fa</ELAND_GENOME_MASK>
-        <ELAND_SEED_LENGTH1>32</ELAND_SEED_LENGTH1>
-        <READS>1</READS>
-        <READ_LENGTH1>49</READ_LENGTH1>
-        <Tiles>1101 1102 1103 1104 1105 1106 1107 1108 1201 1202 1203 1204 1205 1206 1207 1208 1301 1302 1303 1304 1305 1306 1307 1308 2101 2102 2103 2104 2105 2106 2107 2108 2201 2202 2203 2204 2205 2206 2207 2208 2301 2302 2303 2304 2305 2306 2307 2308</Tiles>
-        <USE_BASES>Y*n</USE_BASES>
-        <USE_BASES1>yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyn</USE_BASES1>
-      </Defaults>
-      <Projects></Projects>
-      <References></References>
-      <Samples></Samples>
-    </Lane>
-    <Lane index="6">
-      <Barcodes></Barcodes>
-      <Defaults>
-        <ANALYSIS>eland_extended</ANALYSIS>
-        <CHROM_NAME_SOURCE>fileName</CHROM_NAME_SOURCE>
-        <ELAND_GENOME>/mmjggl/nicodemus/data01/genomes/hg18/chromosomes/</ELAND_GENOME>
-        <ELAND_GENOME_MASK>*.fa</ELAND_GENOME_MASK>
-        <ELAND_SEED_LENGTH1>32</ELAND_SEED_LENGTH1>
-        <READS>1</READS>
-        <READ_LENGTH1>49</READ_LENGTH1>
-        <Tiles>1101 1102 1103 1104 1105 1106 1107 1108 1201 1202 1203 1204 1205 1206 1207 1208 1301 1302 1303 1304 1305 1306 1307 1308 2101 2102 2103 2104 2105 2106 2107 2108 2201 2202 2203 2204 2205 2206 2207 2208 2301 2302 2303 2304 2305 2306 2307 2308</Tiles>
-        <USE_BASES>Y*n</USE_BASES>
-        <USE_BASES1>yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyn</USE_BASES1>
-      </Defaults>
-      <Projects></Projects>
-      <References></References>
-      <Samples></Samples>
-    </Lane>
-    <Lane index="7">
-      <Barcodes></Barcodes>
-      <Defaults>
-        <ANALYSIS>none</ANALYSIS>
-        <Tiles>1101 1102 1103 1104 1105 1106 1107 1108 1201 1202 1203 1204 1205 1206 1207 1208 1301 1302 1303 1304 1305 1306 1307 1308 2101 2102 2103 2104 2105 2106 2107 2108 2201 2202 2203 2204 2205 2206 2207 2208 2301 2302 2303 2304 2305 2306 2307 2308</Tiles>
-      </Defaults>
-      <Projects></Projects>
-      <References></References>
-      <Samples></Samples>
-    </Lane>
-    <Lane index="8">
-      <Barcodes></Barcodes>
-      <Defaults>
-        <ANALYSIS>none</ANALYSIS>
-        <Tiles>1101 1102 1103 1104 1105 1106 1107 1108 1201 1202 1203 1204 1205 1206 1207 1208 1301 1302 1303 1304 1305 1306 1307 1308 2101 2102 2103 2104 2105 2106 2107 2108 2201 2202 2203 2204 2205 2206 2207 2208 2301 2302 2303 2304 2305 2306 2307 2308</Tiles>
-      </Defaults>
-      <Projects></Projects>
-      <References></References>
-      <Samples></Samples>
-    </Lane>
-    <Lane index="3">
-      <Barcodes></Barcodes>
-      <Defaults>
-        <Tiles>1101 1102 1103 1104 1105 1106 1107 1108 1201 1202 1203 1204 1205 1206 1207 1208 1301 1302 1303 1304 1305 1306 1307 1308 2101 2102 2103 2104 2105 2106 2107 2108 2201 2202 2203 2204 2205 2206 2207 2208 2301 2302 2303 2304 2305 2306 2307 2308</Tiles>
-      </Defaults>
-      <Projects></Projects>
-      <References></References>
-      <Samples></Samples>
-    </Lane>
-  </Lanes>
-  <Projects>
-    <Project name="12383">
-      <ANALYSIS>eland_extended</ANALYSIS>
-      <CHROM_NAME_SOURCE>fileName</CHROM_NAME_SOURCE>
-      <ELAND_GENOME>/mmjggl/nicodemus/data01/genomes/hg18/chromosomes/</ELAND_GENOME>
-      <ELAND_GENOME_MASK>*.fa</ELAND_GENOME_MASK>
-      <ELAND_SEED_LENGTH1>32</ELAND_SEED_LENGTH1>
-      <READS>1</READS>
-      <READ_LENGTH1>49</READ_LENGTH1>
-      <USE_BASES>Y*n</USE_BASES>
-      <USE_BASES1>yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyn</USE_BASES1>
-    </Project>
-    <Project name="Undetermined_indices">
-      <ANALYSIS>none</ANALYSIS>
-    </Project>
-  </Projects>
-  <References>
-    <Reference name="mm9">
-      <ANALYSIS>eland_extended</ANALYSIS>
-      <CHROM_NAME_SOURCE>fileName</CHROM_NAME_SOURCE>
-      <ELAND_GENOME>/mmjggl/nicodemus/data01/genomes/mm9/chromosomes/</ELAND_GENOME>
-      <ELAND_GENOME_MASK>*.fa</ELAND_GENOME_MASK>
-      <ELAND_SEED_LENGTH1>32</ELAND_SEED_LENGTH1>
-      <READS>1</READS>
-      <READ_LENGTH1>49</READ_LENGTH1>
-      <USE_BASES>Y*n</USE_BASES>
-      <USE_BASES1>yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyn</USE_BASES1>
-    </Reference>
-  </References>
-  <Samples>
-  </Samples>
-  <Software CmdAndArgs="/mmjggl/nicodemus/data01/casava-v1.8.1/bin/configureAlignment.pl config.txt --EXPT_DIR /mmjggl/nicodemus/data01/sequencer/110815_SN787_0101_AD07K6ACXX/Unaligned_1MM/ --OUT_DIR /mmjggl/nicodemus/data01/sequencer/110815_SN787_0101_AD07K6ACXX/Aligned_1MM -make" Name="configureAlignment.pl" Version="CASAVA-1.8.1">
-    <Software CmdAndArgs="/mmjggl/nicodemus/data01/casava-v1.8.1/bin/configureBclToFastq.pl --input-dir Data/Intensities/BaseCalls/ --output-dir Unaligned_1MM --sample-sheet Data/Intensities/BaseCalls/SampleSheet.csv --mismatches 1" Name="configureBclToFastq.pl" Version="CASAVA-1.8.1">
-      <Software Name="RTA" Version="1.12.4.2">
-        <Software Name="RTA" Version="1.12.4.2">
-          <Software Name="HiSeq Control Software" Platform="HiSeq" Version="1.4.8" />
-        </Software>
-      </Software>
-    </Software>
-  </Software>
-</RunParameters>
diff --git a/htsworkflow/pipelines/test/testdata/demultiplex_1.12.4.2.xml b/htsworkflow/pipelines/test/testdata/demultiplex_1.12.4.2.xml
deleted file mode 100644 (file)
index e7ee38d..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-<DemultiplexConfig>
-  <Software Version="CASAVA-1.8.1" CmdAndArgs="/mmjggl/nicodemus/data01/casava-v1.8.1/bin/configureBclToFastq.pl --input-dir Data/Intensities/BaseCalls/ --output-dir Unaligned --sample-sheet Data/Intensities/BaseCalls/SampleSheet.csv" Name="configureBclToFastq.pl">
-    <Software Version="1.12.4.2" Name="RTA">
-      <Software Version="1.12.4.2" Name="RTA">
-        <Software Version="1.4.8" Platform="HiSeq" Name="HiSeq Control Software" />
-      </Software>
-    </Software>
-  </Software>
-  <FlowcellInfo ID="D07K6ACXX" Operator="Lorian" Recipe="SR_indexing" Desc="">
-    <Lane Number="1">
-      <Sample ProjectId="12281" Control="N" Index="ACAGTG" SampleId="12281" Desc="Index #5 AWCon cell#3_N2" Ref="elegans190" />
-      <Sample ProjectId="12279" Control="N" Index="CGATGT" SampleId="12279" Desc="Index #2 AWCon cell#1_N2" Ref="elegans190" />
-      <Sample ProjectId="12280" Control="N" Index="TGACCA" SampleId="12280" Desc="Index #4 AWCon cell#2_N2" Ref="elegans190" />
-      <Sample ProjectId="Undetermined_indices" Control="N" Index="Undetermined" SampleId="lane1" Desc="Clusters with unmatched barcodes for lane 1" Ref="unknown" />
-    </Lane>
-    <Lane Number="2">
-      <Sample ProjectId="12345" Control="N" Index="ACAGTG" SampleId="12345" Desc="Index #5 3 AWC ablated CX3695" Ref="elegans190" />
-      <Sample ProjectId="12283" Control="N" Index="CAGATC" SampleId="12283" Desc="Index #7 AWCon cell#5_N2" Ref="elegans190" />
-      <Sample ProjectId="12282" Control="N" Index="GCCAAT" SampleId="12282" Desc="Index #6 AWCon cell#4_N2" Ref="elegans190" />
-      <Sample ProjectId="Undetermined_indices" Control="N" Index="Undetermined" SampleId="lane2" Desc="Clusters with unmatched barcodes for lane 2" Ref="unknown" />
-    </Lane>
-    <Lane Number="3">
-      <Sample ProjectId="12331" Control="N" Index="ACAGTG" SampleId="12331" Desc="Index #5 060111 FLDN2b(d8.5) H3K4me3 ChIP" Ref="mm9" />
-      <Sample ProjectId="12383" Control="N" Index="CGATGT" SampleId="12383" Desc="Index #2 jwp ix-65 ni 16h" Ref="hg18" />
-      <Sample ProjectId="12330" Control="N" Index="TGACCA" SampleId="12330" Desc="Index #4 060111 Bcl11bKO DL4 FLDN2a H3K4me3 ChIP" Ref="mm9" />
-      <Sample ProjectId="Undetermined_indices" Control="N" Index="Undetermined" SampleId="lane3" Desc="Clusters with unmatched barcodes for lane 3" Ref="unknown" />
-    </Lane>
-    <Lane Number="4">
-      <Sample ProjectId="12385" Control="N" Index="ACAGTG" SampleId="12385" Desc="Index #5 jwp ix-65 i 16h" Ref="hg18" />
-      <Sample ProjectId="12386" Control="N" Index="GCCAAT" SampleId="12386" Desc="Index #6 jwp ix-71 NI 16h" Ref="hg18" />
-      <Sample ProjectId="12384" Control="N" Index="TGACCA" SampleId="12384" Desc="index #4 jwp ix-65 RD 16h" Ref="hg18" />
-      <Sample ProjectId="Undetermined_indices" Control="N" Index="Undetermined" SampleId="lane4" Desc="Clusters with unmatched barcodes for lane 4" Ref="unknown" />
-    </Lane>
-    <Lane Number="5">
-      <Sample ProjectId="12387" Control="N" Index="CAGATC" SampleId="12387" Desc="Index #7 jwp ix-71 RD 16h" Ref="hg18" />
-      <Sample ProjectId="12388" Control="N" Index="CTTGTA" SampleId="12388" Desc="Index #12 jwp ix-71 i 16h" Ref="hg18" />
-      <Sample ProjectId="Undetermined_indices" Control="N" Index="Undetermined" SampleId="lane5" Desc="Clusters with unmatched barcodes for lane 5" Ref="unknown" />
-    </Lane>
-    <Lane Number="6">
-      <Sample ProjectId="12391" Control="N" Index="ACTTGA" SampleId="12391" Desc="Index #8 jwp ix-63 NI 4h" Ref="hg18" />
-      <Sample ProjectId="12392" Control="N" Index="GATCAG" SampleId="12392" Desc="Index #9 jwp ix-63 DHT 10uM PA 4h" Ref="hg18" />
-      <Sample ProjectId="12393" Control="N" Index="TAGCTT" SampleId="12393" Desc="Index #10 jwp ix-63 DHT 4h" Ref="hg18" />
-      <Sample ProjectId="Undetermined_indices" Control="N" Index="Undetermined" SampleId="lane6" Desc="Clusters with unmatched barcodes for lane 6" Ref="unknown" />
-    </Lane>
-    <Lane Number="7">
-      <Sample ProjectId="12348_Index5" Control="N" Index="ACAGTG" SampleId="12348" Desc="Indices #1-9 Small RNA OSS TJ-GFP and constr.E-H" Ref="dm3" />
-      <Sample ProjectId="12348_Index8" Control="N" Index="ACTTGA" SampleId="12348" Desc="Indices #1-9 Small RNA OSS TJ-GFP and constr.E-H" Ref="dm3" />
-      <Sample ProjectId="12348_Index1" Control="N" Index="ATCACG" SampleId="12348" Desc="Indices #1-9 Small RNA OSS TJ-GFP and constr.E-H" Ref="dm3" />
-      <Sample ProjectId="12348_Index7" Control="N" Index="CAGATC" SampleId="12348" Desc="Indices #1-9 Small RNA OSS TJ-GFP and constr.E-H" Ref="dm3" />
-      <Sample ProjectId="12348_Index2" Control="N" Index="CGATGT" SampleId="12348" Desc="Indices #1-9 Small RNA OSS TJ-GFP and constr.E-H" Ref="dm3" />
-      <Sample ProjectId="12348_Index9" Control="N" Index="GATCAG" SampleId="12348" Desc="Indices #1-9 Small RNA OSS TJ-GFP and constr.E-H" Ref="dm3" />
-      <Sample ProjectId="12348_Index6" Control="N" Index="GCCAAT" SampleId="12348" Desc="Indices #1-9 Small RNA OSS TJ-GFP and constr.E-H" Ref="dm3" />
-      <Sample ProjectId="12348_Index4" Control="N" Index="TGACCA" SampleId="12348" Desc="Indices #1-9 Small RNA OSS TJ-GFP and constr.E-H" Ref="dm3" />
-      <Sample ProjectId="12348_Index3" Control="N" Index="TTAGGC" SampleId="12348" Desc="Indices #1-9 Small RNA OSS TJ-GFP and constr.E-H" Ref="dm3" />
-      <Sample ProjectId="Undetermined_indices" Control="N" Index="Undetermined" SampleId="lane7" Desc="Clusters with unmatched barcodes for lane 7" Ref="unknown" />
-    </Lane>
-    <Lane Number="8">
-      <Sample ProjectId="12382_Index5" Control="N" Index="ACAGTG" SampleId="12382" Desc="Small RNA Index #RPI1-RPI10 Human bladder cancer small RNA" Ref="hg18" />
-      <Sample ProjectId="12382_Index8" Control="N" Index="ACTTGA" SampleId="12382" Desc="Small RNA Index #RPI1-RPI10 Human bladder cancer small RNA" Ref="hg18" />
-      <Sample ProjectId="12382_Index1" Control="N" Index="ATCACG" SampleId="12382" Desc="Small RNA Index #RPI1-RPI10 Human bladder cancer small RNA" Ref="hg18" />
-      <Sample ProjectId="12382_Index7" Control="N" Index="CAGATC" SampleId="12382" Desc="Small RNA Index #RPI1-RPI10 Human bladder cancer small RNA" Ref="hg18" />
-      <Sample ProjectId="12382_Index2" Control="N" Index="CGATGT" SampleId="12382" Desc="Small RNA Index #RPI1-RPI10 Human bladder cancer small RNA" Ref="hg18" />
-      <Sample ProjectId="12382_Index9" Control="N" Index="GATCAG" SampleId="12382" Desc="Small RNA Index #RPI1-RPI10 Human bladder cancer small RNA" Ref="hg18" />
-      <Sample ProjectId="12382_Index6" Control="N" Index="GCCAAT" SampleId="12382" Desc="Small RNA Index #RPI1-RPI10 Human bladder cancer small RNA" Ref="hg18" />
-      <Sample ProjectId="12382_Index10" Control="N" Index="TAGCTT" SampleId="12382" Desc="Small RNA Index #RPI1-RPI10 Human bladder cancer small RNA" Ref="hg18" />
-      <Sample ProjectId="12382_Index4" Control="N" Index="TGACCA" SampleId="12382" Desc="Small RNA Index #RPI1-RPI10 Human bladder cancer small RNA" Ref="hg18" />
-      <Sample ProjectId="12382_Index3" Control="N" Index="TTAGGC" SampleId="12382" Desc="Small RNA Index #RPI1-RPI10 Human bladder cancer small RNA" Ref="hg18" />
-      <Sample ProjectId="Undetermined_indices" Control="N" Index="Undetermined" SampleId="lane8" Desc="Clusters with unmatched barcodes for lane 8" Ref="unknown" />
-    </Lane>
-  </FlowcellInfo>
-</DemultiplexConfig>
diff --git a/htsworkflow/pipelines/test/testdata/demultiplexed_bustard_1.12.4.2.xml b/htsworkflow/pipelines/test/testdata/demultiplexed_bustard_1.12.4.2.xml
deleted file mode 100644 (file)
index ea6a596..0000000
+++ /dev/null
@@ -1,503 +0,0 @@
-<?xml version="1.0"?>
-<BaseCallAnalysis xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-  <Run Name="BaseCalls">
-    <BaseCallParameters>
-      <ChastityThreshold>0.6</ChastityThreshold>
-      <Matrix Path="">
-        <AutoFlag>2</AutoFlag>
-        <AutoLane>0</AutoLane>
-        <Cycle>1</Cycle>
-        <CycleOffset>0</CycleOffset>
-        <FirstCycle>1</FirstCycle>
-        <LastCycle>50</LastCycle>
-        <Read>1</Read>
-      </Matrix>
-      <Matrix Path="">
-        <AutoFlag>2</AutoFlag>
-        <AutoLane>0</AutoLane>
-        <Cycle>51</Cycle>
-        <CycleOffset>0</CycleOffset>
-        <FirstCycle>51</FirstCycle>
-        <LastCycle>57</LastCycle>
-        <Read>2</Read>
-      </Matrix>
-      <Phasing Path="">
-        <AutoFlag>2</AutoFlag>
-        <AutoLane>0</AutoLane>
-        <Cycle>2</Cycle>
-        <CycleOffset>1</CycleOffset>
-        <FirstCycle>1</FirstCycle>
-        <LastCycle>50</LastCycle>
-        <PhasingRate>0</PhasingRate>
-        <PrephasingRate>0</PrephasingRate>
-        <Read>1</Read>
-      </Phasing>
-      <Phasing Path="">
-        <AutoFlag>2</AutoFlag>
-        <AutoLane>0</AutoLane>
-        <Cycle>52</Cycle>
-        <CycleOffset>1</CycleOffset>
-        <FirstCycle>51</FirstCycle>
-        <LastCycle>57</LastCycle>
-        <PhasingRate>0</PhasingRate>
-        <PrephasingRate>0</PrephasingRate>
-        <Read>2</Read>
-      </Phasing>
-      <PureBases>0</PureBases>
-      <SmtFilter>failed-chastity</SmtFilter>
-      <SmtRelation>le</SmtRelation>
-      <SmtThreshold>1.0</SmtThreshold>
-    </BaseCallParameters>
-    <Cycles First="1" Last="57" Number="57"/>
-    <RunParameters>
-      <AutoCycleFlag>0</AutoCycleFlag>
-      <Barcode>
-        <Cycle Use="true">51</Cycle>
-        <Cycle Use="true">52</Cycle>
-        <Cycle Use="true">53</Cycle>
-        <Cycle Use="true">54</Cycle>
-        <Cycle Use="true">55</Cycle>
-        <Cycle Use="true">56</Cycle>
-        <Cycle Use="true">57</Cycle>
-      </Barcode>
-      <BasecallFlag>0</BasecallFlag>
-      <Deblocked>0</Deblocked>
-      <DebugFlag>0</DebugFlag>
-      <FirstRunOnlyFlag>0</FirstRunOnlyFlag>
-      <ImagingReads Index="1">
-        <FirstCycle>1</FirstCycle>
-        <LastCycle>50</LastCycle>
-      </ImagingReads>
-      <ImagingReads Index="2">
-        <FirstCycle>51</FirstCycle>
-        <LastCycle>57</LastCycle>
-        <RunFolder>110815_SN787_0101_AD07K6ACXX</RunFolder>
-      </ImagingReads>
-      <Instrument>HWI-ST0787</Instrument>
-      <IterativeMatrixFlag>0</IterativeMatrixFlag>
-      <MakeFlag>0</MakeFlag>
-      <MaxCycle>0</MaxCycle>
-      <MinCycle>0</MinCycle>
-      <QTableVersion>New6</QTableVersion>
-      <RunFlowcellId>D07K6ACXX</RunFlowcellId>
-      <RunFolder>110815_SN787_0101_AD07K6ACXX</RunFolder>
-      <RunFolderDate>110815</RunFolderDate>
-      <RunFolderId>0101</RunFolderId>
-      <Reads Index="1">
-        <FirstCycle>1</FirstCycle>
-        <LastCycle>50</LastCycle>
-      </Reads>
-    </RunParameters>
-    <Software Name="RTA" Version="1.12.4.2"/>
-    <TileSelection>
-      <Lane Index="1">
-        <Sample>s</Sample>
-        <Tile>1102</Tile>
-        <Tile>1101</Tile>
-        <Tile>1103</Tile>
-        <Tile>1106</Tile>
-        <Tile>1104</Tile>
-        <Tile>1105</Tile>
-        <Tile>1108</Tile>
-        <Tile>1107</Tile>
-        <Tile>1202</Tile>
-        <Tile>1201</Tile>
-        <Tile>1206</Tile>
-        <Tile>1204</Tile>
-        <Tile>1203</Tile>
-        <Tile>1205</Tile>
-        <Tile>1302</Tile>
-        <Tile>1208</Tile>
-        <Tile>1207</Tile>
-        <Tile>1301</Tile>
-        <Tile>1306</Tile>
-        <Tile>1304</Tile>
-        <Tile>1305</Tile>
-        <Tile>2102</Tile>
-        <Tile>1303</Tile>
-        <Tile>1308</Tile>
-        <Tile>2101</Tile>
-        <Tile>1307</Tile>
-        <Tile>2106</Tile>
-        <Tile>2104</Tile>
-        <Tile>2105</Tile>
-        <Tile>2103</Tile>
-        <Tile>2202</Tile>
-        <Tile>2108</Tile>
-        <Tile>2201</Tile>
-        <Tile>2206</Tile>
-        <Tile>2107</Tile>
-        <Tile>2205</Tile>
-        <Tile>2204</Tile>
-        <Tile>2203</Tile>
-        <Tile>2302</Tile>
-        <Tile>2301</Tile>
-        <Tile>2208</Tile>
-        <Tile>2306</Tile>
-        <Tile>2207</Tile>
-        <Tile>2305</Tile>
-        <Tile>2303</Tile>
-        <Tile>2304</Tile>
-        <Tile>2308</Tile>
-        <Tile>2307</Tile>
-      </Lane>
-      <Lane Index="2">
-        <Sample>s</Sample>
-        <Tile>1101</Tile>
-        <Tile>1102</Tile>
-        <Tile>1105</Tile>
-        <Tile>1106</Tile>
-        <Tile>1104</Tile>
-        <Tile>1103</Tile>
-        <Tile>1201</Tile>
-        <Tile>1202</Tile>
-        <Tile>1108</Tile>
-        <Tile>1206</Tile>
-        <Tile>1107</Tile>
-        <Tile>1205</Tile>
-        <Tile>1302</Tile>
-        <Tile>1204</Tile>
-        <Tile>1301</Tile>
-        <Tile>1203</Tile>
-        <Tile>1208</Tile>
-        <Tile>1306</Tile>
-        <Tile>1305</Tile>
-        <Tile>1207</Tile>
-        <Tile>1304</Tile>
-        <Tile>2101</Tile>
-        <Tile>2102</Tile>
-        <Tile>1308</Tile>
-        <Tile>2105</Tile>
-        <Tile>1303</Tile>
-        <Tile>2201</Tile>
-        <Tile>2106</Tile>
-        <Tile>2104</Tile>
-        <Tile>1307</Tile>
-        <Tile>2205</Tile>
-        <Tile>2202</Tile>
-        <Tile>2108</Tile>
-        <Tile>2206</Tile>
-        <Tile>2103</Tile>
-        <Tile>2301</Tile>
-        <Tile>2204</Tile>
-        <Tile>2208</Tile>
-        <Tile>2107</Tile>
-        <Tile>2302</Tile>
-        <Tile>2305</Tile>
-        <Tile>2304</Tile>
-        <Tile>2203</Tile>
-        <Tile>2306</Tile>
-        <Tile>2308</Tile>
-        <Tile>2207</Tile>
-        <Tile>2303</Tile>
-        <Tile>2307</Tile>
-      </Lane>
-      <Lane Index="3">
-        <Sample>s</Sample>
-        <Tile>1101</Tile>
-        <Tile>1102</Tile>
-        <Tile>1105</Tile>
-        <Tile>1104</Tile>
-        <Tile>1108</Tile>
-        <Tile>1106</Tile>
-        <Tile>1201</Tile>
-        <Tile>1103</Tile>
-        <Tile>1204</Tile>
-        <Tile>1202</Tile>
-        <Tile>1205</Tile>
-        <Tile>1107</Tile>
-        <Tile>1208</Tile>
-        <Tile>1206</Tile>
-        <Tile>1301</Tile>
-        <Tile>1304</Tile>
-        <Tile>1203</Tile>
-        <Tile>1302</Tile>
-        <Tile>1308</Tile>
-        <Tile>1305</Tile>
-        <Tile>1207</Tile>
-        <Tile>2101</Tile>
-        <Tile>2104</Tile>
-        <Tile>1306</Tile>
-        <Tile>1303</Tile>
-        <Tile>2102</Tile>
-        <Tile>2105</Tile>
-        <Tile>2108</Tile>
-        <Tile>1307</Tile>
-        <Tile>2106</Tile>
-        <Tile>2204</Tile>
-        <Tile>2201</Tile>
-        <Tile>2103</Tile>
-        <Tile>2208</Tile>
-        <Tile>2202</Tile>
-        <Tile>2107</Tile>
-        <Tile>2205</Tile>
-        <Tile>2301</Tile>
-        <Tile>2304</Tile>
-        <Tile>2203</Tile>
-        <Tile>2206</Tile>
-        <Tile>2207</Tile>
-        <Tile>2305</Tile>
-        <Tile>2308</Tile>
-        <Tile>2302</Tile>
-        <Tile>2303</Tile>
-        <Tile>2307</Tile>
-        <Tile>2306</Tile>
-      </Lane>
-      <Lane Index="4">
-        <Sample>s</Sample>
-        <Tile>1101</Tile>
-        <Tile>1104</Tile>
-        <Tile>1103</Tile>
-        <Tile>1102</Tile>
-        <Tile>1108</Tile>
-        <Tile>1105</Tile>
-        <Tile>1107</Tile>
-        <Tile>1106</Tile>
-        <Tile>1204</Tile>
-        <Tile>1201</Tile>
-        <Tile>1203</Tile>
-        <Tile>1202</Tile>
-        <Tile>1208</Tile>
-        <Tile>1205</Tile>
-        <Tile>1207</Tile>
-        <Tile>1206</Tile>
-        <Tile>1304</Tile>
-        <Tile>1301</Tile>
-        <Tile>1302</Tile>
-        <Tile>1308</Tile>
-        <Tile>1303</Tile>
-        <Tile>1305</Tile>
-        <Tile>1306</Tile>
-        <Tile>1307</Tile>
-        <Tile>2104</Tile>
-        <Tile>2101</Tile>
-        <Tile>2108</Tile>
-        <Tile>2102</Tile>
-        <Tile>2103</Tile>
-        <Tile>2105</Tile>
-        <Tile>2204</Tile>
-        <Tile>2106</Tile>
-        <Tile>2107</Tile>
-        <Tile>2201</Tile>
-        <Tile>2208</Tile>
-        <Tile>2202</Tile>
-        <Tile>2203</Tile>
-        <Tile>2304</Tile>
-        <Tile>2205</Tile>
-        <Tile>2206</Tile>
-        <Tile>2207</Tile>
-        <Tile>2308</Tile>
-        <Tile>2301</Tile>
-        <Tile>2302</Tile>
-        <Tile>2303</Tile>
-        <Tile>2305</Tile>
-        <Tile>2307</Tile>
-        <Tile>2306</Tile>
-      </Lane>
-      <Lane Index="5">
-        <Sample>s</Sample>
-        <Tile>1104</Tile>
-        <Tile>1108</Tile>
-        <Tile>1101</Tile>
-        <Tile>1204</Tile>
-        <Tile>1102</Tile>
-        <Tile>1103</Tile>
-        <Tile>1106</Tile>
-        <Tile>1105</Tile>
-        <Tile>1107</Tile>
-        <Tile>1208</Tile>
-        <Tile>1201</Tile>
-        <Tile>1202</Tile>
-        <Tile>1203</Tile>
-        <Tile>1304</Tile>
-        <Tile>1205</Tile>
-        <Tile>1206</Tile>
-        <Tile>1301</Tile>
-        <Tile>1308</Tile>
-        <Tile>1207</Tile>
-        <Tile>1302</Tile>
-        <Tile>2104</Tile>
-        <Tile>1303</Tile>
-        <Tile>1305</Tile>
-        <Tile>1306</Tile>
-        <Tile>2101</Tile>
-        <Tile>2102</Tile>
-        <Tile>1307</Tile>
-        <Tile>2108</Tile>
-        <Tile>2204</Tile>
-        <Tile>2103</Tile>
-        <Tile>2105</Tile>
-        <Tile>2107</Tile>
-        <Tile>2106</Tile>
-        <Tile>2201</Tile>
-        <Tile>2208</Tile>
-        <Tile>2203</Tile>
-        <Tile>2202</Tile>
-        <Tile>2304</Tile>
-        <Tile>2206</Tile>
-        <Tile>2205</Tile>
-        <Tile>2207</Tile>
-        <Tile>2302</Tile>
-        <Tile>2301</Tile>
-        <Tile>2303</Tile>
-        <Tile>2308</Tile>
-        <Tile>2305</Tile>
-        <Tile>2307</Tile>
-        <Tile>2306</Tile>
-      </Lane>
-      <Lane Index="6">
-        <Sample>s</Sample>
-        <Tile>1104</Tile>
-        <Tile>1101</Tile>
-        <Tile>1103</Tile>
-        <Tile>1102</Tile>
-        <Tile>1108</Tile>
-        <Tile>1107</Tile>
-        <Tile>1105</Tile>
-        <Tile>1106</Tile>
-        <Tile>1204</Tile>
-        <Tile>1203</Tile>
-        <Tile>1201</Tile>
-        <Tile>1202</Tile>
-        <Tile>1208</Tile>
-        <Tile>1207</Tile>
-        <Tile>1205</Tile>
-        <Tile>1206</Tile>
-        <Tile>1304</Tile>
-        <Tile>1303</Tile>
-        <Tile>1301</Tile>
-        <Tile>1302</Tile>
-        <Tile>1308</Tile>
-        <Tile>1307</Tile>
-        <Tile>1305</Tile>
-        <Tile>2104</Tile>
-        <Tile>1306</Tile>
-        <Tile>2103</Tile>
-        <Tile>2101</Tile>
-        <Tile>2102</Tile>
-        <Tile>2108</Tile>
-        <Tile>2107</Tile>
-        <Tile>2105</Tile>
-        <Tile>2106</Tile>
-        <Tile>2204</Tile>
-        <Tile>2203</Tile>
-        <Tile>2202</Tile>
-        <Tile>2201</Tile>
-        <Tile>2208</Tile>
-        <Tile>2207</Tile>
-        <Tile>2206</Tile>
-        <Tile>2205</Tile>
-        <Tile>2304</Tile>
-        <Tile>2303</Tile>
-        <Tile>2302</Tile>
-        <Tile>2301</Tile>
-        <Tile>2307</Tile>
-        <Tile>2308</Tile>
-        <Tile>2306</Tile>
-        <Tile>2305</Tile>
-      </Lane>
-      <Lane Index="7">
-        <Sample>s</Sample>
-        <Tile>1103</Tile>
-        <Tile>1107</Tile>
-        <Tile>1104</Tile>
-        <Tile>1108</Tile>
-        <Tile>1203</Tile>
-        <Tile>1101</Tile>
-        <Tile>1102</Tile>
-        <Tile>1204</Tile>
-        <Tile>1105</Tile>
-        <Tile>1207</Tile>
-        <Tile>1106</Tile>
-        <Tile>1208</Tile>
-        <Tile>1201</Tile>
-        <Tile>1202</Tile>
-        <Tile>1303</Tile>
-        <Tile>1205</Tile>
-        <Tile>1206</Tile>
-        <Tile>1307</Tile>
-        <Tile>1304</Tile>
-        <Tile>1301</Tile>
-        <Tile>1302</Tile>
-        <Tile>1305</Tile>
-        <Tile>1308</Tile>
-        <Tile>2103</Tile>
-        <Tile>1306</Tile>
-        <Tile>2101</Tile>
-        <Tile>2107</Tile>
-        <Tile>2104</Tile>
-        <Tile>2105</Tile>
-        <Tile>2102</Tile>
-        <Tile>2108</Tile>
-        <Tile>2203</Tile>
-        <Tile>2201</Tile>
-        <Tile>2106</Tile>
-        <Tile>2205</Tile>
-        <Tile>2207</Tile>
-        <Tile>2202</Tile>
-        <Tile>2204</Tile>
-        <Tile>2301</Tile>
-        <Tile>2303</Tile>
-        <Tile>2206</Tile>
-        <Tile>2208</Tile>
-        <Tile>2305</Tile>
-        <Tile>2307</Tile>
-        <Tile>2302</Tile>
-        <Tile>2304</Tile>
-        <Tile>2306</Tile>
-        <Tile>2308</Tile>
-      </Lane>
-      <Lane Index="8">
-        <Sample>s</Sample>
-        <Tile>1101</Tile>
-        <Tile>1103</Tile>
-        <Tile>1102</Tile>
-        <Tile>1105</Tile>
-        <Tile>1107</Tile>
-        <Tile>1104</Tile>
-        <Tile>1106</Tile>
-        <Tile>1201</Tile>
-        <Tile>1108</Tile>
-        <Tile>1203</Tile>
-        <Tile>1202</Tile>
-        <Tile>1205</Tile>
-        <Tile>1207</Tile>
-        <Tile>1204</Tile>
-        <Tile>1206</Tile>
-        <Tile>1301</Tile>
-        <Tile>1208</Tile>
-        <Tile>1303</Tile>
-        <Tile>1302</Tile>
-        <Tile>1305</Tile>
-        <Tile>1307</Tile>
-        <Tile>1304</Tile>
-        <Tile>1306</Tile>
-        <Tile>2101</Tile>
-        <Tile>1308</Tile>
-        <Tile>2103</Tile>
-        <Tile>2105</Tile>
-        <Tile>2102</Tile>
-        <Tile>2107</Tile>
-        <Tile>2106</Tile>
-        <Tile>2104</Tile>
-        <Tile>2201</Tile>
-        <Tile>2205</Tile>
-        <Tile>2202</Tile>
-        <Tile>2203</Tile>
-        <Tile>2108</Tile>
-        <Tile>2206</Tile>
-        <Tile>2301</Tile>
-        <Tile>2207</Tile>
-        <Tile>2204</Tile>
-        <Tile>2305</Tile>
-        <Tile>2302</Tile>
-        <Tile>2303</Tile>
-        <Tile>2208</Tile>
-        <Tile>2306</Tile>
-        <Tile>2307</Tile>
-        <Tile>2304</Tile>
-        <Tile>2308</Tile>
-      </Lane>
-    </TileSelection>
-  </Run>
-</BaseCallAnalysis>
diff --git a/htsworkflow/pipelines/test/testdata/demultiplexed_summary_1.12.4.2.xml b/htsworkflow/pipelines/test/testdata/demultiplexed_summary_1.12.4.2.xml
deleted file mode 100644 (file)
index ebc9f4a..0000000
+++ /dev/null
@@ -1,3669 +0,0 @@
-<?xml version="1.0"?>
-<BustardSummary>
-  <ChipResultsSummary>
-    <clusterCountPF>454185731</clusterCountPF>
-    <clusterCountRaw>781064977</clusterCountRaw>
-    <yield>25888586667</yield>
-  </ChipResultsSummary>
-  <ChipSummary>
-    <ChipID>unknown</ChipID>
-    <Machine>HWI-ST0787</Machine>
-    <RunFolder>110815_SN787_0101_AD07K6ACXX</RunFolder>
-  </ChipSummary>
-  <Date>2011-08-18 20:18:19</Date>
-  <ExpandedLaneSummary>
-    <Read>
-      <Lane>
-        <clusterCountRaw>
-          <mean>3707807.14</mean>
-          <stdev>573671.11</stdev>
-          <sumsq>393825007132852.00</sumsq>
-        </clusterCountRaw>
-        <laneNumber>1</laneNumber>
-        <percentClustersPF>
-          <mean>47.64</mean>
-          <stdev>19.64</stdev>
-          <sumsq>73957.00</sumsq>
-        </percentClustersPF>
-        <phasingApplied>0.3810</phasingApplied>
-        <prephasingApplied>0.0844</prephasingApplied>
-        <signalAverage1to3>
-          <mean>677.00</mean>
-          <stdev>148.48</stdev>
-          <sumsq>13428576.43</sumsq>
-        </signalAverage1to3>
-        <signalAverage2to4>
-          <mean>908.15</mean>
-          <stdev>81.51</stdev>
-          <sumsq>23271897.61</sumsq>
-        </signalAverage2to4>
-        <signalLoss10to20>
-          <mean>-0.30</mean>
-          <stdev>0.38</stdev>
-          <sumsq>6.33</sumsq>
-        </signalLoss10to20>
-        <signalLoss2to10>
-          <mean>-34.61</mean>
-          <stdev>26.97</stdev>
-          <sumsq>53175.44</sumsq>
-        </signalLoss2to10>
-      </Lane>
-      <Lane>
-        <clusterCountRaw>
-          <mean>3329777.81</mean>
-          <stdev>1102200.81</stdev>
-          <sumsq>318644092316267.00</sumsq>
-        </clusterCountRaw>
-        <laneNumber>2</laneNumber>
-        <percentClustersPF>
-          <mean>24.71</mean>
-          <stdev>17.39</stdev>
-          <sumsq>23436.66</sumsq>
-        </percentClustersPF>
-        <phasingApplied>0.3694</phasingApplied>
-        <prephasingApplied>0.2507</prephasingApplied>
-        <signalAverage1to3>
-          <mean>820.85</mean>
-          <stdev>175.96</stdev>
-          <sumsq>18292849.43</sumsq>
-        </signalAverage1to3>
-        <signalAverage2to4>
-          <mean>864.16</mean>
-          <stdev>95.34</stdev>
-          <sumsq>19643349.08</sumsq>
-        </signalAverage2to4>
-        <signalLoss10to20>
-          <mean>-5.69</mean>
-          <stdev>12.59</stdev>
-          <sumsq>4807.74</sumsq>
-        </signalLoss10to20>
-        <signalLoss2to10>
-          <mean>-34.31</mean>
-          <stdev>22.59</stdev>
-          <sumsq>43354.50</sumsq>
-        </signalLoss2to10>
-      </Lane>
-      <Lane>
-        <clusterCountRaw>
-          <mean>6268934.50</mean>
-          <stdev>241767.87</stdev>
-          <sumsq>314805480030044.00</sumsq>
-        </clusterCountRaw>
-        <laneNumber>3</laneNumber>
-        <percentClustersPF>
-          <mean>36.04</mean>
-          <stdev>12.81</stdev>
-          <sumsq>11541.60</sumsq>
-        </percentClustersPF>
-        <phasingApplied>0.2469</phasingApplied>
-        <prephasingApplied>0.2002</prephasingApplied>
-        <signalAverage1to3>
-          <mean>1094.84</mean>
-          <stdev>135.96</stdev>
-          <sumsq>9718779.89</sumsq>
-        </signalAverage1to3>
-        <signalAverage2to4>
-          <mean>1114.24</mean>
-          <stdev>57.49</stdev>
-          <sumsq>9955389.55</sumsq>
-        </signalAverage2to4>
-        <signalLoss10to20>
-          <mean>-4.20</mean>
-          <stdev>13.18</stdev>
-          <sumsq>1357.57</sumsq>
-        </signalLoss10to20>
-        <signalLoss2to10>
-          <mean>-53.53</mean>
-          <stdev>38.21</stdev>
-          <sumsq>33143.61</sumsq>
-        </signalLoss2to10>
-      </Lane>
-      <Lane>
-        <clusterCountRaw>
-          <mean>6055508.12</mean>
-          <stdev>166741.39</stdev>
-          <sumsq>293548048051419.00</sumsq>
-        </clusterCountRaw>
-        <laneNumber>4</laneNumber>
-        <percentClustersPF>
-          <mean>32.69</mean>
-          <stdev>7.60</stdev>
-          <sumsq>8952.16</sumsq>
-        </percentClustersPF>
-        <phasingApplied>0.2104</phasingApplied>
-        <prephasingApplied>0.1803</prephasingApplied>
-        <signalAverage1to3>
-          <mean>1106.96</mean>
-          <stdev>62.20</stdev>
-          <sumsq>9829917.93</sumsq>
-        </signalAverage1to3>
-        <signalAverage2to4>
-          <mean>1036.31</mean>
-          <stdev>128.16</stdev>
-          <sumsq>8706439.16</sumsq>
-        </signalAverage2to4>
-        <signalLoss10to20>
-          <mean>-9.55</mean>
-          <stdev>18.68</stdev>
-          <sumsq>3171.25</sumsq>
-        </signalLoss10to20>
-        <signalLoss2to10>
-          <mean>-44.30</mean>
-          <stdev>34.27</stdev>
-          <sumsq>23924.49</sumsq>
-        </signalLoss2to10>
-      </Lane>
-      <Lane>
-        <clusterCountRaw>
-          <mean>5643648.67</mean>
-          <stdev>137235.86</stdev>
-          <sumsq>95589978179428.00</sumsq>
-        </clusterCountRaw>
-        <laneNumber>5</laneNumber>
-        <percentClustersPF>
-          <mean>14.96</mean>
-          <stdev>10.60</stdev>
-          <sumsq>895.87</sumsq>
-        </percentClustersPF>
-        <phasingApplied>0.0000</phasingApplied>
-        <prephasingApplied>0.0000</prephasingApplied>
-        <signalAverage1to3>
-          <mean>-593.62</mean>
-          <stdev>74.55</stdev>
-          <sumsq>1068254.69</sumsq>
-        </signalAverage1to3>
-        <signalAverage2to4>
-          <mean>-623.07</mean>
-          <stdev>71.93</stdev>
-          <sumsq>1174981.61</sumsq>
-        </signalAverage2to4>
-        <signalLoss10to20>
-          <mean>100.00</mean>
-          <stdev>0.00</stdev>
-          <sumsq>30000.00</sumsq>
-        </signalLoss10to20>
-        <signalLoss2to10>
-          <mean>100.00</mean>
-          <stdev>0.00</stdev>
-          <sumsq>30000.00</sumsq>
-        </signalLoss2to10>
-      </Lane>
-      <Lane>
-        <clusterCountRaw>
-          <mean>5707954.48</mean>
-          <stdev>553352.88</stdev>
-          <sumsq>953415170485172.00</sumsq>
-        </clusterCountRaw>
-        <laneNumber>6</laneNumber>
-        <percentClustersPF>
-          <mean>42.22</mean>
-          <stdev>22.39</stdev>
-          <sumsq>65737.40</sumsq>
-        </percentClustersPF>
-        <phasingApplied>0.2670</phasingApplied>
-        <prephasingApplied>0.2116</prephasingApplied>
-        <signalAverage1to3>
-          <mean>976.36</mean>
-          <stdev>216.47</stdev>
-          <sumsq>28956965.77</sumsq>
-        </signalAverage1to3>
-        <signalAverage2to4>
-          <mean>1054.88</mean>
-          <stdev>90.27</stdev>
-          <sumsq>32498684.57</sumsq>
-        </signalAverage2to4>
-        <signalLoss10to20>
-          <mean>0.20</mean>
-          <stdev>0.11</stdev>
-          <sumsq>1.47</sumsq>
-        </signalLoss10to20>
-        <signalLoss2to10>
-          <mean>-79.61</mean>
-          <stdev>16.62</stdev>
-          <sumsq>191509.02</sumsq>
-        </signalLoss2to10>
-      </Lane>
-      <Lane>
-        <clusterCountRaw>
-          <mean>1867305.95</mean>
-          <stdev>444617.44</stdev>
-          <sumsq>158236511701682.00</sumsq>
-        </clusterCountRaw>
-        <laneNumber>7</laneNumber>
-        <percentClustersPF>
-          <mean>94.84</mean>
-          <stdev>11.12</stdev>
-          <sumsq>391931.07</sumsq>
-        </percentClustersPF>
-        <phasingApplied>0.1329</phasingApplied>
-        <prephasingApplied>0.2410</prephasingApplied>
-        <signalAverage1to3>
-          <mean>1399.64</mean>
-          <stdev>129.00</stdev>
-          <sumsq>84935084.50</sumsq>
-        </signalAverage1to3>
-        <signalAverage2to4>
-          <mean>1377.83</mean>
-          <stdev>128.32</stdev>
-          <sumsq>82324018.13</sumsq>
-        </signalAverage2to4>
-        <signalLoss10to20>
-          <mean>0.28</mean>
-          <stdev>0.09</stdev>
-          <sumsq>3.65</sumsq>
-        </signalLoss10to20>
-        <signalLoss2to10>
-          <mean>-4.22</mean>
-          <stdev>14.27</stdev>
-          <sumsq>9317.43</sumsq>
-        </signalLoss2to10>
-      </Lane>
-      <Lane>
-        <clusterCountRaw>
-          <mean>4777517.31</mean>
-          <stdev>599178.35</stdev>
-          <sumsq>1112457930812391.00</sumsq>
-        </clusterCountRaw>
-        <laneNumber>8</laneNumber>
-        <percentClustersPF>
-          <mean>86.54</mean>
-          <stdev>7.43</stdev>
-          <sumsq>362059.12</sumsq>
-        </percentClustersPF>
-        <phasingApplied>0.2192</phasingApplied>
-        <prephasingApplied>0.2346</prephasingApplied>
-        <signalAverage1to3>
-          <mean>1256.98</mean>
-          <stdev>106.05</stdev>
-          <sumsq>76368309.15</sumsq>
-        </signalAverage1to3>
-        <signalAverage2to4>
-          <mean>1233.08</mean>
-          <stdev>110.91</stdev>
-          <sumsq>73561027.92</sumsq>
-        </signalAverage2to4>
-        <signalLoss10to20>
-          <mean>0.63</mean>
-          <stdev>0.08</stdev>
-          <sumsq>19.47</sumsq>
-        </signalLoss10to20>
-        <signalLoss2to10>
-          <mean>-3.98</mean>
-          <stdev>11.04</stdev>
-          <sumsq>6489.36</sumsq>
-        </signalLoss2to10>
-      </Lane>
-      <readNumber>1</readNumber>
-    </Read>
-    
-  </ExpandedLaneSummary>
-  <LaneResultsSummary>
-    <Read>
-      <Lane>
-        <clusterCountPF>
-          <mean>1783290</mean>
-          <stdev>789504</stdev>
-          <sumsq>105873063750160</sumsq>
-        </clusterCountPF>
-        <clusterCountRaw>
-          <mean>3707807</mean>
-          <stdev>573671</stdev>
-          <sumsq>393825007132852</sumsq>
-        </clusterCountRaw>
-        <laneNumber>1</laneNumber>
-        <laneYield>2496606</laneYield>
-        <oneSig>
-          <mean>164</mean>
-          <stdev>410</stdev>
-          <sumsq>5304965</sumsq>
-        </oneSig>
-        <percentClustersPF>
-          <mean>47.64</mean>
-          <stdev>19.64</stdev>
-          <sumsq>73957.00</sumsq>
-        </percentClustersPF>
-        <signal20AsPctOf1>
-          <mean>9.00</mean>
-          <stdev>22.48</stdev>
-          <sumsq>15909.69</sumsq>
-        </signal20AsPctOf1>
-      </Lane>
-      <Lane>
-        <clusterCountPF>
-          <mean>875778</mean>
-          <stdev>826947</stdev>
-          <sumsq>37037748584192</sumsq>
-        </clusterCountPF>
-        <clusterCountRaw>
-          <mean>3329777</mean>
-          <stdev>1102200</stdev>
-          <sumsq>318644092316267</sumsq>
-        </clusterCountRaw>
-        <laneNumber>2</laneNumber>
-        <laneYield>1138512</laneYield>
-        <oneSig>
-          <mean>702</mean>
-          <stdev>480</stdev>
-          <sumsq>18627652</sumsq>
-        </oneSig>
-        <percentClustersPF>
-          <mean>24.71</mean>
-          <stdev>17.39</stdev>
-          <sumsq>23436.66</sumsq>
-        </percentClustersPF>
-        <signal20AsPctOf1>
-          <mean>56.49</mean>
-          <stdev>38.83</stdev>
-          <sumsq>120674.01</sumsq>
-        </signal20AsPctOf1>
-      </Lane>
-      <Lane>
-        <clusterCountPF>
-          <mean>2259006</mean>
-          <stdev>798869</stdev>
-          <sumsq>45292218394019</sumsq>
-        </clusterCountPF>
-        <clusterCountRaw>
-          <mean>6268934</mean>
-          <stdev>241767</stdev>
-          <sumsq>314805480030044</sumsq>
-        </clusterCountRaw>
-        <laneNumber>3</laneNumber>
-        <laneYield>903602</laneYield>
-        <oneSig>
-          <mean>1031</mean>
-          <stdev>419</stdev>
-          <sumsq>9747483</sumsq>
-        </oneSig>
-        <percentClustersPF>
-          <mean>36.04</mean>
-          <stdev>12.81</stdev>
-          <sumsq>11541.60</sumsq>
-        </percentClustersPF>
-        <signal20AsPctOf1>
-          <mean>75.63</mean>
-          <stdev>30.73</stdev>
-          <sumsq>52366.46</sumsq>
-        </signal20AsPctOf1>
-      </Lane>
-      <Lane>
-        <clusterCountPF>
-          <mean>1978985</mean>
-          <stdev>462424</stdev>
-          <sumsq>32827917903219</sumsq>
-        </clusterCountPF>
-        <clusterCountRaw>
-          <mean>6055508</mean>
-          <stdev>166741</stdev>
-          <sumsq>293548048051419</sumsq>
-        </clusterCountRaw>
-        <laneNumber>4</laneNumber>
-        <laneYield>791594</laneYield>
-        <oneSig>
-          <mean>1161</mean>
-          <stdev>61</stdev>
-          <sumsq>10827946</sumsq>
-        </oneSig>
-        <percentClustersPF>
-          <mean>32.69</mean>
-          <stdev>7.60</stdev>
-          <sumsq>8952.16</sumsq>
-        </percentClustersPF>
-        <signal20AsPctOf1>
-          <mean>63.64</mean>
-          <stdev>39.29</stdev>
-          <sumsq>43206.11</sumsq>
-        </signal20AsPctOf1>
-      </Lane>
-      <Lane>
-        <clusterCountPF>
-          <mean>834976</mean>
-          <stdev>570615</stdev>
-          <sumsq>2742761639691</sumsq>
-        </clusterCountPF>
-        <clusterCountRaw>
-          <mean>5643648</mean>
-          <stdev>137235</stdev>
-          <sumsq>95589978179428</sumsq>
-        </clusterCountRaw>
-        <laneNumber>5</laneNumber>
-        <laneYield>125246</laneYield>
-        <oneSig>
-          <mean>-596</mean>
-          <stdev>79</stdev>
-          <sumsq>1080823</sumsq>
-        </oneSig>
-        <percentClustersPF>
-          <mean>14.96</mean>
-          <stdev>10.60</stdev>
-          <sumsq>895.87</sumsq>
-        </percentClustersPF>
-        <signal20AsPctOf1>
-          <mean>147.21</mean>
-          <stdev>7.83</stdev>
-          <sumsq>65137.15</sumsq>
-        </signal20AsPctOf1>
-      </Lane>
-      <Lane>
-        <clusterCountPF>
-          <mean>2467696</mean>
-          <stdev>1423659</stdev>
-          <sumsq>233346910460595</sumsq>
-        </clusterCountPF>
-        <clusterCountRaw>
-          <mean>5707954</mean>
-          <stdev>553352</stdev>
-          <sumsq>953415170485172</sumsq>
-        </clusterCountRaw>
-        <laneNumber>6</laneNumber>
-        <laneYield>3578160</laneYield>
-        <oneSig>
-          <mean>820</mean>
-          <stdev>521</stdev>
-          <sumsq>27135464</sumsq>
-        </oneSig>
-        <percentClustersPF>
-          <mean>42.22</mean>
-          <stdev>22.39</stdev>
-          <sumsq>65737.40</sumsq>
-        </percentClustersPF>
-        <signal20AsPctOf1>
-          <mean>64.69</mean>
-          <stdev>40.68</stdev>
-          <sumsq>167697.34</sumsq>
-        </signal20AsPctOf1>
-      </Lane>
-      <Lane>
-        <clusterCountPF>
-          <mean>1769448</mean>
-          <stdev>464939</stdev>
-          <sumsq>143709845032850</sumsq>
-        </clusterCountPF>
-        <clusterCountRaw>
-          <mean>1867305</mean>
-          <stdev>444617</stdev>
-          <sumsq>158236511701682</sumsq>
-        </clusterCountRaw>
-        <laneNumber>7</laneNumber>
-        <laneYield>3804314</laneYield>
-        <oneSig>
-          <mean>1442</mean>
-          <stdev>84</stdev>
-          <sumsq>89752104</sumsq>
-        </oneSig>
-        <percentClustersPF>
-          <mean>94.84</mean>
-          <stdev>11.12</stdev>
-          <sumsq>391931.07</sumsq>
-        </percentClustersPF>
-        <signal20AsPctOf1>
-          <mean>91.96</mean>
-          <stdev>1.75</stdev>
-          <sumsq>363782.22</sumsq>
-        </signal20AsPctOf1>
-      </Lane>
-      <Lane>
-        <clusterCountPF>
-          <mean>4113020</mean>
-          <stdev>444275</stdev>
-          <sumsq>821290075103817</sumsq>
-        </clusterCountPF>
-        <clusterCountRaw>
-          <mean>4777517</mean>
-          <stdev>599178</stdev>
-          <sumsq>1112457930812391</sumsq>
-        </clusterCountRaw>
-        <laneNumber>8</laneNumber>
-        <laneYield>9871250</laneYield>
-        <oneSig>
-          <mean>1334</mean>
-          <stdev>72</stdev>
-          <sumsq>85708238</sumsq>
-        </oneSig>
-        <percentClustersPF>
-          <mean>86.54</mean>
-          <stdev>7.43</stdev>
-          <sumsq>362059.12</sumsq>
-        </percentClustersPF>
-        <signal20AsPctOf1>
-          <mean>88.24</mean>
-          <stdev>1.70</stdev>
-          <sumsq>373841.88</sumsq>
-        </signal20AsPctOf1>
-      </Lane>
-      <readNumber>1</readNumber>
-    </Read>
-    
-  </LaneResultsSummary>
-  <Software>CASAVA-1.8.1</Software>
-  <TileResultsByLane>
-    <Lane>
-      <Read>
-        <Tile>
-          <clusterCountPF>2195814</clusterCountPF>
-          <clusterCountRaw>3782916</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>58.05</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1101</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>2278273</clusterCountPF>
-          <clusterCountRaw>3732743</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>61.03</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1102</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>4020211</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1103</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>3895725</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1104</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>4134124</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1105</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>4304874</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1106</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>4406771</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1107</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>4057296</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1108</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>2235184</clusterCountPF>
-          <clusterCountRaw>3576569</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>62.50</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1201</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>2303817</clusterCountPF>
-          <clusterCountRaw>3670759</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>62.76</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1202</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>2228868</clusterCountPF>
-          <clusterCountRaw>3917599</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>56.89</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1203</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>4063543</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1204</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>4018922</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1205</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>2207175</clusterCountPF>
-          <clusterCountRaw>4204009</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>52.50</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1206</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>4440729</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1207</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>768164</clusterCountPF>
-          <clusterCountRaw>3715012</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>20.68</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1208</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>2261727</clusterCountPF>
-          <clusterCountRaw>3621480</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>62.45</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1301</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>2347049</clusterCountPF>
-          <clusterCountRaw>3868987</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>60.66</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1302</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>4029778</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1303</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>4153522</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1304</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>4253486</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1305</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>598571</clusterCountPF>
-          <clusterCountRaw>1511883</clusterCountRaw>
-          <oneSig>1096.02</oneSig>
-          <percentClustersPF>39.59</percentClustersPF>
-          <signal20AsPctOf1>63.03</signal20AsPctOf1>
-          <tileNumber>1306</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>4540851</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1307</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>762937</clusterCountPF>
-          <clusterCountRaw>3797909</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>20.09</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1308</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>2212968</clusterCountPF>
-          <clusterCountRaw>3718396</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>59.51</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2101</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>2340883</clusterCountPF>
-          <clusterCountRaw>3785970</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>61.83</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2102</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>2181836</clusterCountPF>
-          <clusterCountRaw>3995288</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>54.61</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2103</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>4140850</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2104</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>344088</clusterCountPF>
-          <clusterCountRaw>3742840</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>9.19</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2105</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>4417907</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2106</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>633399</clusterCountPF>
-          <clusterCountRaw>3982483</clusterCountRaw>
-          <oneSig>1075.65</oneSig>
-          <percentClustersPF>15.90</percentClustersPF>
-          <signal20AsPctOf1>64.87</signal20AsPctOf1>
-          <tileNumber>2107</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>4249399</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2108</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>2273067</clusterCountPF>
-          <clusterCountRaw>3616092</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>62.86</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2201</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>2371559</clusterCountPF>
-          <clusterCountRaw>3725669</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>63.65</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2202</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>2333375</clusterCountPF>
-          <clusterCountRaw>3836500</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>60.82</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2203</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>2185419</clusterCountPF>
-          <clusterCountRaw>3910181</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>55.89</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2204</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>2311644</clusterCountPF>
-          <clusterCountRaw>4017955</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>57.53</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2205</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>4331923</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2206</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>2238184</clusterCountPF>
-          <clusterCountRaw>4417665</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>50.66</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2207</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>4514102</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2208</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>2087282</clusterCountPF>
-          <clusterCountRaw>3641497</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>57.32</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2301</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>2372969</clusterCountPF>
-          <clusterCountRaw>3752096</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>63.24</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2302</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>2356197</clusterCountPF>
-          <clusterCountRaw>3904880</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>60.34</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2303</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>334562</clusterCountPF>
-          <clusterCountRaw>2147785</clusterCountRaw>
-          <oneSig>1289.76</oneSig>
-          <percentClustersPF>15.58</percentClustersPF>
-          <signal20AsPctOf1>59.07</signal20AsPctOf1>
-          <tileNumber>2304</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>2020376</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2305</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>4367266</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2306</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>906827</clusterCountPF>
-          <clusterCountRaw>4298608</clusterCountRaw>
-          <oneSig>1132.79</oneSig>
-          <percentClustersPF>21.10</percentClustersPF>
-          <signal20AsPctOf1>65.11</signal20AsPctOf1>
-          <tileNumber>2307</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>260294</clusterCountPF>
-          <clusterCountRaw>3924829</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>6.63</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2308</tileNumber>
-        </Tile>
-        <readNumber>1</readNumber>
-      </Read>
-      
-      <laneNumber>1</laneNumber>
-    </Lane>
-    <Lane>
-      <Read>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>4448159</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1101</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>2773172</clusterCountPF>
-          <clusterCountRaw>4366122</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>63.52</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1102</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>4564670</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1103</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>4585876</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1104</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>4635377</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1105</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>669217</clusterCountPF>
-          <clusterCountRaw>4420397</clusterCountRaw>
-          <oneSig>930.85</oneSig>
-          <percentClustersPF>15.14</percentClustersPF>
-          <signal20AsPctOf1>76.28</signal20AsPctOf1>
-          <tileNumber>1106</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>4676917</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1107</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>4535868</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1108</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>4334415</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1201</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>640314</clusterCountPF>
-          <clusterCountRaw>2059919</clusterCountRaw>
-          <oneSig>1000.53</oneSig>
-          <percentClustersPF>31.08</percentClustersPF>
-          <signal20AsPctOf1>85.05</signal20AsPctOf1>
-          <tileNumber>1202</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>2607069</clusterCountPF>
-          <clusterCountRaw>4434379</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>58.79</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1203</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>775741</clusterCountPF>
-          <clusterCountRaw>3750712</clusterCountRaw>
-          <oneSig>996.69</oneSig>
-          <percentClustersPF>20.68</percentClustersPF>
-          <signal20AsPctOf1>74.98</signal20AsPctOf1>
-          <tileNumber>1204</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>440909</clusterCountPF>
-          <clusterCountRaw>4058935</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>10.86</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1205</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>214300</clusterCountPF>
-          <clusterCountRaw>1790590</clusterCountRaw>
-          <oneSig>927.63</oneSig>
-          <percentClustersPF>11.97</percentClustersPF>
-          <signal20AsPctOf1>74.32</signal20AsPctOf1>
-          <tileNumber>1206</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>4699049</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1207</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>4541983</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1208</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>504330</clusterCountPF>
-          <clusterCountRaw>1946513</clusterCountRaw>
-          <oneSig>1041.75</oneSig>
-          <percentClustersPF>25.91</percentClustersPF>
-          <signal20AsPctOf1>73.96</signal20AsPctOf1>
-          <tileNumber>1301</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>4553087</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1302</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>1143910</clusterCountPF>
-          <clusterCountRaw>3886939</clusterCountRaw>
-          <oneSig>1001.45</oneSig>
-          <percentClustersPF>29.43</percentClustersPF>
-          <signal20AsPctOf1>79.86</signal20AsPctOf1>
-          <tileNumber>1303</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>394814</clusterCountPF>
-          <clusterCountRaw>1620637</clusterCountRaw>
-          <oneSig>903.30</oneSig>
-          <percentClustersPF>24.36</percentClustersPF>
-          <signal20AsPctOf1>85.19</signal20AsPctOf1>
-          <tileNumber>1304</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>751155</clusterCountPF>
-          <clusterCountRaw>3901741</clusterCountRaw>
-          <oneSig>924.69</oneSig>
-          <percentClustersPF>19.25</percentClustersPF>
-          <signal20AsPctOf1>82.04</signal20AsPctOf1>
-          <tileNumber>1305</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>279109</clusterCountPF>
-          <clusterCountRaw>4312437</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>6.47</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1306</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>4877078</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1307</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>4716643</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1308</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>621210</clusterCountPF>
-          <clusterCountRaw>2055906</clusterCountRaw>
-          <oneSig>1083.69</oneSig>
-          <percentClustersPF>30.22</percentClustersPF>
-          <signal20AsPctOf1>80.10</signal20AsPctOf1>
-          <tileNumber>2101</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>4511240</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2102</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>967970</clusterCountPF>
-          <clusterCountRaw>4049067</clusterCountRaw>
-          <oneSig>1094.71</oneSig>
-          <percentClustersPF>23.91</percentClustersPF>
-          <signal20AsPctOf1>81.54</signal20AsPctOf1>
-          <tileNumber>2103</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>610322</clusterCountPF>
-          <clusterCountRaw>4256141</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>14.34</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2104</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>945727</clusterCountPF>
-          <clusterCountRaw>4036212</clusterCountRaw>
-          <oneSig>1045.43</oneSig>
-          <percentClustersPF>23.43</percentClustersPF>
-          <signal20AsPctOf1>81.22</signal20AsPctOf1>
-          <tileNumber>2105</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>4826884</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2106</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>4806977</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2107</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>4634388</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2108</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>522871</clusterCountPF>
-          <clusterCountRaw>3978361</clusterCountRaw>
-          <oneSig>991.67</oneSig>
-          <percentClustersPF>13.14</percentClustersPF>
-          <signal20AsPctOf1>97.22</signal20AsPctOf1>
-          <tileNumber>2201</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>699409</clusterCountPF>
-          <clusterCountRaw>4040193</clusterCountRaw>
-          <oneSig>1042.31</oneSig>
-          <percentClustersPF>17.31</percentClustersPF>
-          <signal20AsPctOf1>91.73</signal20AsPctOf1>
-          <tileNumber>2202</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>234576</clusterCountPF>
-          <clusterCountRaw>1982322</clusterCountRaw>
-          <oneSig>1097.76</oneSig>
-          <percentClustersPF>11.83</percentClustersPF>
-          <signal20AsPctOf1>91.23</signal20AsPctOf1>
-          <tileNumber>2203</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>312538</clusterCountPF>
-          <clusterCountRaw>1846815</clusterCountRaw>
-          <oneSig>1060.29</oneSig>
-          <percentClustersPF>16.92</percentClustersPF>
-          <signal20AsPctOf1>81.85</signal20AsPctOf1>
-          <tileNumber>2204</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>4877670</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2205</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>4352080</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2206</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>4565158</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2207</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>4595892</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2208</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>2688747</clusterCountPF>
-          <clusterCountRaw>4326152</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>62.15</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2301</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>2702172</clusterCountPF>
-          <clusterCountRaw>4401275</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>61.40</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2302</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>375919</clusterCountPF>
-          <clusterCountRaw>1897193</clusterCountRaw>
-          <oneSig>1064.46</oneSig>
-          <percentClustersPF>19.81</percentClustersPF>
-          <signal20AsPctOf1>73.90</signal20AsPctOf1>
-          <tileNumber>2303</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>170457</clusterCountPF>
-          <clusterCountRaw>1856395</clusterCountRaw>
-          <oneSig>970.76</oneSig>
-          <percentClustersPF>9.18</percentClustersPF>
-          <signal20AsPctOf1>86.28</signal20AsPctOf1>
-          <tileNumber>2304</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>464174</clusterCountPF>
-          <clusterCountRaw>3035669</clusterCountRaw>
-          <oneSig>1098.56</oneSig>
-          <percentClustersPF>15.29</percentClustersPF>
-          <signal20AsPctOf1>72.01</signal20AsPctOf1>
-          <tileNumber>2305</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>4768558</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2306</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>260108</clusterCountPF>
-          <clusterCountRaw>4263201</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>6.10</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2307</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>4508484</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2308</tileNumber>
-        </Tile>
-        <readNumber>1</readNumber>
-      </Read>
-      
-      <laneNumber>2</laneNumber>
-    </Lane>
-    <Lane>
-      <Read>
-        <Tile>
-          <clusterCountPF>2375385</clusterCountPF>
-          <clusterCountRaw>6313330</clusterCountRaw>
-          <oneSig>1139.10</oneSig>
-          <percentClustersPF>37.62</percentClustersPF>
-          <signal20AsPctOf1>85.17</signal20AsPctOf1>
-          <tileNumber>1101</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>6286613</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1102</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>5994999</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1103</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>3262679</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1104</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>6237718</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1105</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>6033743</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1106</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>6120542</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1107</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>5567004</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1108</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>2986982</clusterCountPF>
-          <clusterCountRaw>6143687</clusterCountRaw>
-          <oneSig>1179.26</oneSig>
-          <percentClustersPF>48.62</percentClustersPF>
-          <signal20AsPctOf1>83.37</signal20AsPctOf1>
-          <tileNumber>1201</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>6160371</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1202</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>6336417</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1203</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>5941459</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1204</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>6294748</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1205</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>5833916</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1206</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>5913050</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1207</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>5886712</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1208</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>3249310</clusterCountPF>
-          <clusterCountRaw>6355086</clusterCountRaw>
-          <oneSig>1175.05</oneSig>
-          <percentClustersPF>51.13</percentClustersPF>
-          <signal20AsPctOf1>86.62</signal20AsPctOf1>
-          <tileNumber>1301</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>2482602</clusterCountPF>
-          <clusterCountRaw>6345936</clusterCountRaw>
-          <oneSig>1114.27</oneSig>
-          <percentClustersPF>39.12</percentClustersPF>
-          <signal20AsPctOf1>86.48</signal20AsPctOf1>
-          <tileNumber>1302</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>6391130</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1303</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>6306326</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1304</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>3278126</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1305</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>3954980</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1306</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>4991640</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1307</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>4731299</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1308</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>2363698</clusterCountPF>
-          <clusterCountRaw>6670949</clusterCountRaw>
-          <oneSig>1261.88</oneSig>
-          <percentClustersPF>35.43</percentClustersPF>
-          <signal20AsPctOf1>82.59</signal20AsPctOf1>
-          <tileNumber>2101</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>1287696</clusterCountPF>
-          <clusterCountRaw>6380853</clusterCountRaw>
-          <oneSig>1205.05</oneSig>
-          <percentClustersPF>20.18</percentClustersPF>
-          <signal20AsPctOf1>87.75</signal20AsPctOf1>
-          <tileNumber>2102</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>3299242</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2103</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>6024321</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2104</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>6041139</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2105</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>6065842</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2106</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>5924388</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2107</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>5810177</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2108</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>6081345</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2201</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>6434511</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2202</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>4547035</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2203</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>5924309</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2204</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>5981859</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2205</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>5706415</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2206</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>6033825</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2207</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>6078240</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2208</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>2447011</clusterCountPF>
-          <clusterCountRaw>5856223</clusterCountRaw>
-          <oneSig>1180.01</oneSig>
-          <percentClustersPF>41.78</percentClustersPF>
-          <signal20AsPctOf1>93.05</signal20AsPctOf1>
-          <tileNumber>2301</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>879365</clusterCountPF>
-          <clusterCountRaw>6085412</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>14.45</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2302</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>3459940</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2303</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>6354552</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2304</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>5912596</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2305</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>5914029</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2306</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>5058019</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2307</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>5899621</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2308</tileNumber>
-        </Tile>
-        <readNumber>1</readNumber>
-      </Read>
-      
-      <laneNumber>3</laneNumber>
-    </Lane>
-    <Lane>
-      <Read>
-        <Tile>
-          <clusterCountPF>2890389</clusterCountPF>
-          <clusterCountRaw>6154619</clusterCountRaw>
-          <oneSig>1106.26</oneSig>
-          <percentClustersPF>46.96</percentClustersPF>
-          <signal20AsPctOf1>84.42</signal20AsPctOf1>
-          <tileNumber>1101</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>3859115</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1102</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>6150759</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1103</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>6062610</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1104</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>6041213</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1105</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>6048818</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1106</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>5891349</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1107</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>5878432</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1108</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>2392573</clusterCountPF>
-          <clusterCountRaw>5835186</clusterCountRaw>
-          <oneSig>1125.79</oneSig>
-          <percentClustersPF>41.00</percentClustersPF>
-          <signal20AsPctOf1>83.06</signal20AsPctOf1>
-          <tileNumber>1201</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>1735497</clusterCountPF>
-          <clusterCountRaw>5951872</clusterCountRaw>
-          <oneSig>1071.67</oneSig>
-          <percentClustersPF>29.16</percentClustersPF>
-          <signal20AsPctOf1>86.07</signal20AsPctOf1>
-          <tileNumber>1202</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>5968968</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1203</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>5974093</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1204</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>6089365</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1205</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>5465613</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1206</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>6034569</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1207</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>4926479</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1208</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>1813170</clusterCountPF>
-          <clusterCountRaw>6065205</clusterCountRaw>
-          <oneSig>1134.80</oneSig>
-          <percentClustersPF>29.89</percentClustersPF>
-          <signal20AsPctOf1>83.87</signal20AsPctOf1>
-          <tileNumber>1301</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>6072760</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1302</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>6022433</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1303</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>5914380</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1304</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>6035108</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1305</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>6110769</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1306</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>5874705</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1307</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>5932065</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1308</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>1933417</clusterCountPF>
-          <clusterCountRaw>6057448</clusterCountRaw>
-          <oneSig>1230.29</oneSig>
-          <percentClustersPF>31.92</percentClustersPF>
-          <signal20AsPctOf1>85.88</signal20AsPctOf1>
-          <tileNumber>2101</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>5897444</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2102</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>6389435</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2103</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>3815684</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2104</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>6071732</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2105</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>5821758</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2106</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>5873744</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2107</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>6008801</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2108</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>1611899</clusterCountPF>
-          <clusterCountRaw>5880262</clusterCountRaw>
-          <oneSig>1241.48</oneSig>
-          <percentClustersPF>27.41</percentClustersPF>
-          <signal20AsPctOf1>0.00</signal20AsPctOf1>
-          <tileNumber>2201</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>1996737</clusterCountPF>
-          <clusterCountRaw>6347857</clusterCountRaw>
-          <oneSig>1188.53</oneSig>
-          <percentClustersPF>31.46</percentClustersPF>
-          <signal20AsPctOf1>0.00</signal20AsPctOf1>
-          <tileNumber>2202</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>6362861</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2203</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>5852976</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2204</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>6177697</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2205</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>6022917</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2206</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>6123053</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2207</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>4798958</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2208</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>4627342</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2301</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>1458201</clusterCountPF>
-          <clusterCountRaw>6151616</clusterCountRaw>
-          <oneSig>1197.06</oneSig>
-          <percentClustersPF>23.70</percentClustersPF>
-          <signal20AsPctOf1>85.80</signal20AsPctOf1>
-          <tileNumber>2302</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>6007566</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2303</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>6300233</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2304</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>5970238</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2305</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>5954738</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2306</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>6046864</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2307</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>6017839</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2308</tileNumber>
-        </Tile>
-        <readNumber>1</readNumber>
-      </Read>
-      
-      <laneNumber>4</laneNumber>
-    </Lane>
-    <Lane>
-      <Read>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>5631135</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1101</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>2681269</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1102</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>2607227</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1103</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>5940868</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1104</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>3300266</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1105</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>3183165</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1106</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>3168588</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1107</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>3105604</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1108</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>3054041</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1201</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>4779051</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1202</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>5324239</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1203</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>5972215</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1204</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>3287230</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1205</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>2762623</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1206</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>3156192</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1207</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>2971658</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1208</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>496907</clusterCountPF>
-          <clusterCountRaw>5676984</clusterCountRaw>
-          <oneSig>-685.71</oneSig>
-          <percentClustersPF>8.75</percentClustersPF>
-          <signal20AsPctOf1>138.72</signal20AsPctOf1>
-          <tileNumber>1301</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>5350372</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1302</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>5418521</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1303</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>5941481</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1304</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>3314554</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1305</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>3168898</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1306</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>3124790</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1307</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>3116740</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1308</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>1493791</clusterCountPF>
-          <clusterCountRaw>5492816</clusterCountRaw>
-          <oneSig>-532.02</oneSig>
-          <percentClustersPF>27.20</percentClustersPF>
-          <signal20AsPctOf1>148.77</signal20AsPctOf1>
-          <tileNumber>2101</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>514231</clusterCountPF>
-          <clusterCountRaw>5761146</clusterCountRaw>
-          <oneSig>-572.34</oneSig>
-          <percentClustersPF>8.93</percentClustersPF>
-          <signal20AsPctOf1>154.15</signal20AsPctOf1>
-          <tileNumber>2102</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>3834974</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2103</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>6041237</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2104</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>3371454</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2105</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>3271578</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2106</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>3145886</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2107</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>2812963</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2108</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>5714487</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2201</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>4323735</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2202</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>5689972</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2203</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>5590891</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2204</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>2565274</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2205</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>3103834</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2206</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>2775071</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2207</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>2721788</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2208</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>2808679</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2301</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>5740118</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2302</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>2710478</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2303</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>6053923</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2304</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>3311585</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2305</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>3229925</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2306</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>3052698</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2307</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>3161815</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2308</tileNumber>
-        </Tile>
-        <readNumber>1</readNumber>
-      </Read>
-      
-      <laneNumber>5</laneNumber>
-    </Lane>
-    <Lane>
-      <Read>
-        <Tile>
-          <clusterCountPF>4328250</clusterCountPF>
-          <clusterCountRaw>6108747</clusterCountRaw>
-          <oneSig>1170.17</oneSig>
-          <percentClustersPF>70.85</percentClustersPF>
-          <signal20AsPctOf1>85.98</signal20AsPctOf1>
-          <tileNumber>1101</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>3763550</clusterCountPF>
-          <clusterCountRaw>5974162</clusterCountRaw>
-          <oneSig>1171.51</oneSig>
-          <percentClustersPF>63.00</percentClustersPF>
-          <signal20AsPctOf1>85.49</signal20AsPctOf1>
-          <tileNumber>1102</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>3376849</clusterCountPF>
-          <clusterCountRaw>5986042</clusterCountRaw>
-          <oneSig>1127.66</oneSig>
-          <percentClustersPF>56.41</percentClustersPF>
-          <signal20AsPctOf1>86.28</signal20AsPctOf1>
-          <tileNumber>1103</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>1454678</clusterCountPF>
-          <clusterCountRaw>5553026</clusterCountRaw>
-          <oneSig>1038.63</oneSig>
-          <percentClustersPF>26.20</percentClustersPF>
-          <signal20AsPctOf1>90.35</signal20AsPctOf1>
-          <tileNumber>1104</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>836786</clusterCountPF>
-          <clusterCountRaw>5751374</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>14.55</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1105</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>1008081</clusterCountPF>
-          <clusterCountRaw>5436595</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>18.54</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1106</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>1089073</clusterCountPF>
-          <clusterCountRaw>4720242</clusterCountRaw>
-          <oneSig>970.77</oneSig>
-          <percentClustersPF>23.07</percentClustersPF>
-          <signal20AsPctOf1>87.99</signal20AsPctOf1>
-          <tileNumber>1107</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>5628492</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1108</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>4255350</clusterCountPF>
-          <clusterCountRaw>6074637</clusterCountRaw>
-          <oneSig>1111.85</oneSig>
-          <percentClustersPF>70.05</percentClustersPF>
-          <signal20AsPctOf1>90.15</signal20AsPctOf1>
-          <tileNumber>1201</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>3764335</clusterCountPF>
-          <clusterCountRaw>5992750</clusterCountRaw>
-          <oneSig>1122.60</oneSig>
-          <percentClustersPF>62.81</percentClustersPF>
-          <signal20AsPctOf1>87.23</signal20AsPctOf1>
-          <tileNumber>1202</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>2949541</clusterCountPF>
-          <clusterCountRaw>5863819</clusterCountRaw>
-          <oneSig>1041.75</oneSig>
-          <percentClustersPF>50.30</percentClustersPF>
-          <signal20AsPctOf1>91.25</signal20AsPctOf1>
-          <tileNumber>1203</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>1960969</clusterCountPF>
-          <clusterCountRaw>5759754</clusterCountRaw>
-          <oneSig>985.74</oneSig>
-          <percentClustersPF>34.05</percentClustersPF>
-          <signal20AsPctOf1>94.16</signal20AsPctOf1>
-          <tileNumber>1204</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>1458718</clusterCountPF>
-          <clusterCountRaw>5348340</clusterCountRaw>
-          <oneSig>973.95</oneSig>
-          <percentClustersPF>27.27</percentClustersPF>
-          <signal20AsPctOf1>92.07</signal20AsPctOf1>
-          <tileNumber>1205</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>6188127</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1206</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>6029568</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1207</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>5783284</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1208</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>4164137</clusterCountPF>
-          <clusterCountRaw>6062113</clusterCountRaw>
-          <oneSig>1111.15</oneSig>
-          <percentClustersPF>68.69</percentClustersPF>
-          <signal20AsPctOf1>90.64</signal20AsPctOf1>
-          <tileNumber>1301</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>3807278</clusterCountPF>
-          <clusterCountRaw>6009706</clusterCountRaw>
-          <oneSig>1103.05</oneSig>
-          <percentClustersPF>63.35</percentClustersPF>
-          <signal20AsPctOf1>89.93</signal20AsPctOf1>
-          <tileNumber>1302</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>2646889</clusterCountPF>
-          <clusterCountRaw>5860357</clusterCountRaw>
-          <oneSig>1047.72</oneSig>
-          <percentClustersPF>45.17</percentClustersPF>
-          <signal20AsPctOf1>91.04</signal20AsPctOf1>
-          <tileNumber>1303</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>618116</clusterCountPF>
-          <clusterCountRaw>5936009</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>10.41</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1304</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>966704</clusterCountPF>
-          <clusterCountRaw>5780730</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>16.72</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1305</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>985185</clusterCountPF>
-          <clusterCountRaw>5442490</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>18.10</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1306</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>5865063</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1307</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>5759999</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>1308</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>4457818</clusterCountPF>
-          <clusterCountRaw>6178104</clusterCountRaw>
-          <oneSig>1290.91</oneSig>
-          <percentClustersPF>72.16</percentClustersPF>
-          <signal20AsPctOf1>87.89</signal20AsPctOf1>
-          <tileNumber>2101</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>4135701</clusterCountPF>
-          <clusterCountRaw>6067338</clusterCountRaw>
-          <oneSig>1270.47</oneSig>
-          <percentClustersPF>68.16</percentClustersPF>
-          <signal20AsPctOf1>87.91</signal20AsPctOf1>
-          <tileNumber>2102</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>3142805</clusterCountPF>
-          <clusterCountRaw>5915123</clusterCountRaw>
-          <oneSig>1190.65</oneSig>
-          <percentClustersPF>53.13</percentClustersPF>
-          <signal20AsPctOf1>91.67</signal20AsPctOf1>
-          <tileNumber>2103</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>2857800</clusterCountPF>
-          <clusterCountRaw>5959413</clusterCountRaw>
-          <oneSig>1192.35</oneSig>
-          <percentClustersPF>47.95</percentClustersPF>
-          <signal20AsPctOf1>88.82</signal20AsPctOf1>
-          <tileNumber>2104</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>1231733</clusterCountPF>
-          <clusterCountRaw>5733754</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>21.48</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2105</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>2633715</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2106</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>719661</clusterCountPF>
-          <clusterCountRaw>5147810</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>13.98</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2107</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>5662637</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2108</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>5811788</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2201</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>5919142</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2202</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>5921326</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2203</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>5683685</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2204</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>5369472</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2205</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>5594894</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2206</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>5888075</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2207</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>5533822</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2208</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>4347658</clusterCountPF>
-          <clusterCountRaw>6149228</clusterCountRaw>
-          <oneSig>1270.97</oneSig>
-          <percentClustersPF>70.70</percentClustersPF>
-          <signal20AsPctOf1>87.57</signal20AsPctOf1>
-          <tileNumber>2301</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>3927517</clusterCountPF>
-          <clusterCountRaw>6038155</clusterCountRaw>
-          <oneSig>1260.11</oneSig>
-          <percentClustersPF>65.04</percentClustersPF>
-          <signal20AsPctOf1>88.09</signal20AsPctOf1>
-          <tileNumber>2302</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>1031548</clusterCountPF>
-          <clusterCountRaw>3463054</clusterCountRaw>
-          <oneSig>1223.05</oneSig>
-          <percentClustersPF>29.79</percentClustersPF>
-          <signal20AsPctOf1>88.74</signal20AsPctOf1>
-          <tileNumber>2303</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>464073</clusterCountPF>
-          <clusterCountRaw>6006755</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>7.73</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2304</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>1812404</clusterCountPF>
-          <clusterCountRaw>5211053</clusterCountRaw>
-          <oneSig>1109.48</oneSig>
-          <percentClustersPF>34.78</percentClustersPF>
-          <signal20AsPctOf1>92.72</signal20AsPctOf1>
-          <tileNumber>2305</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>6128662</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2306</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>5927816</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2307</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>5684780</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2308</tileNumber>
-        </Tile>
-        <readNumber>1</readNumber>
-      </Read>
-      
-      <laneNumber>6</laneNumber>
-    </Lane>
-    <Lane>
-      <Read>
-        <Tile>
-          <clusterCountPF>1290892</clusterCountPF>
-          <clusterCountRaw>1318384</clusterCountRaw>
-          <oneSig>1457.61</oneSig>
-          <percentClustersPF>97.91</percentClustersPF>
-          <signal20AsPctOf1>93.12</signal20AsPctOf1>
-          <tileNumber>1101</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>1405177</clusterCountPF>
-          <clusterCountRaw>1435753</clusterCountRaw>
-          <oneSig>1428.15</oneSig>
-          <percentClustersPF>97.87</percentClustersPF>
-          <signal20AsPctOf1>93.14</signal20AsPctOf1>
-          <tileNumber>1102</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>1518681</clusterCountPF>
-          <clusterCountRaw>1553867</clusterCountRaw>
-          <oneSig>1415.45</oneSig>
-          <percentClustersPF>97.74</percentClustersPF>
-          <signal20AsPctOf1>93.14</signal20AsPctOf1>
-          <tileNumber>1103</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>1674083</clusterCountPF>
-          <clusterCountRaw>1713366</clusterCountRaw>
-          <oneSig>1397.13</oneSig>
-          <percentClustersPF>97.71</percentClustersPF>
-          <signal20AsPctOf1>91.75</signal20AsPctOf1>
-          <tileNumber>1104</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>1848975</clusterCountPF>
-          <clusterCountRaw>1894031</clusterCountRaw>
-          <oneSig>1453.02</oneSig>
-          <percentClustersPF>97.62</percentClustersPF>
-          <signal20AsPctOf1>87.65</signal20AsPctOf1>
-          <tileNumber>1105</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>2036288</clusterCountPF>
-          <clusterCountRaw>2089577</clusterCountRaw>
-          <oneSig>1351.03</oneSig>
-          <percentClustersPF>97.45</percentClustersPF>
-          <signal20AsPctOf1>92.96</signal20AsPctOf1>
-          <tileNumber>1106</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>2235825</clusterCountPF>
-          <clusterCountRaw>2300996</clusterCountRaw>
-          <oneSig>1330.80</oneSig>
-          <percentClustersPF>97.17</percentClustersPF>
-          <signal20AsPctOf1>92.09</signal20AsPctOf1>
-          <tileNumber>1107</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>2451380</clusterCountPF>
-          <clusterCountRaw>2541307</clusterCountRaw>
-          <oneSig>1293.67</oneSig>
-          <percentClustersPF>96.46</percentClustersPF>
-          <signal20AsPctOf1>91.71</signal20AsPctOf1>
-          <tileNumber>1108</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>1248007</clusterCountPF>
-          <clusterCountRaw>1271398</clusterCountRaw>
-          <oneSig>1456.86</oneSig>
-          <percentClustersPF>98.16</percentClustersPF>
-          <signal20AsPctOf1>92.75</signal20AsPctOf1>
-          <tileNumber>1201</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>1353214</clusterCountPF>
-          <clusterCountRaw>1379519</clusterCountRaw>
-          <oneSig>1373.11</oneSig>
-          <percentClustersPF>98.09</percentClustersPF>
-          <signal20AsPctOf1>92.92</signal20AsPctOf1>
-          <tileNumber>1202</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>1476775</clusterCountPF>
-          <clusterCountRaw>1506069</clusterCountRaw>
-          <oneSig>1406.85</oneSig>
-          <percentClustersPF>98.05</percentClustersPF>
-          <signal20AsPctOf1>92.17</signal20AsPctOf1>
-          <tileNumber>1203</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>1596576</clusterCountPF>
-          <clusterCountRaw>1629689</clusterCountRaw>
-          <oneSig>1395.32</oneSig>
-          <percentClustersPF>97.97</percentClustersPF>
-          <signal20AsPctOf1>90.76</signal20AsPctOf1>
-          <tileNumber>1204</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>1802357</clusterCountPF>
-          <clusterCountRaw>1838238</clusterCountRaw>
-          <oneSig>1383.42</oneSig>
-          <percentClustersPF>98.05</percentClustersPF>
-          <signal20AsPctOf1>91.84</signal20AsPctOf1>
-          <tileNumber>1205</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>1985501</clusterCountPF>
-          <clusterCountRaw>2028373</clusterCountRaw>
-          <oneSig>1355.39</oneSig>
-          <percentClustersPF>97.89</percentClustersPF>
-          <signal20AsPctOf1>91.43</signal20AsPctOf1>
-          <tileNumber>1206</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>2182408</clusterCountPF>
-          <clusterCountRaw>2237640</clusterCountRaw>
-          <oneSig>1326.23</oneSig>
-          <percentClustersPF>97.53</percentClustersPF>
-          <signal20AsPctOf1>91.95</signal20AsPctOf1>
-          <tileNumber>1207</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>2412726</clusterCountPF>
-          <clusterCountRaw>2498414</clusterCountRaw>
-          <oneSig>1284.50</oneSig>
-          <percentClustersPF>96.57</percentClustersPF>
-          <signal20AsPctOf1>91.14</signal20AsPctOf1>
-          <tileNumber>1208</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>1329553</clusterCountPF>
-          <clusterCountRaw>1353194</clusterCountRaw>
-          <oneSig>1500.38</oneSig>
-          <percentClustersPF>98.25</percentClustersPF>
-          <signal20AsPctOf1>90.00</signal20AsPctOf1>
-          <tileNumber>1301</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>1448646</clusterCountPF>
-          <clusterCountRaw>1475015</clusterCountRaw>
-          <oneSig>1426.92</oneSig>
-          <percentClustersPF>98.21</percentClustersPF>
-          <signal20AsPctOf1>91.04</signal20AsPctOf1>
-          <tileNumber>1302</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>1584849</clusterCountPF>
-          <clusterCountRaw>1618578</clusterCountRaw>
-          <oneSig>1418.87</oneSig>
-          <percentClustersPF>97.92</percentClustersPF>
-          <signal20AsPctOf1>90.98</signal20AsPctOf1>
-          <tileNumber>1303</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>1703358</clusterCountPF>
-          <clusterCountRaw>1738426</clusterCountRaw>
-          <oneSig>1408.33</oneSig>
-          <percentClustersPF>97.98</percentClustersPF>
-          <signal20AsPctOf1>90.65</signal20AsPctOf1>
-          <tileNumber>1304</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>1962537</clusterCountPF>
-          <clusterCountRaw>2003605</clusterCountRaw>
-          <oneSig>1417.26</oneSig>
-          <percentClustersPF>97.95</percentClustersPF>
-          <signal20AsPctOf1>88.90</signal20AsPctOf1>
-          <tileNumber>1305</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>2155571</clusterCountPF>
-          <clusterCountRaw>2205956</clusterCountRaw>
-          <oneSig>1353.91</oneSig>
-          <percentClustersPF>97.72</percentClustersPF>
-          <signal20AsPctOf1>91.89</signal20AsPctOf1>
-          <tileNumber>1306</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>2371794</clusterCountPF>
-          <clusterCountRaw>2438582</clusterCountRaw>
-          <oneSig>1349.40</oneSig>
-          <percentClustersPF>97.26</percentClustersPF>
-          <signal20AsPctOf1>87.65</signal20AsPctOf1>
-          <tileNumber>1307</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>2609442</clusterCountPF>
-          <clusterCountRaw>2697578</clusterCountRaw>
-          <oneSig>1273.05</oneSig>
-          <percentClustersPF>96.73</percentClustersPF>
-          <signal20AsPctOf1>89.13</signal20AsPctOf1>
-          <tileNumber>1308</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>1274462</clusterCountPF>
-          <clusterCountRaw>1301586</clusterCountRaw>
-          <oneSig>1601.86</oneSig>
-          <percentClustersPF>97.92</percentClustersPF>
-          <signal20AsPctOf1>92.97</signal20AsPctOf1>
-          <tileNumber>2101</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>1383611</clusterCountPF>
-          <clusterCountRaw>1413798</clusterCountRaw>
-          <oneSig>1567.26</oneSig>
-          <percentClustersPF>97.86</percentClustersPF>
-          <signal20AsPctOf1>92.72</signal20AsPctOf1>
-          <tileNumber>2102</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>1500886</clusterCountPF>
-          <clusterCountRaw>1538148</clusterCountRaw>
-          <oneSig>1575.16</oneSig>
-          <percentClustersPF>97.58</percentClustersPF>
-          <signal20AsPctOf1>91.30</signal20AsPctOf1>
-          <tileNumber>2103</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>1658029</clusterCountPF>
-          <clusterCountRaw>1695613</clusterCountRaw>
-          <oneSig>1551.84</oneSig>
-          <percentClustersPF>97.78</percentClustersPF>
-          <signal20AsPctOf1>92.03</signal20AsPctOf1>
-          <tileNumber>2104</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>1833421</clusterCountPF>
-          <clusterCountRaw>1876931</clusterCountRaw>
-          <oneSig>1525.11</oneSig>
-          <percentClustersPF>97.68</percentClustersPF>
-          <signal20AsPctOf1>92.43</signal20AsPctOf1>
-          <tileNumber>2105</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>2026973</clusterCountPF>
-          <clusterCountRaw>2078853</clusterCountRaw>
-          <oneSig>1509.17</oneSig>
-          <percentClustersPF>97.50</percentClustersPF>
-          <signal20AsPctOf1>91.91</signal20AsPctOf1>
-          <tileNumber>2106</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>2259381</clusterCountPF>
-          <clusterCountRaw>2325032</clusterCountRaw>
-          <oneSig>1467.69</oneSig>
-          <percentClustersPF>97.18</percentClustersPF>
-          <signal20AsPctOf1>92.25</signal20AsPctOf1>
-          <tileNumber>2107</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>2558255</clusterCountPF>
-          <clusterCountRaw>2655400</clusterCountRaw>
-          <oneSig>1444.06</oneSig>
-          <percentClustersPF>96.34</percentClustersPF>
-          <signal20AsPctOf1>91.44</signal20AsPctOf1>
-          <tileNumber>2108</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>970653</clusterCountPF>
-          <clusterCountRaw>1235179</clusterCountRaw>
-          <oneSig>1584.09</oneSig>
-          <percentClustersPF>78.58</percentClustersPF>
-          <signal20AsPctOf1>93.93</signal20AsPctOf1>
-          <tileNumber>2201</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>1342455</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2202</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>1465297</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2203</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>675140</clusterCountPF>
-          <clusterCountRaw>1582751</clusterCountRaw>
-          <oneSig>1505.46</oneSig>
-          <percentClustersPF>42.66</percentClustersPF>
-          <signal20AsPctOf1>94.13</signal20AsPctOf1>
-          <tileNumber>2204</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>1775056</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2205</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>1957270</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2206</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>0</clusterCountPF>
-          <clusterCountRaw>2164043</clusterCountRaw>
-          <oneSig>0.00</oneSig>
-          <percentClustersPF>0.00</percentClustersPF>
-          <signal20AsPctOf1>N/A</signal20AsPctOf1>
-          <tileNumber>2207</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>1254733</clusterCountPF>
-          <clusterCountRaw>2441653</clusterCountRaw>
-          <oneSig>1444.53</oneSig>
-          <percentClustersPF>51.39</percentClustersPF>
-          <signal20AsPctOf1>93.17</signal20AsPctOf1>
-          <tileNumber>2208</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>1296622</clusterCountPF>
-          <clusterCountRaw>1325781</clusterCountRaw>
-          <oneSig>1494.17</oneSig>
-          <percentClustersPF>97.80</percentClustersPF>
-          <signal20AsPctOf1>98.31</signal20AsPctOf1>
-          <tileNumber>2301</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>1424658</clusterCountPF>
-          <clusterCountRaw>1452340</clusterCountRaw>
-          <oneSig>1528.87</oneSig>
-          <percentClustersPF>98.09</percentClustersPF>
-          <signal20AsPctOf1>93.49</signal20AsPctOf1>
-          <tileNumber>2302</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>1569437</clusterCountPF>
-          <clusterCountRaw>1602067</clusterCountRaw>
-          <oneSig>1539.36</oneSig>
-          <percentClustersPF>97.96</percentClustersPF>
-          <signal20AsPctOf1>93.10</signal20AsPctOf1>
-          <tileNumber>2303</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>1682427</clusterCountPF>
-          <clusterCountRaw>1720505</clusterCountRaw>
-          <oneSig>1521.03</oneSig>
-          <percentClustersPF>97.79</percentClustersPF>
-          <signal20AsPctOf1>92.61</signal20AsPctOf1>
-          <tileNumber>2304</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>1939141</clusterCountPF>
-          <clusterCountRaw>1979800</clusterCountRaw>
-          <oneSig>1523.67</oneSig>
-          <percentClustersPF>97.95</percentClustersPF>
-          <signal20AsPctOf1>91.62</signal20AsPctOf1>
-          <tileNumber>2305</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>2134547</clusterCountPF>
-          <clusterCountRaw>2184095</clusterCountRaw>
-          <oneSig>1486.10</oneSig>
-          <percentClustersPF>97.73</percentClustersPF>
-          <signal20AsPctOf1>92.33</signal20AsPctOf1>
-          <tileNumber>2306</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>2356389</clusterCountPF>
-          <clusterCountRaw>2421537</clusterCountRaw>
-          <oneSig>1466.46</oneSig>
-          <percentClustersPF>97.31</percentClustersPF>
-          <signal20AsPctOf1>91.63</signal20AsPctOf1>
-          <tileNumber>2307</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>2602908</clusterCountPF>
-          <clusterCountRaw>2695532</clusterCountRaw>
-          <oneSig>1428.19</oneSig>
-          <percentClustersPF>96.56</percentClustersPF>
-          <signal20AsPctOf1>92.25</signal20AsPctOf1>
-          <tileNumber>2308</tileNumber>
-        </Tile>
-        <readNumber>1</readNumber>
-      </Read>
-      
-      <laneNumber>7</laneNumber>
-    </Lane>
-    <Lane>
-      <Read>
-        <Tile>
-          <clusterCountPF>3672425</clusterCountPF>
-          <clusterCountRaw>3999929</clusterCountRaw>
-          <oneSig>1359.39</oneSig>
-          <percentClustersPF>91.81</percentClustersPF>
-          <signal20AsPctOf1>88.45</signal20AsPctOf1>
-          <tileNumber>1101</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>3843360</clusterCountPF>
-          <clusterCountRaw>4214896</clusterCountRaw>
-          <oneSig>1338.54</oneSig>
-          <percentClustersPF>91.19</percentClustersPF>
-          <signal20AsPctOf1>88.01</signal20AsPctOf1>
-          <tileNumber>1102</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>3985275</clusterCountPF>
-          <clusterCountRaw>4432069</clusterCountRaw>
-          <oneSig>1321.41</oneSig>
-          <percentClustersPF>89.92</percentClustersPF>
-          <signal20AsPctOf1>88.40</signal20AsPctOf1>
-          <tileNumber>1103</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>4195701</clusterCountPF>
-          <clusterCountRaw>4688257</clusterCountRaw>
-          <oneSig>1298.99</oneSig>
-          <percentClustersPF>89.49</percentClustersPF>
-          <signal20AsPctOf1>87.97</signal20AsPctOf1>
-          <tileNumber>1104</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>4416383</clusterCountPF>
-          <clusterCountRaw>4972645</clusterCountRaw>
-          <oneSig>1283.87</oneSig>
-          <percentClustersPF>88.81</percentClustersPF>
-          <signal20AsPctOf1>88.72</signal20AsPctOf1>
-          <tileNumber>1105</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>4542437</clusterCountPF>
-          <clusterCountRaw>5209248</clusterCountRaw>
-          <oneSig>1258.05</oneSig>
-          <percentClustersPF>87.20</percentClustersPF>
-          <signal20AsPctOf1>87.14</signal20AsPctOf1>
-          <tileNumber>1106</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>4596548</clusterCountPF>
-          <clusterCountRaw>5399922</clusterCountRaw>
-          <oneSig>1230.54</oneSig>
-          <percentClustersPF>85.12</percentClustersPF>
-          <signal20AsPctOf1>87.31</signal20AsPctOf1>
-          <tileNumber>1107</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>4316902</clusterCountPF>
-          <clusterCountRaw>5826697</clusterCountRaw>
-          <oneSig>1182.73</oneSig>
-          <percentClustersPF>74.09</percentClustersPF>
-          <signal20AsPctOf1>87.01</signal20AsPctOf1>
-          <tileNumber>1108</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>3559633</clusterCountPF>
-          <clusterCountRaw>3873994</clusterCountRaw>
-          <oneSig>1365.15</oneSig>
-          <percentClustersPF>91.89</percentClustersPF>
-          <signal20AsPctOf1>87.07</signal20AsPctOf1>
-          <tileNumber>1201</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>3742085</clusterCountPF>
-          <clusterCountRaw>4103838</clusterCountRaw>
-          <oneSig>1345.87</oneSig>
-          <percentClustersPF>91.19</percentClustersPF>
-          <signal20AsPctOf1>87.69</signal20AsPctOf1>
-          <tileNumber>1202</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>3809926</clusterCountPF>
-          <clusterCountRaw>4219389</clusterCountRaw>
-          <oneSig>1314.55</oneSig>
-          <percentClustersPF>90.30</percentClustersPF>
-          <signal20AsPctOf1>88.34</signal20AsPctOf1>
-          <tileNumber>1203</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>4095946</clusterCountPF>
-          <clusterCountRaw>4572435</clusterCountRaw>
-          <oneSig>1296.18</oneSig>
-          <percentClustersPF>89.58</percentClustersPF>
-          <signal20AsPctOf1>88.12</signal20AsPctOf1>
-          <tileNumber>1204</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>4329806</clusterCountPF>
-          <clusterCountRaw>4852097</clusterCountRaw>
-          <oneSig>1291.90</oneSig>
-          <percentClustersPF>89.24</percentClustersPF>
-          <signal20AsPctOf1>87.70</signal20AsPctOf1>
-          <tileNumber>1205</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>4484284</clusterCountPF>
-          <clusterCountRaw>5103542</clusterCountRaw>
-          <oneSig>1271.54</oneSig>
-          <percentClustersPF>87.87</percentClustersPF>
-          <signal20AsPctOf1>86.33</signal20AsPctOf1>
-          <tileNumber>1206</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>4545978</clusterCountPF>
-          <clusterCountRaw>5322851</clusterCountRaw>
-          <oneSig>1240.07</oneSig>
-          <percentClustersPF>85.40</percentClustersPF>
-          <signal20AsPctOf1>86.60</signal20AsPctOf1>
-          <tileNumber>1207</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>4236437</clusterCountPF>
-          <clusterCountRaw>5399609</clusterCountRaw>
-          <oneSig>1200.52</oneSig>
-          <percentClustersPF>78.46</percentClustersPF>
-          <signal20AsPctOf1>82.29</signal20AsPctOf1>
-          <tileNumber>1208</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>3745093</clusterCountPF>
-          <clusterCountRaw>4091803</clusterCountRaw>
-          <oneSig>1377.26</oneSig>
-          <percentClustersPF>91.53</percentClustersPF>
-          <signal20AsPctOf1>85.86</signal20AsPctOf1>
-          <tileNumber>1301</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>3938377</clusterCountPF>
-          <clusterCountRaw>4338397</clusterCountRaw>
-          <oneSig>1338.33</oneSig>
-          <percentClustersPF>90.78</percentClustersPF>
-          <signal20AsPctOf1>87.63</signal20AsPctOf1>
-          <tileNumber>1302</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>3963514</clusterCountPF>
-          <clusterCountRaw>4395406</clusterCountRaw>
-          <oneSig>1308.84</oneSig>
-          <percentClustersPF>90.17</percentClustersPF>
-          <signal20AsPctOf1>88.08</signal20AsPctOf1>
-          <tileNumber>1303</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>4282045</clusterCountPF>
-          <clusterCountRaw>4835601</clusterCountRaw>
-          <oneSig>1287.81</oneSig>
-          <percentClustersPF>88.55</percentClustersPF>
-          <signal20AsPctOf1>87.58</signal20AsPctOf1>
-          <tileNumber>1304</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>4498474</clusterCountPF>
-          <clusterCountRaw>5114668</clusterCountRaw>
-          <oneSig>1282.81</oneSig>
-          <percentClustersPF>87.95</percentClustersPF>
-          <signal20AsPctOf1>87.46</signal20AsPctOf1>
-          <tileNumber>1305</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>4602295</clusterCountPF>
-          <clusterCountRaw>5337911</clusterCountRaw>
-          <oneSig>1257.03</oneSig>
-          <percentClustersPF>86.22</percentClustersPF>
-          <signal20AsPctOf1>86.97</signal20AsPctOf1>
-          <tileNumber>1306</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>4600782</clusterCountPF>
-          <clusterCountRaw>5501477</clusterCountRaw>
-          <oneSig>1225.51</oneSig>
-          <percentClustersPF>83.63</percentClustersPF>
-          <signal20AsPctOf1>86.53</signal20AsPctOf1>
-          <tileNumber>1307</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>4145380</clusterCountPF>
-          <clusterCountRaw>5872929</clusterCountRaw>
-          <oneSig>1175.25</oneSig>
-          <percentClustersPF>70.58</percentClustersPF>
-          <signal20AsPctOf1>83.85</signal20AsPctOf1>
-          <tileNumber>1308</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>3654318</clusterCountPF>
-          <clusterCountRaw>3969110</clusterCountRaw>
-          <oneSig>1467.08</oneSig>
-          <percentClustersPF>92.07</percentClustersPF>
-          <signal20AsPctOf1>90.01</signal20AsPctOf1>
-          <tileNumber>2101</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>3839864</clusterCountPF>
-          <clusterCountRaw>4184268</clusterCountRaw>
-          <oneSig>1439.99</oneSig>
-          <percentClustersPF>91.77</percentClustersPF>
-          <signal20AsPctOf1>90.66</signal20AsPctOf1>
-          <tileNumber>2102</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>3969051</clusterCountPF>
-          <clusterCountRaw>4413583</clusterCountRaw>
-          <oneSig>1422.63</oneSig>
-          <percentClustersPF>89.93</percentClustersPF>
-          <signal20AsPctOf1>90.66</signal20AsPctOf1>
-          <tileNumber>2103</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>4219627</clusterCountPF>
-          <clusterCountRaw>4681613</clusterCountRaw>
-          <oneSig>1403.97</oneSig>
-          <percentClustersPF>90.13</percentClustersPF>
-          <signal20AsPctOf1>90.49</signal20AsPctOf1>
-          <tileNumber>2104</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>4414065</clusterCountPF>
-          <clusterCountRaw>4956383</clusterCountRaw>
-          <oneSig>1386.15</oneSig>
-          <percentClustersPF>89.06</percentClustersPF>
-          <signal20AsPctOf1>89.95</signal20AsPctOf1>
-          <tileNumber>2105</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>4579204</clusterCountPF>
-          <clusterCountRaw>5232590</clusterCountRaw>
-          <oneSig>1365.53</oneSig>
-          <percentClustersPF>87.51</percentClustersPF>
-          <signal20AsPctOf1>89.26</signal20AsPctOf1>
-          <tileNumber>2106</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>4682961</clusterCountPF>
-          <clusterCountRaw>5469205</clusterCountRaw>
-          <oneSig>1333.32</oneSig>
-          <percentClustersPF>85.62</percentClustersPF>
-          <signal20AsPctOf1>89.03</signal20AsPctOf1>
-          <tileNumber>2107</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>3928926</clusterCountPF>
-          <clusterCountRaw>5870004</clusterCountRaw>
-          <oneSig>1286.80</oneSig>
-          <percentClustersPF>66.93</percentClustersPF>
-          <signal20AsPctOf1>87.34</signal20AsPctOf1>
-          <tileNumber>2108</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>3556282</clusterCountPF>
-          <clusterCountRaw>3852699</clusterCountRaw>
-          <oneSig>1457.50</oneSig>
-          <percentClustersPF>92.31</percentClustersPF>
-          <signal20AsPctOf1>88.49</signal20AsPctOf1>
-          <tileNumber>2201</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>3741136</clusterCountPF>
-          <clusterCountRaw>4072130</clusterCountRaw>
-          <oneSig>1441.42</oneSig>
-          <percentClustersPF>91.87</percentClustersPF>
-          <signal20AsPctOf1>89.42</signal20AsPctOf1>
-          <tileNumber>2202</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>3842742</clusterCountPF>
-          <clusterCountRaw>4212391</clusterCountRaw>
-          <oneSig>1415.97</oneSig>
-          <percentClustersPF>91.22</percentClustersPF>
-          <signal20AsPctOf1>89.95</signal20AsPctOf1>
-          <tileNumber>2203</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>4140127</clusterCountPF>
-          <clusterCountRaw>4577001</clusterCountRaw>
-          <oneSig>1387.43</oneSig>
-          <percentClustersPF>90.46</percentClustersPF>
-          <signal20AsPctOf1>89.88</signal20AsPctOf1>
-          <tileNumber>2204</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>4372303</clusterCountPF>
-          <clusterCountRaw>4862284</clusterCountRaw>
-          <oneSig>1384.77</oneSig>
-          <percentClustersPF>89.92</percentClustersPF>
-          <signal20AsPctOf1>88.76</signal20AsPctOf1>
-          <tileNumber>2205</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>4531801</clusterCountPF>
-          <clusterCountRaw>5119662</clusterCountRaw>
-          <oneSig>1367.26</oneSig>
-          <percentClustersPF>88.52</percentClustersPF>
-          <signal20AsPctOf1>88.81</signal20AsPctOf1>
-          <tileNumber>2206</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>4148375</clusterCountPF>
-          <clusterCountRaw>5301292</clusterCountRaw>
-          <oneSig>1326.28</oneSig>
-          <percentClustersPF>78.25</percentClustersPF>
-          <signal20AsPctOf1>89.46</signal20AsPctOf1>
-          <tileNumber>2207</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>3747919</clusterCountPF>
-          <clusterCountRaw>5523881</clusterCountRaw>
-          <oneSig>1328.04</oneSig>
-          <percentClustersPF>67.85</percentClustersPF>
-          <signal20AsPctOf1>85.54</signal20AsPctOf1>
-          <tileNumber>2208</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>3685991</clusterCountPF>
-          <clusterCountRaw>4034260</clusterCountRaw>
-          <oneSig>1437.04</oneSig>
-          <percentClustersPF>91.37</percentClustersPF>
-          <signal20AsPctOf1>88.87</signal20AsPctOf1>
-          <tileNumber>2301</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>3894450</clusterCountPF>
-          <clusterCountRaw>4285846</clusterCountRaw>
-          <oneSig>1425.73</oneSig>
-          <percentClustersPF>90.87</percentClustersPF>
-          <signal20AsPctOf1>89.86</signal20AsPctOf1>
-          <tileNumber>2302</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>3941822</clusterCountPF>
-          <clusterCountRaw>4382141</clusterCountRaw>
-          <oneSig>1397.98</oneSig>
-          <percentClustersPF>89.95</percentClustersPF>
-          <signal20AsPctOf1>90.41</signal20AsPctOf1>
-          <tileNumber>2303</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>4299760</clusterCountPF>
-          <clusterCountRaw>4825173</clusterCountRaw>
-          <oneSig>1380.92</oneSig>
-          <percentClustersPF>89.11</percentClustersPF>
-          <signal20AsPctOf1>89.99</signal20AsPctOf1>
-          <tileNumber>2304</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>4523197</clusterCountPF>
-          <clusterCountRaw>5101827</clusterCountRaw>
-          <oneSig>1374.81</oneSig>
-          <percentClustersPF>88.66</percentClustersPF>
-          <signal20AsPctOf1>89.72</signal20AsPctOf1>
-          <tileNumber>2305</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>4658536</clusterCountPF>
-          <clusterCountRaw>5357124</clusterCountRaw>
-          <oneSig>1362.66</oneSig>
-          <percentClustersPF>86.96</percentClustersPF>
-          <signal20AsPctOf1>88.93</signal20AsPctOf1>
-          <tileNumber>2306</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>4706753</clusterCountPF>
-          <clusterCountRaw>5569616</clusterCountRaw>
-          <oneSig>1336.27</oneSig>
-          <percentClustersPF>84.51</percentClustersPF>
-          <signal20AsPctOf1>89.15</signal20AsPctOf1>
-          <tileNumber>2307</tileNumber>
-        </Tile>
-        <Tile>
-          <clusterCountPF>2196707</clusterCountPF>
-          <clusterCountRaw>3787138</clusterCountRaw>
-          <oneSig>1265.29</oneSig>
-          <percentClustersPF>58.00</percentClustersPF>
-          <signal20AsPctOf1>89.55</signal20AsPctOf1>
-          <tileNumber>2308</tileNumber>
-        </Tile>
-        <readNumber>1</readNumber>
-      </Read>
-      
-      <laneNumber>8</laneNumber>
-    </Lane>
-  </TileResultsByLane>
-</BustardSummary>
diff --git a/htsworkflow/pipelines/test/testdata/rta_basecalls_config_1.12.4.2.xml b/htsworkflow/pipelines/test/testdata/rta_basecalls_config_1.12.4.2.xml
deleted file mode 100755 (executable)
index 9da5d01..0000000
+++ /dev/null
@@ -1,511 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<BaseCallAnalysis xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">\r
-  <Run Name="BaseCalls">\r
-    <BaseCallParameters>\r
-      <ChastityThreshold>0.6</ChastityThreshold>\r
-      <Matrix Path="">\r
-        <AutoFlag>2</AutoFlag>\r
-        <AutoLane>0</AutoLane>\r
-        <Cycle>1</Cycle>\r
-        <CycleOffset>0</CycleOffset>\r
-        <FirstCycle>1</FirstCycle>\r
-        <LastCycle>50</LastCycle>\r
-        <Read>1</Read>\r
-      </Matrix>\r
-      <Matrix Path="">\r
-        <AutoFlag>2</AutoFlag>\r
-        <AutoLane>0</AutoLane>\r
-        <Cycle>51</Cycle>\r
-        <CycleOffset>0</CycleOffset>\r
-        <FirstCycle>51</FirstCycle>\r
-        <LastCycle>57</LastCycle>\r
-        <Read>2</Read>\r
-      </Matrix>\r
-      <Phasing Path="">\r
-        <AutoFlag>2</AutoFlag>\r
-        <AutoLane>0</AutoLane>\r
-        <Cycle>2</Cycle>\r
-        <CycleOffset>1</CycleOffset>\r
-        <FirstCycle>1</FirstCycle>\r
-        <LastCycle>50</LastCycle>\r
-        <Read>1</Read>\r
-        <PhasingRate>0</PhasingRate>\r
-        <PrephasingRate>0</PrephasingRate>\r
-      </Phasing>\r
-      <Phasing Path="">\r
-        <AutoFlag>2</AutoFlag>\r
-        <AutoLane>0</AutoLane>\r
-        <Cycle>52</Cycle>\r
-        <CycleOffset>1</CycleOffset>\r
-        <FirstCycle>51</FirstCycle>\r
-        <LastCycle>57</LastCycle>\r
-        <Read>2</Read>\r
-        <PhasingRate>0</PhasingRate>\r
-        <PrephasingRate>0</PrephasingRate>\r
-      </Phasing>\r
-      <PureBases>0</PureBases>\r
-      <SmtFilter>failed-chastity</SmtFilter>\r
-      <SmtRelation>le</SmtRelation>\r
-      <SmtThreshold>1.0</SmtThreshold>\r
-    </BaseCallParameters>\r
-    <Cycles First="1" Last="57" Number="57" />\r
-    <Input />\r
-    <RunParameters>\r
-      <AutoCycleFlag>0</AutoCycleFlag>\r
-      <BasecallFlag>0</BasecallFlag>\r
-      <Deblocked>0</Deblocked>\r
-      <DebugFlag>0</DebugFlag>\r
-      <FirstRunOnlyFlag>0</FirstRunOnlyFlag>\r
-      <ImagingReads Index="1">\r
-        <FirstCycle>1</FirstCycle>\r
-        <LastCycle>50</LastCycle>\r
-      </ImagingReads>\r
-      <ImagingReads Index="2">\r
-        <FirstCycle>51</FirstCycle>\r
-        <LastCycle>57</LastCycle>\r
-        <RunFolder>110815_SN787_0101_AD07K6ACXX</RunFolder>\r
-      </ImagingReads>\r
-      <Instrument>HWI-ST0787</Instrument>\r
-      <IterativeMatrixFlag>0</IterativeMatrixFlag>\r
-      <MakeFlag>0</MakeFlag>\r
-      <MaxCycle>0</MaxCycle>\r
-      <MinCycle>0</MinCycle>\r
-      <Reads Index="1">\r
-        <FirstCycle>1</FirstCycle>\r
-        <LastCycle>50</LastCycle>\r
-      </Reads>\r
-      <Reads Index="2">\r
-        <FirstCycle>51</FirstCycle>\r
-        <LastCycle>57</LastCycle>\r
-        <RunFolder>110815_SN787_0101_AD07K6ACXX</RunFolder>\r
-      </Reads>\r
-      <RunFolder>110815_SN787_0101_AD07K6ACXX</RunFolder>\r
-      <RunFolderDate>110815</RunFolderDate>\r
-      <RunFolderId>0101</RunFolderId>\r
-      <RunFlowcellId>D07K6ACXX</RunFlowcellId>\r
-      <Barcode>\r
-        <Cycle Use="true">51</Cycle>\r
-        <Cycle Use="true">52</Cycle>\r
-        <Cycle Use="true">53</Cycle>\r
-        <Cycle Use="true">54</Cycle>\r
-        <Cycle Use="true">55</Cycle>\r
-        <Cycle Use="true">56</Cycle>\r
-        <Cycle Use="true">57</Cycle>\r
-      </Barcode>\r
-      <QTableVersion>New6</QTableVersion>\r
-    </RunParameters>\r
-    <Software Name="RTA" Version="1.12.4.2" />\r
-    <TileSelection>\r
-      <Lane Index="1">\r
-        <Sample>s</Sample>\r
-        <Tile>1102</Tile>\r
-        <Tile>1101</Tile>\r
-        <Tile>1103</Tile>\r
-        <Tile>1106</Tile>\r
-        <Tile>1104</Tile>\r
-        <Tile>1105</Tile>\r
-        <Tile>1108</Tile>\r
-        <Tile>1107</Tile>\r
-        <Tile>1202</Tile>\r
-        <Tile>1201</Tile>\r
-        <Tile>1206</Tile>\r
-        <Tile>1204</Tile>\r
-        <Tile>1203</Tile>\r
-        <Tile>1205</Tile>\r
-        <Tile>1302</Tile>\r
-        <Tile>1208</Tile>\r
-        <Tile>1207</Tile>\r
-        <Tile>1301</Tile>\r
-        <Tile>1306</Tile>\r
-        <Tile>1304</Tile>\r
-        <Tile>1305</Tile>\r
-        <Tile>2102</Tile>\r
-        <Tile>1303</Tile>\r
-        <Tile>1308</Tile>\r
-        <Tile>2101</Tile>\r
-        <Tile>1307</Tile>\r
-        <Tile>2106</Tile>\r
-        <Tile>2104</Tile>\r
-        <Tile>2105</Tile>\r
-        <Tile>2103</Tile>\r
-        <Tile>2202</Tile>\r
-        <Tile>2108</Tile>\r
-        <Tile>2201</Tile>\r
-        <Tile>2206</Tile>\r
-        <Tile>2107</Tile>\r
-        <Tile>2205</Tile>\r
-        <Tile>2204</Tile>\r
-        <Tile>2203</Tile>\r
-        <Tile>2302</Tile>\r
-        <Tile>2301</Tile>\r
-        <Tile>2208</Tile>\r
-        <Tile>2306</Tile>\r
-        <Tile>2207</Tile>\r
-        <Tile>2305</Tile>\r
-        <Tile>2303</Tile>\r
-        <Tile>2304</Tile>\r
-        <Tile>2308</Tile>\r
-        <Tile>2307</Tile>\r
-      </Lane>\r
-      <Lane Index="2">\r
-        <Sample>s</Sample>\r
-        <Tile>1101</Tile>\r
-        <Tile>1102</Tile>\r
-        <Tile>1105</Tile>\r
-        <Tile>1106</Tile>\r
-        <Tile>1104</Tile>\r
-        <Tile>1103</Tile>\r
-        <Tile>1201</Tile>\r
-        <Tile>1202</Tile>\r
-        <Tile>1108</Tile>\r
-        <Tile>1206</Tile>\r
-        <Tile>1107</Tile>\r
-        <Tile>1205</Tile>\r
-        <Tile>1302</Tile>\r
-        <Tile>1204</Tile>\r
-        <Tile>1301</Tile>\r
-        <Tile>1203</Tile>\r
-        <Tile>1208</Tile>\r
-        <Tile>1306</Tile>\r
-        <Tile>1305</Tile>\r
-        <Tile>1207</Tile>\r
-        <Tile>1304</Tile>\r
-        <Tile>2101</Tile>\r
-        <Tile>2102</Tile>\r
-        <Tile>1308</Tile>\r
-        <Tile>2105</Tile>\r
-        <Tile>1303</Tile>\r
-        <Tile>2201</Tile>\r
-        <Tile>2106</Tile>\r
-        <Tile>2104</Tile>\r
-        <Tile>1307</Tile>\r
-        <Tile>2205</Tile>\r
-        <Tile>2202</Tile>\r
-        <Tile>2108</Tile>\r
-        <Tile>2206</Tile>\r
-        <Tile>2103</Tile>\r
-        <Tile>2301</Tile>\r
-        <Tile>2204</Tile>\r
-        <Tile>2208</Tile>\r
-        <Tile>2107</Tile>\r
-        <Tile>2302</Tile>\r
-        <Tile>2305</Tile>\r
-        <Tile>2304</Tile>\r
-        <Tile>2203</Tile>\r
-        <Tile>2306</Tile>\r
-        <Tile>2308</Tile>\r
-        <Tile>2207</Tile>\r
-        <Tile>2303</Tile>\r
-        <Tile>2307</Tile>\r
-      </Lane>\r
-      <Lane Index="3">\r
-        <Sample>s</Sample>\r
-        <Tile>1101</Tile>\r
-        <Tile>1102</Tile>\r
-        <Tile>1105</Tile>\r
-        <Tile>1104</Tile>\r
-        <Tile>1108</Tile>\r
-        <Tile>1106</Tile>\r
-        <Tile>1201</Tile>\r
-        <Tile>1103</Tile>\r
-        <Tile>1204</Tile>\r
-        <Tile>1202</Tile>\r
-        <Tile>1205</Tile>\r
-        <Tile>1107</Tile>\r
-        <Tile>1208</Tile>\r
-        <Tile>1206</Tile>\r
-        <Tile>1301</Tile>\r
-        <Tile>1304</Tile>\r
-        <Tile>1203</Tile>\r
-        <Tile>1302</Tile>\r
-        <Tile>1308</Tile>\r
-        <Tile>1305</Tile>\r
-        <Tile>1207</Tile>\r
-        <Tile>2101</Tile>\r
-        <Tile>2104</Tile>\r
-        <Tile>1306</Tile>\r
-        <Tile>1303</Tile>\r
-        <Tile>2102</Tile>\r
-        <Tile>2105</Tile>\r
-        <Tile>2108</Tile>\r
-        <Tile>1307</Tile>\r
-        <Tile>2106</Tile>\r
-        <Tile>2204</Tile>\r
-        <Tile>2201</Tile>\r
-        <Tile>2103</Tile>\r
-        <Tile>2208</Tile>\r
-        <Tile>2202</Tile>\r
-        <Tile>2107</Tile>\r
-        <Tile>2205</Tile>\r
-        <Tile>2301</Tile>\r
-        <Tile>2304</Tile>\r
-        <Tile>2203</Tile>\r
-        <Tile>2206</Tile>\r
-        <Tile>2207</Tile>\r
-        <Tile>2305</Tile>\r
-        <Tile>2308</Tile>\r
-        <Tile>2302</Tile>\r
-        <Tile>2303</Tile>\r
-        <Tile>2307</Tile>\r
-        <Tile>2306</Tile>\r
-      </Lane>\r
-      <Lane Index="4">\r
-        <Sample>s</Sample>\r
-        <Tile>1101</Tile>\r
-        <Tile>1104</Tile>\r
-        <Tile>1103</Tile>\r
-        <Tile>1102</Tile>\r
-        <Tile>1108</Tile>\r
-        <Tile>1105</Tile>\r
-        <Tile>1107</Tile>\r
-        <Tile>1106</Tile>\r
-        <Tile>1204</Tile>\r
-        <Tile>1201</Tile>\r
-        <Tile>1203</Tile>\r
-        <Tile>1202</Tile>\r
-        <Tile>1208</Tile>\r
-        <Tile>1205</Tile>\r
-        <Tile>1207</Tile>\r
-        <Tile>1206</Tile>\r
-        <Tile>1304</Tile>\r
-        <Tile>1301</Tile>\r
-        <Tile>1302</Tile>\r
-        <Tile>1308</Tile>\r
-        <Tile>1303</Tile>\r
-        <Tile>1305</Tile>\r
-        <Tile>1306</Tile>\r
-        <Tile>1307</Tile>\r
-        <Tile>2104</Tile>\r
-        <Tile>2101</Tile>\r
-        <Tile>2108</Tile>\r
-        <Tile>2102</Tile>\r
-        <Tile>2103</Tile>\r
-        <Tile>2105</Tile>\r
-        <Tile>2204</Tile>\r
-        <Tile>2106</Tile>\r
-        <Tile>2107</Tile>\r
-        <Tile>2201</Tile>\r
-        <Tile>2208</Tile>\r
-        <Tile>2202</Tile>\r
-        <Tile>2203</Tile>\r
-        <Tile>2304</Tile>\r
-        <Tile>2205</Tile>\r
-        <Tile>2206</Tile>\r
-        <Tile>2207</Tile>\r
-        <Tile>2308</Tile>\r
-        <Tile>2301</Tile>\r
-        <Tile>2302</Tile>\r
-        <Tile>2303</Tile>\r
-        <Tile>2305</Tile>\r
-        <Tile>2307</Tile>\r
-        <Tile>2306</Tile>\r
-      </Lane>\r
-      <Lane Index="5">\r
-        <Sample>s</Sample>\r
-        <Tile>1104</Tile>\r
-        <Tile>1108</Tile>\r
-        <Tile>1101</Tile>\r
-        <Tile>1204</Tile>\r
-        <Tile>1102</Tile>\r
-        <Tile>1103</Tile>\r
-        <Tile>1106</Tile>\r
-        <Tile>1105</Tile>\r
-        <Tile>1107</Tile>\r
-        <Tile>1208</Tile>\r
-        <Tile>1201</Tile>\r
-        <Tile>1202</Tile>\r
-        <Tile>1203</Tile>\r
-        <Tile>1304</Tile>\r
-        <Tile>1205</Tile>\r
-        <Tile>1206</Tile>\r
-        <Tile>1301</Tile>\r
-        <Tile>1308</Tile>\r
-        <Tile>1207</Tile>\r
-        <Tile>1302</Tile>\r
-        <Tile>2104</Tile>\r
-        <Tile>1303</Tile>\r
-        <Tile>1305</Tile>\r
-        <Tile>1306</Tile>\r
-        <Tile>2101</Tile>\r
-        <Tile>2102</Tile>\r
-        <Tile>1307</Tile>\r
-        <Tile>2108</Tile>\r
-        <Tile>2204</Tile>\r
-        <Tile>2103</Tile>\r
-        <Tile>2105</Tile>\r
-        <Tile>2107</Tile>\r
-        <Tile>2106</Tile>\r
-        <Tile>2201</Tile>\r
-        <Tile>2208</Tile>\r
-        <Tile>2203</Tile>\r
-        <Tile>2202</Tile>\r
-        <Tile>2304</Tile>\r
-        <Tile>2206</Tile>\r
-        <Tile>2205</Tile>\r
-        <Tile>2207</Tile>\r
-        <Tile>2302</Tile>\r
-        <Tile>2301</Tile>\r
-        <Tile>2303</Tile>\r
-        <Tile>2308</Tile>\r
-        <Tile>2305</Tile>\r
-        <Tile>2307</Tile>\r
-        <Tile>2306</Tile>\r
-      </Lane>\r
-      <Lane Index="6">\r
-        <Sample>s</Sample>\r
-        <Tile>1104</Tile>\r
-        <Tile>1101</Tile>\r
-        <Tile>1103</Tile>\r
-        <Tile>1102</Tile>\r
-        <Tile>1108</Tile>\r
-        <Tile>1107</Tile>\r
-        <Tile>1105</Tile>\r
-        <Tile>1106</Tile>\r
-        <Tile>1204</Tile>\r
-        <Tile>1203</Tile>\r
-        <Tile>1201</Tile>\r
-        <Tile>1202</Tile>\r
-        <Tile>1208</Tile>\r
-        <Tile>1207</Tile>\r
-        <Tile>1205</Tile>\r
-        <Tile>1206</Tile>\r
-        <Tile>1304</Tile>\r
-        <Tile>1303</Tile>\r
-        <Tile>1301</Tile>\r
-        <Tile>1302</Tile>\r
-        <Tile>1308</Tile>\r
-        <Tile>1307</Tile>\r
-        <Tile>1305</Tile>\r
-        <Tile>2104</Tile>\r
-        <Tile>1306</Tile>\r
-        <Tile>2103</Tile>\r
-        <Tile>2101</Tile>\r
-        <Tile>2102</Tile>\r
-        <Tile>2108</Tile>\r
-        <Tile>2107</Tile>\r
-        <Tile>2105</Tile>\r
-        <Tile>2106</Tile>\r
-        <Tile>2204</Tile>\r
-        <Tile>2203</Tile>\r
-        <Tile>2202</Tile>\r
-        <Tile>2201</Tile>\r
-        <Tile>2208</Tile>\r
-        <Tile>2207</Tile>\r
-        <Tile>2206</Tile>\r
-        <Tile>2205</Tile>\r
-        <Tile>2304</Tile>\r
-        <Tile>2303</Tile>\r
-        <Tile>2302</Tile>\r
-        <Tile>2301</Tile>\r
-        <Tile>2307</Tile>\r
-        <Tile>2308</Tile>\r
-        <Tile>2306</Tile>\r
-        <Tile>2305</Tile>\r
-      </Lane>\r
-      <Lane Index="7">\r
-        <Sample>s</Sample>\r
-        <Tile>1103</Tile>\r
-        <Tile>1107</Tile>\r
-        <Tile>1104</Tile>\r
-        <Tile>1108</Tile>\r
-        <Tile>1203</Tile>\r
-        <Tile>1101</Tile>\r
-        <Tile>1102</Tile>\r
-        <Tile>1204</Tile>\r
-        <Tile>1105</Tile>\r
-        <Tile>1207</Tile>\r
-        <Tile>1106</Tile>\r
-        <Tile>1208</Tile>\r
-        <Tile>1201</Tile>\r
-        <Tile>1202</Tile>\r
-        <Tile>1303</Tile>\r
-        <Tile>1205</Tile>\r
-        <Tile>1206</Tile>\r
-        <Tile>1307</Tile>\r
-        <Tile>1304</Tile>\r
-        <Tile>1301</Tile>\r
-        <Tile>1302</Tile>\r
-        <Tile>1305</Tile>\r
-        <Tile>1308</Tile>\r
-        <Tile>2103</Tile>\r
-        <Tile>1306</Tile>\r
-        <Tile>2101</Tile>\r
-        <Tile>2107</Tile>\r
-        <Tile>2104</Tile>\r
-        <Tile>2105</Tile>\r
-        <Tile>2102</Tile>\r
-        <Tile>2108</Tile>\r
-        <Tile>2203</Tile>\r
-        <Tile>2201</Tile>\r
-        <Tile>2106</Tile>\r
-        <Tile>2205</Tile>\r
-        <Tile>2207</Tile>\r
-        <Tile>2202</Tile>\r
-        <Tile>2204</Tile>\r
-        <Tile>2301</Tile>\r
-        <Tile>2303</Tile>\r
-        <Tile>2206</Tile>\r
-        <Tile>2208</Tile>\r
-        <Tile>2305</Tile>\r
-        <Tile>2307</Tile>\r
-        <Tile>2302</Tile>\r
-        <Tile>2304</Tile>\r
-        <Tile>2306</Tile>\r
-        <Tile>2308</Tile>\r
-      </Lane>\r
-      <Lane Index="8">\r
-        <Sample>s</Sample>\r
-        <Tile>1101</Tile>\r
-        <Tile>1103</Tile>\r
-        <Tile>1102</Tile>\r
-        <Tile>1105</Tile>\r
-        <Tile>1107</Tile>\r
-        <Tile>1104</Tile>\r
-        <Tile>1106</Tile>\r
-        <Tile>1201</Tile>\r
-        <Tile>1108</Tile>\r
-        <Tile>1203</Tile>\r
-        <Tile>1202</Tile>\r
-        <Tile>1205</Tile>\r
-        <Tile>1207</Tile>\r
-        <Tile>1204</Tile>\r
-        <Tile>1206</Tile>\r
-        <Tile>1301</Tile>\r
-        <Tile>1208</Tile>\r
-        <Tile>1303</Tile>\r
-        <Tile>1302</Tile>\r
-        <Tile>1305</Tile>\r
-        <Tile>1307</Tile>\r
-        <Tile>1304</Tile>\r
-        <Tile>1306</Tile>\r
-        <Tile>2101</Tile>\r
-        <Tile>1308</Tile>\r
-        <Tile>2103</Tile>\r
-        <Tile>2105</Tile>\r
-        <Tile>2102</Tile>\r
-        <Tile>2107</Tile>\r
-        <Tile>2106</Tile>\r
-        <Tile>2104</Tile>\r
-        <Tile>2201</Tile>\r
-        <Tile>2205</Tile>\r
-        <Tile>2202</Tile>\r
-        <Tile>2203</Tile>\r
-        <Tile>2108</Tile>\r
-        <Tile>2206</Tile>\r
-        <Tile>2301</Tile>\r
-        <Tile>2207</Tile>\r
-        <Tile>2204</Tile>\r
-        <Tile>2305</Tile>\r
-        <Tile>2302</Tile>\r
-        <Tile>2303</Tile>\r
-        <Tile>2208</Tile>\r
-        <Tile>2306</Tile>\r
-        <Tile>2307</Tile>\r
-        <Tile>2304</Tile>\r
-        <Tile>2308</Tile>\r
-      </Lane>\r
-    </TileSelection>\r
-    <Time />\r
-    <User />\r
-  </Run>\r
-</BaseCallAnalysis>
\ No newline at end of file
diff --git a/htsworkflow/pipelines/test/testdata/rta_intensities_config_1.12.4.2.xml b/htsworkflow/pipelines/test/testdata/rta_intensities_config_1.12.4.2.xml
deleted file mode 100755 (executable)
index 6d43157..0000000
+++ /dev/null
@@ -1,472 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<ImageAnalysis xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">\r
-  <Run Name="Intensities">\r
-    <Cycles First="1" Last="57" Number="57" />\r
-    <ImageParameters>\r
-      <AutoOffsetFlag>0</AutoOffsetFlag>\r
-      <AutoSizeFlag>0</AutoSizeFlag>\r
-      <Fwhm>0</Fwhm>\r
-      <RemappingDistance>0</RemappingDistance>\r
-      <Threshold>0</Threshold>\r
-    </ImageParameters>\r
-    <RunParameters>\r
-      <AutoCycleFlag>0</AutoCycleFlag>\r
-      <BasecallFlag>0</BasecallFlag>\r
-      <Deblocked>0</Deblocked>\r
-      <DebugFlag>0</DebugFlag>\r
-      <FirstRunOnlyFlag>0</FirstRunOnlyFlag>\r
-      <ImagingReads Index="1">\r
-        <FirstCycle>1</FirstCycle>\r
-        <LastCycle>50</LastCycle>\r
-        <RunFolder>110815_SN787_0101_AD07K6ACXX</RunFolder>\r
-      </ImagingReads>\r
-      <ImagingReads Index="2">\r
-        <FirstCycle>51</FirstCycle>\r
-        <LastCycle>57</LastCycle>\r
-        <RunFolder>110815_SN787_0101_AD07K6ACXX</RunFolder>\r
-      </ImagingReads>\r
-      <Instrument>HWI-ST0787</Instrument>\r
-      <IterativeMatrixFlag>0</IterativeMatrixFlag>\r
-      <MakeFlag>0</MakeFlag>\r
-      <MaxCycle>0</MaxCycle>\r
-      <MinCycle>0</MinCycle>\r
-      <Reads Index="1">\r
-        <FirstCycle>1</FirstCycle>\r
-        <LastCycle>50</LastCycle>\r
-        <RunFolder>110815_SN787_0101_AD07K6ACXX</RunFolder>\r
-      </Reads>\r
-      <Reads Index="2">\r
-        <FirstCycle>51</FirstCycle>\r
-        <LastCycle>57</LastCycle>\r
-        <RunFolder>110815_SN787_0101_AD07K6ACXX</RunFolder>\r
-      </Reads>\r
-      <RunFolder>110815_SN787_0101_AD07K6ACXX</RunFolder>\r
-      <RunFolderDate>110815</RunFolderDate>\r
-      <RunFolderId>0101</RunFolderId>\r
-      <RunFlowcellId>D07K6ACXX</RunFlowcellId>\r
-      <Barcode>\r
-        <Cycle Use="true">51</Cycle>\r
-        <Cycle Use="true">52</Cycle>\r
-        <Cycle Use="true">53</Cycle>\r
-        <Cycle Use="true">54</Cycle>\r
-        <Cycle Use="true">55</Cycle>\r
-        <Cycle Use="true">56</Cycle>\r
-        <Cycle Use="true">57</Cycle>\r
-      </Barcode>\r
-      <QTableVersion>New6</QTableVersion>\r
-    </RunParameters>\r
-    <Software Name="RTA" Version="1.12.4.2" />\r
-    <TileSelection>\r
-      <Lane Index="1">\r
-        <Sample>s</Sample>\r
-        <Tile>1101</Tile>\r
-        <Tile>1102</Tile>\r
-        <Tile>1104</Tile>\r
-        <Tile>1103</Tile>\r
-        <Tile>1106</Tile>\r
-        <Tile>1105</Tile>\r
-        <Tile>1108</Tile>\r
-        <Tile>1107</Tile>\r
-        <Tile>1201</Tile>\r
-        <Tile>1204</Tile>\r
-        <Tile>1202</Tile>\r
-        <Tile>1205</Tile>\r
-        <Tile>1206</Tile>\r
-        <Tile>1208</Tile>\r
-        <Tile>1301</Tile>\r
-        <Tile>1302</Tile>\r
-        <Tile>1304</Tile>\r
-        <Tile>1203</Tile>\r
-        <Tile>1305</Tile>\r
-        <Tile>1306</Tile>\r
-        <Tile>1308</Tile>\r
-        <Tile>2102</Tile>\r
-        <Tile>2101</Tile>\r
-        <Tile>1207</Tile>\r
-        <Tile>2105</Tile>\r
-        <Tile>2106</Tile>\r
-        <Tile>2104</Tile>\r
-        <Tile>1303</Tile>\r
-        <Tile>2201</Tile>\r
-        <Tile>2202</Tile>\r
-        <Tile>1307</Tile>\r
-        <Tile>2206</Tile>\r
-        <Tile>2205</Tile>\r
-        <Tile>2108</Tile>\r
-        <Tile>2302</Tile>\r
-        <Tile>2103</Tile>\r
-        <Tile>2301</Tile>\r
-        <Tile>2204</Tile>\r
-        <Tile>2305</Tile>\r
-        <Tile>2107</Tile>\r
-        <Tile>2203</Tile>\r
-        <Tile>2208</Tile>\r
-        <Tile>2306</Tile>\r
-        <Tile>2207</Tile>\r
-        <Tile>2304</Tile>\r
-        <Tile>2303</Tile>\r
-        <Tile>2308</Tile>\r
-        <Tile>2307</Tile>\r
-      </Lane>\r
-      <Lane Index="2">\r
-        <Sample>s</Sample>\r
-        <Tile>1101</Tile>\r
-        <Tile>1105</Tile>\r
-        <Tile>1102</Tile>\r
-        <Tile>1106</Tile>\r
-        <Tile>1201</Tile>\r
-        <Tile>1103</Tile>\r
-        <Tile>1104</Tile>\r
-        <Tile>1202</Tile>\r
-        <Tile>1205</Tile>\r
-        <Tile>1107</Tile>\r
-        <Tile>1206</Tile>\r
-        <Tile>1108</Tile>\r
-        <Tile>1203</Tile>\r
-        <Tile>1302</Tile>\r
-        <Tile>1204</Tile>\r
-        <Tile>1301</Tile>\r
-        <Tile>1208</Tile>\r
-        <Tile>1207</Tile>\r
-        <Tile>1305</Tile>\r
-        <Tile>1306</Tile>\r
-        <Tile>1304</Tile>\r
-        <Tile>2101</Tile>\r
-        <Tile>1303</Tile>\r
-        <Tile>2102</Tile>\r
-        <Tile>1308</Tile>\r
-        <Tile>2105</Tile>\r
-        <Tile>1307</Tile>\r
-        <Tile>2106</Tile>\r
-        <Tile>2201</Tile>\r
-        <Tile>2104</Tile>\r
-        <Tile>2103</Tile>\r
-        <Tile>2202</Tile>\r
-        <Tile>2205</Tile>\r
-        <Tile>2107</Tile>\r
-        <Tile>2108</Tile>\r
-        <Tile>2206</Tile>\r
-        <Tile>2301</Tile>\r
-        <Tile>2203</Tile>\r
-        <Tile>2204</Tile>\r
-        <Tile>2208</Tile>\r
-        <Tile>2207</Tile>\r
-        <Tile>2302</Tile>\r
-        <Tile>2305</Tile>\r
-        <Tile>2303</Tile>\r
-        <Tile>2304</Tile>\r
-        <Tile>2306</Tile>\r
-        <Tile>2307</Tile>\r
-        <Tile>2308</Tile>\r
-      </Lane>\r
-      <Lane Index="3">\r
-        <Sample>s</Sample>\r
-        <Tile>1101</Tile>\r
-        <Tile>1103</Tile>\r
-        <Tile>1102</Tile>\r
-        <Tile>1104</Tile>\r
-        <Tile>1105</Tile>\r
-        <Tile>1106</Tile>\r
-        <Tile>1107</Tile>\r
-        <Tile>1108</Tile>\r
-        <Tile>1201</Tile>\r
-        <Tile>1204</Tile>\r
-        <Tile>1202</Tile>\r
-        <Tile>1203</Tile>\r
-        <Tile>1205</Tile>\r
-        <Tile>1206</Tile>\r
-        <Tile>1207</Tile>\r
-        <Tile>1208</Tile>\r
-        <Tile>1302</Tile>\r
-        <Tile>1301</Tile>\r
-        <Tile>1303</Tile>\r
-        <Tile>1304</Tile>\r
-        <Tile>1306</Tile>\r
-        <Tile>1305</Tile>\r
-        <Tile>1308</Tile>\r
-        <Tile>2101</Tile>\r
-        <Tile>2102</Tile>\r
-        <Tile>2105</Tile>\r
-        <Tile>1307</Tile>\r
-        <Tile>2104</Tile>\r
-        <Tile>2106</Tile>\r
-        <Tile>2201</Tile>\r
-        <Tile>2108</Tile>\r
-        <Tile>2103</Tile>\r
-        <Tile>2107</Tile>\r
-        <Tile>2202</Tile>\r
-        <Tile>2205</Tile>\r
-        <Tile>2204</Tile>\r
-        <Tile>2301</Tile>\r
-        <Tile>2206</Tile>\r
-        <Tile>2305</Tile>\r
-        <Tile>2203</Tile>\r
-        <Tile>2208</Tile>\r
-        <Tile>2302</Tile>\r
-        <Tile>2207</Tile>\r
-        <Tile>2304</Tile>\r
-        <Tile>2306</Tile>\r
-        <Tile>2303</Tile>\r
-        <Tile>2308</Tile>\r
-        <Tile>2307</Tile>\r
-      </Lane>\r
-      <Lane Index="4">\r
-        <Sample>s</Sample>\r
-        <Tile>1101</Tile>\r
-        <Tile>1105</Tile>\r
-        <Tile>1201</Tile>\r
-        <Tile>1102</Tile>\r
-        <Tile>1106</Tile>\r
-        <Tile>1205</Tile>\r
-        <Tile>1104</Tile>\r
-        <Tile>1202</Tile>\r
-        <Tile>1103</Tile>\r
-        <Tile>1301</Tile>\r
-        <Tile>1206</Tile>\r
-        <Tile>1108</Tile>\r
-        <Tile>1107</Tile>\r
-        <Tile>1305</Tile>\r
-        <Tile>1302</Tile>\r
-        <Tile>2101</Tile>\r
-        <Tile>1203</Tile>\r
-        <Tile>1306</Tile>\r
-        <Tile>1204</Tile>\r
-        <Tile>1207</Tile>\r
-        <Tile>2102</Tile>\r
-        <Tile>1208</Tile>\r
-        <Tile>2105</Tile>\r
-        <Tile>1303</Tile>\r
-        <Tile>2106</Tile>\r
-        <Tile>1304</Tile>\r
-        <Tile>2201</Tile>\r
-        <Tile>1307</Tile>\r
-        <Tile>1308</Tile>\r
-        <Tile>2202</Tile>\r
-        <Tile>2103</Tile>\r
-        <Tile>2104</Tile>\r
-        <Tile>2205</Tile>\r
-        <Tile>2206</Tile>\r
-        <Tile>2302</Tile>\r
-        <Tile>2108</Tile>\r
-        <Tile>2301</Tile>\r
-        <Tile>2107</Tile>\r
-        <Tile>2305</Tile>\r
-        <Tile>2306</Tile>\r
-        <Tile>2204</Tile>\r
-        <Tile>2203</Tile>\r
-        <Tile>2208</Tile>\r
-        <Tile>2207</Tile>\r
-        <Tile>2303</Tile>\r
-        <Tile>2304</Tile>\r
-        <Tile>2308</Tile>\r
-        <Tile>2307</Tile>\r
-      </Lane>\r
-      <Lane Index="5">\r
-        <Sample>s</Sample>\r
-        <Tile>1102</Tile>\r
-        <Tile>1101</Tile>\r
-        <Tile>1106</Tile>\r
-        <Tile>1105</Tile>\r
-        <Tile>1202</Tile>\r
-        <Tile>1201</Tile>\r
-        <Tile>1205</Tile>\r
-        <Tile>1206</Tile>\r
-        <Tile>1301</Tile>\r
-        <Tile>1104</Tile>\r
-        <Tile>1302</Tile>\r
-        <Tile>1103</Tile>\r
-        <Tile>1108</Tile>\r
-        <Tile>1305</Tile>\r
-        <Tile>1306</Tile>\r
-        <Tile>1107</Tile>\r
-        <Tile>2102</Tile>\r
-        <Tile>1203</Tile>\r
-        <Tile>1204</Tile>\r
-        <Tile>2101</Tile>\r
-        <Tile>2106</Tile>\r
-        <Tile>1207</Tile>\r
-        <Tile>2202</Tile>\r
-        <Tile>1303</Tile>\r
-        <Tile>1208</Tile>\r
-        <Tile>2105</Tile>\r
-        <Tile>2201</Tile>\r
-        <Tile>1304</Tile>\r
-        <Tile>1307</Tile>\r
-        <Tile>2206</Tile>\r
-        <Tile>2103</Tile>\r
-        <Tile>2205</Tile>\r
-        <Tile>2302</Tile>\r
-        <Tile>2107</Tile>\r
-        <Tile>1308</Tile>\r
-        <Tile>2301</Tile>\r
-        <Tile>2203</Tile>\r
-        <Tile>2104</Tile>\r
-        <Tile>2305</Tile>\r
-        <Tile>2207</Tile>\r
-        <Tile>2108</Tile>\r
-        <Tile>2306</Tile>\r
-        <Tile>2303</Tile>\r
-        <Tile>2204</Tile>\r
-        <Tile>2307</Tile>\r
-        <Tile>2208</Tile>\r
-        <Tile>2304</Tile>\r
-        <Tile>2308</Tile>\r
-      </Lane>\r
-      <Lane Index="6">\r
-        <Sample>s</Sample>\r
-        <Tile>1101</Tile>\r
-        <Tile>1102</Tile>\r
-        <Tile>1103</Tile>\r
-        <Tile>1106</Tile>\r
-        <Tile>1105</Tile>\r
-        <Tile>1107</Tile>\r
-        <Tile>1202</Tile>\r
-        <Tile>1201</Tile>\r
-        <Tile>1203</Tile>\r
-        <Tile>1207</Tile>\r
-        <Tile>1205</Tile>\r
-        <Tile>1206</Tile>\r
-        <Tile>1301</Tile>\r
-        <Tile>1303</Tile>\r
-        <Tile>1302</Tile>\r
-        <Tile>1104</Tile>\r
-        <Tile>1305</Tile>\r
-        <Tile>1306</Tile>\r
-        <Tile>2101</Tile>\r
-        <Tile>1108</Tile>\r
-        <Tile>2102</Tile>\r
-        <Tile>1307</Tile>\r
-        <Tile>2103</Tile>\r
-        <Tile>2105</Tile>\r
-        <Tile>1204</Tile>\r
-        <Tile>2106</Tile>\r
-        <Tile>2107</Tile>\r
-        <Tile>2201</Tile>\r
-        <Tile>2202</Tile>\r
-        <Tile>1208</Tile>\r
-        <Tile>2203</Tile>\r
-        <Tile>2206</Tile>\r
-        <Tile>2205</Tile>\r
-        <Tile>1304</Tile>\r
-        <Tile>2302</Tile>\r
-        <Tile>2207</Tile>\r
-        <Tile>2301</Tile>\r
-        <Tile>1308</Tile>\r
-        <Tile>2306</Tile>\r
-        <Tile>2303</Tile>\r
-        <Tile>2305</Tile>\r
-        <Tile>2307</Tile>\r
-        <Tile>2104</Tile>\r
-        <Tile>2108</Tile>\r
-        <Tile>2204</Tile>\r
-        <Tile>2208</Tile>\r
-        <Tile>2304</Tile>\r
-        <Tile>2308</Tile>\r
-      </Lane>\r
-      <Lane Index="7">\r
-        <Sample>s</Sample>\r
-        <Tile>1102</Tile>\r
-        <Tile>1106</Tile>\r
-        <Tile>1101</Tile>\r
-        <Tile>1105</Tile>\r
-        <Tile>1202</Tile>\r
-        <Tile>1201</Tile>\r
-        <Tile>1206</Tile>\r
-        <Tile>1205</Tile>\r
-        <Tile>1103</Tile>\r
-        <Tile>1302</Tile>\r
-        <Tile>1301</Tile>\r
-        <Tile>1107</Tile>\r
-        <Tile>1306</Tile>\r
-        <Tile>1305</Tile>\r
-        <Tile>1203</Tile>\r
-        <Tile>2101</Tile>\r
-        <Tile>2102</Tile>\r
-        <Tile>2105</Tile>\r
-        <Tile>1207</Tile>\r
-        <Tile>2106</Tile>\r
-        <Tile>2201</Tile>\r
-        <Tile>2202</Tile>\r
-        <Tile>2205</Tile>\r
-        <Tile>1303</Tile>\r
-        <Tile>1307</Tile>\r
-        <Tile>2206</Tile>\r
-        <Tile>2301</Tile>\r
-        <Tile>2103</Tile>\r
-        <Tile>2305</Tile>\r
-        <Tile>2302</Tile>\r
-        <Tile>2107</Tile>\r
-        <Tile>2306</Tile>\r
-        <Tile>2203</Tile>\r
-        <Tile>2207</Tile>\r
-        <Tile>2303</Tile>\r
-        <Tile>2307</Tile>\r
-        <Tile>1104</Tile>\r
-        <Tile>1108</Tile>\r
-        <Tile>1204</Tile>\r
-        <Tile>1208</Tile>\r
-        <Tile>1304</Tile>\r
-        <Tile>1308</Tile>\r
-        <Tile>2104</Tile>\r
-        <Tile>2108</Tile>\r
-        <Tile>2204</Tile>\r
-        <Tile>2208</Tile>\r
-        <Tile>2304</Tile>\r
-        <Tile>2308</Tile>\r
-      </Lane>\r
-      <Lane Index="8">\r
-        <Sample>s</Sample>\r
-        <Tile>1101</Tile>\r
-        <Tile>1102</Tile>\r
-        <Tile>1105</Tile>\r
-        <Tile>1106</Tile>\r
-        <Tile>1201</Tile>\r
-        <Tile>1202</Tile>\r
-        <Tile>1103</Tile>\r
-        <Tile>1205</Tile>\r
-        <Tile>1206</Tile>\r
-        <Tile>1107</Tile>\r
-        <Tile>1301</Tile>\r
-        <Tile>1302</Tile>\r
-        <Tile>1203</Tile>\r
-        <Tile>1306</Tile>\r
-        <Tile>1305</Tile>\r
-        <Tile>1207</Tile>\r
-        <Tile>2101</Tile>\r
-        <Tile>1303</Tile>\r
-        <Tile>2102</Tile>\r
-        <Tile>1307</Tile>\r
-        <Tile>2105</Tile>\r
-        <Tile>2103</Tile>\r
-        <Tile>2106</Tile>\r
-        <Tile>2201</Tile>\r
-        <Tile>2107</Tile>\r
-        <Tile>2205</Tile>\r
-        <Tile>2202</Tile>\r
-        <Tile>2206</Tile>\r
-        <Tile>2203</Tile>\r
-        <Tile>2301</Tile>\r
-        <Tile>2305</Tile>\r
-        <Tile>2302</Tile>\r
-        <Tile>2306</Tile>\r
-        <Tile>1104</Tile>\r
-        <Tile>2207</Tile>\r
-        <Tile>1108</Tile>\r
-        <Tile>1204</Tile>\r
-        <Tile>2303</Tile>\r
-        <Tile>2307</Tile>\r
-        <Tile>1208</Tile>\r
-        <Tile>1304</Tile>\r
-        <Tile>1308</Tile>\r
-        <Tile>2104</Tile>\r
-        <Tile>2108</Tile>\r
-        <Tile>2204</Tile>\r
-        <Tile>2208</Tile>\r
-        <Tile>2304</Tile>\r
-        <Tile>2308</Tile>\r
-      </Lane>\r
-    </TileSelection>\r
-    <Time />\r
-    <User />\r
-  </Run>\r
-</ImageAnalysis>
\ No newline at end of file
index 96037b9647c93146a9887334c3ec1ebdf9266b0d..a74d71a667d1cb788cbdaab24cdf8661738c9413 100644 (file)
@@ -24,7 +24,7 @@ from htsworkflow.util.rdfhelp import \
      fromTypedNode
 from htsworkflow.util.hashfile import make_md5sum
 
-logger = logging.getLogger(__name__)
+LOGGER = logging.getLogger(__name__)
 
 DAF_VARIABLE_NAMES = ("variables", "extraVariables")
 VARIABLES_TERM_NAME = 'variables'
@@ -130,7 +130,7 @@ def parse_stream(stream):
     if view_name is not None:
         attributes['views'][view_name] = view_attributes
 
-    logger.debug("DAF Attributes" + pformat(attributes))
+    LOGGER.debug("DAF Attributes" + pformat(attributes))
     return attributes
 
 
@@ -254,7 +254,7 @@ class UCSCSubmission(object):
              otherwise specifies model to use
         """
         if daf_file is None and model is None:
-            logger.error("We need a DAF or Model containing a DAF to work")
+            LOGGER.error("We need a DAF or Model containing a DAF to work")
 
         self.name = name
         self.submissionSet = get_submission_uri(self.name)
@@ -297,11 +297,11 @@ class UCSCSubmission(object):
         """Examine files in our result directory
         """
         for lib_id, result_dir in result_map.items():
-            logger.info("Importing %s from %s" % (lib_id, result_dir))
+            LOGGER.info("Importing %s from %s" % (lib_id, result_dir))
             try:
                 self.import_submission_dir(result_dir, lib_id)
             except MetadataLookupException, e:
-                logger.error("Skipping %s: %s" % (lib_id, str(e)))
+                LOGGER.error("Skipping %s: %s" % (lib_id, str(e)))
 
     def import_submission_dir(self, submission_dir, library_id):
         """Import a submission directories and update our model as needed
@@ -324,10 +324,10 @@ class UCSCSubmission(object):
         """
         path, filename = os.path.split(pathname)
 
-        logger.debug("Searching for view")
+        LOGGER.debug("Searching for view")
         view = self.find_view(filename)
         if view is None:
-            logger.warn("Unrecognized file: {0}".format(pathname))
+            LOGGER.warn("Unrecognized file: {0}".format(pathname))
             return None
         if str(view) == str(libraryOntology['ignore']):
             return None
@@ -339,7 +339,7 @@ class UCSCSubmission(object):
                                        dafTermOntology['name']))
         if view_name is None:
             errmsg = 'Could not find view name for {0}'
-            logger.warning(errmsg.format(str(view)))
+            LOGGER.warning(errmsg.format(str(view)))
             return
 
         view_name = str(view_name)
@@ -349,7 +349,7 @@ class UCSCSubmission(object):
             RDF.Statement(self.submissionSet,
                           dafTermOntology['has_submission'],
                           submissionNode))
-        logger.debug("Adding statements to {0}".format(str(submissionNode)))
+        LOGGER.debug("Adding statements to {0}".format(str(submissionNode)))
         self.model.add_statement(RDF.Statement(submissionNode,
                                                submissionOntology['has_view'],
                                                submissionView))
@@ -364,7 +364,7 @@ class UCSCSubmission(object):
                                                submissionOntology['library'],
                                                libNode))
 
-        logger.debug("Adding statements to {0}".format(str(submissionView)))
+        LOGGER.debug("Adding statements to {0}".format(str(submissionView)))
         # add track specific information
         self.model.add_statement(
             RDF.Statement(submissionView, dafTermOntology['view'], view))
@@ -380,11 +380,11 @@ class UCSCSubmission(object):
         # add file specific information
         self.create_file_attributes(filename, submissionView, submission_uri, submission_dir)
 
-        logger.debug("Done.")
+        LOGGER.debug("Done.")
 
     def create_file_attributes(self, filename, submissionView, submission_uri, submission_dir):
         # add file specific information
-        logger.debug("Updating file md5sum")
+        LOGGER.debug("Updating file md5sum")
         fileNode = RDF.Node(RDF.Uri(submission_uri + '/' + filename))
         submission_pathname = os.path.join(submission_dir, filename)
         self.model.add_statement(
@@ -399,7 +399,7 @@ class UCSCSubmission(object):
         md5 = make_md5sum(submission_pathname)
         if md5 is None:
             errmsg = "Unable to produce md5sum for {0}"
-            logger.warning(errmsg.format(submission_pathname))
+            LOGGER.warning(errmsg.format(submission_pathname))
         else:
             self.model.add_statement(
                 RDF.Statement(fileNode, dafTermOntology['md5sum'], md5))
@@ -513,7 +513,7 @@ class UCSCSubmission(object):
         else:
             msg = "Found wrong number of view names for {0} len = {1}"
             msg = msg.format(str(view), len(names))
-            logger.error(msg)
+            LOGGER.error(msg)
             raise RuntimeError(msg)
 
     def _get_filename_view_map(self):
@@ -528,11 +528,11 @@ class UCSCSubmission(object):
         for s in self.model.find_statements(filename_query):
             view_name = s.subject
             literal_re = s.object.literal_value['string']
-            logger.debug("Found: %s" % (literal_re,))
+            LOGGER.debug("Found: %s" % (literal_re,))
             try:
                 filename_re = re.compile(literal_re)
             except re.error, e:
-                logger.error("Unable to compile: %s" % (literal_re,))
+                LOGGER.error("Unable to compile: %s" % (literal_re,))
             patterns[literal_re] = view_name
         return patterns
 
index 737b1bb353458ceb0d961adf551a680cc1f9399f..8ff349fe9ae7444c5cc82f20c15e8458d6cc0599 100644 (file)
@@ -1,4 +1,5 @@
 import logging
+import os
 
 import RDF
 
@@ -6,6 +7,8 @@ from htsworkflow.submission.submission import Submission
 
 from htsworkflow.util.rdfhelp import \
      fromTypedNode, \
+     geoSoftNS, \
+     simplifyUri, \
      submissionOntology
 
 from django.conf import settings
@@ -19,13 +22,33 @@ class GEOSubmission(Submission):
 
     def make_soft(self, result_map):
         samples = []
+        platform = self.get_platform_metadata()
+        platform_attribs = dict(platform)
+        platform_id = platform_attribs['^platform']
+        series = self.get_series_metadata()
+        series_attribs = dict(series)
+        series_id = series_attribs['^series']
         for lib_id, result_dir in result_map.items():
             an_analysis = self.get_submission_node(result_dir)
-            samples.append(self.get_sample_metadata(an_analysis))
+            metadata = self.get_sample_metadata(an_analysis)
+            if len(metadata) > 1:
+                errmsg = 'Confused there are more than one samples for %s'
+                LOGGER.debug(errmsg % (str(an_analysis,)))
+            metadata = metadata[0]
+            metadata['raw'] = self.get_sample_files(an_analysis,
+                                                    geoSoftNS['raw'])
+            metadata['supplimental'] = self.get_sample_files(
+                an_analysis,
+                geoSoftNS['supplemental'])
+            samples.append(metadata)
 
         soft_template = loader.get_template('geo_submission.soft')
         context = Context({
-            'samples': samples
+            'platform': platform,
+            'series': series,
+            'samples': samples,
+            'platform_id': platform_id,
+            'series_id': series_id,
         })
         print str(soft_template.render(context))
 
@@ -39,19 +62,69 @@ class GEOSubmission(Submission):
         else:
             return True
 
+    def get_platform_metadata(self):
+        """Gather information for filling out sample section of a SOFT file
+        """
+        query_template = loader.get_template('geo_platform.sparql')
+        submission = str(self.submissionSetNS[''].uri)
+        context = Context({
+            'submission': submission,
+            })
+
+        results = self.execute_query(query_template, context)
+        return self.query_to_soft_dictionary(results, 'platform')
+
+    def get_series_metadata(self):
+        """Gather information for filling out sample section of a SOFT file
+        """
+        query_template = loader.get_template('geo_series.sparql')
+        submission = str(self.submissionSetNS[''].uri)
+        context = Context({
+            'submission': submission,
+            })
+
+        results = self.execute_query(query_template, context)
+        return self.query_to_soft_dictionary(results, 'series')
+
     def get_sample_metadata(self, analysis_node):
         """Gather information for filling out sample section of a SOFT file
         """
-        query_template = loader.get_template('geo_submission.sparql')
+        query_template = loader.get_template('geo_samples.sparql')
 
         context = Context({
             'submission': str(analysis_node.uri),
+            'submissionSet': str(self.submissionSetNS[''].uri),
             })
 
-        formatted_query = query_template.render(context)
-        query = RDF.SPARQLQuery(str(formatted_query))
-        rdfstream = query.execute(self.model)
-        results = []
-        for r in rdfstream:
-            results.append(r)
+        results = self.execute_query(query_template, context)
+        for r in results:
+
+            r['dataProtocol'] = str(r['dataProtocol']).replace('\n', ' ')
         return results
+
+    def get_sample_files(self, analysis_node, file_class):
+        """Gather files
+        """
+        query_template = loader.get_template('geo_files.sparql')
+
+        context = Context({
+            'submission': str(analysis_node.uri),
+            'file_class': str(file_class)
+            })
+
+        return self.execute_query(query_template, context)
+
+    def query_to_soft_dictionary(self, results, heading):
+        attributes = []
+        for r in results:
+            name = simplifyUri(geoSoftNS, r['name'])
+            if name is not None:
+                if name.lower() == heading.lower():
+                    name = '^' + name
+                else:
+                    name = '!' + name
+                for v in fromTypedNode(r['value']).split(os.linesep):
+                    v = v.strip()
+                    if len(v) > 0:
+                        attributes.append((name, v))
+        return attributes
index 98c25d57befc4047c4cc846ecd72f26fe02c740d..e4ce90c73b073287913ec2f76f5f1d5f0d9bd887 100644 (file)
@@ -24,7 +24,7 @@ from htsworkflow.submission.daf import \
      MetadataLookupException, \
      get_submission_uri
 
-logger = logging.getLogger(__name__)
+LOGGER = logging.getLogger(__name__)
 
 class Submission(object):
     def __init__(self, name, model):
@@ -32,7 +32,7 @@ class Submission(object):
         self.model = model
 
         self.submissionSet = get_submission_uri(self.name)
-        self.submissionSetNS = RDF.NS(str(self.submissionSet) + '/')
+        self.submissionSetNS = RDF.NS(str(self.submissionSet) + '#')
         self.libraryNS = RDF.NS('http://jumpgate.caltech.edu/library/')
 
         self.__view_map = None
@@ -41,11 +41,11 @@ class Submission(object):
         """Examine files in our result directory
         """
         for lib_id, result_dir in result_map.items():
-            logger.info("Importing %s from %s" % (lib_id, result_dir))
+            LOGGER.info("Importing %s from %s" % (lib_id, result_dir))
             try:
                 self.import_analysis_dir(result_dir, lib_id)
             except MetadataLookupException, e:
-                logger.error("Skipping %s: %s" % (lib_id, str(e)))
+                LOGGER.error("Skipping %s: %s" % (lib_id, str(e)))
 
     def import_analysis_dir(self, analysis_dir, library_id):
         """Import a submission directories and update our model as needed
@@ -68,18 +68,28 @@ class Submission(object):
         """
         path, filename = os.path.split(pathname)
 
-        logger.debug("Searching for view")
-        file_classification = self.find_best_match(filename)
-        if file_classification is None:
-            logger.warn("Unrecognized file: {0}".format(pathname))
+        LOGGER.debug("Searching for view")
+        file_type = self.find_best_match(filename)
+        if file_type is None:
+            LOGGER.warn("Unrecognized file: {0}".format(pathname))
             return None
-        if str(file_classification) == str(libraryOntology['ignore']):
+        if str(file_type) == str(libraryOntology['ignore']):
             return None
 
         an_analysis_name = self.make_submission_name(analysis_dir)
         an_analysis = self.get_submission_node(analysis_dir)
         an_analysis_uri = str(an_analysis.uri)
+        file_classification = self.model.get_target(file_type,
+                                                    rdfNS['type'])
+        if file_classification is None:
+            errmsg = 'Could not find class for {0}'
+            logger.warning(errmsg.format(str(file_type)))
+            return
 
+        self.model.add_statement(
+            RDF.Statement(self.submissionSetNS[''],
+                          submissionOntology['has_submission'],
+                          an_analysis))
         self.model.add_statement(RDF.Statement(an_analysis,
                                                submissionOntology['name'],
                                                toTypedNode(an_analysis_name)))
@@ -91,7 +101,7 @@ class Submission(object):
                                                submissionOntology['library'],
                                                libNode))
 
-        logger.debug("Adding statements to {0}".format(str(an_analysis)))
+        LOGGER.debug("Adding statements to {0}".format(str(an_analysis)))
         # add track specific information
         self.model.add_statement(
             RDF.Statement(an_analysis,
@@ -108,8 +118,11 @@ class Submission(object):
                                              an_analysis_uri,
                                              analysis_dir)
         self.add_md5s(filename, fileNode, analysis_dir)
-
-        logger.debug("Done.")
+        self.model.add_statement(
+            RDF.Statement(fileNode,
+                          rdfNS['type'],
+                          file_type))
+        LOGGER.debug("Done.")
 
     def link_file_to_classes(self, filename, submissionNode, submission_uri, analysis_dir):
         # add file specific information
@@ -125,12 +138,12 @@ class Submission(object):
         return fileNode
 
     def add_md5s(self, filename, fileNode, analysis_dir):
-        logger.debug("Updating file md5sum")
+        LOGGER.debug("Updating file md5sum")
         submission_pathname = os.path.join(analysis_dir, filename)
         md5 = make_md5sum(submission_pathname)
         if md5 is None:
             errmsg = "Unable to produce md5sum for {0}"
-            logger.warning(errmsg.format(submission_pathname))
+            LOGGER.warning(errmsg.format(submission_pathname))
         else:
             self.model.add_statement(
                 RDF.Statement(fileNode, dafTermOntology['md5sum'], md5))
@@ -178,11 +191,11 @@ class Submission(object):
         for s in self.model.find_statements(filename_query):
             view_name = s.subject
             literal_re = s.object.literal_value['string']
-            logger.debug("Found: %s" % (literal_re,))
+            LOGGER.debug("Found: %s" % (literal_re,))
             try:
                 filename_re = re.compile(literal_re)
             except re.error, e:
-                logger.error("Unable to compile: %s" % (literal_re,))
+                LOGGER.error("Unable to compile: %s" % (literal_re,))
             patterns[literal_re] = view_name
         return patterns
 
@@ -254,3 +267,14 @@ class Submission(object):
                 "Unrecognized library type %s for %s" % \
                 (library_type, str(libNode)))
 
+    def execute_query(self, template, context):
+        """Execute the query, returning the results
+        """
+        formatted_query = template.render(context)
+        LOGGER.debug(formatted_query)
+        query = RDF.SPARQLQuery(str(formatted_query))
+        rdfstream = query.execute(self.model)
+        results = []
+        for r in rdfstream:
+            results.append(r)
+        return results
diff --git a/htsworkflow/templates/geo_files.sparql b/htsworkflow/templates/geo_files.sparql
new file mode 100644 (file)
index 0000000..7b66f4f
--- /dev/null
@@ -0,0 +1,18 @@
+PREFIX libraryOntology: <http://jumpgate.caltech.edu/wiki/LibraryOntology#>
+PREFIX submissionOntology: <http://jumpgate.caltech.edu/wiki/UcscSubmissionOntology#>
+PREFIX ucscDaf: <http://jumpgate.caltech.edu/wiki/UcscDaf#>
+PREFIX ncbiTaxon: <http://www.ncbi.nlm.nih.gov/Taxonomy/Browser/wwwtax.cgi?id=>
+PREFIX geoSoft: <http://www.ncbi.nlm.nih.gov/geo/info/soft2.html#>
+
+select distinct ?filename, ?md5sum, ?file_type ?file_type_label
+WHERE {
+  <{{submission}}> ucscDaf:has_file ?file ;
+                   a submissionOntology:submission .
+
+  ?file ucscDaf:filename ?filename ;
+        ucscDaf:md5sum ?md5sum ;
+        a ?file_type .
+  ?file_type a <{{file_class}}> ;
+             geoSoft:fileTypeLabel ?file_type_label .
+
+}
\ No newline at end of file
diff --git a/htsworkflow/templates/geo_platform.sparql b/htsworkflow/templates/geo_platform.sparql
new file mode 100644 (file)
index 0000000..4d224d7
--- /dev/null
@@ -0,0 +1,14 @@
+PREFIX libraryOntology: <http://jumpgate.caltech.edu/wiki/LibraryOntology#>
+PREFIX submissionOntology: <http://jumpgate.caltech.edu/wiki/UcscSubmissionOntology#>
+PREFIX ucscDaf: <http://jumpgate.caltech.edu/wiki/UcscDaf#>
+PREFIX ncbiTaxon: <http://www.ncbi.nlm.nih.gov/Taxonomy/Browser/wwwtax.cgi?id=>
+PREFIX geoSoft: <http://www.ncbi.nlm.nih.gov/geo/info/soft2.html#>
+
+
+select distinct ?name ?value
+WHERE {
+  <{{submission}}> submissionOntology:has_platform ?platform .
+  ?platform a geoSoft:platform .
+
+  ?platform ?name ?value .
+}
diff --git a/htsworkflow/templates/geo_samples.sparql b/htsworkflow/templates/geo_samples.sparql
new file mode 100644 (file)
index 0000000..850d99a
--- /dev/null
@@ -0,0 +1,41 @@
+PREFIX libraryOntology: <http://jumpgate.caltech.edu/wiki/LibraryOntology#>
+PREFIX submissionOntology: <http://jumpgate.caltech.edu/wiki/UcscSubmissionOntology#>
+PREFIX ucscDaf: <http://jumpgate.caltech.edu/wiki/UcscDaf#>
+PREFIX ncbiTaxon: <http://www.ncbi.nlm.nih.gov/Taxonomy/Browser/wwwtax.cgi?id=>
+PREFIX geoSoft: <http://www.ncbi.nlm.nih.gov/geo/info/soft2.html#>
+PREFIX cells: <http://encodewiki.ucsc.edu/EncodeDCC/index.php/Cell_lines#>
+
+select distinct ?name ?cell ?antibody ?sex ?control ?strain ?controlId ?library_id ?treatment ?protocol ?readType ?insertLength ?replicate, ?mapAlgorithm ?species_name ?taxon_id ?extractMolecule ?growthProtocol ?extractProtocol ?dataProtocol ?experiment_type ?library_selection ?library_source
+WHERE {
+  <{{submission}}> a submissionOntology:submission .
+
+  OPTIONAL { <{{submission}}> ucscDaf:control ?control }
+  OPTIONAL { <{{submission}}> ucscDaf:controlId ?controlId }
+  OPTIONAL { ?library libraryOntology:antibody ?antibody }
+  OPTIONAL { ?library libraryOntology:cell_line ?cell .
+             ?cell_line cells:cell ?cell ;
+                        cells:documents ?growthProtocol . }
+  OPTIONAL { ?library ucscDaf:sex ?sex }
+  OPTIONAL { ?library libraryOntology:library_id ?library_id }
+  OPTIONAL { ?library libraryOntology:replicate ?replicate }
+  OPTIONAL { ?library libraryOntology:species ?species_name }
+  OPTIONAL { ?library libraryOntology:condition_term ?treatment }
+  OPTIONAL { ?library libraryOntology:experiment_type ?experiment_type }
+  OPTIONAL { ?library libraryOntology:librarySelection ?library_selection }
+  OPTIONAL { ?library libraryOntology:librarySource ?library_source }
+  OPTIONAL { <{{submissionSet}}> geoSoft:data_processing ?dataProtocol }
+  OPTIONAL { ?library libraryOntology:extractMolecule ?extractMolecule }
+  OPTIONAL { ?library libraryOntology:extractProtocol ?extractProtocol }
+  OPTIONAL { ?library ucscDaf:protocol ?protocol }
+  OPTIONAL { ?library ucscDaf:readType ?readType }
+  OPTIONAL { ?library ucscDaf:strain ?strain }
+  OPTIONAL { ?library libraryOntology:insert_size ?insertLength }
+  OPTIONAL { ?library ucscDaf:mapAlgorithm ?mapAlgorithm }
+
+  <{{submission}}> submissionOntology:library ?library ;
+                   submissionOntology:name ?name .
+  ?species libraryOntology:species ?species_name ;
+           libraryOntology:taxon_id ?taxon_id .
+
+
+}
\ No newline at end of file
diff --git a/htsworkflow/templates/geo_series.sparql b/htsworkflow/templates/geo_series.sparql
new file mode 100644 (file)
index 0000000..815f311
--- /dev/null
@@ -0,0 +1,14 @@
+PREFIX libraryOntology: <http://jumpgate.caltech.edu/wiki/LibraryOntology#>
+PREFIX submissionOntology: <http://jumpgate.caltech.edu/wiki/UcscSubmissionOntology#>
+PREFIX ucscDaf: <http://jumpgate.caltech.edu/wiki/UcscDaf#>
+PREFIX ncbiTaxon: <http://www.ncbi.nlm.nih.gov/Taxonomy/Browser/wwwtax.cgi?id=>
+PREFIX geoSoft: <http://www.ncbi.nlm.nih.gov/geo/info/soft2.html#>
+
+
+select distinct ?name ?value
+WHERE {
+  <{{submission}}> submissionOntology:has_series ?series.
+  ?series a geoSoft:series .
+
+  ?series ?name ?value .
+}
index ae2ac5760946a14d414fd87730812e477bdafb87..00c0b4dc77818789bfea8950507fbd1dba0c13fb 100644 (file)
@@ -1,11 +1,39 @@
-Soft template
-!Platform_title = Illumina Genome Analyzer (Homo sapiens)
-!Platform_geo_accession = GPL9052
-{% for sample in samples %}{% for row in sample %}{%if forloop.first %}
+{% for name, value in series %}{{name}} = {{value}}
+{% endfor %}!Series_platform_id = {{ platform_id }}
+{% for row in samples %}
 ^SAMPLE={{row.name}}
+!Sample_type=SRA
 !Sample_title={{row.name}}
+!Sample_series_id = {{ series_id }}
+!Sample_instrument_model = Illumina Genome Analyzer
+!Sample_instrument_model = Illumina Genome Analyzer II
+!Sample_instrument_model = Illumina Genome Analyzer IIx
+!Sample_instrument_model = Illumina HiSeq 2000
+!Sample_channel_count = 1
 !Sample_organism_ch1 = {{ row.species_name }}
 !Sample_taxid_ch1 = {{ row.taxon_id }}
-{% spaceless %}{% if row.cell %}!Sample_characteristics_ch1 = cell: {{ row.cell }}
-{% endif %}{% endspaceless %}{% endif %}
-!Sample_supplementary_file_{{forloop.counter}}={{row.filename}}{% endfor %}{% endfor %}
\ No newline at end of file
+!Sample_platform_id = {{ platform_id }}
+!Sample_source_name_ch1={{row.cell}}
+!Sample_library_strategy={{ row.experiment_type }}
+!Sample_library_source={{row.library_source}}
+!Sample_library_selection={{ row.library_selection }}
+!Sample_growth_protocol_ch1={{ row.growthProtocol|safe }}
+!Sample_extract_protocol={{ row.extractProtocol|safe }}
+!Sample_data_processing={{ row.dataProtocol|safe }}
+!Sample_molecule_ch1 = {{ row.extractMolecule }}
+!Sample_characteristics_ch1 = labExpId: {{ row.library_id }}
+!Sample_characteristics_ch1 = replicate: {{ row.replicate }}
+{% if row.cell %}{% spaceless %}
+!Sample_characteristics_ch1 = cell: {{ row.cell }}
+{% endspaceless %}{% endif %}
+{% if row.readType %}{% spaceless %}
+!Sample_characteristics_ch1 = readType: {{ row.readType }}
+{% endspaceless %}{% endif %}{% if row.antibody %}{% spaceless %}
+!Sample_characteristics_ch1 = cell: {{ row.antibody }}
+{% endspaceless %}{% endif %}{% for raw in row.raw %}
+!Sample_raw_file_{{forloop.counter}}={{raw.filename}}
+!Sample_raw_file_type_{{forloop.counter}}={{raw.file_type_label}}
+!Sample_raw_file_checksum_{{forloop.counter}}={{raw.md5sum}}{% endfor %}{% for sup in row.supplimental %}
+!Sample_supplementary_file_{{forloop.counter}}={{sup.filename}}
+!Sample_supplementary_file_checksum_{{forloop.counter}}={{sup.md5sum}}
+{% endfor %}{% endfor %}
\ No newline at end of file
diff --git a/htsworkflow/templates/geo_submission.sparql b/htsworkflow/templates/geo_submission.sparql
deleted file mode 100644 (file)
index 1d7cbb1..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-PREFIX libraryOntology: <http://jumpgate.caltech.edu/wiki/LibraryOntology#>
-PREFIX submissionOntology: <http://jumpgate.caltech.edu/wiki/UcscSubmissionOntology#>
-PREFIX ucscDaf: <http://jumpgate.caltech.edu/wiki/UcscDaf#>
-PREFIX ncbiTaxon: <http://www.ncbi.nlm.nih.gov/Taxonomy/Browser/wwwtax.cgi?id=>
-
-select distinct ?name ?filename ?md5sum ?cell ?antibody ?sex ?control ?strain ?controlId ?labExpId ?labVersion ?treatment ?protocol ?readType ?insertLength ?replicate, ?mapAlgorithm ?species_name ?taxon_id
-WHERE {
-  <{{submission}}> a submissionOntology:submission .
-
-  OPTIONAL { ?submission ucscDaf:control ?control }
-  #OPTIONAL { ?submission ucscDaf:controlId ?controlId }
-  #OPTIONAL { ?library libraryOntology:antibody ?antibody }
-  OPTIONAL { ?library libraryOntology:cell_line ?cell } .
-  #OPTIONAL { ?library ucscDaf:sex ?sex }
-  OPTIONAL { ?library libraryOntology:library_id ?labExpId }
-  OPTIONAL { ?library libraryOntology:library_id ?labVersion }
-  OPTIONAL { ?library libraryOntology:replicate ?replicate }
-  OPTIONAL { ?library libraryOntology:species ?species_name }
-  
-  #OPTIONAL { ?library libraryOntology:condition_term ?treatment }
-  #OPTIONAL { ?library ucscDaf:protocol ?protocol }
-  #OPTIONAL { ?library ucscDaf:readType ?readType }
-  #OPTIONAL { ?library ucscDaf:strain ?strain }
-  #OPTIONAL { ?library libraryOntology:insert_size ?insertLength }
-  #OPTIONAL { ?library ucscDaf:mapAlgorithm ?mapAlgorithm }
-
-  <{{submission}}> submissionOntology:library ?library ;
-                   ucscDaf:has_file ?file ;
-                   submissionOntology:name ?name .
-  ?species libraryOntology:species ?species_name ;
-           libraryOntology:taxon_id ?taxon_id .
-  ?file ucscDaf:filename ?filename .
-}
diff --git a/htsworkflow/templates/rdf_report.html b/htsworkflow/templates/rdf_report.html
new file mode 100644 (file)
index 0000000..298e93a
--- /dev/null
@@ -0,0 +1,37 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Report</title>
+    <style>
+table {
+    border-spacing: 0;
+}
+
+table, td {
+    border-style: solid;
+}
+
+td { margin: 0;
+     border-width: 1px 1px 0 0;
+     padding: 4px;
+}    </style>
+  </head>
+  <body>
+    <table>
+      <thead>
+        <tr>{% for k in results.0 %}
+          <td>{{k}}</td>{% endfor %}
+        </tr>
+      </thead>
+      <tbody>
+        {% for row in results %}<tr>{% for value in row.values %}
+          <td>{% spaceless %}
+            {% if value.url %}<a href="{{ value.url }}">{% endif%}
+            {{value.simple}}
+            {% if value.url %}</a>{% endif %}</td>{% endspaceless %}{% endfor %}
+        </tr>
+      {% endfor %}
+      </tbody>
+    </table>
+  </body>
+</html>
index 5e2560659bef32454415fa8d091023a540e428cf..c9d66495e76fe672a5c41019ce378358c4ee736b 100644 (file)
@@ -35,10 +35,10 @@ def chunkify(str):
     return a list of numbers and non-numeric substrings of +str+
     the numeric substrings are converted to integer, non-numeric are left as is
     """
-    if type(str) in types.StringTypes: 
+    if type(str) in types.StringTypes:
         chunks = re.findall("(\d+|\D+)",str)
         #convert numeric strings to numbers
-        chunks = [re.match('\d',x) and int(x) or x for x in chunks] 
+        chunks = [re.match('\d',x) and int(x) or x for x in chunks]
         return chunks
     elif type(str) in [types.IntType, types.LongType, types.FloatType]:
         return [str]
@@ -58,12 +58,3 @@ def alphanum(a,b):
     bChunks = chunkify(b)
 
     return cmp(aChunks,bChunks) #built in comparison works once data is prepared
-
-
-
-if __name__ == "__main__":
-       unsorted = ["1000X Radonius Maximus","10X Radonius","200X Radonius","20X Radonius","20X Radonius Prime","30X Radonius","40X Radonius","Allegia 50 Clasteron","Allegia 500 Clasteron","Allegia 51 Clasteron","Allegia 51B Clasteron","Allegia 52 Clasteron","Allegia 60 Clasteron","Alpha 100","Alpha 2","Alpha 200","Alpha 2A","Alpha 2A-8000","Alpha 2A-900","Callisto Morphamax","Callisto Morphamax 500","Callisto Morphamax 5000","Callisto Morphamax 600","Callisto Morphamax 700","Callisto Morphamax 7000","Callisto Morphamax 7000 SE","Callisto Morphamax 7000 SE2","QRS-60 Intrinsia Machine","QRS-60F Intrinsia Machine","QRS-62 Intrinsia Machine","QRS-62F Intrinsia Machine","Xiph Xlater 10000","Xiph Xlater 2000","Xiph Xlater 300","Xiph Xlater 40","Xiph Xlater 5","Xiph Xlater 50","Xiph Xlater 500","Xiph Xlater 5000","Xiph Xlater 58"]
-       sorted = unsorted[:]
-       sorted.sort(alphanum)
-       print '+++++Sorted...++++'
-       print '\n'.join(sorted)
index 1f9ec6179f2f933d1b52a1afefd7cdbe2e873537..3ca27fb97315b968644724a977e55aedd1bb5443 100644 (file)
@@ -1,10 +1,15 @@
 """Helper features for working with librdf
 """
+import collections
 from datetime import datetime
+from urlparse import urlparse, urlunparse
+from urllib2 import urlopen
 import logging
 import os
 import types
 
+import lxml.html
+import lxml.html.clean
 import RDF
 
 logger = logging.getLogger(__name__)
@@ -13,37 +18,72 @@ logger = logging.getLogger(__name__)
 owlNS = RDF.NS('http://www.w3.org/2002/07/owl#')
 dublinCoreNS = RDF.NS("http://purl.org/dc/elements/1.1/")
 rdfNS = RDF.NS("http://www.w3.org/1999/02/22-rdf-syntax-ns#")
-rdfsNS= RDF.NS("http://www.w3.org/2000/01/rdf-schema#")
+rdfsNS = RDF.NS("http://www.w3.org/2000/01/rdf-schema#")
 xsdNS = RDF.NS("http://www.w3.org/2001/XMLSchema#")
 
 # internal ontologies
-submissionOntology = RDF.NS("http://jumpgate.caltech.edu/wiki/UcscSubmissionOntology#")
+submissionOntology = RDF.NS(
+    "http://jumpgate.caltech.edu/wiki/UcscSubmissionOntology#")
 dafTermOntology = RDF.NS("http://jumpgate.caltech.edu/wiki/UcscDaf#")
 libraryOntology = RDF.NS("http://jumpgate.caltech.edu/wiki/LibraryOntology#")
-inventoryOntology = RDF.NS("http://jumpgate.caltech.edu/wiki/InventoryOntology#")
+inventoryOntology = RDF.NS(
+    "http://jumpgate.caltech.edu/wiki/InventoryOntology#")
 submissionLog = RDF.NS("http://jumpgate.caltech.edu/wiki/SubmissionsLog/")
+geoSoftNS = RDF.NS('http://www.ncbi.nlm.nih.gov/geo/info/soft2.html#')
 
 ISOFORMAT_MS = "%Y-%m-%dT%H:%M:%S.%f"
 ISOFORMAT_SHORT = "%Y-%m-%dT%H:%M:%S"
 
-def sparql_query(model, query_filename):
+
+def sparql_query(model, query_filename, output_format='text'):
     """Execute sparql query from file
     """
     logger.info("Opening: %s" % (query_filename,))
-    query_body = open(query_filename,'r').read()
+    query_body = open(query_filename, 'r').read()
     query = RDF.SPARQLQuery(query_body)
     results = query.execute(model)
-    display_query_results(results)
+    if output_format == 'html':
+        html_query_results(results)
+    else:
+        display_query_results(results)
+
 
 def display_query_results(results):
+    """A very simple display of sparql query results showing name value pairs
+    """
     for row in results:
-        output = []
-        for k,v in row.items()[::-1]:
-            print "{0}: {1}".format(k,v)
+        for k, v in row.items()[::-1]:
+            print "{0}: {1}".format(k, v)
         print
 
+def html_query_results(result_stream):
+    from django.conf import settings
+    from django.template import Context, loader
+
+    # I did this because I couldn't figure out how to
+    # get simplify_rdf into the django template as a filter
+    class Simplified(object):
+        def __init__(self, value):
+            self.simple = simplify_rdf(value)
+            if value.is_resource():
+                self.url = value
+            else:
+                self.url = None
+
+    template = loader.get_template('rdf_report.html')
+    results = []
+    for row in result_stream:
+        new_row = collections.OrderedDict()
+        row_urls = []
+        for k,v in row.items():
+            new_row[k] = Simplified(v)
+        results.append(new_row)
+    context = Context({'results': results,})
+    print template.render(context)
 
 def blankOrUri(value=None):
+    """Return a blank node for None or a resource node for strings.
+    """
     node = None
     if value is None:
         node = RDF.Node()
@@ -56,6 +96,8 @@ def blankOrUri(value=None):
 
 
 def toTypedNode(value):
+    """Convert a python variable to a RDF Node with its closest xsd type
+    """
     if type(value) == types.BooleanType:
         value_type = xsdNS['boolean'].uri
         if value:
@@ -84,13 +126,14 @@ def toTypedNode(value):
         node = RDF.Node(literal=unicode(value).encode('utf-8'))
     return node
 
+
 def fromTypedNode(node):
+    """Convert a typed RDF Node to its closest python equivalent
+    """
     if node is None:
         return None
 
-    value_type = str(node.literal_value['datatype'])
-    # chop off xml schema declaration
-    value_type = value_type.replace(str(xsdNS[''].uri),'')
+    value_type = get_node_type(node)
     literal = node.literal_value['string']
     literal_lower = literal.lower()
 
@@ -112,11 +155,83 @@ def fromTypedNode(node):
     elif value_type in ('dateTime'):
         try:
             return datetime.strptime(literal, ISOFORMAT_MS)
-        except ValueError, e:
+        except ValueError, _:
             return datetime.strptime(literal, ISOFORMAT_SHORT)
     return literal
 
 
+def get_node_type(node):
+    """Return just the base name of a XSD datatype:
+    e.g. http://www.w3.org/2001/XMLSchema#integer -> integer
+    """
+    # chop off xml schema declaration
+    value_type = node.literal_value['datatype']
+    if value_type is None:
+        return "string"
+    else:
+        value_type = str(value_type)
+        return value_type.replace(str(xsdNS[''].uri), '')
+
+
+def simplify_rdf(value):
+    """Return a short name for a RDF object
+    e.g. The last part of a URI or an untyped string.
+    """
+    if isinstance(value, RDF.Node):
+        if value.is_resource():
+            name = simplify_uri(str(value.uri))
+        elif value.is_blank():
+            name = '<BLANK>'
+        else:
+            name = value.literal_value['string']
+    elif isinstance(value, RDF.Uri):
+        name = split_uri(str(value))
+    else:
+        name = value
+    return str(name)
+
+
+def simplify_uri(uri):
+    """Split off the end of a uri
+
+    >>> simplify_uri('http://asdf.org/foo/bar')
+    'bar'
+    >>> simplify_uri('http://asdf.org/foo/bar#bleem')
+    'bleem'
+    >>> simplify_uri('http://asdf.org/foo/bar/')
+    'bar'
+    >>> simplify_uri('http://asdf.org/foo/bar?was=foo')
+    'was=foo'
+    """
+    parsed = urlparse(uri)
+    if len(parsed.query) > 0:
+        return parsed.query
+    elif len(parsed.fragment) > 0:
+        return parsed.fragment
+    elif len(parsed.path) > 0:
+        for element in reversed(parsed.path.split('/')):
+            if len(element) > 0:
+                return element
+    raise ValueError("Unable to simplify %s" % (uri,))
+
+def simplifyUri(namespace, term):
+    """Remove the namespace portion of a term
+
+    returns None if they aren't in common
+    """
+    if isinstance(term, RDF.Node):
+        if  term.is_resource():
+            term = term.uri
+        else:
+            raise ValueError("This works on resources")
+    elif not isinstance(term, RDF.Uri):
+        raise ValueError("This works on resources")
+    term_s = str(term)
+    if not term_s.startswith(namespace._prefix):
+        return None
+    return term_s.replace(namespace._prefix, "")
+
+
 def get_model(model_name=None, directory=None):
     if directory is None:
         directory = os.getcwd()
@@ -133,21 +248,79 @@ def get_model(model_name=None, directory=None):
     return model
 
 
-def load_into_model(model, parser_name, filename, ns=None):
-    if not os.path.exists(filename):
-        raise IOError("Can't find {0}".format(filename))
-
-    data = open(filename, 'r').read()
+def load_into_model(model, parser_name, path, ns=None):
+    url_parts = list(urlparse(path))
+    if len(url_parts[0]) == 0:
+        url_parts[0] = 'file'
+        url_parts[2] = os.path.abspath(url_parts[2])
+    url = urlunparse(url_parts)
+    logger.info("Opening %s" % (url,))
+    req = urlopen(url)
+    logger.debug("request status: %s" % (req.code,))
+    if parser_name is None:
+        content_type = req.headers.get('Content-Type', None)
+        parser_name = guess_parser(content_type, path)
+        logger.debug("Guessed parser: %s" % (parser_name,))
+    data = req.read()
     load_string_into_model(model, parser_name, data, ns)
 
 
 def load_string_into_model(model, parser_name, data, ns=None):
     if ns is None:
-        ns = "http://localhost/"
-
+        ns = RDF.NS("http://localhost/")
+    imports = owlNS['imports']
     rdf_parser = RDF.Parser(name=parser_name)
-    rdf_parser.parse_string_into_model(model, data, ns)
+    for s in rdf_parser.parse_string_as_stream(data, ns):
+        if s.predicate == imports:
+            obj = str(s.object)
+            logger.info("Importing %s" % (obj,))
+            load_into_model(model, None, obj, ns)
+        if s.object.is_literal():
+            value_type = get_node_type(s.object)
+            if value_type == 'string':
+                s.object = sanitize_literal(s.object)
+        model.add_statement(s)
+
+
+def sanitize_literal(node):
+    """Clean up a literal string
+    """
+    if not isinstance(node, RDF.Node):
+        raise ValueError("sanitize_literal only works on RDF.Nodes")
 
+    element = lxml.html.fromstring(node.literal_value['string'])
+    cleaner = lxml.html.clean.Cleaner(page_structure=False)
+    element = cleaner.clean_html(element)
+    text = lxml.html.tostring(element)
+    p_len = 3
+    slash_p_len = 4
+
+    args = {'literal': text[p_len:-slash_p_len]}
+    datatype = node.literal_value['datatype']
+    if datatype is not None:
+        args['datatype'] = datatype
+    language = node.literal_value['language']
+    if language is not None:
+        args['language'] = language
+    return RDF.Node(**args)
+
+
+def guess_parser(content_type, pathname):
+    if content_type in ('application/rdf+xml'):
+        return 'rdfxml'
+    elif content_type in ('application/x-turtle'):
+        return 'turtle'
+    elif content_type in ('text/html'):
+        return 'rdfa'
+    elif content_type is None:
+        _, ext = os.path.splitext(pathname)
+        if ext in ('xml', 'rdf'):
+            return 'rdfxml'
+        elif ext in ('html'):
+            return 'rdfa'
+        elif ext in ('turtle'):
+            return 'turtle'
+    return 'guess'
 
 def get_serializer(name='turtle'):
     """Return a serializer with our standard prefixes loaded
@@ -165,6 +338,7 @@ def get_serializer(name='turtle'):
     writer.set_namespace('ucscDaf', dafTermOntology._prefix)
     return writer
 
+
 def dump_model(model):
     serializer = get_serializer()
     print serializer.serialize_model_to_string(model)
diff --git a/htsworkflow/util/test/extra.turtle b/htsworkflow/util/test/extra.turtle
new file mode 100644 (file)
index 0000000..9e77f14
--- /dev/null
@@ -0,0 +1,6 @@
+@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
+@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
+@prefix owl: <http://www.w3.org/2002/07/owl#> .
+
+<http://jumpgate.caltech.edu/wiki/TestCase>
+        rdfs:label "TestCase" .
\ No newline at end of file
index f7b488d0b5cf575f04ec525c0b74bfd55b2bc659..3fd60250cbe392f9208c077076253fd6aed10f94 100644 (file)
@@ -27,6 +27,19 @@ class testAlphanum(unittest.TestCase):
       for i in xrange(len(scratch)):
         self.failUnlessEqual(scratch[i], sorted[i])
 
+    def test_long_names(self):
+        unsorted = ["1000X Radonius Maximus","10X Radonius","200X Radonius","20X Radonius","20X Radonius Prime","30X Radonius","40X Radonius","Allegia 50 Clasteron","Allegia 500 Clasteron","Allegia 51 Clasteron","Allegia 51B Clasteron","Allegia 52 Clasteron","Allegia 60 Clasteron","Alpha 100","Alpha 2","Alpha 200","Alpha 2A","Alpha 2A-8000","Alpha 2A-900","Callisto Morphamax","Callisto Morphamax 500","Callisto Morphamax 5000","Callisto Morphamax 600","Callisto Morphamax 700","Callisto Morphamax 7000","Callisto Morphamax 7000 SE","Callisto Morphamax 7000 SE2","QRS-60 Intrinsia Machine","QRS-60F Intrinsia Machine","QRS-62 Intrinsia Machine","QRS-62F Intrinsia Machine","Xiph Xlater 10000","Xiph Xlater 2000","Xiph Xlater 300","Xiph Xlater 40","Xiph Xlater 5","Xiph Xlater 50","Xiph Xlater 500","Xiph Xlater 5000","Xiph Xlater 58"]
+        expected = ['10X Radonius', '20X Radonius', '20X Radonius Prime', '30X Radonius', '40X Radonius', '200X Radonius', '1000X Radonius Maximus', 'Allegia 50 Clasteron', 'Allegia 51 Clasteron', 'Allegia 51B Clasteron', 'Allegia 52 Clasteron', 'Allegia 60 Clasteron', 'Allegia 500 Clasteron', 'Alpha 2', 'Alpha 2A', 'Alpha 2A-900', 'Alpha 2A-8000', 'Alpha 100', 'Alpha 200', 'Callisto Morphamax', 'Callisto Morphamax 500', 'Callisto Morphamax 600', 'Callisto Morphamax 700', 'Callisto Morphamax 5000', 'Callisto Morphamax 7000', 'Callisto Morphamax 7000 SE', 'Callisto Morphamax 7000 SE2', 'QRS-60 Intrinsia Machine', 'QRS-60F Intrinsia Machine', 'QRS-62 Intrinsia Machine', 'QRS-62F Intrinsia Machine', 'Xiph Xlater 5', 'Xiph Xlater 40', 'Xiph Xlater 50', 'Xiph Xlater 58', 'Xiph Xlater 300', 'Xiph Xlater 500', 'Xiph Xlater 2000', 'Xiph Xlater 5000', 'Xiph Xlater 10000']
+
+        s = unsorted[:]
+        s.sort(alphanum)
+        self.failUnlessEqual(s, expected)
+
+    def test_bad_input(self):
+        unsorted = [object(), (1,3j)]
+        s = unsorted[:]
+        self.failUnlessRaises(ValueError, s.sort, alphanum)
+
 
 def suite():
     return unittest.makeSuite(testAlphanum, 'test')
index df275edd095b818301308816589000405e67833d..4fe6769f827b0636cccfdbdd63307981018e7423 100644 (file)
+import os
 import unittest
 import types
 
+
 from datetime import datetime
 
 from htsworkflow.util.rdfhelp import \
      blankOrUri, \
-     toTypedNode, \
+     dump_model, \
      fromTypedNode, \
+     get_model, \
+     load_string_into_model, \
+     rdfsNS, \
+     toTypedNode, \
+     simplifyUri, \
+     sanitize_literal, \
      xsdNS
 
 try:
-  import RDF
-
-  class TestRDFHelp(unittest.TestCase):
-      def test_typed_node_boolean(self):
-          node = toTypedNode(True)
-          self.failUnlessEqual(node.literal_value['string'], u'1')
-          self.failUnlessEqual(str(node.literal_value['datatype']),
-                               'http://www.w3.org/2001/XMLSchema#boolean')
-
-      def test_typed_node_string(self):
-          node = toTypedNode('hello')
-          self.failUnlessEqual(node.literal_value['string'], u'hello')
-          self.failUnless(node.literal_value['datatype'] is None)
-
-      def test_blank_or_uri_blank(self):
-          node = blankOrUri()
-          self.failUnlessEqual(node.is_blank(), True)
-
-      def test_blank_or_uri_url(self):
-          s = 'http://google.com'
-          node = blankOrUri(s)
-          self.failUnlessEqual(node.is_resource(), True)
-          self.failUnlessEqual(str(node.uri), s)
-
-      def test_blank_or_uri_node(self):
-          s = RDF.Node(RDF.Uri('http://google.com'))
-          node = blankOrUri(s)
-          self.failUnlessEqual(node.is_resource(), True)
-          self.failUnlessEqual(node, s)
-
-      def test_unicode_node_roundtrip(self):
-          literal = u'\u5927'
-          roundtrip = fromTypedNode(toTypedNode(literal))
-          self.failUnlessEqual(roundtrip, literal)
-          self.failUnlessEqual(type(roundtrip), types.UnicodeType)
-
-      def test_datetime_no_microsecond(self):
-          dateTimeType = xsdNS['dateTime'].uri
-          short_isostamp = '2011-12-20T11:44:25'
-          short_node = RDF.Node(literal=short_isostamp,
-                               datatype=dateTimeType)
-          short_datetime = datetime(2011,12,20,11,44,25)
-
-          self.assertEqual(fromTypedNode(short_node), short_datetime)
-          self.assertEqual(toTypedNode(short_datetime), short_node)
-          self.assertEqual(fromTypedNode(toTypedNode(short_datetime)),
-                           short_datetime)
-
-      def test_datetime_with_microsecond(self):
-          dateTimeType = xsdNS['dateTime'].uri
-          long_isostamp = '2011-12-20T11:44:25.081776'
-          long_node = RDF.Node(literal=long_isostamp,
-                               datatype=dateTimeType)
-          long_datetime = datetime(2011,12,20,11,44,25,81776)
-
-          self.assertEqual(fromTypedNode(long_node), long_datetime)
-          self.assertEqual(toTypedNode(long_datetime), long_node)
-          self.assertEqual(fromTypedNode(toTypedNode(long_datetime)),
-                           long_datetime)
-
-  def suite():
-      return unittest.makeSuite(testRdfHelp, 'test')
+    import RDF
+
+    class TestRDFHelp(unittest.TestCase):
+        def test_from_none(self):
+          self.failUnlessEqual(fromTypedNode(None), None)
+
+        def test_typed_node_boolean(self):
+            node = toTypedNode(True)
+            self.failUnlessEqual(node.literal_value['string'], u'1')
+            self.failUnlessEqual(str(node.literal_value['datatype']),
+                                 'http://www.w3.org/2001/XMLSchema#boolean')
+
+        def test_bad_boolean(self):
+            node = RDF.Node(literal='bad', datatype=xsdNS['boolean'].uri)
+            self.failUnlessRaises(ValueError, fromTypedNode, node)
+
+        def test_typed_node_string(self):
+            node = toTypedNode('hello')
+            self.failUnlessEqual(node.literal_value['string'], u'hello')
+            self.failUnless(node.literal_value['datatype'] is None)
+
+        def test_typed_real_like(self):
+            num = 3.14
+            node = toTypedNode(num)
+            self.failUnlessEqual(fromTypedNode(node), num)
+
+        def test_typed_integer(self):
+            num = 3
+            node = toTypedNode(num)
+            self.failUnlessEqual(fromTypedNode(node), num)
+            self.failUnlessEqual(type(fromTypedNode(node)), type(num))
+
+        def test_typed_node_string(self):
+            s = "Argh matey"
+            node = toTypedNode(s)
+            self.failUnlessEqual(fromTypedNode(node), s)
+            self.failUnlessEqual(type(fromTypedNode(node)), types.UnicodeType)
+
+        def test_blank_or_uri_blank(self):
+            node = blankOrUri()
+            self.failUnlessEqual(node.is_blank(), True)
+
+        def test_blank_or_uri_url(self):
+            s = 'http://google.com'
+            node = blankOrUri(s)
+            self.failUnlessEqual(node.is_resource(), True)
+            self.failUnlessEqual(str(node.uri), s)
+
+        def test_blank_or_uri_node(self):
+            s = RDF.Node(RDF.Uri('http://google.com'))
+            node = blankOrUri(s)
+            self.failUnlessEqual(node.is_resource(), True)
+            self.failUnlessEqual(node, s)
+
+        def test_unicode_node_roundtrip(self):
+            literal = u'\u5927'
+            roundtrip = fromTypedNode(toTypedNode(literal))
+            self.failUnlessEqual(roundtrip, literal)
+            self.failUnlessEqual(type(roundtrip), types.UnicodeType)
+
+        def test_datetime_no_microsecond(self):
+            dateTimeType = xsdNS['dateTime'].uri
+            short_isostamp = '2011-12-20T11:44:25'
+            short_node = RDF.Node(literal=short_isostamp,
+                                 datatype=dateTimeType)
+            short_datetime = datetime(2011,12,20,11,44,25)
+
+            self.assertEqual(fromTypedNode(short_node), short_datetime)
+            self.assertEqual(toTypedNode(short_datetime), short_node)
+            self.assertEqual(fromTypedNode(toTypedNode(short_datetime)),
+                             short_datetime)
+
+        def test_datetime_with_microsecond(self):
+            dateTimeType = xsdNS['dateTime'].uri
+            long_isostamp = '2011-12-20T11:44:25.081776'
+            long_node = RDF.Node(literal=long_isostamp,
+                                 datatype=dateTimeType)
+            long_datetime = datetime(2011,12,20,11,44,25,81776)
+
+            self.assertEqual(fromTypedNode(long_node), long_datetime)
+            self.assertEqual(toTypedNode(long_datetime), long_node)
+            self.assertEqual(fromTypedNode(toTypedNode(long_datetime)),
+                             long_datetime)
+
+        def test_simplify_uri(self):
+            nsOrg = RDF.NS('example.org/example#')
+            nsCom = RDF.NS('example.com/example#')
+
+            term = 'foo'
+            node = nsOrg[term]
+            self.failUnlessEqual(simplifyUri(nsOrg, node), term)
+            self.failUnlessEqual(simplifyUri(nsCom, node), None)
+            self.failUnlessEqual(simplifyUri(nsOrg, node.uri), term)
+
+        def test_simplify_uri_exceptions(self):
+            nsOrg = RDF.NS('example.org/example#')
+            nsCom = RDF.NS('example.com/example#')
+
+            node = toTypedNode('bad')
+            self.failUnlessRaises(ValueError, simplifyUri, nsOrg, node)
+            self.failUnlessRaises(ValueError, simplifyUri, nsOrg, nsOrg)
+
+        def test_owl_import(self):
+            path, name = os.path.split(__file__)
+            loc = 'file://'+os.path.abspath(path)+'/'
+            model = get_model()
+            fragment = '''
+@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
+@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
+@prefix owl: <http://www.w3.org/2002/07/owl#> .
+
+_:a owl:imports "{loc}extra.turtle" .
+'''.format(loc=loc)
+            load_string_into_model(model, 'turtle', fragment, loc)
+            tc = RDF.Node(RDF.Uri('http://jumpgate.caltech.edu/wiki/TestCase'))
+            query = RDF.Statement(tc, rdfsNS['label'], None)
+            result = list(model.find_statements(query))
+            self.failUnlessEqual(len(result), 1)
+            self.failUnlessEqual(str(result[0].object), 'TestCase')
+
+        def test_sanitize_literal_text(self):
+            self.failUnlessRaises(ValueError, sanitize_literal, "hi")
+            hello_text = "hello"
+            hello_none = RDF.Node(hello_text)
+            self.failUnlessEqual(str(sanitize_literal(hello_none)),
+                                 hello_text)
+            hello_str = RDF.Node(literal=hello_text,
+                                 datatype=xsdNS['string'].uri)
+            hello_clean = sanitize_literal(hello_str)
+            self.failUnlessEqual(hello_clean.literal_value['string'],
+                                 hello_text)
+
+        def test_sanitize_literal_html(self):
+            hello = "hello <a onload='javascript:alert(\"foo\");' href='http://google.com'>google.com</a>, whats up?"
+            hello_clean = 'hello <a href="http://google.com">google.com</a>, whats up?'
+            hello_node = RDF.Node(literal=hello,
+                                  datatype=xsdNS['string'].uri)
+            hello_sanitized = sanitize_literal(hello_node)
+            self.failUnlessEqual(hello_sanitized.literal_value['string'],
+                                 hello_clean)
+
+            hostile = "hi <b>there</b><script type='text/javascript>alert('boo');</script><a href='javascript:alert('poke')>evil</a> scammer"
+            hostile_node = RDF.Node(hostile)
+            hostile_sanitized = sanitize_literal(hostile_node)
+            # so it drops the stuff after the javascript link.
+            # I suppose it could be worse
+            hostile_result = """hi <b>there</b>"""
+            self.failUnlessEqual(str(hostile_sanitized), hostile_result)
+
+
+    def suite():
+        return unittest.makeSuite(TestRDFHelp, 'test')
 except ImportError, e:
     print "Unable to test rdfhelp"