diff --git a/build.gradle b/build.gradle index 6e12edd5d..10447e69d 100644 --- a/build.gradle +++ b/build.gradle @@ -47,7 +47,7 @@ jacoco { toolVersion = "0.7.5.201505241946" } -final htsjdkVersion = System.getProperty('htsjdk.version', '2.10.0') +final htsjdkVersion = System.getProperty('htsjdk.version', '2.10.1') dependencies { compile 'com.google.guava:guava:15.0' diff --git a/src/main/java/picard/illumina/BasecallsConverter.java b/src/main/java/picard/illumina/BasecallsConverter.java new file mode 100644 index 000000000..c1ccf9f04 --- /dev/null +++ b/src/main/java/picard/illumina/BasecallsConverter.java @@ -0,0 +1,150 @@ +package picard.illumina; + +import htsjdk.samtools.util.Log; +import htsjdk.samtools.util.ProgressLogger; +import htsjdk.samtools.util.SortingCollection; +import picard.PicardException; +import picard.illumina.parser.ClusterData; +import picard.illumina.parser.IlluminaDataProviderFactory; +import picard.illumina.parser.readers.BclQualityEvaluationStrategy; + +import java.io.File; +import java.util.Comparator; +import java.util.List; +import java.util.Map; + +abstract class BasecallsConverter { + private static final Log log = Log.getInstance(BasecallsConverter.class); + + final Comparator outputRecordComparator; + final int maxReadsInRamPerTile; + final boolean demultiplex; + final List tmpDirs; + final boolean includeNonPfReads; + final boolean ignoreUnexpectedBarcodes; + final SortingCollection.Codec codecPrototype; + final Class outputRecordClass; + final Map> barcodeRecordWriterMap; + final ProgressLogger readProgressLogger = new ProgressLogger(log, 1000000, "Read"); + final ProgressLogger writeProgressLogger = new ProgressLogger(log, 1000000, "Write"); + int numThreads; + ClusterDataConverter converter = null; + + protected final BclQualityEvaluationStrategy bclQualityEvaluationStrategy; + protected List tiles; + protected final IlluminaDataProviderFactory factory; + + /** + * @param barcodeRecordWriterMap Map from barcode to CLUSTER_OUTPUT_RECORD writer. If demultiplex is false, must contain + * one writer stored with key=null. + * @param demultiplex If true, output is split by barcode, otherwise all are written to the same output stream. + * @param maxReadsInRamPerTile Configures number of reads each tile will store in RAM before spilling to disk. + * @param tmpDirs For SortingCollection spilling. + * @param numProcessors Controls number of threads. If <= 0, the number of threads allocated is + * available cores - numProcessors. + * @param outputRecordComparator For sorting output records within a single tile. + * @param codecPrototype For spilling output records to disk. + * @param outputRecordClass Inconveniently needed to create SortingCollections. + * @param includeNonPfReads If true, will include ALL reads (including those which do not have PF set) + * @param ignoreUnexpectedBarcodes If true, will ignore reads whose called barcode is not found in barcodeRecordWriterMap, + */ + BasecallsConverter(final Map> barcodeRecordWriterMap, + final int maxReadsInRamPerTile, + final List tmpDirs, + final SortingCollection.Codec codecPrototype, + final boolean ignoreUnexpectedBarcodes, + final boolean demultiplex, + final Comparator outputRecordComparator, + final boolean includeNonPfReads, + final BclQualityEvaluationStrategy bclQualityEvaluationStrategy, + final Class outputRecordClass, + final int numProcessors, + final IlluminaDataProviderFactory factory) { + + this.barcodeRecordWriterMap = barcodeRecordWriterMap; + this.maxReadsInRamPerTile = maxReadsInRamPerTile; + this.tmpDirs = tmpDirs; + this.codecPrototype = codecPrototype; + this.ignoreUnexpectedBarcodes = ignoreUnexpectedBarcodes; + this.demultiplex = demultiplex; + this.outputRecordComparator = outputRecordComparator; + this.includeNonPfReads = includeNonPfReads; + this.bclQualityEvaluationStrategy = bclQualityEvaluationStrategy; + this.outputRecordClass = outputRecordClass; + this.factory = factory; + + + if (numProcessors == 0) { + this.numThreads = Runtime.getRuntime().availableProcessors(); + } else if (numProcessors < 0) { + this.numThreads = Runtime.getRuntime().availableProcessors() + numProcessors; + } else { + this.numThreads = numProcessors; + } + } + + public IlluminaDataProviderFactory getFactory() { + return factory; + } + + public abstract void doTileProcessing(); + + /** + * Must be called before doTileProcessing. This is not passed in the ctor because often the + * IlluminaDataProviderFactory is needed in order to construct the converter. + * + * @param converter Converts ClusterData to CLUSTER_OUTPUT_RECORD + */ + void setConverter(final ClusterDataConverter converter) { + this.converter = converter; + } + + void setTileLimits(Integer firstTile, Integer tileLimit) { + if (firstTile != null) { + int i; + for (i = 0; i < tiles.size(); ++i) { + if (tiles.get(i).intValue() == firstTile.intValue()) { + tiles = tiles.subList(i, tiles.size()); + break; + } + } + if (tiles.get(0).intValue() != firstTile.intValue()) { + throw new PicardException("firstTile=" + firstTile + ", but that tile was not found."); + } + } + if (tileLimit != null && tiles.size() > tileLimit) { + tiles = tiles.subList(0, tileLimit); + } + } + + interface ClusterDataConverter { + /** + * Creates the OUTPUT_RECORDs from the cluster + */ + OUTPUT_RECORD convertClusterToOutputRecord(final ClusterData cluster); + } + + interface ConvertedClusterDataWriter { + void write(final OUTPUT_RECORD rec); + + void close(); + } + + /** + * A comparator for tile numbers, which are not necessarily ordered by the number's value. + */ + static final Comparator TILE_NUMBER_COMPARATOR = (integer1, integer2) -> { + final String s1 = integer1.toString(); + final String s2 = integer2.toString(); + // Because a the tile number is followed by a colon, a tile number that + // is a prefix of another tile number should sort after. (e.g. 10 sorts after 100). + if (s1.length() < s2.length()) { + if (s2.startsWith(s1)) { + return 1; + } + } else if (s2.length() < s1.length() && s1.startsWith(s2)) { + return -1; + } + return s1.compareTo(s2); + }; +} diff --git a/src/main/java/picard/illumina/CheckIlluminaDirectory.java b/src/main/java/picard/illumina/CheckIlluminaDirectory.java index 3f33dcd3b..068f9ee2e 100644 --- a/src/main/java/picard/illumina/CheckIlluminaDirectory.java +++ b/src/main/java/picard/illumina/CheckIlluminaDirectory.java @@ -8,22 +8,33 @@ import picard.cmdline.CommandLineProgram; import picard.cmdline.CommandLineProgramProperties; import picard.cmdline.Option; -import picard.cmdline.programgroups.Illumina; import picard.cmdline.StandardOptionDefinitions; +import picard.cmdline.programgroups.Illumina; import picard.illumina.parser.IlluminaDataProviderFactory; import picard.illumina.parser.IlluminaDataType; import picard.illumina.parser.IlluminaFileUtil; import picard.illumina.parser.OutputMapping; import picard.illumina.parser.ParameterizedFileUtil; import picard.illumina.parser.ReadStructure; +import picard.illumina.parser.readers.AbstractIlluminaPositionFileReader; +import picard.illumina.parser.readers.BaseBclReader; +import picard.illumina.parser.readers.CbclReader; +import picard.illumina.parser.readers.LocsFileReader; import java.io.File; import java.util.ArrayList; import java.util.Arrays; +import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Set; import java.util.TreeSet; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +import static picard.illumina.BasecallsConverter.TILE_NUMBER_COMPARATOR; +import static picard.illumina.NewIlluminaBasecallsConverter.getTiledFiles; +import static picard.illumina.parser.NewIlluminaDataProvider.fileToTile; /** * Program to check a lane of an Illumina output directory. This program checks that files exist, are non-zero in length, for every tile/cycle and @@ -40,7 +51,7 @@ "and are reasonably sized for every tile and cycle. Reasonably sized means non-zero sized for files that exist per tile and " + "equal size for binary files that exist per cycle or per tile. If DATA_TYPES {Position, BaseCalls, QualityScores, PF," + " or Barcodes} are not specified, then the default data types used by IlluminaBasecallsToSam are used. " + - "CheckIlluminaDirectory DOES NOT check that the individual records in a file are well-formed.

" + + "CheckIlluminaDirectory DOES NOT check that the individual records in a file are well-formed.

" + "" + "

Usage example:

" + "
" +
@@ -50,8 +61,7 @@
             "      LANES=1 \\
" + " DATA_TYPES=BaseCalls " + "
" + - "
" - ; + "
"; private static final Log log = Log.getInstance(CheckIlluminaDirectory.class); // The following attributes define the command-line arguments @@ -90,6 +100,9 @@ optional = true) public Boolean LINK_LOCS = false; + @Option(doc = "Use the new converter. Defaults to false", optional = true) + public boolean USE_NEW_CONVERTER = false; + /** * Required main method implementation. */ @@ -113,30 +126,86 @@ protected int doWork() { log.info("Expected cycles: " + StringUtil.intValuesToString(expectedCycles)); for (final Integer lane : LANES) { - IlluminaFileUtil fileUtil = new IlluminaFileUtil(BASECALLS_DIR, lane); - final List expectedTiles = fileUtil.getExpectedTiles(); - if (!TILE_NUMBERS.isEmpty()) { - expectedTiles.retainAll(TILE_NUMBERS); - } + if (USE_NEW_CONVERTER) { + List tiles = new ArrayList<>(); + + File laneDir = new File(BASECALLS_DIR, IlluminaFileUtil.longLaneStr(lane)); + + File[] cycleDirs = IOUtil.getFilesMatchingRegexp(laneDir, IlluminaFileUtil.CYCLE_SUBDIRECTORY_PATTERN); + + //check all bcls/cbcls + List cbcls = new ArrayList<>(); + Arrays.asList(cycleDirs) + .forEach(cycleDir -> cbcls.addAll( + Arrays.asList(IOUtil.getFilesMatchingRegexp( + cycleDir, "^" + IlluminaFileUtil.longLaneStr(lane) + "_(\\d{1,5}).cbcl$")))); + IOUtil.assertFilesAreReadable(cbcls); + + //check all pf filter files + Pattern laneTileRegex = Pattern.compile(ParameterizedFileUtil.escapePeriods( + ParameterizedFileUtil.makeLaneTileRegex(".filter", lane))); + File[] filterFiles = getTiledFiles(laneDir, laneTileRegex); + for (File filterFile : filterFiles) { + Matcher tileMatcher = laneTileRegex.matcher(filterFile.getName()); + if (tileMatcher.matches()) { + tiles.add(Integer.valueOf(tileMatcher.group(1))); + } + } + IOUtil.assertFilesAreReadable(Arrays.asList(filterFiles)); + tiles.sort(TILE_NUMBER_COMPARATOR); + + //check s.locs + File locsFile = new File(BASECALLS_DIR.getParentFile(), "s.locs"); + LocsFileReader locsFileReader = new LocsFileReader(locsFile); + List locs = new ArrayList<>(); + while (locsFileReader.hasNext()) { + locs.add(locsFileReader.next()); + } - if (LINK_LOCS) { - createLocFileSymlinks(fileUtil, lane); - //we need to create a new file util because it stores a cache to the files it found on - //construction and this doesn't inclue the recently created symlinks - fileUtil = new IlluminaFileUtil(BASECALLS_DIR, lane); - } + Map filterFileMap = new HashMap<>(); + for (File filterFile : filterFiles) { + filterFileMap.put(fileToTile(filterFile.getName()), filterFile); + } - log.info("Checking lane " + lane); - log.info("Expected tiles: " + StringUtil.join(", ", expectedTiles)); + CbclReader reader = new CbclReader(cbcls, filterFileMap, readStructure.readLengths, tiles.get(0), locs, true); - final int numFailures = verifyLane(fileUtil, expectedTiles, expectedCycles, DATA_TYPES, FAKE_FILES); + reader.getAllTiles().forEach((key, value) -> { + List fileForCycle = reader.getFilesForCycle(key); + final long totalFilesSize = fileForCycle.stream().mapToLong(file -> file.length() - reader.getHeaderSize()).sum(); + final long expectedFileSize = value.stream().mapToLong(BaseBclReader.TileData::getCompressedBlockSize).sum(); + + if (expectedFileSize != totalFilesSize) { + throw new PicardException(String.format("File %s is not the expected size of %d instead it is %d", + fileForCycle, expectedFileSize, totalFilesSize)); + } + }); - if (numFailures > 0) { - log.info("Lane " + lane + " FAILED " + " Total Errors: " + numFailures); - failingLanes.add(lane); - totalFailures += numFailures; } else { - log.info("Lane " + lane + " SUCCEEDED "); + IlluminaFileUtil fileUtil = new IlluminaFileUtil(BASECALLS_DIR, lane); + final List expectedTiles = fileUtil.getExpectedTiles(); + if (!TILE_NUMBERS.isEmpty()) { + expectedTiles.retainAll(TILE_NUMBERS); + } + + if (LINK_LOCS) { + createLocFileSymlinks(fileUtil, lane); + //we need to create a new file util because it stores a cache to the files it found on + //construction and this doesn't inclue the recently created symlinks + fileUtil = new IlluminaFileUtil(BASECALLS_DIR, lane); + } + + log.info("Checking lane " + lane); + log.info("Expected tiles: " + StringUtil.join(", ", expectedTiles)); + + final int numFailures = verifyLane(fileUtil, expectedTiles, expectedCycles, DATA_TYPES, FAKE_FILES); + + if (numFailures > 0) { + log.info("Lane " + lane + " FAILED " + " Total Errors: " + numFailures); + failingLanes.add(lane); + totalFailures += numFailures; + } else { + log.info("Lane " + lane + " SUCCEEDED "); + } } } diff --git a/src/main/java/picard/illumina/CollectIlluminaBasecallingMetrics.java b/src/main/java/picard/illumina/CollectIlluminaBasecallingMetrics.java index 257281871..74e856626 100644 --- a/src/main/java/picard/illumina/CollectIlluminaBasecallingMetrics.java +++ b/src/main/java/picard/illumina/CollectIlluminaBasecallingMetrics.java @@ -24,21 +24,26 @@ package picard.illumina; +import htsjdk.samtools.metrics.MetricsFile; +import htsjdk.samtools.util.Histogram; +import htsjdk.samtools.util.IOUtil; +import htsjdk.samtools.util.StringUtil; import picard.PicardException; import picard.cmdline.CommandLineProgram; import picard.cmdline.CommandLineProgramProperties; -import picard.cmdline.programgroups.Illumina; import picard.cmdline.Option; import picard.cmdline.StandardOptionDefinitions; -import picard.illumina.parser.ClusterData;import picard.illumina.parser.IlluminaDataProvider;import picard.illumina.parser.IlluminaDataProviderFactory;import picard.illumina.parser.IlluminaDataType;import picard.illumina.parser.ReadStructure;import picard.illumina.parser.readers.BclQualityEvaluationStrategy; -import htsjdk.samtools.util.IOUtil; -import htsjdk.samtools.metrics.MetricsFile; -import htsjdk.samtools.util.Histogram; +import picard.cmdline.programgroups.Illumina; +import picard.illumina.parser.BaseIlluminaDataProvider; +import picard.illumina.parser.ClusterData; +import picard.illumina.parser.IlluminaDataProviderFactory; +import picard.illumina.parser.IlluminaDataType; +import picard.illumina.parser.ReadStructure; +import picard.illumina.parser.readers.BclQualityEvaluationStrategy; import picard.util.TabbedTextFileWithHeaderParser; -import htsjdk.samtools.util.StringUtil; import java.io.File; -import java.lang.Comparable;import java.lang.Double;import java.lang.Exception;import java.lang.Integer;import java.lang.Math;import java.lang.Override;import java.lang.String;import java.lang.StringBuilder;import java.text.DecimalFormat; +import java.text.DecimalFormat; import java.util.SortedMap; import java.util.TreeMap; @@ -178,7 +183,7 @@ protected int doWork() { unmatched_barcode = StringUtil.repeatCharNTimes('N', barcodeLength); //Initialize data provider, iterate over clusters, and collect statistics - final IlluminaDataProvider provider = factory.makeDataProvider(); + final BaseIlluminaDataProvider provider = factory.makeDataProvider(); while (provider.hasNext()) { final ClusterData cluster = provider.next(); diff --git a/src/main/java/picard/illumina/CollectIlluminaLaneMetrics.java b/src/main/java/picard/illumina/CollectIlluminaLaneMetrics.java index fdbd4f8d7..4d4c60bbc 100644 --- a/src/main/java/picard/illumina/CollectIlluminaLaneMetrics.java +++ b/src/main/java/picard/illumina/CollectIlluminaLaneMetrics.java @@ -39,15 +39,21 @@ import picard.cmdline.Option; import picard.cmdline.StandardOptionDefinitions; import picard.cmdline.programgroups.Illumina; -import picard.illumina.parser.*; +import picard.illumina.parser.ReadDescriptor; +import picard.illumina.parser.ReadStructure; +import picard.illumina.parser.ReadType; +import picard.illumina.parser.Tile; +import picard.illumina.parser.TileMetricsUtil; +import javax.xml.parsers.DocumentBuilderFactory; import java.io.File; import java.io.FileNotFoundException; -import java.util.*; +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; +import java.util.Map; import java.util.stream.Collectors; -import javax.xml.parsers.DocumentBuilderFactory; - /** * Command-line wrapper around {@link IlluminaLaneMetricsCollector}. * @author mccowan @@ -92,6 +98,9 @@ @Option(shortName = "EXT", doc="Append the given file extension to all metric file names (ex. OUTPUT.illumina_lane_metrics.EXT). None if null", optional=true) public String FILE_EXTENSION = null; + @Option(doc = "Boolean the determines if this run is a NovaSeq run or not. (NovaSeq tile metrics files are in cycle 25 directory.", optional = true) + public boolean IS_NOVASEQ = false; + @Override protected int doWork() { final MetricsFile> laneMetricsFile = this.getMetricsFile(); @@ -119,7 +128,9 @@ protected int doWork() { } } - IlluminaLaneMetricsCollector.collectLaneMetrics(RUN_DIRECTORY, OUTPUT_DIRECTORY, OUTPUT_PREFIX, laneMetricsFile, phasingMetricsFile, READ_STRUCTURE, FILE_EXTENSION == null ? "" : FILE_EXTENSION, VALIDATION_STRINGENCY); + IlluminaLaneMetricsCollector.collectLaneMetrics(RUN_DIRECTORY, OUTPUT_DIRECTORY, OUTPUT_PREFIX, + laneMetricsFile, phasingMetricsFile, + READ_STRUCTURE, FILE_EXTENSION == null ? "" : FILE_EXTENSION, VALIDATION_STRINGENCY, IS_NOVASEQ); return 0; } @@ -135,18 +146,30 @@ public static void main(final String[] args) { private final static Log LOG = Log.getInstance(IlluminaLaneMetricsCollector.class); /** Returns a partitioned collection of lane number to Tile objects from the provided basecall directory. */ - public static Map> readLaneTiles(final File illuminaRunDirectory, final ReadStructure readStructure, final ValidationStringency validationStringency) { + public static Map> readLaneTiles(final File illuminaRunDirectory, + final ReadStructure readStructure, + final ValidationStringency validationStringency, + final boolean isNovaSeq) { final Collection tiles; try { - tiles = TileMetricsUtil.parseTileMetrics(TileMetricsUtil.renderTileMetricsFileFromBasecallingDirectory(illuminaRunDirectory), - readStructure, - validationStringency - ); + File tileMetricsOutFile = TileMetricsUtil.renderTileMetricsFileFromBasecallingDirectory(illuminaRunDirectory, isNovaSeq); + if (isNovaSeq) { + tiles = TileMetricsUtil.parseTileMetrics( + tileMetricsOutFile, + TileMetricsUtil.renderPhasingMetricsFilesFromBasecallingDirectory(illuminaRunDirectory), + readStructure, + validationStringency); + } else { + tiles = TileMetricsUtil.parseTileMetrics(tileMetricsOutFile, + readStructure, + validationStringency + ); + } } catch (final FileNotFoundException e) { throw new PicardException("Unable to open laneMetrics file.", e); } - return tiles.stream().collect(Collectors.groupingBy(Tile::getLaneNumber)); + return tiles.stream().filter(tile -> tile.getLaneNumber() > 0).collect(Collectors.groupingBy(Tile::getLaneNumber)); } /** Parses the tile data from the basecall directory and writes to both the lane and phasing metrics files */ @@ -154,17 +177,18 @@ public static void collectLaneMetrics(final File runDirectory, final File output final MetricsFile> laneMetricsFile, final MetricsFile> phasingMetricsFile, final ReadStructure readStructure, final String fileExtension, - final ValidationStringency validationStringency) { - final Map> laneTiles = readLaneTiles(runDirectory, readStructure, validationStringency); + final ValidationStringency validationStringency, + final boolean isNovaSeq) { + final Map> laneTiles = readLaneTiles(runDirectory, readStructure, validationStringency, isNovaSeq); writeLaneMetrics(laneTiles, outputDirectory, outputPrefix, laneMetricsFile, fileExtension); - writePhasingMetrics(laneTiles, outputDirectory, outputPrefix, phasingMetricsFile, fileExtension); + writePhasingMetrics(laneTiles, outputDirectory, outputPrefix, phasingMetricsFile, fileExtension, isNovaSeq); } public static File writePhasingMetrics(final Map> laneTiles, final File outputDirectory, final String outputPrefix, final MetricsFile> phasingMetricsFile, - final String fileExtension) { + final String fileExtension, boolean isNovaSeq) { laneTiles.entrySet().stream().forEach(entry -> IlluminaPhasingMetrics.getPhasingMetricsForTiles(entry.getKey().longValue(), - entry.getValue()).forEach(phasingMetricsFile::addMetric)); + entry.getValue(), !isNovaSeq).forEach(phasingMetricsFile::addMetric)); return writeMetrics(phasingMetricsFile, outputDirectory, outputPrefix, IlluminaPhasingMetrics.getExtension() + fileExtension); } diff --git a/src/main/java/picard/illumina/ExtractIlluminaBarcodes.java b/src/main/java/picard/illumina/ExtractIlluminaBarcodes.java index fd434ad5f..0016bc277 100644 --- a/src/main/java/picard/illumina/ExtractIlluminaBarcodes.java +++ b/src/main/java/picard/illumina/ExtractIlluminaBarcodes.java @@ -32,10 +32,10 @@ import picard.cmdline.CommandLineProgram; import picard.cmdline.CommandLineProgramProperties; import picard.cmdline.Option; -import picard.cmdline.programgroups.Illumina; import picard.cmdline.StandardOptionDefinitions; +import picard.cmdline.programgroups.Illumina; +import picard.illumina.parser.BaseIlluminaDataProvider; import picard.illumina.parser.ClusterData; -import picard.illumina.parser.IlluminaDataProvider; import picard.illumina.parser.IlluminaDataProviderFactory; import picard.illumina.parser.IlluminaDataType; import picard.illumina.parser.ReadDescriptor; @@ -109,21 +109,20 @@ "

For poorly matching barcodes, the order of specification of barcodes can cause arbitrary output differences.

" + "" + "

Usage example:

" + - "
" +
-                "java -jar picard.jar ExtractIlluminaBarcodes \\
" + - " BASECALLS_DIR=/BaseCalls/ \\
" + - " LANE=1 \\
" + + "
" +
+            "java -jar picard.jar ExtractIlluminaBarcodes \\
" + + " BASECALLS_DIR=/BaseCalls/ \\
" + + " LANE=1 \\
" + " READ_STRUCTURE=25T8B25T \\
" + - " BARCODE_FILE=barcodes.txt \\
" + - " METRICS_FILE=metrics_output.txt " + + " BARCODE_FILE=barcodes.txt \\
" + + " METRICS_FILE=metrics_output.txt " + "
" + "" + "Please see the ExtractIlluminaBarcodes.BarcodeMetric " + "definitions " + "for a complete description of the metrics produced by this tool.

" + "" + - "
" - ; + "
"; // The following attributes define the command-line arguments @@ -177,7 +176,9 @@ private static final Log LOG = Log.getInstance(ExtractIlluminaBarcodes.class); - /** The read structure of the actual Illumina Run, i.e. the readStructure of the input data */ + /** + * The read structure of the actual Illumina Run, i.e. the readStructure of the input data + */ private ReadStructure readStructure; private IlluminaDataProviderFactory factory; @@ -242,7 +243,7 @@ protected int doWork() { } try { for (final PerTileBarcodeExtractor extractor : extractors) { - pool.submit(extractor); + pool.submit(extractor); } pool.shutdown(); // Wait a while for existing tasks to terminate @@ -349,7 +350,9 @@ public static void finalizeMetrics(final Map barcodeToMet } } - /** Create a barcode filename corresponding to the given tile qseq file. */ + /** + * Create a barcode filename corresponding to the given tile qseq file. + */ private File getBarcodeFile(final int tile) { return new File(OUTPUT_DIR, "s_" + LANE + "_" + tileNumberFormatter.format(tile) + "_barcode.txt" + (COMPRESS_OUTPUTS ? ".gz" : "")); @@ -359,7 +362,7 @@ private File getBarcodeFile(final int tile) { * Validate that POSITION >= 1, and that all BARCODEs are the same length and unique * * @return null if command line is valid. If command line is invalid, returns an array of error message - * to be written to the appropriate place. + * to be written to the appropriate place. */ @Override protected String[] customCommandLineValidation() { @@ -456,23 +459,41 @@ private void parseBarcodeFile(final ArrayList messages) { * do not match a barcode. */ public String BARCODE; - /** The barcode name. */ + /** + * The barcode name. + */ public String BARCODE_NAME = ""; - /** The name of the library */ + /** + * The name of the library + */ public String LIBRARY_NAME = ""; - /** The total number of reads matching the barcode. */ + /** + * The total number of reads matching the barcode. + */ public int READS = 0; - /** The number of PF reads matching this barcode (always less than or equal to READS). */ + /** + * The number of PF reads matching this barcode (always less than or equal to READS). + */ public int PF_READS = 0; - /** The number of all reads matching this barcode that matched with 0 errors or no-calls. */ + /** + * The number of all reads matching this barcode that matched with 0 errors or no-calls. + */ public int PERFECT_MATCHES = 0; - /** The number of PF reads matching this barcode that matched with 0 errors or no-calls. */ + /** + * The number of PF reads matching this barcode that matched with 0 errors or no-calls. + */ public int PF_PERFECT_MATCHES = 0; - /** The number of all reads matching this barcode that matched with 1 error or no-call. */ + /** + * The number of all reads matching this barcode that matched with 1 error or no-call. + */ public int ONE_MISMATCH_MATCHES = 0; - /** The number of PF reads matching this barcode that matched with 1 error or no-call. */ + /** + * The number of PF reads matching this barcode that matched with 1 error or no-call. + */ public int PF_ONE_MISMATCH_MATCHES = 0; - /** The fraction of all reads in the lane that matched to this barcode. */ + /** + * The fraction of all reads in the lane that matched to this barcode. + */ public double PCT_MATCHES = 0d; /** * The rate of all reads matching this barcode to all reads matching the most prevelant barcode. For the @@ -482,7 +503,9 @@ private void parseBarcodeFile(final ArrayList messages) { * in representation between barcodes. */ public double RATIO_THIS_BARCODE_TO_BEST_BARCODE_PCT = 0d; - /** The fraction of PF reads in the lane that matched to this barcode. */ + /** + * The fraction of PF reads in the lane that matched to this barcode. + */ public double PF_PCT_MATCHES = 0d; /** @@ -515,12 +538,16 @@ public BarcodeMetric(final String barcodeName, final String libraryName, } } - /** This ctor is necessary for when reading metrics from file */ + /** + * This ctor is necessary for when reading metrics from file + */ public BarcodeMetric() { barcodeBytes = null; } - /** Creates a copy of metric initialized with only non-accumulated and non-calculated values set */ + /** + * Creates a copy of metric initialized with only non-accumulated and non-calculated values set + */ public static BarcodeMetric copy(final BarcodeMetric metric) { final BarcodeMetric result = new BarcodeMetric(); result.BARCODE = metric.BARCODE; @@ -546,24 +573,36 @@ public void merge(final BarcodeMetric metric) { } - /** Extracts barcodes and accumulates metrics for an entire tile. */ - private static class PerTileBarcodeExtractor implements Runnable { + /** + * Extracts barcodes and accumulates metrics for an entire tile. + */ + public static class PerTileBarcodeExtractor implements Runnable { private final int tile; private final File barcodeFile; private final Map metrics; private final BarcodeMetric noMatch; private Exception exception = null; private final boolean usingQualityScores; - private final IlluminaDataProvider provider; + private final BaseIlluminaDataProvider provider; private final ReadStructure outputReadStructure; private final int maxNoCalls, maxMismatches, minMismatchDelta, minimumBaseQuality; - /** Utility class to hang onto data about the best match for a given barcode */ - class BarcodeMatch { + /** + * Utility class to hang onto data about the best match for a given barcode + */ + public static class BarcodeMatch { boolean matched; String barcode; int mismatches; int mismatchesToSecondBest; + + public boolean isMatched() { + return matched; + } + + public String getBarcode() { + return barcode; + } } /** @@ -607,11 +646,17 @@ public PerTileBarcodeExtractor( return this.metrics; } - public synchronized BarcodeMetric getNoMatchMetric() { return this.noMatch; } + public synchronized BarcodeMetric getNoMatchMetric() { + return this.noMatch; + } - public synchronized Exception getException() { return this.exception; } + public synchronized Exception getException() { + return this.exception; + } - /** run method which extracts barcodes and accumulates metrics for an entire tile */ + /** + * run method which extracts barcodes and accumulates metrics for an entire tile + */ synchronized public void run() { try { LOG.info("Extracting barcodes for tile " + tile); @@ -634,7 +679,9 @@ synchronized public void run() { if (usingQualityScores) qualityScores[i] = cluster.getRead(barcodeIndices[i]).getQualities(); } final boolean passingFilter = cluster.isPf(); - final BarcodeMatch match = findBestBarcodeAndUpdateMetrics(barcodeSubsequences, qualityScores, passingFilter, metrics, noMatch); + final BarcodeMatch match = findBestBarcodeAndUpdateMetrics(barcodeSubsequences, qualityScores, + passingFilter, metrics, noMatch, maxNoCalls, maxMismatches, + minMismatchDelta, minimumBaseQuality); final String yOrN = (match.matched ? "Y" : "N"); @@ -649,8 +696,7 @@ synchronized public void run() { } catch (final Exception e) { LOG.error(e, "Error processing tile ", this.tile); this.exception = e; - } - finally{ + } finally { provider.close(); } } @@ -662,11 +708,15 @@ synchronized public void run() { * @param passingFilter PF flag for the current read * @return perfect barcode string, if there was a match within tolerance, or null if not. */ - private BarcodeMatch findBestBarcodeAndUpdateMetrics(final byte[][] readSubsequences, - final byte[][] qualityScores, - final boolean passingFilter, - final Map metrics, - final BarcodeMetric noMatchBarcodeMetric) { + public static BarcodeMatch findBestBarcodeAndUpdateMetrics(final byte[][] readSubsequences, + final byte[][] qualityScores, + final boolean passingFilter, + final Map metrics, + final BarcodeMetric noMatchBarcodeMetric, + final int maxNoCalls, + final int maxMismatches, + final int minMismatchDelta, + final int minimumBaseQuality) { BarcodeMetric bestBarcodeMetric = null; int totalBarcodeReadBases = 0; int numNoCalls = 0; // NoCalls are calculated for all the barcodes combined @@ -682,7 +732,7 @@ private BarcodeMatch findBestBarcodeAndUpdateMetrics(final byte[][] readSubseque int numMismatchesInSecondBestBarcode = totalBarcodeReadBases + 1; for (final BarcodeMetric barcodeMetric : metrics.values()) { - final int numMismatches = countMismatches(barcodeMetric.barcodeBytes, readSubsequences, qualityScores); + final int numMismatches = countMismatches(barcodeMetric.barcodeBytes, readSubsequences, qualityScores, minimumBaseQuality); if (numMismatches < numMismatchesInBestBarcode) { if (bestBarcodeMetric != null) { numMismatchesInSecondBestBarcode = numMismatchesInBestBarcode; @@ -746,7 +796,7 @@ private BarcodeMatch findBestBarcodeAndUpdateMetrics(final byte[][] readSubseque * * @return how many bases did not match */ - private int countMismatches(final byte[][] barcodeBytes, final byte[][] readSubsequence, final byte[][] qualities) { + private static int countMismatches(final byte[][] barcodeBytes, final byte[][] readSubsequence, final byte[][] qualities, int minimumBaseQuality) { int numMismatches = 0; // Read sequence and barcode length may not be equal, so we just use the shorter of the two for (int j = 0; j < barcodeBytes.length; j++) { diff --git a/src/main/java/picard/illumina/IlluminaBasecallsConverter.java b/src/main/java/picard/illumina/IlluminaBasecallsConverter.java index 2be747f28..bdb650c74 100644 --- a/src/main/java/picard/illumina/IlluminaBasecallsConverter.java +++ b/src/main/java/picard/illumina/IlluminaBasecallsConverter.java @@ -25,11 +25,10 @@ import htsjdk.samtools.util.Log; import htsjdk.samtools.util.PeekIterator; -import htsjdk.samtools.util.ProgressLogger; import htsjdk.samtools.util.SortingCollection; import picard.PicardException; +import picard.illumina.parser.BaseIlluminaDataProvider; import picard.illumina.parser.ClusterData; -import picard.illumina.parser.IlluminaDataProvider; import picard.illumina.parser.IlluminaDataProviderFactory; import picard.illumina.parser.IlluminaDataType; import picard.illumina.parser.ReadStructure; @@ -61,12 +60,12 @@ /** * Manages the conversion of Illumina basecalls into some output format. Creates multiple threads to manage reading, - * sorting and writing efficiently. Output is written in queryname output. Optionally demultiplexes indexed reads + * sorting and writing efficiently. Output is written in query name output. Optionally demultiplexes indexed reads * into separate outputs by barcode. * * @param The class to which a ClusterData is converted in preparation for writing. */ -public class IlluminaBasecallsConverter { +public class IlluminaBasecallsConverter extends BasecallsConverter { /** * Describes the state of a barcode's data's processing in the context of a tile. It is either not available in * that tile, has been read, has been queued to be written to file, or has been written to file. A barcode only @@ -93,115 +92,75 @@ DATA_TYPES_WITH_BARCODE[DATA_TYPES_WITH_BARCODE.length - 1] = IlluminaDataType.Barcodes; } - /** - * A comparator for tile numbers, which are not necessarily ordered by the number's value. - */ - public static final Comparator TILE_NUMBER_COMPARATOR = new Comparator() { - @Override - public int compare(final Integer integer1, final Integer integer2) { - final String s1 = integer1.toString(); - final String s2 = integer2.toString(); - // Because a the tile number is followed by a colon, a tile number that - // is a prefix of another tile number should sort after. (e.g. 10 sorts after 100). - if (s1.length() < s2.length()) { - if (s2.startsWith(s1)) { - return 1; - } - } else if (s2.length() < s1.length() && s1.startsWith(s2)) { - return -1; - } - return s1.compareTo(s2); - } - }; - - private final Comparator outputRecordComparator; - - private final BclQualityEvaluationStrategy bclQualityEvaluationStrategy; - private final Map> barcodeRecordWriterMap; - private final int maxReadsInRamPerTile; - private final boolean demultiplex; - private final List tmpDirs; - private final IlluminaDataProviderFactory factory; - private ClusterDataConverter converter = null; - private final ProgressLogger readProgressLogger = new ProgressLogger(log, 1000000, "Read"); - private final ProgressLogger writeProgressLogger = new ProgressLogger(log, 1000000, "Write"); - private int numThreads; // If FORCE_GC, this is non-null. For production this is not necessary because it will run until the JVM // ends, but for unit testing it is desirable to stop the task when done with this instance. private final TimerTask gcTimerTask; - private List tiles; - private final boolean includeNonPfReads; - private final boolean ignoreUnexpectedBarcodes; - - private final SortingCollection.Codec codecPrototype; - // Annoying that we need this. - private final Class outputRecordClass; /** - * @param basecallsDir Where to read basecalls from. - * @param lane What lane to process. - * @param readStructure How to interpret each cluster. - * @param barcodeRecordWriterMap Map from barcode to CLUSTER_OUTPUT_RECORD writer. If demultiplex is false, must contain - * one writer stored with key=null. - * @param demultiplex If true, output is split by barcode, otherwise all are written to the same output stream. - * @param maxReadsInRamPerTile Configures number of reads each tile will store in RAM before spilling to disk. - * @param tmpDirs For SortingCollection spilling. - * @param numProcessors Controls number of threads. If <= 0, the number of threads allocated is - * available cores - numProcessors. - * @param forceGc Force explicit GC periodically. This is good for causing memory maps to be released. - * @param firstTile (For debugging) If non-null, start processing at this tile. - * @param tileLimit (For debugging) If non-null, process no more than this many tiles. - * @param outputRecordComparator For sorting output records within a single tile. - * @param codecPrototype For spilling output records to disk. - * @param outputRecordClass Inconveniently needed to create SortingCollections. - * @param includeNonPfReads If true, will include ALL reads (including those which do not have PF set) - * @param ignoreUnexpectedBarcodes If true, will ignore reads whose called barcode is not found in barcodeRecordWriterMap, - * otherwise will throw an exception - */ - public IlluminaBasecallsConverter(final File basecallsDir, final int lane, final ReadStructure readStructure, - final Map> barcodeRecordWriterMap, - final boolean demultiplex, - final int maxReadsInRamPerTile, - final List tmpDirs, - final int numProcessors, final boolean forceGc, - final Integer firstTile, final Integer tileLimit, - final Comparator outputRecordComparator, - final SortingCollection.Codec codecPrototype, - final Class outputRecordClass, - final BclQualityEvaluationStrategy bclQualityEvaluationStrategy, - final boolean applyEamssFiltering, - final boolean includeNonPfReads, + * @param basecallsDir Where to read basecalls from. + * @param lane What lane to process. + * @param readStructure How to interpret each cluster. + * @param barcodeRecordWriterMap Map from barcode to CLUSTER_OUTPUT_RECORD writer. If demultiplex is false, must contain + * one writer stored with key=null. + * @param demultiplex If true, output is split by barcode, otherwise all are written to the same output stream. + * @param maxReadsInRamPerTile Configures number of reads each tile will store in RAM before spilling to disk. + * @param tmpDirs For SortingCollection spilling. + * @param numProcessors Controls number of threads. If <= 0, the number of threads allocated is + * available cores - numProcessors. + * @param forceGc Force explicit GC periodically. This is good for causing memory maps to be released. + * @param firstTile (For debugging) If non-null, start processing at this tile. + * @param tileLimit (For debugging) If non-null, process no more than this many tiles. + * @param outputRecordComparator For sorting output records within a single tile. + * @param codecPrototype For spilling output records to disk. + * @param outputRecordClass Inconveniently needed to create SortingCollections. + * @param includeNonPfReads If true, will include ALL reads (including those which do not have PF set) + * @param ignoreUnexpectedBarcodes If true, will ignore reads whose called barcode is not found in barcodeRecordWriterMap, + * otherwise will throw an exception + */ + public IlluminaBasecallsConverter(final File basecallsDir, final int lane, final ReadStructure readStructure, + final Map> barcodeRecordWriterMap, + final boolean demultiplex, + final int maxReadsInRamPerTile, + final List tmpDirs, + final int numProcessors, final boolean forceGc, + final Integer firstTile, final Integer tileLimit, + final Comparator outputRecordComparator, + final SortingCollection.Codec codecPrototype, + final Class outputRecordClass, + final BclQualityEvaluationStrategy bclQualityEvaluationStrategy, + final boolean applyEamssFiltering, + final boolean includeNonPfReads, final boolean ignoreUnexpectedBarcodes - ) { - this(basecallsDir, null, lane, readStructure, - barcodeRecordWriterMap, demultiplex, maxReadsInRamPerTile, - tmpDirs, numProcessors, forceGc, firstTile, tileLimit, - outputRecordComparator, codecPrototype, outputRecordClass, - bclQualityEvaluationStrategy, applyEamssFiltering, - includeNonPfReads, ignoreUnexpectedBarcodes); - } - - /** - * @param basecallsDir Where to read basecalls from. - * @param barcodesDir Where to read barcodes from (optional; use basecallsDir if not specified). - * @param lane What lane to process. - * @param readStructure How to interpret each cluster. - * @param barcodeRecordWriterMap Map from barcode to CLUSTER_OUTPUT_RECORD writer. If demultiplex is false, must contain - * one writer stored with key=null. - * @param demultiplex If true, output is split by barcode, otherwise all are written to the same output stream. - * @param maxReadsInRamPerTile Configures number of reads each tile will store in RAM before spilling to disk. - * @param tmpDirs For SortingCollection spilling. - * @param numProcessors Controls number of threads. If <= 0, the number of threads allocated is - * available cores - numProcessors. - * @param forceGc Force explicit GC periodically. This is good for causing memory maps to be released. - * @param firstTile (For debugging) If non-null, start processing at this tile. - * @param tileLimit (For debugging) If non-null, process no more than this many tiles. - * @param outputRecordComparator For sorting output records within a single tile. - * @param codecPrototype For spilling output records to disk. - * @param outputRecordClass Inconveniently needed to create SortingCollections. - * @param includeNonPfReads If true, will include ALL reads (including those which do not have PF set) - * @param ignoreUnexpectedBarcodes If true, will ignore reads whose called barcode is not found in barcodeRecordWriterMap, - * otherwise will throw an exception + ) { + this(basecallsDir, null, lane, readStructure, + barcodeRecordWriterMap, demultiplex, maxReadsInRamPerTile, + tmpDirs, numProcessors, forceGc, firstTile, tileLimit, + outputRecordComparator, codecPrototype, outputRecordClass, + bclQualityEvaluationStrategy, applyEamssFiltering, + includeNonPfReads, ignoreUnexpectedBarcodes); + } + + /** + * @param basecallsDir Where to read basecalls from. + * @param barcodesDir Where to read barcodes from (optional; use basecallsDir if not specified). + * @param lane What lane to process. + * @param readStructure How to interpret each cluster. + * @param barcodeRecordWriterMap Map from barcode to CLUSTER_OUTPUT_RECORD writer. If demultiplex is false, must contain + * one writer stored with key=null. + * @param demultiplex If true, output is split by barcode, otherwise all are written to the same output stream. + * @param maxReadsInRamPerTile Configures number of reads each tile will store in RAM before spilling to disk. + * @param tmpDirs For SortingCollection spilling. + * @param numProcessors Controls number of threads. If <= 0, the number of threads allocated is + * available cores - numProcessors. + * @param forceGc Force explicit GC periodically. This is good for causing memory maps to be released. + * @param firstTile (For debugging) If non-null, start processing at this tile. + * @param tileLimit (For debugging) If non-null, process no more than this many tiles. + * @param outputRecordComparator For sorting output records within a single tile. + * @param codecPrototype For spilling output records to disk. + * @param outputRecordClass Inconveniently needed to create SortingCollections. + * @param includeNonPfReads If true, will include ALL reads (including those which do not have PF set) + * @param ignoreUnexpectedBarcodes If true, will ignore reads whose called barcode is not found in barcodeRecordWriterMap, + * otherwise will throw an exception */ public IlluminaBasecallsConverter(final File basecallsDir, File barcodesDir, final int lane, final ReadStructure readStructure, @@ -218,17 +177,18 @@ public IlluminaBasecallsConverter(final File basecallsDir, File barcodesDir, fin final boolean applyEamssFiltering, final boolean includeNonPfReads, final boolean ignoreUnexpectedBarcodes ) { - this.barcodeRecordWriterMap = barcodeRecordWriterMap; - this.demultiplex = demultiplex; - this.maxReadsInRamPerTile = maxReadsInRamPerTile; - this.tmpDirs = tmpDirs; - this.outputRecordComparator = outputRecordComparator; - this.codecPrototype = codecPrototype; - this.outputRecordClass = outputRecordClass; - this.bclQualityEvaluationStrategy = bclQualityEvaluationStrategy; - this.includeNonPfReads = includeNonPfReads; - this.ignoreUnexpectedBarcodes = ignoreUnexpectedBarcodes; + super(barcodeRecordWriterMap, maxReadsInRamPerTile, tmpDirs, codecPrototype, ignoreUnexpectedBarcodes, + demultiplex, outputRecordComparator, includeNonPfReads, bclQualityEvaluationStrategy, outputRecordClass, + numProcessors, + new IlluminaDataProviderFactory(basecallsDir, barcodesDir, lane, readStructure, + bclQualityEvaluationStrategy, getDataTypesFromReadStructure(readStructure, demultiplex))); + this.tiles = factory.getAvailableTiles(); + // Since the first non-fixed part of the read name is the tile number, without preceding zeroes, + // and the output is sorted by read name, process the tiles in this order. + tiles.sort(TILE_NUMBER_COMPARATOR); + setTileLimits(firstTile, tileLimit); + this.numThreads = Math.max(1, Math.min(this.numThreads, tiles.size())); // If we're forcing garbage collection, collect every 5 minutes in a daemon thread. if (forceGc) { final Timer gcTimer = new Timer(true); @@ -247,67 +207,23 @@ public void run() { gcTimerTask = null; } - this.factory = new IlluminaDataProviderFactory(basecallsDir, barcodesDir, lane, readStructure, bclQualityEvaluationStrategy, getDataTypesFromReadStructure(readStructure, demultiplex)); this.factory.setApplyEamssFiltering(applyEamssFiltering); - if (numProcessors == 0) { - this.numThreads = Runtime.getRuntime().availableProcessors(); - } else if (numProcessors < 0) { - this.numThreads = Runtime.getRuntime().availableProcessors() + numProcessors; - } else { - this.numThreads = numProcessors; - } - this.tiles = new ArrayList(factory.getAvailableTiles()); - // Since the first non-fixed part of the read name is the tile number, without preceding zeroes, - // and the output is sorted by read name, process the tiles in this order. - Collections.sort(tiles, TILE_NUMBER_COMPARATOR); - if (firstTile != null) { - int i; - for (i = 0; i < tiles.size(); ++i) { - if (tiles.get(i).intValue() == firstTile.intValue()) { - tiles = tiles.subList(i, tiles.size()); - break; - } - } - if (tiles.get(0).intValue() != firstTile.intValue()) { - throw new PicardException("firstTile=" + firstTile + ", but that tile was not found."); - } - } - if (tileLimit != null && tiles.size() > tileLimit) { - tiles = tiles.subList(0, tileLimit); - } - - this.numThreads = Math.max(1, Math.min(this.numThreads, tiles.size())); - } - - /** - * Must be called before doTileProcessing. This is not passed in the ctor because often the - * IlluminaDataProviderFactory is needed in order to construct the converter. - * - * @param converter Converts ClusterData to CLUSTER_OUTPUT_RECORD - */ - public void setConverter(final ClusterDataConverter converter) { - this.converter = converter; } - /** - * In case caller needs to get some info from factory. - */ - public IlluminaDataProviderFactory getFactory() { - return factory; - } /** * Do the work, i.e. create a bunch of threads to read, sort and write. * setConverter() must be called before calling this method. */ + @Override public void doTileProcessing() { try { // TODO: Eliminate this when switch to JDK 7 FileChannelJDKBugWorkAround.doBugWorkAround(); // Generate the list of tiles that will be processed - final List tiles = new ArrayList(); + final List tiles = new ArrayList<>(); for (final Integer tileNumber : this.tiles) { tiles.add(new Tile(tileNumber)); } @@ -330,7 +246,7 @@ public void doTileProcessing() { } finally { try { - if (gcTimerTask != null) gcTimerTask.cancel(); + if (gcTimerTask != null) gcTimerTask.cancel(); } catch (final Throwable ex) { log.warn(ex, "Ignoring exception stopping background GC thread."); } @@ -389,7 +305,7 @@ public PriorityRunnable(final int priority) { /** * Returns the priority level. Higher priorities are run earlier. * - * @return + * @return The priority for this runnable. */ int getPriority() { return this.priority; @@ -405,8 +321,8 @@ int getPriority() { */ private class TileProcessingRecord { final private Map> barcodeToRecordCollection = - new HashMap>(); - final private Map barcodeToProcessingState = new HashMap(); + new HashMap<>(); + final private Map barcodeToProcessingState = new HashMap<>(); private TileProcessingState state = TileProcessingState.NOT_DONE_READING; private long recordCount = 0; @@ -494,11 +410,7 @@ public synchronized TileBarcodeProcessingState getBarcodeState(final String barc "A tile's barcode data's state cannot be queried until the tile has been completely read."); } - if (this.barcodeToProcessingState.containsKey(barcode)) { - return this.barcodeToProcessingState.get(barcode); - } else { - return TileBarcodeProcessingState.NA; - } + return this.barcodeToProcessingState.getOrDefault(barcode, TileBarcodeProcessingState.NA); } public synchronized Map getBarcodeProcessingStates() { @@ -521,7 +433,7 @@ public synchronized void setBarcodeState(final String barcode, final TileBarcode /** * Returns the distinct set of barcodes for which data has been collected in this record. * - * @return + * @return The distinct set of barcodes for this record. */ public synchronized Set getBarcodes() { return this.getBarcodeRecords().keySet(); @@ -548,7 +460,7 @@ public TileReader(final Tile tile, final TileReadAggregator handler, final TileP * this tile. */ public void process() { - final IlluminaDataProvider dataProvider = factory.makeDataProvider(Arrays.asList(this.tile.getNumber())); + final BaseIlluminaDataProvider dataProvider = factory.makeDataProvider(Collections.singletonList(this.tile.getNumber())); log.debug(String.format("Reading data from tile %s ...", tile.getNumber())); while (dataProvider.hasNext()) { @@ -577,29 +489,20 @@ public void process() { *

* Implemented as a TreeMap to guarantee tiles are iterated over in natural order. */ - private final Map tileRecords = new TreeMap(); + private final Map tileRecords = new TreeMap<>(); /** - * The executor responsible for doing work. - *

- * Implemented as a ThreadPoolExecutor with a PriorityBlockingQueue which orders submitted Runnables by their - * priority. + * Compare the two Runnables, and assume they are PriorityRunnable; if not something strange is + * going on, so allow a ClassCastException be thrown. */ private final ExecutorService prioritizingThreadPool = new ThreadPoolExecutor( numThreads, numThreads, 0L, MILLISECONDS, - new PriorityBlockingQueue(5, new Comparator() { - @Override - /** - * Compare the two Runnables, and assume they are PriorityRunnable; if not something strange is - * going on, so allow a ClassCastException be thrown. - */ - public int compare(final Runnable o1, final Runnable o2) { - // Higher priority items go earlier in the queue, so reverse the "natural" comparison. - return ((PriorityRunnable) o2).getPriority() - ((PriorityRunnable) o1).getPriority(); - } + new PriorityBlockingQueue<>(5, (o1, o2) -> { + // Higher priority items go earlier in the queue, so reverse the "natural" comparison. + return ((PriorityRunnable) o2).getPriority() - ((PriorityRunnable) o1).getPriority(); }) ); @@ -619,7 +522,7 @@ public int compare(final Runnable o1, final Runnable o2) { /** * Creates a TileReadAggregator that reads from the provided tiles. * - * @param tiles + * @param tiles A collection of tiles to be read from. */ public TileReadAggregator(final Collection tiles) { for (final Tile t : tiles) { @@ -642,7 +545,7 @@ public void submit() { // Set the thread that is executing this work this.parentThread = Thread.currentThread(); - /** + /* * For each tile, create and submit a tile processor. Give it a negative execution priority (so that * prioritized tasks with a positive execution priority execute first), and give later tiles a lesser * (more negative) priority. @@ -655,17 +558,14 @@ public void submit() { public void run() { try { reader.process(); - } catch (final RuntimeException e) { - /** + } catch (final RuntimeException | Error e) { + /* * In the event of an internal failure, signal to the parent thread that something has gone * wrong. This is necessary because if an item of work fails to complete, the aggregator will * will never reach its completed state, and it will never terminate. */ parentThread.interrupt(); throw e; - } catch (final Error e) { - parentThread.interrupt(); - throw e; } } }); @@ -702,7 +602,7 @@ private void completeTile(final Tile tile) { /** * Blocks until this aggregator completes its work. * - * @throws InterruptedException + * @throws InterruptedException is thrown when this executor has been interrupted. */ public void awaitWorkComplete() throws InterruptedException { synchronized (this.completionLatch) { @@ -726,21 +626,21 @@ private void signalWorkComplete() { */ private void findAndEnqueueWorkOrSignalCompletion() { synchronized (this.workEnqueueMonitor) { - /** + /* * If there is work remaining to be done in this aggregator, walk through all of the barcodes and find * tiles which have not yet written their barcode data but are in a state where they are able to. */ if (this.isWorkCompleted()) { this.signalWorkComplete(); } else { - final Queue tasks = new LinkedList(); + final Queue tasks = new LinkedList<>(); for (final String barcode : barcodeRecordWriterMap.keySet()) { NEXT_BARCODE: for (final Map.Entry entry : this.tileRecords.entrySet()) { final Tile tile = entry.getKey(); final TileProcessingRecord tileRecord = entry.getValue(); - /** + /* * If this tile has not been read, we cannot write this or later tiles' barcode data; * move to the next barcode. */ @@ -750,20 +650,20 @@ private void findAndEnqueueWorkOrSignalCompletion() { switch (tileRecord.getBarcodeState(barcode)) { case NA: case WRITTEN: - /** + /* * There is no data for this barcode for this tile, or it is already written; in * either scenario, this barcode will not be processed further for this tile, so * move onto the next tile as a possible candidate. */ continue; case QUEUED_FOR_WRITE: - /** + /* * The write for this barcode is in progress for this tile, so skip to the next * barcode. */ break NEXT_BARCODE; case READ: - /** + /* * This barcode has been read, and all of the earlier tiles have been written * for this barcode, so queue its writing. */ @@ -801,11 +701,11 @@ public void run() { log.debug(String.format("Writing records from tile %s with barcode %s ...", tile.getNumber(), barcode)); - final PeekIterator it = new PeekIterator(records.iterator()); + final PeekIterator it = new PeekIterator<>(records.iterator()); while (it.hasNext()) { final CLUSTER_OUTPUT_RECORD rec = it.next(); - /** + /* * PIC-330 Sometimes there are two reads with the same cluster coordinates, and thus * the same read name. Discard both of them. This code assumes that the two first of pairs * will come before the two second of pairs, so it isn't necessary to look ahead a different @@ -835,17 +735,14 @@ public void run() { tileRecord.setBarcodeState(barcode, TileBarcodeProcessingState.WRITTEN); findAndEnqueueWorkOrSignalCompletion(); - } catch (final RuntimeException e) { - /** + } catch (final RuntimeException | Error e) { + /* * In the event of an internal failure, signal to the parent thread that something has gone * wrong. This is necessary because if an item of work fails to complete, the aggregator will * will never reach its completed state, and it will never terminate. */ parentThread.interrupt(); throw e; - } catch (final Error e) { - parentThread.interrupt(); - throw e; } } @@ -899,17 +796,4 @@ public void shutdown() { } } - public static interface ClusterDataConverter { - - /** - * Creates the OUTPUT_RECORDs from the cluster - */ - public OUTPUT_RECORD convertClusterToOutputRecord(final ClusterData cluster); - } - - public static interface ConvertedClusterDataWriter { - void write(final OUTPUT_RECORD rec); - - void close(); - } } diff --git a/src/main/java/picard/illumina/IlluminaBasecallsToFastq.java b/src/main/java/picard/illumina/IlluminaBasecallsToFastq.java index 43ade8161..da3df57df 100644 --- a/src/main/java/picard/illumina/IlluminaBasecallsToFastq.java +++ b/src/main/java/picard/illumina/IlluminaBasecallsToFastq.java @@ -30,6 +30,7 @@ import htsjdk.samtools.fastq.FastqRecord; import htsjdk.samtools.fastq.FastqWriter; import htsjdk.samtools.fastq.FastqWriterFactory; +import htsjdk.samtools.metrics.MetricsFile; import htsjdk.samtools.util.CollectionUtil; import htsjdk.samtools.util.IOUtil; import htsjdk.samtools.util.Log; @@ -39,11 +40,12 @@ import picard.cmdline.CommandLineProgram; import picard.cmdline.CommandLineProgramProperties; import picard.cmdline.Option; -import picard.cmdline.programgroups.Illumina; import picard.cmdline.StandardOptionDefinitions; +import picard.cmdline.programgroups.Illumina; import picard.fastq.Casava18ReadNameEncoder; import picard.fastq.IlluminaReadNameEncoder; import picard.fastq.ReadNameEncoder; +import picard.illumina.ExtractIlluminaBarcodes.BarcodeMetric; import picard.illumina.parser.ClusterData; import picard.illumina.parser.ReadData; import picard.illumina.parser.ReadStructure; @@ -58,7 +60,6 @@ import java.io.OutputStream; import java.io.PrintStream; import java.util.ArrayList; -import java.util.Arrays; import java.util.Comparator; import java.util.HashMap; import java.util.HashSet; @@ -68,57 +69,57 @@ import java.util.Set; @CommandLineProgramProperties( - usage = IlluminaBasecallsToFastq.USAGE_SUMMARY + IlluminaBasecallsToFastq.USAGE_DETAILS, - usageShort = IlluminaBasecallsToFastq.USAGE_SUMMARY, - programGroup = Illumina.class + usage = IlluminaBasecallsToFastq.USAGE_SUMMARY + IlluminaBasecallsToFastq.USAGE_DETAILS, + usageShort = IlluminaBasecallsToFastq.USAGE_SUMMARY, + programGroup = Illumina.class ) public class IlluminaBasecallsToFastq extends CommandLineProgram { - static final String USAGE_SUMMARY = "Generate FASTQ file(s) from Illumina basecall read data. "; - static final String USAGE_DETAILS = "

This tool generates FASTQ files from data in an Illumina BaseCalls output directory. " + - "Separate FASTQ files are created for each template, barcode, and index (molecular barcode) read. Briefly, the template reads " + - "are the target sequence of your experiment, the barcode sequence reads facilitate sample demultiplexing, and the index reads " + - "help mitigate instrument phasing errors. For additional information on the read types, please see the following " + - "reference here.

" + - "" + - "

In the absence of sample pooling (multiplexing) and/or barcodes, then an OUTPUT_PREFIX (file directory) must be " + - "provided as the sample identifier. For multiplexed samples, a MULTIPLEX_PARAMS file must be specified. " + - "The MULTIPLEX_PARAMS file contains the list of sample barcodes used to sort template, barcode, and index reads. " + - "It is essentially the same as the BARCODE_FILE used in the" + - "ExtractIlluminaBarcodes " + - "tool.

"+ - "" + - "

Files from this tool use the following naming format: {prefix}.{type}_{number}.fastq with the {prefix} indicating the sample " + - "barcode, the {type} indicating the types of reads e.g. index, barcode, or blank (if it contains a template read). " + - "The {number} indicates the read number, either first (1) or second (2) for paired-end sequencing.

" + - -"

Usage examples:

" + -"
" +
-"Example 1: Sample(s) with either no barcode or barcoded without multiplexing 
" + -"java -jar picard.jar IlluminaBasecallsToFastq \\
"+ -" READ_STRUCTURE=25T8B25T \\
"+ -" BASECALLS_DIR=basecallDirectory \\
"+ -" LANE=001 \\
"+ -" OUTPUT_PREFIX=noBarcode.1 \\
"+ -" RUN_BARCODE=run15 \\
"+ -" FLOWCELL_BARCODE=abcdeACXX

" + - -"Example 2: Multiplexed samples
" + -"java -jar picard.jar IlluminaBasecallsToFastq \\
"+ -" READ_STRUCTURE=25T8B25T \\
"+ -" BASECALLS_DIR=basecallDirectory \\
"+ -" LANE=001 \\
"+ -" MULTIPLEX_PARAMS=demultiplexed_output.txt \\
"+ -" RUN_BARCODE=run15 \\
"+ -" FLOWCELL_BARCODE=abcdeACXX
" + -"
"+ -"

The FLOWCELL_BARCODE is required if emitting Casava 1.8-style read name headers.

" + - "
" -; + static final String USAGE_SUMMARY = "Generate FASTQ file(s) from Illumina basecall read data. "; + static final String USAGE_DETAILS = "

This tool generates FASTQ files from data in an Illumina BaseCalls output directory. " + + "Separate FASTQ files are created for each template, barcode, and index (molecular barcode) read. Briefly, the template reads " + + "are the target sequence of your experiment, the barcode sequence reads facilitate sample demultiplexing, and the index reads " + + "help mitigate instrument phasing errors. For additional information on the read types, please see the following " + + "reference here.

" + + "" + + "

In the absence of sample pooling (multiplexing) and/or barcodes, then an OUTPUT_PREFIX (file directory) must be " + + "provided as the sample identifier. For multiplexed samples, a MULTIPLEX_PARAMS file must be specified. " + + "The MULTIPLEX_PARAMS file contains the list of sample barcodes used to sort template, barcode, and index reads. " + + "It is essentially the same as the BARCODE_FILE used in the" + + "ExtractIlluminaBarcodes " + + "tool.

" + + "" + + "

Files from this tool use the following naming format: {prefix}.{type}_{number}.fastq with the {prefix} indicating the sample " + + "barcode, the {type} indicating the types of reads e.g. index, barcode, or blank (if it contains a template read). " + + "The {number} indicates the read number, either first (1) or second (2) for paired-end sequencing.

" + + + "

Usage examples:

" + + "
" +
+            "Example 1: Sample(s) with either no barcode or barcoded without multiplexing 
" + + "java -jar picard.jar IlluminaBasecallsToFastq \\
" + + " READ_STRUCTURE=25T8B25T \\
" + + " BASECALLS_DIR=basecallDirectory \\
" + + " LANE=001 \\
" + + " OUTPUT_PREFIX=noBarcode.1 \\
" + + " RUN_BARCODE=run15 \\
" + + " FLOWCELL_BARCODE=abcdeACXX

" + + + "Example 2: Multiplexed samples
" + + "java -jar picard.jar IlluminaBasecallsToFastq \\
" + + " READ_STRUCTURE=25T8B25T \\
" + + " BASECALLS_DIR=basecallDirectory \\
" + + " LANE=001 \\
" + + " MULTIPLEX_PARAMS=demultiplexed_output.txt \\
" + + " RUN_BARCODE=run15 \\
" + + " FLOWCELL_BARCODE=abcdeACXX
" + + "
" + + "

The FLOWCELL_BARCODE is required if emitting Casava 1.8-style read name headers.

" + + "
"; + // The following attributes define the command-line arguments @Option(doc = "The basecalls directory. ", shortName = "B") public File BASECALLS_DIR; - + @Option(doc = "The barcodes directory with _barcode.txt files (generated by ExtractIlluminaBarcodes). If not set, use BASECALLS_DIR. ", shortName = "BCD", optional = true) public File BARCODES_DIR; @@ -131,15 +132,15 @@ mutex = {"MULTIPLEX_PARAMS"}) public File OUTPUT_PREFIX; - @Option(doc = "The barcode of the run. Prefixed to read names.", optional = false) + @Option(doc = "The barcode of the run. Prefixed to read names.") public String RUN_BARCODE; @Option(doc = "The name of the machine on which the run was sequenced; required if emitting Casava1.8-style read name headers", optional = true) public String MACHINE_NAME; - + @Option(doc = "The barcode of the flowcell that was sequenced; required if emitting Casava1.8-style read name headers", optional = true) public String FLOWCELL_BARCODE; - + @Option(doc = ReadStructure.PARAMETER_DOC, shortName = "RS") public String READ_STRUCTURE; @@ -167,7 +168,7 @@ @Option(doc = "If set, process no more than this many tiles (used for debugging).", optional = true) public Integer TILE_LIMIT; - @Option(doc="Apply EAMSS filtering to identify inappropriately quality scored bases towards the ends of reads" + + @Option(doc = "Apply EAMSS filtering to identify inappropriately quality scored bases towards the ends of reads" + " and convert their quality scores to Q2.") public boolean APPLY_EAMSS_FILTER = true; @@ -179,32 +180,49 @@ " run, each SortingCollection gets this value/number of indices.") public int MAX_READS_IN_RAM_PER_TILE = 1200000; - @Option(doc="The minimum quality (after transforming 0s to 1s) expected from reads. If qualities are lower than this value, an error is thrown." + + @Option(doc = "The minimum quality (after transforming 0s to 1s) expected from reads. If qualities are lower than this value, an error is thrown." + "The default of 2 is what the Illumina's spec describes as the minimum, but in practice the value has been observed lower.") public int MINIMUM_QUALITY = BclQualityEvaluationStrategy.ILLUMINA_ALLEGED_MINIMUM_QUALITY; - @Option(doc="Whether to include non-PF reads", shortName="NONPF", optional=true) + @Option(doc = "Whether to include non-PF reads", shortName = "NONPF", optional = true) public boolean INCLUDE_NON_PF_READS = true; - @Option(doc="Whether to ignore reads whose barcodes are not found in MULTIPLEX_PARAMS. Useful when outputting " + - "FASTQs for only a subset of the barcodes in a lane.", shortName="INGORE_UNEXPECTED") + @Option(doc = "Whether to ignore reads whose barcodes are not found in MULTIPLEX_PARAMS. Useful when outputting " + + "FASTQs for only a subset of the barcodes in a lane.", shortName = "INGORE_UNEXPECTED") public boolean IGNORE_UNEXPECTED_BARCODES = false; - @Option(doc="The read name header formatting to emit. Casava1.8 formatting has additional information beyond Illumina, including: " + - "the passing-filter flag value for the read, the flowcell name, and the sequencer name.", optional = false) + @Option(doc = "The read name header formatting to emit. Casava1.8 formatting has additional information beyond Illumina, including: " + + "the passing-filter flag value for the read, the flowcell name, and the sequencer name.") public ReadNameFormat READ_NAME_FORMAT = ReadNameFormat.CASAVA_1_8; @Option(shortName = "GZIP", doc = "Compress output FASTQ files using gzip and append a .gz extension to the file names.") public boolean COMPRESS_OUTPUTS = false; - /** Simple switch to control the read name format to emit. */ + @Option(doc = "Use the new converter", optional = true) + public boolean USE_NEW_CONVERTER = false; + + @Option(doc = "Maximum mismatches for a barcode to be considered a match.") + public int MAX_MISMATCHES = 1; + + @Option(doc = "Minimum difference between number of mismatches in the best and second best barcodes for a barcode to be considered a match.") + public int MIN_MISMATCH_DELTA = 1; + + @Option(doc = "Maximum allowable number of no-calls in a barcode read before it is considered unmatchable.") + public int MAX_NO_CALLS = 2; + + @Option(doc = "Per-barcode and per-lane metrics written to this file.", shortName = StandardOptionDefinitions.METRICS_FILE_SHORT_NAME, optional = true) + public File METRICS_FILE; + + /** + * Simple switch to control the read name format to emit. + */ public enum ReadNameFormat { CASAVA_1_8, ILLUMINA } - + private final Map sampleBarcodeFastqWriterMap = new HashMap<>(); private ReadStructure readStructure; - IlluminaBasecallsConverter basecallsConverter; + private BasecallsConverter basecallsConverter; private static final Log log = Log.getInstance(IlluminaBasecallsToFastq.class); private final FastqWriterFactory fastqWriterFactory = new FastqWriterFactory(); private ReadNameEncoder readNameEncoder; @@ -214,15 +232,13 @@ @Override protected int doWork() { initialize(); - basecallsConverter.doTileProcessing(); - return 0; } @Override protected String[] customCommandLineValidation() { - final LinkedList errors = new LinkedList(); + final LinkedList errors = new LinkedList<>(); if (READ_NAME_FORMAT == ReadNameFormat.CASAVA_1_8 && MACHINE_NAME == null) { errors.add("MACHINE_NAME is required when using Casava1.8-style read name headers."); } @@ -234,7 +250,7 @@ protected int doWork() { if (ADAPTERS_TO_CHECK != null) { log.warn("ADAPTERS_TO_CHECK is not used"); } - + if (errors.isEmpty()) { return null; } else { @@ -249,13 +265,13 @@ private void initialize() { fastqWriterFactory.setCreateMd5(CREATE_MD5_FILE); switch (READ_NAME_FORMAT) { case CASAVA_1_8: - readNameEncoder = new Casava18ReadNameEncoder(MACHINE_NAME, RUN_BARCODE, FLOWCELL_BARCODE); + readNameEncoder = new Casava18ReadNameEncoder(MACHINE_NAME, RUN_BARCODE, FLOWCELL_BARCODE); break; case ILLUMINA: readNameEncoder = new IlluminaReadNameEncoder(RUN_BARCODE); break; } - + final BclQualityEvaluationStrategy bclQualityEvaluationStrategy = new BclQualityEvaluationStrategy(MINIMUM_QUALITY); readStructure = new ReadStructure(READ_STRUCTURE); if (MULTIPLEX_PARAMS != null) { @@ -270,18 +286,38 @@ private void initialize() { demultiplex = true; } final int readsPerCluster = readStructure.templates.length() + readStructure.sampleBarcodes.length(); - basecallsConverter = new IlluminaBasecallsConverter<>(BASECALLS_DIR, BARCODES_DIR, LANE, readStructure, - sampleBarcodeFastqWriterMap, demultiplex, Math.max(1, MAX_READS_IN_RAM_PER_TILE / readsPerCluster), TMP_DIR, NUM_PROCESSORS, - FORCE_GC, FIRST_TILE, TILE_LIMIT, queryNameComparator, - new FastqRecordsForClusterCodec(readStructure.templates.length(), - readStructure.sampleBarcodes.length(), readStructure.molecularBarcode.length()), FastqRecordsForCluster.class, bclQualityEvaluationStrategy, - this.APPLY_EAMSS_FILTER, INCLUDE_NON_PF_READS, IGNORE_UNEXPECTED_BARCODES); + if (USE_NEW_CONVERTER) { + if (METRICS_FILE != null) { + IOUtil.assertFileIsWritable(METRICS_FILE); + } else { + log.warn("No METRICS_FILE specified. Barcode metrics will not be generated."); + } - log.info("READ STRUCTURE IS " + readStructure.toString()); + final MetricsFile metricsFile = getMetricsFile(); + + basecallsConverter = new NewIlluminaBasecallsConverter<>(BASECALLS_DIR, BARCODES_DIR, LANE, readStructure, + sampleBarcodeFastqWriterMap, demultiplex, Math.max(1, MAX_READS_IN_RAM_PER_TILE / readsPerCluster), + TMP_DIR, NUM_PROCESSORS, + FIRST_TILE, TILE_LIMIT, queryNameComparator, + new FastqRecordsForClusterCodec(readStructure.templates.length(), + readStructure.sampleBarcodes.length(), readStructure.molecularBarcode.length()), + FastqRecordsForCluster.class, bclQualityEvaluationStrategy, + this.APPLY_EAMSS_FILTER, INCLUDE_NON_PF_READS, IGNORE_UNEXPECTED_BARCODES, MAX_NO_CALLS, + MAX_MISMATCHES, MIN_MISMATCH_DELTA, MINIMUM_QUALITY, metricsFile, METRICS_FILE); + } else { + basecallsConverter = new IlluminaBasecallsConverter<>(BASECALLS_DIR, BARCODES_DIR, LANE, readStructure, + sampleBarcodeFastqWriterMap, demultiplex, Math.max(1, MAX_READS_IN_RAM_PER_TILE / readsPerCluster), TMP_DIR, NUM_PROCESSORS, + FORCE_GC, FIRST_TILE, TILE_LIMIT, queryNameComparator, + new FastqRecordsForClusterCodec(readStructure.templates.length(), + readStructure.sampleBarcodes.length(), readStructure.molecularBarcode.length()), FastqRecordsForCluster.class, bclQualityEvaluationStrategy, + this.APPLY_EAMSS_FILTER, INCLUDE_NON_PF_READS, IGNORE_UNEXPECTED_BARCODES); + } basecallsConverter.setConverter( new ClusterToFastqRecordsForClusterConverter( basecallsConverter.getFactory().getOutputReadStructure())); + + log.info("READ STRUCTURE IS " + readStructure.toString()); } /** @@ -298,7 +334,7 @@ private void assertExpectedColumns(final Set actualCols, final Set { + private static final class FastqRecordsWriter implements BasecallsConverter.ConvertedClusterDataWriter { final FastqWriter[] templateWriters; final FastqWriter[] sampleBarcodeWriters; final FastqWriter[] molecularBarcodeWriters; /** - * @param templateWriters Writers for template reads in order, e,g. 0th element is for template read 1. - * @param sampleBarcodeWriters Writers for sample barcode reads in order, e,g. 0th element is for sample barcode read 1. + * @param templateWriters Writers for template reads in order, e,g. 0th element is for template read 1. + * @param sampleBarcodeWriters Writers for sample barcode reads in order, e,g. 0th element is for sample barcode read 1. * @param molecularBarcodeWriters Writers for molecular barcode reads in order, e,g. 0th element is for molecualr barcode read 1. */ private FastqRecordsWriter(final FastqWriter[] templateWriters, final FastqWriter[] sampleBarcodeWriters, final FastqWriter[] molecularBarcodeWriters) { - this.templateWriters = templateWriters; - this.sampleBarcodeWriters = sampleBarcodeWriters; + this.templateWriters = templateWriters; + this.sampleBarcodeWriters = sampleBarcodeWriters; this.molecularBarcodeWriters = molecularBarcodeWriters; } @Override public void write(final FastqRecordsForCluster records) { - write(templateWriters, records.templateRecords); - write(sampleBarcodeWriters, records.sampleBarcodeRecords); + write(templateWriters, records.templateRecords); + write(sampleBarcodeWriters, records.sampleBarcodeRecords); write(molecularBarcodeWriters, records.molecularBarcodeRecords); } @@ -434,8 +470,8 @@ public void close() { final FastqRecord[] molecularBarcodeRecords; FastqRecordsForCluster(final int numTemplates, final int numSampleBarcodes, final int numMolecularBarcodes) { - templateRecords = new FastqRecord[numTemplates]; - sampleBarcodeRecords = new FastqRecord[numSampleBarcodes]; + templateRecords = new FastqRecord[numTemplates]; + sampleBarcodeRecords = new FastqRecord[numSampleBarcodes]; molecularBarcodeRecords = new FastqRecord[numMolecularBarcodes]; } } @@ -446,13 +482,13 @@ public void close() { class ClusterToFastqRecordsForClusterConverter implements IlluminaBasecallsConverter.ClusterDataConverter { - private final int [] templateIndices; - private final int [] sampleBarcodeIndicies; - private final int [] molecularBarcodeIndicies; + private final int[] templateIndices; + private final int[] sampleBarcodeIndicies; + private final int[] molecularBarcodeIndicies; ClusterToFastqRecordsForClusterConverter(final ReadStructure outputReadStructure) { - this.templateIndices = outputReadStructure.templates.getIndices(); - this.sampleBarcodeIndicies = outputReadStructure.sampleBarcodes.getIndices(); + this.templateIndices = outputReadStructure.templates.getIndices(); + this.sampleBarcodeIndicies = outputReadStructure.sampleBarcodes.getIndices(); this.molecularBarcodeIndicies = outputReadStructure.molecularBarcode.getIndices(); } @@ -462,8 +498,8 @@ public FastqRecordsForCluster convertClusterToOutputRecord(final ClusterData clu final boolean appendTemplateNumberSuffix = ret.templateRecords.length > 1; final boolean appendMolecularBarcodeNumber = ret.molecularBarcodeRecords.length > 1; - makeFastqRecords(ret.templateRecords, templateIndices, cluster, appendTemplateNumberSuffix); - makeFastqRecords(ret.sampleBarcodeRecords, sampleBarcodeIndicies, cluster, false); + makeFastqRecords(ret.templateRecords, templateIndices, cluster, appendTemplateNumberSuffix); + makeFastqRecords(ret.sampleBarcodeRecords, sampleBarcodeIndicies, cluster, false); makeFastqRecords(ret.molecularBarcodeRecords, molecularBarcodeIndicies, cluster, appendMolecularBarcodeNumber); return ret; @@ -476,8 +512,8 @@ private void makeFastqRecords(final FastqRecord[] recs, final int[] indices, final String readBases = StringUtil.bytesToString(readData.getBases()).replace('.', 'N'); final String readName = readNameEncoder.generateReadName(cluster, appendReadNumberSuffix ? i + 1 : null); recs[i] = new FastqRecord( - readName, - readBases, + readName, + readBases, null, SAMUtils.phredToFastq(readData.getQualities()) ); @@ -524,7 +560,7 @@ public void encode(final FastqRecordsForCluster val) { } private void encodeArray(final FastqRecord[] recs) { - for (final FastqRecord rec: recs) { + for (final FastqRecord rec : recs) { writer.write(rec); } } diff --git a/src/main/java/picard/illumina/IlluminaBasecallsToSam.java b/src/main/java/picard/illumina/IlluminaBasecallsToSam.java index f31c5ecac..577969bcd 100644 --- a/src/main/java/picard/illumina/IlluminaBasecallsToSam.java +++ b/src/main/java/picard/illumina/IlluminaBasecallsToSam.java @@ -31,6 +31,7 @@ import htsjdk.samtools.SAMReadGroupRecord; import htsjdk.samtools.SAMRecord; import htsjdk.samtools.SAMRecordQueryNameComparator; +import htsjdk.samtools.metrics.MetricsFile; import htsjdk.samtools.util.CollectionUtil; import htsjdk.samtools.util.IOUtil; import htsjdk.samtools.util.Iso8601Date; @@ -41,8 +42,9 @@ import picard.cmdline.CommandLineProgram; import picard.cmdline.CommandLineProgramProperties; import picard.cmdline.Option; -import picard.cmdline.programgroups.Illumina; import picard.cmdline.StandardOptionDefinitions; +import picard.cmdline.programgroups.Illumina; +import picard.illumina.ExtractIlluminaBarcodes.BarcodeMetric; import picard.illumina.parser.ReadStructure; import picard.illumina.parser.readers.BclQualityEvaluationStrategy; import picard.util.AdapterPair; @@ -80,7 +82,7 @@ * reading Illumina data for their respective tiles from disk, and as they collect that data, it is fed back into the * TileReadAggregator. When a TileReader completes a tile, it notifies the TileReadAggregator, which reviews what was * read and conditionally queues its writing to disk, baring in mind the requirements of write-order described in the - * previous paragraph. As writes complete, the TileReadAggregator re-evalutes the state of reads/writes and may queue + * previous paragraph. As writes complete, the TileReadAggregator re-evaluates the state of reads/writes and may queue * more writes. When all barcodes for all tiles have been written, the TileReadAggregator shuts down. *

* The TileReadAggregator controls task execution using a specialized ThreadPoolExecutor. It accepts special Runnables @@ -99,12 +101,12 @@ programGroup = Illumina.class ) public class IlluminaBasecallsToSam extends CommandLineProgram { - static final String USAGE_SUMMARY = "Transforms raw Illumina sequencing data into an unmapped SAM or BAM file." ; + static final String USAGE_SUMMARY = "Transforms raw Illumina sequencing data into an unmapped SAM or BAM file."; static final String USAGE_DETAILS = "

The IlluminaBaseCallsToSam program collects, demultiplexes, and sorts reads across all " + "of the tiles of a lane via barcode to produce an unmapped SAM/BAM file. An unmapped BAM file is often referred to as a uBAM. " + "All barcode, sample, and library data is provided in the LIBRARY_PARAMS file. Note, this LIBRARY_PARAMS file " + "should be formatted according to the specifications indicated below. The following is an example of a properly" + - " formmated LIBRARY_PARAMS file:

" + + " formatted LIBRARY_PARAMS file:

" + "BARCODE_1\tOUTPUT\tSAMPLE_ALIAS\tLIBRARY_NAME\n" + "AAAAAAAA\tSA_AAAAAAAA.bam\tSA_AAAAAAAA\tLN_AAAAAAAA\n" + "AAAAGAAG\tSA_AAAAGAAG.bam\tSA_AAAAGAAG\tLN_AAAAGAAG\n" + @@ -126,8 +128,7 @@ " IGNORE_UNEXPECTED_BARCODES=true \\
" + " LIBRARY_PARAMS=library.params " + "
" + - "
" - ; + "
"; // The following attributes define the command-line arguments @@ -136,7 +137,7 @@ @Option(doc = "The basecalls directory. ", shortName = "B") public File BASECALLS_DIR; - + @Option(doc = "The barcodes directory with _barcode.txt files (generated by ExtractIlluminaBarcodes). If not set, use BASECALLS_DIR. ", shortName = "BCD", optional = true) public File BARCODES_DIR; @@ -196,7 +197,7 @@ public File LIBRARY_PARAMS; @Option(doc = "Which adapters to look for in the read.") - public List ADAPTERS_TO_CHECK = new ArrayList( + public List ADAPTERS_TO_CHECK = new ArrayList<>( Arrays.asList(IlluminaAdapterPair.INDEXED, IlluminaAdapterPair.DUAL_INDEXED, IlluminaAdapterPair.NEXTERA_V2, @@ -225,7 +226,7 @@ "is larger than the available memory.") public Boolean FORCE_GC = true; - @Option(doc="Apply EAMSS filtering to identify inappropriately quality scored bases towards the ends of reads" + + @Option(doc = "Apply EAMSS filtering to identify inappropriately quality scored bases towards the ends of reads" + " and convert their quality scores to Q2.") public boolean APPLY_EAMSS_FILTER = true; @@ -233,32 +234,47 @@ " run, each SortingCollection gets this value/number of indices.") public int MAX_READS_IN_RAM_PER_TILE = 1200000; - @Option(doc="The minimum quality (after transforming 0s to 1s) expected from reads. If qualities are lower than this value, an error is thrown." + + @Option(doc = "The minimum quality (after transforming 0s to 1s) expected from reads. If qualities are lower than this value, an error is thrown." + "The default of 2 is what the Illumina's spec describes as the minimum, but in practice the value has been observed lower.") public int MINIMUM_QUALITY = BclQualityEvaluationStrategy.ILLUMINA_ALLEGED_MINIMUM_QUALITY; - @Option(doc="Whether to include non-PF reads", shortName="NONPF", optional=true) + @Option(doc = "Whether to include non-PF reads", shortName = "NONPF", optional = true) public boolean INCLUDE_NON_PF_READS = true; - @Option(doc="Whether to ignore reads whose barcodes are not found in LIBRARY_PARAMS. Useful when outputting " + - "BAMs for only a subset of the barcodes in a lane.", shortName="IGNORE_UNEXPECTED") + @Option(doc = "Whether to ignore reads whose barcodes are not found in LIBRARY_PARAMS. Useful when outputting " + + "BAMs for only a subset of the barcodes in a lane.", shortName = "IGNORE_UNEXPECTED") public boolean IGNORE_UNEXPECTED_BARCODES = false; - @Option(doc="The tag to use to store any molecular indexes. If more than one molecular index is found, they will be concatenated and stored here.", optional=true) + @Option(doc = "The tag to use to store any molecular indexes. If more than one molecular index is found, they will be concatenated and stored here.", optional = true) public String MOLECULAR_INDEX_TAG = "RX"; - @Option(doc="The tag to use to store any molecular index base qualities. If more than one molecular index is found, their qualities will be concatenated and stored here " + - "(.i.e. the number of \"M\" operators in the READ_STRUCTURE)", optional=true) + @Option(doc = "The tag to use to store any molecular index base qualities. If more than one molecular index is found, their qualities will be concatenated and stored here " + + "(.i.e. the number of \"M\" operators in the READ_STRUCTURE)", optional = true) public String MOLECULAR_INDEX_BASE_QUALITY_TAG = "QX"; - @Option(doc="The list of tags to store each molecular index. The number of tags should match the number of molecular indexes.", optional=true) + @Option(doc = "The list of tags to store each molecular index. The number of tags should match the number of molecular indexes.", optional = true) public List TAG_PER_MOLECULAR_INDEX; - private final Map barcodeSamWriterMap = new HashMap(); + @Option(doc = "Use the new converter", optional = true) + public boolean USE_NEW_CONVERTER = false; + + @Option(doc = "Maximum mismatches for a barcode to be considered a match.") + public int MAX_MISMATCHES = 1; + + @Option(doc = "Minimum difference between number of mismatches in the best and second best barcodes for a barcode to be considered a match.") + public int MIN_MISMATCH_DELTA = 1; + + @Option(doc = "Maximum allowable number of no-calls in a barcode read before it is considered unmatchable.") + public int MAX_NO_CALLS = 2; + + + @Option(doc = "Per-barcode and per-lane metrics written to this file.", shortName = StandardOptionDefinitions.METRICS_FILE_SHORT_NAME, optional = true) + public File METRICS_FILE; + + private final Map barcodeSamWriterMap = new HashMap<>(); private ReadStructure readStructure; - IlluminaBasecallsConverter basecallsConverter; + private BasecallsConverter basecallsConverter; private static final Log log = Log.getInstance(IlluminaBasecallsToSam.class); - private BclQualityEvaluationStrategy bclQualityEvaluationStrategy; @Override protected int doWork() { @@ -271,7 +287,7 @@ protected int doWork() { * Prepares loggers, initiates garbage collection thread, parses arguments and initialized variables appropriately/ */ private void initialize() { - this.bclQualityEvaluationStrategy = new BclQualityEvaluationStrategy(MINIMUM_QUALITY); + BclQualityEvaluationStrategy bclQualityEvaluationStrategy = new BclQualityEvaluationStrategy(MINIMUM_QUALITY); if (OUTPUT != null) { IOUtil.assertFileIsWritable(OUTPUT); @@ -282,20 +298,12 @@ private void initialize() { } if (OUTPUT != null) { - barcodeSamWriterMap.put(null, buildSamFileWriter(OUTPUT, SAMPLE_ALIAS, LIBRARY_NAME, buildSamHeaderParameters(null))); + barcodeSamWriterMap.put(null, buildSamFileWriter(OUTPUT, SAMPLE_ALIAS, LIBRARY_NAME, buildSamHeaderParameters(null), !USE_NEW_CONVERTER)); } else { populateWritersFromLibraryParams(); } final int numOutputRecords = readStructure.templates.length(); - - basecallsConverter = new IlluminaBasecallsConverter(BASECALLS_DIR, BARCODES_DIR, LANE, readStructure, - barcodeSamWriterMap, true, MAX_READS_IN_RAM_PER_TILE/numOutputRecords, TMP_DIR, NUM_PROCESSORS, FORCE_GC, - FIRST_TILE, TILE_LIMIT, new QueryNameComparator(), new Codec(numOutputRecords), SAMRecordsForCluster.class, - bclQualityEvaluationStrategy, this.APPLY_EAMSS_FILTER, INCLUDE_NON_PF_READS, IGNORE_UNEXPECTED_BARCODES); - - log.info("DONE_READING STRUCTURE IS " + readStructure.toString()); - // Combine any adapters and custom adapter pairs from the command line into an array for use in clipping final List adapters = new ArrayList<>(); adapters.addAll(ADAPTERS_TO_CHECK); @@ -303,7 +311,29 @@ private void initialize() { adapters.add(new CustomAdapterPair(FIVE_PRIME_ADAPTER, THREE_PRIME_ADAPTER)); } - /** + if (USE_NEW_CONVERTER) { + final MetricsFile metrics = getMetricsFile(); + + if (METRICS_FILE != null) { + IOUtil.assertFileIsWritable(METRICS_FILE); + } else { + log.warn("No METRIC_FILE specified. Barcode metrics will not be generated."); + } + basecallsConverter = new NewIlluminaBasecallsConverter<>(BASECALLS_DIR, BARCODES_DIR, LANE, readStructure, + barcodeSamWriterMap, true, Math.max(1, MAX_READS_IN_RAM_PER_TILE / numOutputRecords), + TMP_DIR, NUM_PROCESSORS, + FIRST_TILE, TILE_LIMIT, new QueryNameComparator(), + new Codec(numOutputRecords), + SAMRecordsForCluster.class, bclQualityEvaluationStrategy, + this.APPLY_EAMSS_FILTER, INCLUDE_NON_PF_READS, IGNORE_UNEXPECTED_BARCODES, MAX_NO_CALLS, + MAX_MISMATCHES, MIN_MISMATCH_DELTA, MINIMUM_QUALITY, metrics, METRICS_FILE); + } else { + basecallsConverter = new IlluminaBasecallsConverter<>(BASECALLS_DIR, BARCODES_DIR, LANE, readStructure, + barcodeSamWriterMap, true, MAX_READS_IN_RAM_PER_TILE / numOutputRecords, TMP_DIR, NUM_PROCESSORS, FORCE_GC, + FIRST_TILE, TILE_LIMIT, new QueryNameComparator(), new Codec(numOutputRecords), SAMRecordsForCluster.class, + bclQualityEvaluationStrategy, this.APPLY_EAMSS_FILTER, INCLUDE_NON_PF_READS, IGNORE_UNEXPECTED_BARCODES); + } + /* * Be sure to pass the outputReadStructure to ClusterDataToSamConverter, which reflects the structure of the output cluster * data which may be different from the input read structure (specifically if there are skips). */ @@ -313,7 +343,7 @@ private void initialize() { .withMolecularIndexQualityTag(MOLECULAR_INDEX_BASE_QUALITY_TAG) .withTagPerMolecularIndex(TAG_PER_MOLECULAR_INDEX); basecallsConverter.setConverter(converter); - + log.info("DONE_READING STRUCTURE IS " + readStructure.toString()); } /** @@ -324,17 +354,17 @@ private void initialize() { * @return actualCols - expectedCols */ private Set findAndFilterExpectedColumns(final Set actualCols, final Set expectedCols) { - final Set missingColumns = new HashSet(expectedCols); + final Set missingColumns = new HashSet<>(expectedCols); missingColumns.removeAll(actualCols); if (!missingColumns.isEmpty()) { throw new PicardException(String.format( "LIBRARY_PARAMS file %s is missing the following columns: %s.", LIBRARY_PARAMS.getAbsolutePath(), StringUtil.join(", ", missingColumns - ))); + ))); } - final Set remainingColumns = new HashSet(actualCols); + final Set remainingColumns = new HashSet<>(actualCols); remainingColumns.removeAll(expectedCols); return remainingColumns; } @@ -369,7 +399,7 @@ private void populateWritersFromLibraryParams() { final TabbedTextFileWithHeaderParser libraryParamsParser = new TabbedTextFileWithHeaderParser(LIBRARY_PARAMS); final Set expectedColumnLabels = CollectionUtil.makeSet("OUTPUT", "SAMPLE_ALIAS", "LIBRARY_NAME"); - final List barcodeColumnLabels = new ArrayList(); + final List barcodeColumnLabels = new ArrayList<>(); if (readStructure.sampleBarcodes.length() == 1) { //For the single barcode read case, the barcode label name can either by BARCODE or BARCODE_1 if (libraryParamsParser.hasColumn("BARCODE")) { @@ -393,7 +423,7 @@ private void populateWritersFromLibraryParams() { List barcodeValues = null; if (!barcodeColumnLabels.isEmpty()) { - barcodeValues = new ArrayList(); + barcodeValues = new ArrayList<>(); for (final String barcodeLabel : barcodeColumnLabels) { barcodeValues.add(row.getField(barcodeLabel)); } @@ -412,7 +442,7 @@ private void populateWritersFromLibraryParams() { } final SAMFileWriterWrapper writer = buildSamFileWriter(new File(row.getField("OUTPUT")), - row.getField("SAMPLE_ALIAS"), row.getField("LIBRARY_NAME"), samHeaderParams); + row.getField("SAMPLE_ALIAS"), row.getField("LIBRARY_NAME"), samHeaderParams, !USE_NEW_CONVERTER); barcodeSamWriterMap.put(key, writer); } if (barcodeSamWriterMap.isEmpty()) { @@ -430,7 +460,7 @@ private void populateWritersFromLibraryParams() { * @return A Map of ReadGroupHeaderTags -> Values */ private Map buildSamHeaderParameters(final List barcodes) { - final Map params = new LinkedHashMap(); + final Map params = new LinkedHashMap<>(); String platformUnit = RUN_BARCODE + "." + LANE; if (barcodes != null) platformUnit += ("." + IlluminaUtil.barcodeSeqsToString(barcodes)); @@ -453,7 +483,8 @@ private void populateWritersFromLibraryParams() { * @return A SAMFileWriter */ private SAMFileWriterWrapper buildSamFileWriter(final File output, final String sampleAlias, - final String libraryName, final Map headerParameters) { + final String libraryName, final Map headerParameters, + final boolean presorted) { IOUtil.assertFileIsWritable(output); final SAMReadGroupRecord rg = new SAMReadGroupRecord(READ_GROUP_ID); rg.setSample(sampleAlias); @@ -469,7 +500,7 @@ private SAMFileWriterWrapper buildSamFileWriter(final File output, final String header.setSortOrder(SAMFileHeader.SortOrder.queryname); header.addReadGroup(rg); - return new SAMFileWriterWrapper(new SAMFileWriterFactory().makeSAMOrBAMWriter(header, true, output)); + return new SAMFileWriterWrapper(new SAMFileWriterFactory().makeSAMOrBAMWriter(header, presorted, output)); } public static void main(final String[] args) { @@ -482,7 +513,7 @@ public static void main(final String[] args) { * Any options set by command-line parser can be validated. * * @return null if command line is valid. If command line is invalid, returns an array of error message - * to be written to the appropriate place. + * to be written to the appropriate place. */ @Override protected String[] customCommandLineValidation() { @@ -490,7 +521,7 @@ public static void main(final String[] args) { LIBRARY_PARAMS = BARCODE_PARAMS; } - final ArrayList messages = new ArrayList(); + final ArrayList messages = new ArrayList<>(); readStructure = new ReadStructure(READ_STRUCTURE); if (!readStructure.sampleBarcodes.isEmpty() && LIBRARY_PARAMS == null) { @@ -517,7 +548,7 @@ public static void main(final String[] args) { } private static final class SAMFileWriterWrapper - implements IlluminaBasecallsConverter.ConvertedClusterDataWriter { + implements BasecallsConverter.ConvertedClusterDataWriter { public final SAMFileWriter writer; private SAMFileWriterWrapper(final SAMFileWriter writer) { @@ -547,6 +578,7 @@ public void close() { static class QueryNameComparator implements Comparator { private final SAMRecordQueryNameComparator comparator = new SAMRecordQueryNameComparator(); + @Override public int compare(final SAMRecordsForCluster s1, final SAMRecordsForCluster s2) { return comparator.compare(s1.records[0], s2.records[0]); diff --git a/src/main/java/picard/illumina/IlluminaPhasingMetrics.java b/src/main/java/picard/illumina/IlluminaPhasingMetrics.java index b56f26c46..56c939119 100644 --- a/src/main/java/picard/illumina/IlluminaPhasingMetrics.java +++ b/src/main/java/picard/illumina/IlluminaPhasingMetrics.java @@ -24,11 +24,11 @@ package picard.illumina; +import htsjdk.samtools.metrics.MetricBase; import picard.illumina.parser.Tile; import picard.illumina.parser.TileTemplateRead; -import htsjdk.samtools.metrics.MetricBase; -import java.lang.String;import java.util.ArrayList; +import java.util.ArrayList; import java.util.Collection; @@ -50,8 +50,8 @@ /** Median pre-phasing value across all tiles in a lane, applied to the first and second template reads */ public double PREPHASING_APPLIED; /** Calculate the median phasing & prephasing values for a lane's tiles and create the appropriate IlluminaPhasingMetrics for them */ - public static Collection getPhasingMetricsForTiles(final long lane, final Collection tilesForLane) { - final LanePhasingMetricsCollector lanePhasingMetricsCollector = new LanePhasingMetricsCollector(tilesForLane); + public static Collection getPhasingMetricsForTiles(final long lane, final Collection tilesForLane, boolean usePercentage) { + final LanePhasingMetricsCollector lanePhasingMetricsCollector = new LanePhasingMetricsCollector(tilesForLane, usePercentage); final Collection phasingMetrics = new ArrayList(); for (final TileTemplateRead tileTemplateRead : lanePhasingMetricsCollector.getMedianPhasingMap().keySet()) { final IlluminaPhasingMetrics phasingMetric = new IlluminaPhasingMetrics(); diff --git a/src/main/java/picard/illumina/LanePhasingMetricsCollector.java b/src/main/java/picard/illumina/LanePhasingMetricsCollector.java index 0f542ef95..c755933a9 100644 --- a/src/main/java/picard/illumina/LanePhasingMetricsCollector.java +++ b/src/main/java/picard/illumina/LanePhasingMetricsCollector.java @@ -24,12 +24,11 @@ package picard.illumina; +import htsjdk.samtools.util.CollectionUtil; import picard.illumina.parser.Tile; import picard.illumina.parser.TileTemplateRead; import picard.util.MathUtil; -import htsjdk.samtools.util.CollectionUtil; -import java.lang.Float; import java.util.Collection; import java.util.Collections; import java.util.Map; @@ -43,7 +42,7 @@ /** Constructor takes a lane's collection of Tiles and calculates the median phasing/prephasing for the * first and second (if available) reads */ - public LanePhasingMetricsCollector(final Collection laneTiles) { + public LanePhasingMetricsCollector(final Collection laneTiles, boolean usePercentage) { final Map medianPhasingMap = new TreeMap(); final Map medianPrePhasingMap = new TreeMap(); @@ -60,8 +59,8 @@ public LanePhasingMetricsCollector(final Collection laneTiles) { // Calculate the medians for the collected data for (final TileTemplateRead tileTemplateRead : phasingValues.keySet()) { - medianPhasingMap.put(tileTemplateRead, medianPercentage(phasingValues.get(tileTemplateRead))); - medianPrePhasingMap.put(tileTemplateRead, medianPercentage(prePhasingValues.get(tileTemplateRead))); + medianPhasingMap.put(tileTemplateRead, median(phasingValues.get(tileTemplateRead), usePercentage)); + medianPrePhasingMap.put(tileTemplateRead, median(prePhasingValues.get(tileTemplateRead), usePercentage)); } this.medianPhasingMap = Collections.unmodifiableMap(medianPhasingMap); @@ -76,13 +75,16 @@ public LanePhasingMetricsCollector(final Collection laneTiles) { return medianPrePhasingMap; } - private static float medianPercentage(final Collection phaseValues) { + + private static float median(final Collection phaseValues, boolean usePercentage) { final double[] values = new double[phaseValues.size()]; int i = 0; for (Float phaseValue : phaseValues) { values[i] = (double)phaseValue; i++; } - return (float)MathUtil.median(values) * 100; + float median = (float) MathUtil.median(values); + return usePercentage ? median * 100 : median; } + } diff --git a/src/main/java/picard/illumina/NewIlluminaBasecallsConverter.java b/src/main/java/picard/illumina/NewIlluminaBasecallsConverter.java new file mode 100644 index 000000000..708b710c0 --- /dev/null +++ b/src/main/java/picard/illumina/NewIlluminaBasecallsConverter.java @@ -0,0 +1,395 @@ +package picard.illumina; + + +import htsjdk.samtools.metrics.MetricsFile; +import htsjdk.samtools.util.CloserUtil; +import htsjdk.samtools.util.IOUtil; +import htsjdk.samtools.util.Log; +import htsjdk.samtools.util.SortingCollection; +import htsjdk.samtools.util.StringUtil; +import picard.PicardException; +import picard.illumina.ExtractIlluminaBarcodes.BarcodeMetric; +import picard.illumina.parser.BaseIlluminaDataProvider; +import picard.illumina.parser.ClusterData; +import picard.illumina.parser.IlluminaDataProviderFactory; +import picard.illumina.parser.IlluminaFileUtil; +import picard.illumina.parser.ParameterizedFileUtil; +import picard.illumina.parser.ReadDescriptor; +import picard.illumina.parser.ReadStructure; +import picard.illumina.parser.ReadType; +import picard.illumina.parser.readers.AbstractIlluminaPositionFileReader; +import picard.illumina.parser.readers.BclQualityEvaluationStrategy; +import picard.illumina.parser.readers.LocsFileReader; +import picard.util.IlluminaUtil; + +import java.io.File; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.Comparator; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.concurrent.CancellationException; +import java.util.concurrent.ExecutionException; +import java.util.concurrent.Future; +import java.util.concurrent.LinkedBlockingDeque; +import java.util.concurrent.ThreadPoolExecutor; +import java.util.concurrent.TimeUnit; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +public class NewIlluminaBasecallsConverter extends BasecallsConverter { + private static final Log log = Log.getInstance(NewIlluminaBasecallsConverter.class); + private final Map barcodesMetrics = new HashMap<>(); + private final BarcodeMetric noMatchMetric; + private final List cbcls; + private final List locs = new ArrayList<>(); + private final File[] filterFiles; + private final int maxNoCalls; + private final int maxMismatches; + private final int minMismatchDelta; + private final int minimumBaseQuality; + private final MetricsFile metrics; + private final File metricsFile; + private final Map barcodeWriterThreads = new HashMap<>(); + private final Map> completedWork = Collections.synchronizedMap(new HashMap<>()); + + /** + * @param basecallsDir Where to read basecalls from. + * @param barcodesDir Where to read barcodes from (optional; use basecallsDir if not specified). + * @param lane What lane to process. + * @param readStructure How to interpret each cluster. + * @param barcodeRecordWriterMap Map from barcode to CLUSTER_OUTPUT_RECORD writer. If demultiplex is false, must contain + * one writer stored with key=null. + * @param demultiplex If true, output is split by barcode, otherwise all are written to the same output stream. + * @param maxReadsInRamPerTile Configures number of reads each tile will store in RAM before spilling to disk. + * @param tmpDirs For SortingCollection spilling. + * @param numProcessors Controls number of threads. If <= 0, the number of threads allocated is + * available cores - numProcessors. + * @param firstTile (For debugging) If non-null, start processing at this tile. + * @param tileLimit (For debugging) If non-null, process no more than this many tiles. + * @param outputRecordComparator For sorting output records within a single tile. + * @param codecPrototype For spilling output records to disk. + * @param outputRecordClass Inconveniently needed to create SortingCollections. + * @param includeNonPfReads If true, will include ALL reads (including those which do not have PF set) + * @param ignoreUnexpectedBarcodes If true, will ignore reads whose called barcode is not found in barcodeRecordWriterMap, + * @param maxNoCalls The maximum number of no calls to allow in a match. + * @param maxMismatches The maximum number of mismatched calls to allow in a match. + * @param minMismatchDelta The minimum mismatch difference between the best and second best matches. + * @param minimumBaseQuality The minimum base quality to allow for a matching base call. + * @param metrics The metrics output for barcode metrics. + * @param metricsFile The metrics file to write out the barcode metrics to. + */ + public NewIlluminaBasecallsConverter(final File basecallsDir, File barcodesDir, final int lane, + final ReadStructure readStructure, + final Map> barcodeRecordWriterMap, + final boolean demultiplex, + final int maxReadsInRamPerTile, + final List tmpDirs, final int numProcessors, + final Integer firstTile, + final Integer tileLimit, + final Comparator outputRecordComparator, + final SortingCollection.Codec codecPrototype, + final Class outputRecordClass, + final BclQualityEvaluationStrategy bclQualityEvaluationStrategy, + final boolean applyEamssFiltering, final boolean includeNonPfReads, + final boolean ignoreUnexpectedBarcodes, int maxNoCalls, int maxMismatches, + int minMismatchDelta, int minimumBaseQuality, MetricsFile metrics, File metricsFile) { + + super(barcodeRecordWriterMap, maxReadsInRamPerTile, tmpDirs, codecPrototype, ignoreUnexpectedBarcodes, + demultiplex, outputRecordComparator, includeNonPfReads, bclQualityEvaluationStrategy, + outputRecordClass, numProcessors, new IlluminaDataProviderFactory(basecallsDir, + barcodesDir, lane, readStructure, bclQualityEvaluationStrategy)); + this.maxNoCalls = maxNoCalls; + this.maxMismatches = maxMismatches; + this.minMismatchDelta = minMismatchDelta; + this.minimumBaseQuality = minimumBaseQuality; + this.tiles = new ArrayList<>(); + this.metrics = metrics; + this.metricsFile = metricsFile; + int numBarcodes = readStructure.sampleBarcodes.length(); + + barcodeRecordWriterMap.keySet().forEach(barcode -> { + if (barcode != null) { + int pos = 0; + String[] bcStrings = new String[numBarcodes]; + for (int i = 0; i < numBarcodes; i++) { + int endIndex = readStructure.sampleBarcodes.getDescriptorLengths()[i]; + bcStrings[i] = barcode.substring(pos, endIndex + pos); + pos += endIndex; + } + this.barcodesMetrics.put(barcode, new BarcodeMetric(null, null, barcode, bcStrings)); + } + barcodeWriterThreads.put(barcode, new ThreadPoolExecutorWithExceptions(1)); + }); + + File laneDir = new File(basecallsDir, IlluminaFileUtil.longLaneStr(lane)); + + File[] cycleDirs = IOUtil.getFilesMatchingRegexp(laneDir, IlluminaFileUtil.CYCLE_SUBDIRECTORY_PATTERN); + + //CBCLs + cbcls = new ArrayList<>(); + Arrays.asList(cycleDirs) + .forEach(cycleDir -> cbcls.addAll( + Arrays.asList(IOUtil.getFilesMatchingRegexp( + cycleDir, "^" + IlluminaFileUtil.longLaneStr(lane) + "_(\\d{1,5}).cbcl$")))); + + if (cbcls.size() == 0) { + throw new PicardException("No CBCL files found."); + } + + IOUtil.assertFilesAreReadable(cbcls); + + //locs + File locsFile = new File(basecallsDir.getParentFile(), "s.locs"); + try (LocsFileReader locsFileReader = new LocsFileReader(locsFile)) { + while (locsFileReader.hasNext()) { + locs.add(locsFileReader.next()); + } + } + IOUtil.assertFileIsReadable(locsFile); + //filter + + Pattern laneTileRegex = Pattern.compile(ParameterizedFileUtil.escapePeriods( + ParameterizedFileUtil.makeLaneTileRegex(".filter", lane))); + filterFiles = getTiledFiles(laneDir, laneTileRegex); + for (File filterFile : filterFiles) { + Matcher tileMatcher = laneTileRegex.matcher(filterFile.getName()); + if (tileMatcher.matches()) { + tiles.add(Integer.valueOf(tileMatcher.group(1))); + } + } + IOUtil.assertFilesAreReadable(Arrays.asList(filterFiles)); + tiles.sort(TILE_NUMBER_COMPARATOR); + + this.factory.setApplyEamssFiltering(applyEamssFiltering); + setTileLimits(firstTile, tileLimit); + + // Create BarcodeMetric for counting reads that don't match any barcode + final String[] noMatchBarcode = new String[readStructure.sampleBarcodes.length()]; + int index = 0; + for (final ReadDescriptor d : readStructure.descriptors) { + if (d.type == ReadType.Barcode) { + noMatchBarcode[index++] = StringUtil.repeatCharNTimes('N', d.length); + } + } + + this.noMatchMetric = new BarcodeMetric(null, null, IlluminaUtil.barcodeSeqsToString(noMatchBarcode), noMatchBarcode); + + } + + public static File[] getTiledFiles(File baseDirectory, Pattern pattern) { + return IOUtil.getFilesMatchingRegexp(baseDirectory, pattern); + } + + @Override + public void doTileProcessing() { + + ThreadPoolExecutor completedWorkExecutor = new ThreadPoolExecutorWithExceptions(1); + + CompletedWorkChecker workChecker = new CompletedWorkChecker(); + completedWorkExecutor.submit(workChecker); + completedWorkExecutor.shutdown(); + + //thread by surface tile + ThreadPoolExecutor tileProcessingExecutor = new ThreadPoolExecutorWithExceptions(numThreads); + + for (Integer tile : tiles) { + tileProcessingExecutor.submit(new TileProcessor(tile)); + } + + tileProcessingExecutor.shutdown(); + + awaitThreadPoolTermination("Reading executor", tileProcessingExecutor); + awaitThreadPoolTermination("Tile completion executor", completedWorkExecutor); + + barcodeWriterThreads.values().forEach(ThreadPoolExecutor::shutdown); + barcodeWriterThreads.forEach((barcode, executor) -> awaitThreadPoolTermination(barcode + " writer", executor)); + + if (metricsFile != null) { + ExtractIlluminaBarcodes.finalizeMetrics(barcodesMetrics, noMatchMetric); + + for (final BarcodeMetric barcodeMetric : barcodesMetrics.values()) { + metrics.addMetric(barcodeMetric); + } + metrics.addMetric(noMatchMetric); + metrics.write(metricsFile); + CloserUtil.close(metricsFile); + } + } + + private void awaitThreadPoolTermination(String executorName, ThreadPoolExecutor executorService) { + try { + while (!executorService.awaitTermination(300, TimeUnit.SECONDS)) { + log.info(String.format("%s waiting for job completion. Finished jobs - %d : Running jobs - %d : Queued jobs - %d", + executorName, executorService.getCompletedTaskCount(), executorService.getActiveCount(), + executorService.getQueue().size())); + } + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + + private class RecordWriter implements Runnable { + private final SortingCollection recordCollection; + private final ConvertedClusterDataWriter writer; + private final String barcode; + + RecordWriter(ConvertedClusterDataWriter writer, + SortingCollection recordCollection, String barcode) { + this.writer = writer; + this.recordCollection = recordCollection; + this.barcode = barcode; + } + + @Override + public void run() { + for (CLUSTER_OUTPUT_RECORD record : recordCollection) { + writer.write(record); + writeProgressLogger.record(null, 0); + } + } + + public String getBarcode() { + return barcode; + } + } + + private class Closer implements Runnable { + private final ConvertedClusterDataWriter writer; + private final String barcode; + + private Closer(ConvertedClusterDataWriter writer, String barcode) { + this.writer = writer; + this.barcode = barcode; + } + + @Override + public void run() { + log.info("Closing writer for barcode " + barcode); + this.writer.close(); + } + } + + private class TileProcessor implements Runnable { + private final int tileNum; + private final Map> barcodeToRecordCollection = new HashMap<>(); + + TileProcessor(int tileNum) { + this.tileNum = tileNum; + } + + @Override + public void run() { + final BaseIlluminaDataProvider dataProvider = factory.makeDataProvider(cbcls, locs, filterFiles, tileNum, barcodesMetrics, + noMatchMetric, maxNoCalls, maxMismatches, minMismatchDelta, minimumBaseQuality); + + while (dataProvider.hasNext()) { + final ClusterData cluster = dataProvider.next(); + readProgressLogger.record(null, 0); + final String barcode = (demultiplex ? cluster.getMatchedBarcode() : null); + addRecord(barcode, converter.convertClusterToOutputRecord(cluster)); + } + + dataProvider.close(); + + List writerList = new ArrayList<>(); + barcodeToRecordCollection.forEach((barcode, value) -> { + value.doneAdding(); + ConvertedClusterDataWriter writer = barcodeRecordWriterMap.get(barcode); + writerList.add(new RecordWriter(writer, value, barcode)); + + }); + completedWork.put(tileNum, writerList); + + log.info("Finished processing tile " + tileNum); + } + + private synchronized void addRecord(final String barcode, final CLUSTER_OUTPUT_RECORD record) { + // Grab the existing collection, or initialize it if it doesn't yet exist + SortingCollection recordCollection = this.barcodeToRecordCollection.get(barcode); + if (recordCollection == null) { + // TODO: The implementation here for supporting ignoreUnexpectedBarcodes is not efficient, + // but the alternative is an extensive rewrite. We are living with the inefficiency for + // this special case for the time being. + if (!barcodeRecordWriterMap.containsKey(barcode)) { + if (ignoreUnexpectedBarcodes) { + return; + } + throw new PicardException(String.format("Read records with barcode %s, but this barcode was not expected. (Is it referenced in the parameters file?)", barcode)); + } + recordCollection = newSortingCollection(); + this.barcodeToRecordCollection.put(barcode, recordCollection); + } + recordCollection.add(record); + } + + private synchronized SortingCollection newSortingCollection() { + final int maxRecordsInRam = + Math.max(1, maxReadsInRamPerTile / + barcodeRecordWriterMap.size()); + return SortingCollection.newInstance( + outputRecordClass, + codecPrototype.clone(), + outputRecordComparator, + maxRecordsInRam, + tmpDirs); + } + } + + private class ThreadPoolExecutorWithExceptions extends ThreadPoolExecutor { + ThreadPoolExecutorWithExceptions(int threads) { + super(threads, threads, 0, TimeUnit.SECONDS, new LinkedBlockingDeque<>()); + } + + @Override + protected void afterExecute(Runnable r, Throwable t) { + if (t == null && r instanceof Future) { + try { + Future future = (Future) r; + if (future.isDone()) { + future.get(); + } + } catch (CancellationException ce) { + t = ce; + } catch (ExecutionException ee) { + t = ee.getCause(); + } catch (InterruptedException ie) { + Thread.currentThread().interrupt(); // ignore/reset + } + } + if (t != null) { + throw new PicardException(t.getMessage(), t); + } + } + } + + + private class CompletedWorkChecker implements Runnable { + + private int currentTileIndex = 0; + + @Override + public void run() { + while (currentTileIndex < tiles.size()) { + Integer currentTile = tiles.get(currentTileIndex); + if (completedWork.containsKey(currentTile)) { + log.info("Writing out tile " + currentTile); + completedWork.get(currentTile).forEach(writer -> barcodeWriterThreads.get(writer.getBarcode()).submit(writer)); + currentTileIndex++; + } else { + try { + Thread.sleep(5000); + } catch (InterruptedException e) { + throw new PicardException(e.getMessage(), e); + } + } + } + + //we are all done scheduling work.. now schedule the closes + barcodeRecordWriterMap.forEach((barcode, writer) -> barcodeWriterThreads.get(barcode).submit(new Closer(writer, barcode))); + } + + } +} diff --git a/src/main/java/picard/illumina/parser/BaseIlluminaDataProvider.java b/src/main/java/picard/illumina/parser/BaseIlluminaDataProvider.java new file mode 100644 index 000000000..d405ec53f --- /dev/null +++ b/src/main/java/picard/illumina/parser/BaseIlluminaDataProvider.java @@ -0,0 +1,81 @@ +package picard.illumina.parser; + +import java.util.Iterator; +import java.util.stream.StreamSupport; + +/** + * Parse various formats and versions of Illumina Basecall files, and use them the to populate + * ClusterData objects. + */ +public abstract class BaseIlluminaDataProvider implements Iterator, Iterable, AutoCloseable { + + protected final int lane; + /** + * Calculated once, outputReadTypes describes the type of read data for each ReadData that will be found in output ClusterData objects + */ + final ReadType[] outputReadTypes; + /** + * Number of reads in each ClusterData + */ + final int numReads; + + public BaseIlluminaDataProvider(final int lane, final OutputMapping outputMapping) { + numReads = outputMapping.numOutputReads(); + this.lane = lane; + this.outputReadTypes = StreamSupport.stream(outputMapping.getOutputDescriptors().spliterator(), false) + .map(rd -> rd.type).toArray(ReadType[]::new); + } + + @Override + public Iterator iterator() { + return this; + } + + public abstract void close(); + + /* + * Methods for that transfer data from the IlluminaData objects to the current cluster + */ + protected void addData(final ClusterData clusterData, final PositionalData posData) { + clusterData.setX(posData.getXCoordinate()); + clusterData.setY(posData.getYCoordinate()); + } + + protected void addData(final ClusterData clusterData, final PfData pfData) { + clusterData.setPf(pfData.isPf()); + } + + protected void addData(final ClusterData clusterData, final BarcodeData barcodeData) { + clusterData.setMatchedBarcode(barcodeData.getBarcode()); + } + + protected void addReadData(final ClusterData clusterData, final int numReads, final BaseData baseData) { + final byte[][] bases = baseData.getBases(); + for (int i = 0; i < numReads; i++) { + clusterData.getRead(i).setBases(bases[i]); + } + } + + protected void addReadData(final ClusterData clusterData, final int numReads, final QualityData qualityData) { + final byte[][] qualities = qualityData.getQualities(); + for (int i = 0; i < numReads; i++) { + clusterData.getRead(i).setQualities(qualities[i]); + } + } + + protected void addReadData(final ClusterData clusterData, final int numReads, final CbclData cbclData) { + final byte[][] bases = cbclData.getBases(); + for (int i = 0; i < numReads; i++) { + clusterData.getRead(i).setBases(bases[i]); + } + final byte[][] qualities = cbclData.getQualities(); + for (int i = 0; i < numReads; i++) { + clusterData.getRead(i).setQualities(qualities[i]); + } + clusterData.setPf(cbclData.isPf()); + clusterData.setX(cbclData.getPositionInfo().xQseqCoord); + clusterData.setY(cbclData.getPositionInfo().yQseqCoord); + } + + abstract void seekToTile(int seekAfterFirstRead); +} diff --git a/src/main/java/picard/illumina/parser/CbclData.java b/src/main/java/picard/illumina/parser/CbclData.java new file mode 100644 index 000000000..ca1601757 --- /dev/null +++ b/src/main/java/picard/illumina/parser/CbclData.java @@ -0,0 +1,45 @@ +package picard.illumina.parser; + +import picard.illumina.parser.readers.AbstractIlluminaPositionFileReader; + +/** + * This class provides that data structure for cbcls. This includes BCL data as well as PF (pass-filter) data and + * positional information. + */ +public class CbclData extends BclData implements PfData, PositionalData { + private final int tile; + private AbstractIlluminaPositionFileReader.PositionInfo positionInfo; + + public CbclData(int[] outputLengths, int tile) { + super(outputLengths); + this.tile = tile; + } + + //CBCLs currently only contain PF reads. + @Override + public boolean isPf() { + return true; + } + + public int getTile() { + return tile; + } + + public AbstractIlluminaPositionFileReader.PositionInfo getPositionInfo() { + return positionInfo; + } + + public void setPositionInfo(AbstractIlluminaPositionFileReader.PositionInfo positionInfo) { + this.positionInfo = positionInfo; + } + + @Override + public int getXCoordinate() { + return this.positionInfo.xQseqCoord; + } + + @Override + public int getYCoordinate() { + return this.positionInfo.yQseqCoord; + } +} diff --git a/src/main/java/picard/illumina/parser/IlluminaDataProvider.java b/src/main/java/picard/illumina/parser/IlluminaDataProvider.java index fc3a327b7..618884370 100644 --- a/src/main/java/picard/illumina/parser/IlluminaDataProvider.java +++ b/src/main/java/picard/illumina/parser/IlluminaDataProvider.java @@ -27,7 +27,6 @@ import picard.PicardException; import java.io.File; -import java.util.Iterator; import java.util.Map; import java.util.NoSuchElementException; import java.util.Set; @@ -39,13 +38,16 @@ * * @author jburke@broadinstitute.org */ -public class IlluminaDataProvider implements Iterator, Iterable { +public class IlluminaDataProvider extends BaseIlluminaDataProvider { - /** contains QSeqs, bcls, or other Illumina file types that will be parsed by this class */ + /** + * contains QSeqs, bcls, or other Illumina file types that will be parsed by this class + */ private final File basecallDirectory; //These two are for error reporting only - private final int lane; - /** A list of parsers (already initialized) that should output data in a format consistent with readStructure */ + /** + * A list of parsers (already initialized) that should output data in a format consistent with readStructure + */ private final IlluminaParser[] parsers; /** @@ -55,12 +57,6 @@ */ private final IlluminaDataType[][] dataTypes; - /** Calculated once, outputReadTypes describes the type of read data for each ReadData that will be found in output ClusterData objects */ - private final ReadType[] outputReadTypes; - - /** Number of reads in each ClusterData */ - private final int numReads; - /** * Create an IlluminaDataProvider given a map of parsersToDataTypes for particular file formats. Compute once the miscellaneous data for the * run that will be passed to each ClusterData. @@ -71,9 +67,8 @@ IlluminaDataProvider(final OutputMapping outputMapping, final Map> parsersToDataTypes, final File basecallDirectory, final int lane) { + super(lane, outputMapping); this.basecallDirectory = basecallDirectory; - this.lane = lane; - numReads = outputMapping.numOutputReads(); final int numParsers = parsersToDataTypes.size(); if (numParsers == 0) { @@ -90,11 +85,6 @@ dts.toArray(dataTypes[i++]); } - this.outputReadTypes = new ReadType[numReads]; - i = 0; - for (final ReadDescriptor rd : outputMapping.getOutputDescriptors()) { - outputReadTypes[i++] = rd.type; - } } /** @@ -162,55 +152,14 @@ public ClusterData next() { return cluster; } - /* - * Methods for that transfer data from the IlluminaData objects to the current cluster - */ - private void addData(final ClusterData clusterData, final PositionalData posData) { - clusterData.setX(posData.getXCoordinate()); - clusterData.setY(posData.getYCoordinate()); - } - - private void addData(final ClusterData clusterData, final PfData pfData) { - clusterData.setPf(pfData.isPf()); - } - - private void addData(final ClusterData clusterData, final BarcodeData barcodeData) { - clusterData.setMatchedBarcode(barcodeData.getBarcode()); - } - - private void addReadData(final ClusterData clusterData, final int numReads, final BaseData baseData) { - final byte[][] bases = baseData.getBases(); - for (int i = 0; i < numReads; i++) { - clusterData.getRead(i).setBases(bases[i]); - } - } - - private void addReadData(final ClusterData clusterData, final int numReads, final QualityData qualityData) { - final byte[][] qualities = qualityData.getQualities(); - for (int i = 0; i < numReads; i++) { - clusterData.getRead(i).setQualities(qualities[i]); - } - } - - private void addReadData(final ClusterData clusterData, final int numReads, final RawIntensityData rawIntensityData) { - final FourChannelIntensityData[] fcids = rawIntensityData.getRawIntensities(); - for (int i = 0; i < numReads; i++) { - clusterData.getRead(i).setRawIntensities(fcids[i]); - } - } - - private void addReadData(final ClusterData clusterData, final int numReads, final NoiseData noiseData) { - final FourChannelIntensityData[] fcids = noiseData.getNoise(); - for (int i = 0; i < numReads; i++) { - clusterData.getRead(i).setNoise(fcids[i]); - } - } - public void remove() { throw new UnsupportedOperationException(); } - /** Jump so that the next record returned will be from the specified tile. */ + /** + * Jump so that the next record returned will be from the specified tile. + */ + @Override public void seekToTile(final int oneBasedTileNumber) { for (final IlluminaParser parser : parsers) { parser.seekToTile(oneBasedTileNumber); @@ -218,10 +167,6 @@ public void seekToTile(final int oneBasedTileNumber) { } @Override - public Iterator iterator() { - return this; - } - public void close() { for (final IlluminaParser parser : parsers) { parser.close(); diff --git a/src/main/java/picard/illumina/parser/IlluminaDataProviderFactory.java b/src/main/java/picard/illumina/parser/IlluminaDataProviderFactory.java index 9842d75db..2b834c34f 100644 --- a/src/main/java/picard/illumina/parser/IlluminaDataProviderFactory.java +++ b/src/main/java/picard/illumina/parser/IlluminaDataProviderFactory.java @@ -27,7 +27,9 @@ import htsjdk.samtools.util.Log; import htsjdk.samtools.util.StringUtil; import picard.PicardException; +import picard.illumina.ExtractIlluminaBarcodes.BarcodeMetric; import picard.illumina.parser.IlluminaFileUtil.SupportedIlluminaFormat; +import picard.illumina.parser.readers.AbstractIlluminaPositionFileReader; import picard.illumina.parser.readers.BclQualityEvaluationStrategy; import java.io.File; @@ -68,10 +70,10 @@ * We try to prefer data types that will be the fastest to parse/smallest in memory * NOTE: In the code below, if Qseq is chosen to provide for ANY data type then it is used for ALL its data types (since we'll have to parse the entire line for each Qseq anyways) */ - private static final Map> DATA_TYPE_TO_PREFERRED_FORMATS = new EnumMap>(IlluminaDataType.class); + private static final Map> DATA_TYPE_TO_PREFERRED_FORMATS = new EnumMap<>(IlluminaDataType.class); static { - /** For types found in Qseq, we prefer the NON-Qseq file formats first. However, if we end up using Qseqs then we use Qseqs for EVERY type it provides, + /* For types found in Qseq, we prefer the NON-Qseq file formats first. However, if we end up using Qseqs then we use Qseqs for EVERY type it provides, * see determineFormats */ DATA_TYPE_TO_PREFERRED_FORMATS.put(IlluminaDataType.BaseCalls, makeList( @@ -88,7 +90,9 @@ } // The following properties must be specified by caller. - /** basecallDirectory holds QSeqs or bcls * */ + /** + * basecallDirectory holds QSeqs or bcls * + */ private final File basecallDirectory; private final File barcodesDirectory; private final int lane; @@ -103,7 +107,9 @@ */ protected final Map> formatToDataTypes; - /** Basecall Directory/lane parameterized util for finding IlluminaFiles */ + /** + * Basecall Directory/lane parameterized util for finding IlluminaFiles + */ private final IlluminaFileUtil fileUtil; @@ -113,25 +119,25 @@ private final BclQualityEvaluationStrategy bclQualityEvaluationStrategy; /** - * Create factory with the specified options, one that favors using QSeqs over all other files - * - * @param basecallDirectory The baseCalls directory of a complete Illumina directory. Files are found by searching relative to this folder (some of them higher up in the directory tree). - * @param lane Which lane to iterate over. - * @param readStructure The read structure to which output clusters will conform. When not using QSeqs, EAMSS masking(see BclParser) is run on individual reads as found in the readStructure, if - * the readStructure specified does not match the readStructure implied by the sequencer's output than the quality scores output may differ than what would be found - * in a run's QSeq files - * @param dataTypesArg Which data types to read - */ - public IlluminaDataProviderFactory(final File basecallDirectory, final int lane, final ReadStructure readStructure, - final BclQualityEvaluationStrategy bclQualityEvaluationStrategy, - final IlluminaDataType... dataTypesArg) { - this(basecallDirectory, null, - lane, readStructure, - bclQualityEvaluationStrategy, - dataTypesArg); - } - - /** + * Create factory with the specified options, one that favors using QSeqs over all other files + * + * @param basecallDirectory The baseCalls directory of a complete Illumina directory. Files are found by searching relative to this folder (some of them higher up in the directory tree). + * @param lane Which lane to iterate over. + * @param readStructure The read structure to which output clusters will conform. When not using QSeqs, EAMSS masking(see BclParser) is run on individual reads as found in the readStructure, if + * the readStructure specified does not match the readStructure implied by the sequencer's output than the quality scores output may differ than what would be found + * in a run's QSeq files + * @param dataTypesArg Which data types to read + */ + public IlluminaDataProviderFactory(final File basecallDirectory, final int lane, final ReadStructure readStructure, + final BclQualityEvaluationStrategy bclQualityEvaluationStrategy, + final IlluminaDataType... dataTypesArg) { + this(basecallDirectory, null, + lane, readStructure, + bclQualityEvaluationStrategy, + dataTypesArg); + } + + /** * Create factory with the specified options, one that favors using QSeqs over all other files * * @param basecallDirectory The baseCalls directory of a complete Illumina directory. Files are found by searching relative to this folder (some of them higher up in the directory tree). @@ -155,7 +161,7 @@ public IlluminaDataProviderFactory(final File basecallDirectory, File barcodesDi Note: In previous version, data of types not specified might be returned if a data type was specified for data residing in QSeqs (since QSeqs span multiple data types). This is no longer the case, you MUST specify all data types that should be returned.*/ - final Set dataTypes = Collections.unmodifiableSet(new HashSet(Arrays.asList(dataTypesArg))); + final Set dataTypes = Collections.unmodifiableSet(new HashSet<>(Arrays.asList(dataTypesArg))); if (dataTypes.isEmpty()) { throw new PicardException("No data types have been specified for basecall output " + basecallDirectory + @@ -170,12 +176,12 @@ public IlluminaDataProviderFactory(final File basecallDirectory, File barcodesDi //find if we have any IlluminaDataType with NO available file formats and, if any exist, throw an exception final Set unmatchedDataTypes = findUnmatchedTypes(dataTypes, formatToDataTypes); if (!unmatchedDataTypes.isEmpty()) { - throw new PicardException("Could not find a format with available files for the following data types: " + StringUtil.join(", ", new ArrayList(unmatchedDataTypes))); + throw new PicardException("Could not find a format with available files for the following data types: " + StringUtil.join(", ", new ArrayList<>(unmatchedDataTypes))); } log.debug("The following file formats will be used by IlluminaDataProvider: " + StringUtil.join("," + formatToDataTypes.keySet())); - availableTiles = fileUtil.getActualTiles(new ArrayList(formatToDataTypes.keySet())); + availableTiles = fileUtil.getActualTiles(new ArrayList<>(formatToDataTypes.keySet())); if (availableTiles.isEmpty()) { throw new PicardException("No available tiles were found, make sure that " + basecallDirectory.getAbsolutePath() + " has a lane " + lane); } @@ -183,6 +189,21 @@ public IlluminaDataProviderFactory(final File basecallDirectory, File barcodesDi outputMapping = new OutputMapping(readStructure); } + public IlluminaDataProviderFactory(File basecallDirectory, File barcodesDirectory, int lane, + ReadStructure readStructure, + BclQualityEvaluationStrategy bclQualityEvaluationStrategy) { + this.basecallDirectory = basecallDirectory; + this.barcodesDirectory = barcodesDirectory; + this.bclQualityEvaluationStrategy = bclQualityEvaluationStrategy; + + this.lane = lane; + + this.formatToDataTypes = null; + this.availableTiles = null; + this.fileUtil = null; + outputMapping = new OutputMapping(readStructure); + } + /** * Sometimes (in the case of skipped reads) the logical read structure of the output cluster data is different from the input * readStructure @@ -202,17 +223,36 @@ public ReadStructure getOutputReadStructure() { return availableTiles; } - /** Sets whether or not EAMSS filtering will be applied if parsing BCL files for bases and quality scores. */ + /** + * Sets whether or not EAMSS filtering will be applied if parsing BCL files for bases and quality scores. + */ public void setApplyEamssFiltering(final boolean applyEamssFiltering) { this.applyEamssFiltering = applyEamssFiltering; } /** - * Call this method to create a ClusterData iterator over all clusters for all tiles in ascending numeric order. + * Call this method to create a ClusterData iterator over all clusters for a given tile. * + * @param cbcls A list of cbcls to use when creating this data provider. + * @param filterFiles A list of the pf filter files to use when creating this data provider. + * @param barcodesMetrics A map of barcode to barcode metrics to output for this data provider. + * @param maxNoCalls The maximum number of no calls to allow in a match. + * @param maxMismatches The maximum number of mismatched calls to allow in a match. + * @param minMismatchDelta The minimum mismatch difference between the best and second best matches. + * @param minimumBaseQuality The minimum base quality to allow for a matching base call. * @return An iterator for reading the Illumina basecall output for the lane specified in the ctor. */ - public IlluminaDataProvider makeDataProvider() { + public NewIlluminaDataProvider makeDataProvider(List cbcls, + List locs, + File[] filterFiles, int tileNum, Map barcodesMetrics, + BarcodeMetric noMatchMetric, + int maxNoCalls, int maxMismatches, int minMismatchDelta, + int minimumBaseQuality) { + return new NewIlluminaDataProvider(cbcls, locs, filterFiles, lane, tileNum, outputMapping, + false, barcodesMetrics, noMatchMetric, maxNoCalls, maxMismatches, minMismatchDelta, minimumBaseQuality); + } + + public BaseIlluminaDataProvider makeDataProvider() { return makeDataProvider(null); } @@ -221,7 +261,7 @@ public IlluminaDataProvider makeDataProvider() { * * @return An iterator for reading the Illumina basecall output for the lane specified in the constructor. */ - public IlluminaDataProvider makeDataProvider(List requestedTiles) { + public BaseIlluminaDataProvider makeDataProvider(List requestedTiles) { if (requestedTiles == null) { requestedTiles = availableTiles; } else { @@ -230,7 +270,7 @@ public IlluminaDataProvider makeDataProvider(List requestedTiles) { } } - final Map> parsersToDataType = new HashMap>(); + final Map> parsersToDataType = new HashMap<>(); for (final Map.Entry> fmToDt : formatToDataTypes.entrySet()) { parsersToDataType.put(makeParser(fmToDt.getKey(), requestedTiles), fmToDt.getValue()); } @@ -248,7 +288,7 @@ public IlluminaDataProvider makeDataProvider(List requestedTiles) { * @return The data types that go unsupported by the formats found in formatToMatchedTypes */ public static Set findUnmatchedTypes(final Set requestedDataTypes, final Map> formatToMatchedTypes) { - final Set copiedTypes = new HashSet(requestedDataTypes); + final Set copiedTypes = new HashSet<>(requestedDataTypes); for (final Set matchedTypes : formatToMatchedTypes.values()) { copiedTypes.removeAll(matchedTypes); } @@ -266,9 +306,9 @@ public IlluminaDataProvider makeDataProvider(List requestedTiles) { */ public static Map> determineFormats(final Set requestedDataTypes, final IlluminaFileUtil fileUtil) { //For predictable ordering and uniqueness only, put the requestedDataTypes into a treeSet - final SortedSet toSupport = new TreeSet(requestedDataTypes); - final Map> fileTypeToDataTypes = new EnumMap>(SupportedIlluminaFormat.class); - final Map dataTypeToFormat = new EnumMap(IlluminaDataType.class); + final SortedSet toSupport = new TreeSet<>(requestedDataTypes); + final Map> fileTypeToDataTypes = new EnumMap<>(SupportedIlluminaFormat.class); + final Map dataTypeToFormat = new EnumMap<>(IlluminaDataType.class); for (final IlluminaDataType ts : toSupport) { final SupportedIlluminaFormat preferredFormat = findPreferredAvailableFormat(ts, fileUtil); @@ -341,11 +381,11 @@ private IlluminaParser makeParser(final SupportedIlluminaFormat format, final Li final IlluminaParser parser; switch (format) { case Barcode: - parser = new BarcodeParser(((PerTileFileUtil)fileUtil.getUtil(SupportedIlluminaFormat.Barcode)).getFiles(requestedTiles)); + parser = new BarcodeParser(((PerTileFileUtil) fileUtil.getUtil(SupportedIlluminaFormat.Barcode)).getFiles(requestedTiles)); break; case Bcl: { - final CycleIlluminaFileMap bclFileMap = ((PerTilePerCycleFileUtil)fileUtil.getUtil(SupportedIlluminaFormat.Bcl)) + final CycleIlluminaFileMap bclFileMap = ((PerTilePerCycleFileUtil) fileUtil.getUtil(SupportedIlluminaFormat.Bcl)) .getFiles(requestedTiles, outputMapping.getOutputCycles()); bclFileMap.assertValid(requestedTiles, outputMapping.getOutputCycles()); parser = new BclParser(basecallDirectory, lane, bclFileMap, outputMapping, this.applyEamssFiltering, bclQualityEvaluationStrategy); @@ -353,7 +393,7 @@ private IlluminaParser makeParser(final SupportedIlluminaFormat format, final Li } case Filter: - final IlluminaFileMap filterFileMap = ((PerTileFileUtil)fileUtil.getUtil(SupportedIlluminaFormat.Filter)).getFiles(requestedTiles); + final IlluminaFileMap filterFileMap = ((PerTileFileUtil) fileUtil.getUtil(SupportedIlluminaFormat.Filter)).getFiles(requestedTiles); parser = new FilterParser(filterFileMap); break; @@ -365,11 +405,11 @@ private IlluminaParser makeParser(final SupportedIlluminaFormat format, final Li break; case MultiTileFilter: - parser = ((MultiTileFilterFileUtil)fileUtil.getUtil(SupportedIlluminaFormat.MultiTileFilter)).makeParser(requestedTiles); + parser = ((MultiTileFilterFileUtil) fileUtil.getUtil(SupportedIlluminaFormat.MultiTileFilter)).makeParser(requestedTiles); break; case MultiTileLocs: - parser = ((MultiTileLocsFileUtil)fileUtil.getUtil(SupportedIlluminaFormat.MultiTileLocs)).makeParser(requestedTiles); + parser = ((MultiTileLocsFileUtil) fileUtil.getUtil(SupportedIlluminaFormat.MultiTileLocs)).makeParser(requestedTiles); break; case MultiTileBcl: { diff --git a/src/main/java/picard/illumina/parser/IlluminaFileUtil.java b/src/main/java/picard/illumina/parser/IlluminaFileUtil.java index 736054792..4fd65def0 100644 --- a/src/main/java/picard/illumina/parser/IlluminaFileUtil.java +++ b/src/main/java/picard/illumina/parser/IlluminaFileUtil.java @@ -170,7 +170,7 @@ public ParameterizedFileUtil getUtil(final SupportedIlluminaFormat format) { //Used just to ensure predictable ordering final TreeSet expectedTiles = new TreeSet(); - final Iterator tileMetrics = new TileMetricsOutReader(tileMetricsOut); + final Iterator tileMetrics = new TileMetricsOutReader(tileMetricsOut, TileMetricsOutReader.TileMetricsVersion.TWO); while (tileMetrics.hasNext()) { final TileMetricsOutReader.IlluminaTileMetrics tileMetric = tileMetrics.next(); diff --git a/src/main/java/picard/illumina/parser/NewIlluminaDataProvider.java b/src/main/java/picard/illumina/parser/NewIlluminaDataProvider.java new file mode 100644 index 000000000..d7d7c41c3 --- /dev/null +++ b/src/main/java/picard/illumina/parser/NewIlluminaDataProvider.java @@ -0,0 +1,118 @@ +package picard.illumina.parser; + +import picard.illumina.ExtractIlluminaBarcodes; +import picard.illumina.ExtractIlluminaBarcodes.BarcodeMetric; +import picard.illumina.parser.readers.AbstractIlluminaPositionFileReader; +import picard.illumina.parser.readers.CbclReader; + +import java.io.File; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +import static picard.illumina.ExtractIlluminaBarcodes.PerTileBarcodeExtractor.findBestBarcodeAndUpdateMetrics; + +/** + * Parse cbcls Illumina Basecall files, and use them the to populate + * ClusterData objects. + */ +public class NewIlluminaDataProvider extends BaseIlluminaDataProvider { + private final CbclReader reader; + private final ReadStructure outputReadStructure; + private final boolean usingQualityScores; + private final Map barcodeMetricMap; + private final int maxNoCalls; + private final int maxMismatches; + private final int minMismatchDelta; + private final int minimumBaseQuality; + private final BarcodeMetric noMatchMetric; + + /** + * Construct a NewIlluminaDataProvider to create a ClusterData iterator over all clusters for a given tile. + * + * @param cbcls A list of cbcls to use when creating this data provider. + * @param filterFiles A list of the pf filter files to use when creating this data provider. + * @param barcodesMetrics A map of barcode to barcode metrics to output for this data provider. + * @param maxNoCalls The maximum number of no calls to allow in a match. + * @param maxMismatches The maximum number of mismatched calls to allow in a match. + * @param minMismatchDelta The minimum mismatch difference between the best and second best matches. + * @param minimumBaseQuality The minimum base quality to allow for a matching base call. + */ + NewIlluminaDataProvider(final List cbcls, final List locs, + final File[] filterFiles, final int lane, final int tileNum, final OutputMapping outputMapping, + boolean usingQualityScores, final Map barcodesMetrics, + final BarcodeMetric noMatchMetric, + int maxNoCalls, int maxMismatches, int minMismatchDelta, int minimumBaseQuality) { + super(lane, outputMapping); + this.usingQualityScores = usingQualityScores; + this.barcodeMetricMap = barcodesMetrics; + this.maxNoCalls = maxNoCalls; + this.maxMismatches = maxMismatches; + this.minMismatchDelta = minMismatchDelta; + this.minimumBaseQuality = minimumBaseQuality; + Map filterFileMap = new HashMap<>(); + for (File filterFile : filterFiles) { + filterFileMap.put(fileToTile(filterFile.getName()), filterFile); + } + this.reader = new CbclReader(cbcls, filterFileMap, outputMapping.getOutputReadLengths(), tileNum, locs, false); + this.outputReadStructure = outputMapping.getOutputReadStructure(); + + this.noMatchMetric = noMatchMetric; + } + + @Override + public void close() { + reader.close(); + } + + @Override + public void seekToTile(int seekAfterFirstRead) { + + } + + @Override + public boolean hasNext() { + return reader.hasNext(); + } + + @Override + public ClusterData next() { + CbclData cbclData = reader.next(); + + if (cbclData == null) return null; + + final ClusterData cluster = new ClusterData(outputReadTypes); + cluster.setLane(lane); + cluster.setTile(cbclData.getTile()); + + final int[] barcodeIndices = outputReadStructure.sampleBarcodes.getIndices(); + addReadData(cluster, numReads, cbclData); + + final byte[][] barcodeSubsequences = new byte[barcodeIndices.length][]; + final byte[][] qualityScores = usingQualityScores ? new byte[barcodeIndices.length][] : null; + for (int i = 0; i < barcodeIndices.length; i++) { + barcodeSubsequences[i] = cluster.getRead(barcodeIndices[i]).getBases(); + if (usingQualityScores) qualityScores[i] = cluster.getRead(barcodeIndices[i]).getQualities(); + } + + + final ExtractIlluminaBarcodes.PerTileBarcodeExtractor.BarcodeMatch match = findBestBarcodeAndUpdateMetrics(barcodeSubsequences, qualityScores, + true, barcodeMetricMap, noMatchMetric, maxNoCalls, maxMismatches, + minMismatchDelta, minimumBaseQuality); + + if (match.isMatched()) { + cluster.setMatchedBarcode(match.getBarcode()); + } + return cluster; + } + + public static Integer fileToTile(final String fileName) { + final Matcher matcher = Pattern.compile("^s_\\d+_(\\d{1,5}).+").matcher(fileName); + if (!matcher.matches()) { + return null; + } + return Integer.parseInt(matcher.group(1)); + } +} diff --git a/src/main/java/picard/illumina/parser/ParameterizedFileUtil.java b/src/main/java/picard/illumina/parser/ParameterizedFileUtil.java index 9e062d582..1aa9693e7 100644 --- a/src/main/java/picard/illumina/parser/ParameterizedFileUtil.java +++ b/src/main/java/picard/illumina/parser/ParameterizedFileUtil.java @@ -149,9 +149,9 @@ private String makeLaneRegex(final String fileNameEndPattern, final int lane) { } /** - * The period separator is expected in the file extension, since some do not start with it + * Escape the period character. */ - private String escapePeriods(final String preEscaped) { + public static String escapePeriods(final String preEscaped) { return preEscaped .replaceAll("\\.", "\\."); //In the first one the \\ is inside a regex in the second it's NOT } diff --git a/src/main/java/picard/illumina/parser/PerTileFileUtil.java b/src/main/java/picard/illumina/parser/PerTileFileUtil.java index fa12df310..c6138fc55 100644 --- a/src/main/java/picard/illumina/parser/PerTileFileUtil.java +++ b/src/main/java/picard/illumina/parser/PerTileFileUtil.java @@ -22,9 +22,9 @@ public PerTileFileUtil(final String extension, final File base, super(true, extension, base, faker, lane, skipEmptyFiles); this.fileMap = getTiledFiles(base, matchPattern); if (!fileMap.isEmpty()) { - this.tiles = Collections.unmodifiableList(new ArrayList(this.fileMap.keySet())); + this.tiles = new ArrayList<>(this.fileMap.keySet()); } else { - this.tiles = new ArrayList(); + this.tiles = Collections.emptyList(); } } diff --git a/src/main/java/picard/illumina/parser/PerTilePerCycleFileUtil.java b/src/main/java/picard/illumina/parser/PerTilePerCycleFileUtil.java index 63af850bd..93c502ed8 100644 --- a/src/main/java/picard/illumina/parser/PerTilePerCycleFileUtil.java +++ b/src/main/java/picard/illumina/parser/PerTilePerCycleFileUtil.java @@ -8,7 +8,6 @@ import java.io.File; import java.io.IOException; import java.util.ArrayList; -import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.LinkedList; @@ -60,7 +59,7 @@ protected CycleIlluminaFileMap getPerTilePerCycleFiles() { cycledMap.put(getCycleFromDir(cycleDir), fileMap); } - this.tiles = Collections.unmodifiableList(new ArrayList(uniqueTiles)); + this.tiles = new ArrayList<>(uniqueTiles); return cycledMap; } @@ -255,7 +254,7 @@ private String getFileForCycle(final int currentCycle, final int tile) { return "C" + currentCycle + ".1" + File.separator + "s_" + lane + "_" + tile + extension; } - private static int getCycleFromDir(final File tempCycleDir) { + public static int getCycleFromDir(final File tempCycleDir) { final String fileName = tempCycleDir.getName(); final Matcher matcher = IlluminaFileUtil.CYCLE_SUBDIRECTORY_PATTERN.matcher(fileName); diff --git a/src/main/java/picard/illumina/parser/TileMetricsUtil.java b/src/main/java/picard/illumina/parser/TileMetricsUtil.java index 656c7be86..1c4f28a2b 100644 --- a/src/main/java/picard/illumina/parser/TileMetricsUtil.java +++ b/src/main/java/picard/illumina/parser/TileMetricsUtil.java @@ -26,21 +26,24 @@ import htsjdk.samtools.ValidationStringency; import htsjdk.samtools.util.CollectionUtil; +import htsjdk.samtools.util.IOUtil; import htsjdk.samtools.util.IterableAdapter; import htsjdk.samtools.util.Log; import picard.PicardException; -import picard.illumina.CollectIlluminaLaneMetrics; +import picard.illumina.parser.readers.EmpiricalPhasingMetricsOutReader; import picard.illumina.parser.readers.TileMetricsOutReader; import picard.illumina.parser.readers.TileMetricsOutReader.IlluminaTileMetrics; import java.io.File; import java.io.FileNotFoundException; import java.util.ArrayList; +import java.util.Arrays; import java.util.Collection; import java.util.Collections; import java.util.HashMap; import java.util.Iterator; import java.util.LinkedList; +import java.util.List; import java.util.Map; import java.util.Set; import java.util.stream.Collectors; @@ -51,33 +54,77 @@ * @author mccowan */ public class TileMetricsUtil { - /** The path to the directory containing the tile metrics file relative to the basecalling directory. */ + + private static final Log log = Log.getInstance(TileMetricsUtil.class); + /** + * The cycle directory that contain the tile metrics output. (Cycle 25 for NovaSeq) + */ + public static String CYCLE_CONTAINING_TILE_METRICS = "C25.1"; + /** + * The path to the directory containing the tile metrics file relative to the basecalling directory. + */ public static String INTEROP_SUBDIRECTORY_NAME = "InterOp"; - - /** The expected name of the tile metrics output file. */ + + /** + * The expected name of the tile metrics output file. + */ public static String TILE_METRICS_OUT_FILE_NAME = "TileMetricsOut.bin"; private final static Log LOG = Log.getInstance(TileMetricsUtil.class); - /** Returns the path to the TileMetrics file given the basecalling directory. */ - public static File renderTileMetricsFileFromBasecallingDirectory(final File illuminaRunDirectory) { - return new File(new File(illuminaRunDirectory, INTEROP_SUBDIRECTORY_NAME), TILE_METRICS_OUT_FILE_NAME); + /** + * Returns the path to the TileMetrics file given the basecalling directory. + */ + public static File renderTileMetricsFileFromBasecallingDirectory(final File illuminaRunDirectory, boolean isNovaSeq) { + if (isNovaSeq) { + return new File(new File(illuminaRunDirectory, INTEROP_SUBDIRECTORY_NAME + File.separator + CYCLE_CONTAINING_TILE_METRICS), TILE_METRICS_OUT_FILE_NAME); + } else { + return new File(new File(illuminaRunDirectory, INTEROP_SUBDIRECTORY_NAME), TILE_METRICS_OUT_FILE_NAME); + } } - + + public static Collection parseTileMetrics(final File tileMetricsOutFile, + final Map phasingMetricsFiles, + final ReadStructure readStructure, + final ValidationStringency validationStringency) + throws FileNotFoundException { + TileMetricsOutReader tileMetricsIterator = new TileMetricsOutReader(tileMetricsOutFile, TileMetricsOutReader.TileMetricsVersion.THREE); + final Collection tileMetrics = determineLastValueForLaneTileMetricsCode(tileMetricsIterator); + final Map> locationToMetricsMap = partitionTileMetricsByLocation(tileMetrics); + final Collection tiles = new LinkedList<>(); + for (final Map.Entry> entry : locationToMetricsMap.entrySet()) { + final Collection tileRecords = entry.getValue(); + + final IlluminaTileMetrics record = CollectionUtil.getSoleElement(tileRecords); + + //only create for cluster records + if (record.isClusterRecord()) { + // Snag the phasing data for each read in the read structure. For both types of phasing values, this is the median of all of the individual values seen + final Collection tilePhasingValues = getTilePhasingValues(record.getLaneTileCode(), + phasingMetricsFiles, readStructure, validationStringency); + + tiles.add(new Tile(record.getLaneNumber(), record.getTileNumber(), tileMetricsIterator.getDensity(), record.getMetricValue(), + tilePhasingValues.toArray(new TilePhasingValue[tilePhasingValues.size()]))); + } + } + + return Collections.unmodifiableCollection(tiles); + } + /** * Returns an unmodifiable collection of tile data read from the provided file. For each tile we will extract: - * - lane number - * - tile number - * - density - * - cluster ID - * - Phasing & Prephasing for first template read (if available) - * - Phasing & Prephasing for second template read (if available) + * - lane number + * - tile number + * - density + * - cluster ID + * - Phasing & Prephasing for first template read (if available) + * - Phasing & Prephasing for second template read (if available) */ public static Collection parseTileMetrics(final File tileMetricsOutFile, final ReadStructure readStructure, final ValidationStringency validationStringency) throws FileNotFoundException { // Get the tile metrics lines from TileMetricsOut, keeping only the last value for any Lane/Tile/Code combination final Collection tileMetrics = determineLastValueForLaneTileMetricsCode(new TileMetricsOutReader - (tileMetricsOutFile)); + (tileMetricsOutFile, TileMetricsOutReader.TileMetricsVersion.TWO)); // Collect the tiles by lane & tile, and then collect the metrics by lane final Map> locationToMetricsMap = partitionTileMetricsByLocation(tileMetrics); @@ -100,13 +147,86 @@ public static File renderTileMetricsFileFromBasecallingDirectory(final File illu final Collection tilePhasingValues = getTilePhasingValues(codeMetricsMap, readStructure, validationStringency); tiles.add(new Tile(densityRecord.getLaneNumber(), densityRecord.getTileNumber(), densityRecord.getMetricValue(), clusterRecord.getMetricValue(), - tilePhasingValues.toArray(new TilePhasingValue[tilePhasingValues.size()]))); + tilePhasingValues.toArray(new TilePhasingValue[tilePhasingValues.size()]))); } return Collections.unmodifiableCollection(tiles); } - /** Pulls out the phasing & prephasing value for the template reads and returns a collection of TilePhasingValues representing these */ + private static Collection getTilePhasingValues(TileMetricsOutReader.IlluminaLaneTileCode tileCode, + Map phasingMetricFiles, + final ReadStructure readStructure, + final ValidationStringency validationStringency) { + final Collection tilePhasingValues = new ArrayList<>(); + int totalCycleCount = 0; + + boolean isFirstRead = true; + + int readNum = 0; + for (int outputLength : readStructure.readLengths) { + ReadDescriptor descriptor = readStructure.descriptors.get(readNum++); + if (descriptor.type == ReadType.Template) { + final TileTemplateRead tileTemplateRead = isFirstRead ? TileTemplateRead.FIRST : TileTemplateRead.SECOND; + + List cycleNumWithData = new ArrayList<>(); + Map>> phasing = new HashMap<>(); + Map>> prePhasing = new HashMap<>(); + for (int cycle = 0; cycle < outputLength; cycle++) { + File phasingData = phasingMetricFiles.get(totalCycleCount + 1); + if (phasingData != null) { + cycleNumWithData.add((float) (cycle + 1)); + EmpiricalPhasingMetricsOutReader reader = new EmpiricalPhasingMetricsOutReader(phasingData); + + while (reader.hasNext()) { + EmpiricalPhasingMetricsOutReader.IlluminaPhasingMetrics phasingMetrics = reader.next(); + + TileMetricsOutReader.IlluminaLaneTileCode laneTileCode = phasingMetrics.laneTileCode; + int tileNumber = laneTileCode.getTileNumber(); + if (laneTileCode.getLaneNumber() != tileCode.getLaneNumber() + || tileNumber != tileCode.getTileNumber()) { + continue; + } + + if (!phasing.containsKey(tileNumber)) { + phasing.put(tileNumber, new HashMap<>()); + prePhasing.put(tileNumber, new HashMap<>()); + } + int laneNumber = laneTileCode.getLaneNumber(); + if (!phasing.get(tileNumber).containsKey(laneNumber)) { + phasing.get(tileNumber).put(laneNumber, new ArrayList<>()); + prePhasing.get(tileNumber).put(laneNumber, new ArrayList<>()); + } + phasing.get(tileNumber).get(laneNumber).add(phasingMetrics.phasingWeight); + prePhasing.get(tileNumber).get(laneNumber).add(phasingMetrics.prephasingWeight); + } + } + + totalCycleCount++; + } + + phasing.forEach((tileNum, lanePhasingMetrics) -> { + Map> lanePrePhasingMetrics = prePhasing.get(tileNum); + lanePhasingMetrics.forEach((laneNum, phasingMetrics) -> { + List prephasingMetrics = lanePrePhasingMetrics.get(laneNum); + float[] phasingSlopeAndOffset = computeLinearFit(cycleNumWithData.toArray(new Float[0]), phasingMetrics.toArray(new Float[0]), phasingMetrics.size()); + float[] prePhasingSlopeAndOffset = computeLinearFit(cycleNumWithData.toArray(new Float[0]), prephasingMetrics.toArray(new Float[0]), phasingMetrics.size()); + TilePhasingValue value = new TilePhasingValue(tileTemplateRead, phasingSlopeAndOffset[0], prePhasingSlopeAndOffset[0]); + tilePhasingValues.add(value); + }); + }); + + isFirstRead = false; + } else { + totalCycleCount += outputLength; + } + } + + return tilePhasingValues; + } + + /** + * Pulls out the phasing & prephasing value for the template reads and returns a collection of TilePhasingValues representing these + */ private static Collection getTilePhasingValues(final Map> codeMetricsMap, final ReadStructure readStructure, final ValidationStringency validationStringency) { boolean isFirstRead = true; final Collection tilePhasingValues = new ArrayList<>(); @@ -138,7 +258,7 @@ public static File renderTileMetricsFileFromBasecallingDirectory(final File illu } else { throw new PicardException(message); } - phasingValue = 0; + phasingValue = 0; prePhasingValue = 0; } @@ -150,7 +270,9 @@ public static File renderTileMetricsFileFromBasecallingDirectory(final File illu return tilePhasingValues; } - /** According to Illumina, for every lane/tile/code combination they will only use the last value. Filter out the previous values */ + /** + * According to Illumina, for every lane/tile/code combination they will only use the last value. Filter out the previous values + */ private static Collection determineLastValueForLaneTileMetricsCode(final Iterator tileMetricsIterator) { final Map filteredTileMetrics = new HashMap<>(); @@ -175,4 +297,90 @@ private static String renderMetricLocationKey(final IlluminaTileMetrics metric) return tileMetrics.stream().collect(Collectors.groupingBy(TileMetricsUtil::renderMetricLocationKey)); } + public static Map renderPhasingMetricsFilesFromBasecallingDirectory(File illuminaRunDirectory) { + File[] cycleDirs = IOUtil.getFilesMatchingRegexp(new File(illuminaRunDirectory, INTEROP_SUBDIRECTORY_NAME), + IlluminaFileUtil.CYCLE_SUBDIRECTORY_PATTERN); + + Map phasingMetrics = new HashMap<>(); + Arrays.asList(cycleDirs) + .forEach(cycleDir -> { + File[] filesMatchingRegexp = IOUtil.getFilesMatchingRegexp( + cycleDir, "EmpiricalPhasingMetricsOut.bin"); + if (filesMatchingRegexp.length > 0) { + phasingMetrics.put(PerTilePerCycleFileUtil.getCycleFromDir(cycleDir), + filesMatchingRegexp[0]); + } + }); + return phasingMetrics; + } + + /*line fit for phasing weights + /** Compute the best fit line (slope + offset) given the points defined by (x_values[i], y_values[i]) + * + * @param x_values X-values of the list of points + * @param y_values Y-values of the list of points + * @param slope slope of the best fit line (calculated by this function) + * @param offset offset of the best fit line (calculated by this function) + * @param sample_count number of weights to use for fitting + * @return true if linear fit could be computed, false if not + + bool compute_linear_fit(const std::vector& x_values, const std::vector& y_values, float& slope, float& offset, size_t sample_count=0) + { + if(sample_count==0 || sample_count > x_values.size()) sample_count = x_values.size(); + if (x_values.size() <= 1 || x_values.size() != y_values.size()) + { + //TODO: throw error? + return false; + } + float sx = 0; // Sum(x) + float sy = 0; // Sum(y) + float sxx = 0; // Sum(x*x) + float sxy = 0; // Sum(x*y) + for (size_t i = 0; i < sample_count; i++) + { + sx += x_values[i]; + sy += y_values[i]; + sxy += x_values[i] * y_values[i]; + sxx += x_values[i] * x_values[i]; + } + const float denominator = sample_count * sxx - sx * sx; + if (denominator > std::numeric_limits::epsilon()) + { + slope = (sample_count * sxy - sx * sy) / denominator; + offset = (sy * sxx - sx * sxy) / denominator; + return true; + } + return false; + }*/ + + private static float[] computeLinearFit(Float[] xValues, Float[] yValues, int sampleCount) { + if (sampleCount == 0 || sampleCount > xValues.length) sampleCount = xValues.length; + if (xValues.length <= 1 || xValues.length != yValues.length) { + throw new PicardException("Can not compute linear fit."); + } + + float sumX = 0; + float sumY = 0; + float sumXX = 0; + float sumXY = 0; + + //returns + float slope = 0f; + float offset = 0f; + + for (int i = 0; i < sampleCount; i++) { + sumX += xValues[i]; + sumY += yValues[i]; + sumXY += xValues[i] * yValues[i]; + sumXX += xValues[i] * xValues[i]; + } + + float denominator = sampleCount * sumXX - sumX * sumX; + + if (denominator > Math.ulp(denominator)) { + slope = (sampleCount * sumXY - sumX * sumY) / denominator; + offset = (sumY * sumXX - sumX * sumXY) / denominator; + } + return new float[]{slope, offset}; + } } diff --git a/src/main/java/picard/illumina/parser/readers/AbstractIlluminaPositionFileReader.java b/src/main/java/picard/illumina/parser/readers/AbstractIlluminaPositionFileReader.java index 7068a36b2..9486793d3 100644 --- a/src/main/java/picard/illumina/parser/readers/AbstractIlluminaPositionFileReader.java +++ b/src/main/java/picard/illumina/parser/readers/AbstractIlluminaPositionFileReader.java @@ -32,14 +32,14 @@ import java.util.regex.Pattern; /** - * The position files of Illumina are nearly the same form: Pos files consist of text based tabbed - * x-y coordinate float pairs, locs files are binary x-y float pairs, clocs are compressed binary - * x-y float pairs. Each of these file types we read sequentially and are really concerned with - * iterating over the coordinates and returning them as as they would appear in a QSeq file. - * Therefore, this abstract base class provides the basic functionality for iterating over - * the values found in these files and converting them into qseq style coordinates. - * - * Currently these readers also return lane/tile but this will be unnecessary in future releases. + * The position files of Illumina are nearly the same form: Pos files consist of text based tabbed + * x-y coordinate float pairs, locs files are binary x-y float pairs, clocs are compressed binary + * x-y float pairs. Each of these file types we read sequentially and are really concerned with + * iterating over the coordinates and returning them as as they would appear in a QSeq file. + * Therefore, this abstract base class provides the basic functionality for iterating over + * the values found in these files and converting them into qseq style coordinates. + *

+ * Currently these readers also return lane/tile but this will be unnecessary in future releases. */ public abstract class AbstractIlluminaPositionFileReader implements CloseableIterator { @@ -50,28 +50,41 @@ * negative values and see what happens. */ public static final float MIN_POS = -10.0f; + public static final String S_LOCS_FILE = "s.locs"; public class PositionInfo { - /** The x-position as it occurs in the file being read */ + /** + * The x-position as it occurs in the file being read + */ public final float xPos; - /** The y-position as it occurs in the file being read*/ + /** + * The y-position as it occurs in the file being read + */ public final float yPos; - /** The lane, which is determined from the file name*/ + /** + * The lane, which is determined from the file name + */ public final int lane; - /** The tile, which is determined from the file name*/ + /** + * The tile, which is determined from the file name + */ public final int tile; - /** The QSeq style x-coordinat, an integer = Math.round(xPos*10 + 1000)*/ + /** + * The QSeq style x-coordinat, an integer = Math.round(xPos*10 + 1000) + */ public final int xQseqCoord; - /** The QSeq style y-coordinates, an integer = Math.round(yPos*10 + 1000)*/ + /** + * The QSeq style y-coordinates, an integer = Math.round(yPos*10 + 1000) + */ public final int yQseqCoord; public PositionInfo(final float x, final float y, final int lane, final int tile) { - if(x < MIN_POS || y < MIN_POS || x > MAX_POS || y > MAX_POS) { + if (x < MIN_POS || y < MIN_POS || x > MAX_POS || y > MAX_POS) { throw new IllegalArgumentException( String.format("Cluster location not in the range %f..%f. x: %f; y: %f; lane: %d; tile: %d", @@ -86,20 +99,22 @@ public PositionInfo(final float x, final float y, final int lane, final int tile this.tile = tile; } - /** Convert a value in float form as it occurs in pos,locs,and clocs files into integer as it is found in QSeqs */ + /** + * Convert a value in float form as it occurs in pos,locs,and clocs files into integer as it is found in QSeqs + */ private int posToQSeqCoord(final float pos) { return Math.round(pos * 10 + 1000); } public boolean equals(final Object other) { - if(other == null || other.getClass() != AbstractIlluminaPositionFileReader.PositionInfo.class) { + if (other == null || other.getClass() != AbstractIlluminaPositionFileReader.PositionInfo.class) { return false; } - if(other == this) return true; + if (other == this) return true; final PositionInfo otherPi = (PositionInfo) other; - return this.xPos == otherPi.xPos && this.yPos == otherPi.yPos && - this.lane == otherPi.lane && this.tile == otherPi.tile && - this.xQseqCoord == otherPi.xQseqCoord && this.yQseqCoord == otherPi.yQseqCoord; + return this.xPos == otherPi.xPos && this.yPos == otherPi.yPos && + this.lane == otherPi.lane && this.tile == otherPi.tile && + this.xQseqCoord == otherPi.xQseqCoord && this.yQseqCoord == otherPi.yQseqCoord; } } @@ -113,16 +128,22 @@ public boolean equals(final Object other) { public AbstractIlluminaPositionFileReader(final File file) { this.file = file; - final int [] laneAndTile = fileNameToLaneAndTile(file.getName()); - lane = laneAndTile[0]; - tile = laneAndTile[1]; + if (file.getName().equals(S_LOCS_FILE)) { + lane = 0; + tile = 0; + } else { + final int[] laneAndTile = fileNameToLaneAndTile(file.getName()); + lane = laneAndTile[0]; + tile = laneAndTile[1]; + } } /** * Use this ctor if lane and tile are not discernible from file name. - * @param file - * @param lane - * @param tile + * + * @param file The position file to read. + * @param lane The lane to read positions for. + * @param tile The tile to read positions for. */ public AbstractIlluminaPositionFileReader(final File file, final int lane, final int tile) { this.file = file; @@ -142,33 +163,43 @@ public File getFile() { return file; } - /** Extract the lane/tile from the given filename **/ - private int [] fileNameToLaneAndTile(final String fileName) { - final String [] tokens = fileName.split(File.pathSeparator); + /** + * Extract the lane/tile from the given filename + **/ + private int[] fileNameToLaneAndTile(final String fileName) { + final String[] tokens = fileName.split(File.pathSeparator); final Matcher matcher = FileNamePattern.matcher(tokens[tokens.length - 1]); - if(!matcher.matches()) { + if (!matcher.matches()) { throw new PicardException("File name not of the right structure: /s__(_pos.txt|_pos.txt.gz|_pos.txt.bz2.locs|.clocs). File name (" + fileName + ")"); } return new int[]{Integer.parseInt(matcher.group(1)), Integer.parseInt(matcher.group(2))}; } - /** Return the next set of coordinates in a given file. **/ + /** + * Return the next set of coordinates in a given file. + **/ public final PositionInfo next() { - if(! hasNext()) { - throw new NoSuchElementException("No such cluster, cluster count(" + makeExceptionMsg() +")"); + if (!hasNext()) { + throw new NoSuchElementException("No such cluster, cluster count(" + makeExceptionMsg() + ")"); } return unsafeNextInfo(); } - /** Returns the next position info. Implementations of this method do not need to call hasNext since - * it is called in next() */ + /** + * Returns the next position info. Implementations of this method do not need to call hasNext since + * it is called in next() + */ protected abstract PositionInfo unsafeNextInfo(); - /** Create a string that will be included in any NoSuchElementException thrown by the next() method */ + /** + * Create a string that will be included in any NoSuchElementException thrown by the next() method + */ protected abstract String makeExceptionMsg(); - /** Return true if the file has more elements to return, false otherwise */ + /** + * Return true if the file has more elements to return, false otherwise + */ public abstract boolean hasNext(); public void remove() { diff --git a/src/main/java/picard/illumina/parser/readers/BaseBclReader.java b/src/main/java/picard/illumina/parser/readers/BaseBclReader.java index 30783722a..74c214aae 100644 --- a/src/main/java/picard/illumina/parser/readers/BaseBclReader.java +++ b/src/main/java/picard/illumina/parser/readers/BaseBclReader.java @@ -13,7 +13,7 @@ import java.io.InputStream; import java.util.zip.GZIPInputStream; -class BaseBclReader { +public class BaseBclReader { private static final byte BASE_MASK = 0x0003; private static final byte[] BASE_LOOKUP = new byte[]{'A', 'C', 'G', 'T'}; final InputStream[] streams; @@ -52,15 +52,11 @@ this.numClustersPerCycle = new int[cycles]; } - int getNumCycles() { - return cycles; - } - int getNumClusters() { return numClustersPerCycle[0]; } - InputStream open(final File file, final boolean seekable, final boolean isGzip, final boolean isBgzf) throws IOException { + InputStream open(final File file, final boolean seekable, final boolean isGzip, final boolean isBgzf) { final String filePath = file.getAbsolutePath(); try { @@ -112,7 +108,7 @@ void decodeQualityBinnedBasecall(final BclData bclData, final int read, final in } } - class CycleData { + public class CycleData { final short version; final int headerSize; @@ -120,14 +116,13 @@ void decodeQualityBinnedBasecall(final BclData bclData, final int read, final in final byte bitsPerQualityScore; final int numberOfBins; final byte[] qualityBins; - final int numTiles; - final TileData[] tileInfo; + final TileData tileInfo; final boolean pfExcluded; CycleData(final short version, final int headerSize, final byte bitsPerBasecall, final byte bitsPerQualityScore, final int numberOfBins, final byte[] qualityBins, - final int numTiles, final TileData[] tileInfo, final boolean pfExcluded) { + final int numTiles, final TileData tileInfo, final boolean pfExcluded) { this.version = version; this.headerSize = headerSize; this.bitsPerBasecall = bitsPerBasecall; @@ -139,22 +134,34 @@ void decodeQualityBinnedBasecall(final BclData bclData, final int read, final in this.pfExcluded = pfExcluded; } - + public TileData getTileInfo() { + return tileInfo; + } } - class TileData { + public class TileData { final int tileNum; final int numClustersInTile; final int uncompressedBlockSize; final int compressedBlockSize; + final long filePosition; TileData(final int tileNum, final int numClustersInTile, final int uncompressedBlockSize, - final int compressedBlockSize) { + final int compressedBlockSize, long filePosition) { this.tileNum = tileNum; this.numClustersInTile = numClustersInTile; this.uncompressedBlockSize = uncompressedBlockSize; this.compressedBlockSize = compressedBlockSize; + this.filePosition = filePosition; + } + + public int getCompressedBlockSize() { + return compressedBlockSize; + } + + public int getNumClustersInTile() { + return numClustersInTile; } } } diff --git a/src/main/java/picard/illumina/parser/readers/CbclReader.java b/src/main/java/picard/illumina/parser/readers/CbclReader.java index 8557a394a..e8f1b94c9 100644 --- a/src/main/java/picard/illumina/parser/readers/CbclReader.java +++ b/src/main/java/picard/illumina/parser/readers/CbclReader.java @@ -3,20 +3,26 @@ import htsjdk.samtools.util.CloseableIterator; import htsjdk.samtools.util.CloserUtil; import htsjdk.samtools.util.Log; -import htsjdk.samtools.util.ProgressLogger; import htsjdk.samtools.util.RuntimeIOException; -import picard.illumina.parser.BclData; +import picard.PicardException; +import picard.illumina.parser.CbclData; import java.io.ByteArrayInputStream; +import java.io.EOFException; import java.io.File; import java.io.IOException; import java.io.InputStream; import java.nio.ByteBuffer; import java.nio.ByteOrder; import java.util.ArrayList; +import java.util.Arrays; import java.util.HashMap; +import java.util.Iterator; import java.util.List; import java.util.Map; +import java.util.TreeMap; +import java.util.regex.Matcher; +import java.util.regex.Pattern; import java.util.zip.GZIPInputStream; /** @@ -28,7 +34,7 @@ *

* q-val mapping info * Bytes 0-3 Number of bins (B), zero indicates no mapping - * B pairs of 4 byte values (if B > 0) {from, to}, {from, to}, {from, to} …from: quality score bin to: quality score + * B pairs of 4 byte values (if B > 0) {from, to}, {from, to}, {from, to} from: quality score bin to: quality score *

* Number of tile records unsigned 32bits little endian integer *

@@ -37,7 +43,7 @@ * Bytes 4-7 Number of clusters that were written into the current block (required due to bit-packed q-scores) * unsigned 32 bit integer *

- * Bytes 8-11 Uncompressed block size of the tile data (useful for sanity check whenexcluding non-PF clusters) + * Bytes 8-11 Uncompressed block size of the tile data (useful for sanity check when excluding non-PF clusters) * unsigned 32 bit integer *

* Bytes 12-15 Compressed block size of the tile data unsigned 32 bit integer @@ -57,117 +63,194 @@ * higher 4 bits are the second cluster. **/ -public class CbclReader extends BaseBclReader implements CloseableIterator { +public class CbclReader extends BaseBclReader implements CloseableIterator { - private static Log log = Log.getInstance(CbclReader.class); - - private ByteBuffer[] cachedTile; - - private int[] currentTile; - - private List queue = new ArrayList<>(); + private final byte[][] cachedTile; + private final int[] cachedTilePosition; + private CbclData queue = null; + private Iterator positionInfoIterator; private final CycleData[] cycleData; - private Map filters; - private Map cachedFilter = new HashMap<>(); - - void addFilters(Map filters) { - this.filters = filters; - } + private final Map filterFileMap; + private final Map cachedFilter = new HashMap<>(); + private final Map> surfaceToTileToCbclMap; + private int headerSize; + private Map> allTiles = new HashMap<>(); private static final int INITIAL_HEADER_SIZE = 6; + private static final Log log = Log.getInstance(CbclReader.class); + public static final Pattern PATTERN = Pattern.compile("^.+C(\\d{1,4}).+L(\\d{1,3})_(\\d).cbcl$"); - public CbclReader(final List cbcls, final int[] outputLengths) { + public CbclReader(final List cbcls, final Map filterFileMap, final int[] outputLengths, + int tileNum, List locs, boolean headerOnly) { super(outputLengths); + surfaceToTileToCbclMap = sortCbcls(cbcls); + this.filterFileMap = filterFileMap; cycleData = new CycleData[cycles]; - cachedTile = new ByteBuffer[cycles]; - currentTile = new int[cycles]; + cachedTile = new byte[cycles][]; + cachedTilePosition = new int[cycles]; + for (int i = 1; i <= cycles; i++) { + allTiles.put(i, new ArrayList<>()); + } + try { + readSurfaceTile(tileNum, locs, headerOnly); + } finally { + close(); + } + } + private void readSurfaceTile(int tileNum, List locs, + boolean headerOnly) { + log.info("Processing tile " + tileNum); try { - final ByteBuffer byteBuffer = ByteBuffer.allocate(INITIAL_HEADER_SIZE); - byteBuffer.order(ByteOrder.LITTLE_ENDIAN); - for (int i = 0; i < cycles; i++) { - currentTile[i] = 0; - final File bclFile = cbcls.get(i); - - final InputStream stream = open(bclFile, false, false, false); - int read = stream.read(byteBuffer.array()); - - //we need to read the first 6 bytes to determine the header size - if (read != INITIAL_HEADER_SIZE) { - close(); - throw new RuntimeIOException(String.format("BCL %s has invalid header structure.", bclFile.getAbsoluteFile())); - } + for (Map.Entry> entry : surfaceToTileToCbclMap.entrySet()) { + Map cycleMap = entry.getValue(); + for (int i = 0; i < cycles; i++) { + //cycleMap is 1 indexed + final ByteBuffer byteBuffer = ByteBuffer.allocate(INITIAL_HEADER_SIZE); + byteBuffer.order(ByteOrder.LITTLE_ENDIAN); + + final File bclFile = cycleMap.get(i + 1); + if (bclFile == null) { + throw new PicardException("Expected cbcl file for surface " + entry.getKey() + " cycle " + (i + 1) + " but it was not found."); + } - short version = byteBuffer.getShort(); - int headerSize = byteBuffer.getInt(); + final InputStream stream = open(bclFile, false, false, false); + int read = stream.read(byteBuffer.array()); - final ByteBuffer headerBuffer = ByteBuffer.allocate(headerSize - INITIAL_HEADER_SIZE); - headerBuffer.order(ByteOrder.LITTLE_ENDIAN); + //we need to read the first 6 bytes to determine the header size + if (read != INITIAL_HEADER_SIZE) { + throw new RuntimeIOException(String.format("BCL %s has invalid header structure.", bclFile.getAbsoluteFile())); + } - read = stream.read(headerBuffer.array()); - if (read != headerSize - INITIAL_HEADER_SIZE) { - close(); - throw new RuntimeIOException(String.format("BCL %s has invalid header structure.", bclFile.getAbsoluteFile())); - } + short version = byteBuffer.getShort(); + headerSize = byteBuffer.getInt(); - byte bitsPerBasecall = headerBuffer.get(); - byte bitsPerQualityScore = headerBuffer.get(); + final ByteBuffer headerBuffer = ByteBuffer.allocate(headerSize - INITIAL_HEADER_SIZE); + headerBuffer.order(ByteOrder.LITTLE_ENDIAN); - if (bitsPerBasecall != 2 && bitsPerBasecall != bitsPerQualityScore) { - close(); - throw new RuntimeIOException("CBCL data not encoded in nibbles. (not currently supported)"); - } + read = stream.read(headerBuffer.array()); + if (read != headerSize - INITIAL_HEADER_SIZE) { + throw new PicardException(String.format("BCL %s has invalid header structure.", bclFile.getAbsoluteFile())); + } - int numberOfBins = headerBuffer.getInt(); + byte bitsPerBasecall = headerBuffer.get(); + byte bitsPerQualityScore = headerBuffer.get(); - byte[] qualityBins = new byte[numberOfBins]; - //each bin has a pair of 4 byte mappings - for (int j = 0; j < numberOfBins; j++) { - headerBuffer.getInt(); // first int is "from" value, which we don't need - int to = headerBuffer.getInt(); - qualityBins[j] = (byte) to; - } + if (bitsPerBasecall != 2 && bitsPerBasecall != bitsPerQualityScore) { + throw new PicardException("CBCL data not encoded in nibbles. (not currently supported) bitsPerBasecall : " + + bitsPerBasecall + " bitsPerQualityScore : " + bitsPerQualityScore); + } + + int numberOfBins = headerBuffer.getInt(); + + byte[] qualityBins = new byte[numberOfBins]; + //each bin has a pair of 4 byte mappings + for (int j = 0; j < numberOfBins; j++) { + headerBuffer.getInt(); // first int is "from" value, which we don't need + int to = headerBuffer.getInt(); + qualityBins[j] = (byte) to; + } + long filePos = 0; + + int numTiles = headerBuffer.getInt(); + TileData tileInfo = null; + for (int j = 0; j < numTiles; j++) { + int tile = headerBuffer.getInt(); + int numClustersInTile = headerBuffer.getInt(); + int uncompressedBlockSize = headerBuffer.getInt(); + int compressedBlockSize = headerBuffer.getInt(); + TileData tileData = new TileData(tile, numClustersInTile, uncompressedBlockSize, compressedBlockSize, filePos); + allTiles.get(i + 1).add(tileData); + if (tile == tileNum) { + tileInfo = tileData; + } + filePos += compressedBlockSize; + } + + boolean pfExcluded = headerBuffer.get() == 1; + //try the next surface if we didn't find the tile + if (tileInfo == null) { + continue; + } - int numTiles = headerBuffer.getInt(); - TileData[] tileInfo = new TileData[numTiles]; - for (int j = 0; j < numTiles; j++) { - int tileNum = headerBuffer.getInt(); - int numClustersInTile = headerBuffer.getInt(); - int uncompressedBlockSize = headerBuffer.getInt(); - int compressedBlockSize = headerBuffer.getInt(); - tileInfo[j] = new TileData(tileNum, numClustersInTile, uncompressedBlockSize, compressedBlockSize); + cycleData[i] = new CycleData(version, headerSize, bitsPerBasecall, bitsPerQualityScore, numberOfBins, qualityBins, numTiles, tileInfo, pfExcluded); + this.streams[i] = stream; + this.streamFiles[i] = bclFile; + byteBuffer.clear(); + headerBuffer.clear(); } + } - boolean pfExcluded = headerBuffer.get() == 1; - cycleData[i] = new CycleData(version, headerSize, bitsPerBasecall, bitsPerQualityScore, numberOfBins, qualityBins, numTiles, tileInfo, pfExcluded); - this.streams[i] = stream; - this.streamFiles[i] = bclFile; - byteBuffer.clear(); - headerBuffer.clear(); + if (headerOnly) { + return; } + int totalCycleCount = 0; + + if (cycleData[totalCycleCount].tileInfo == null) { + throw new PicardException("Could not find tile " + tileNum); + } + + for (int outputLength : outputLengths) { + for (int cycle = 0; cycle < outputLength; cycle++) { + CycleData currentCycleData = cycleData[totalCycleCount]; + try { + if (cachedTile[totalCycleCount] == null) { + if (!cachedFilter.containsKey(cycleData[totalCycleCount].tileInfo.tileNum)) { + cacheFilterAndLocs(cycleData[totalCycleCount].tileInfo, locs); + } + cacheTile(totalCycleCount, cycleData[totalCycleCount].tileInfo, currentCycleData); + } + } catch (IOException e) { + // when logging the error, increment cycle by 1, since totalCycleCount is zero-indexed but Illumina directories are 1-indexed. + throw new PicardException(String.format("Error while reading from BCL file for cycle %d. Offending file on disk is %s", + (totalCycleCount + 1), this.streamFiles[totalCycleCount].getAbsolutePath()), e); + } + totalCycleCount++; + } + } } catch (final IOException ioe) { throw new RuntimeIOException(ioe); } } + private Map> sortCbcls(List cbcls) { + Map> sortedMap = new TreeMap<>(); + for (File cbcl : cbcls) { + Matcher matcher = PATTERN.matcher(cbcl.getAbsolutePath()); + if (!matcher.matches()) { + throw new PicardException("CBCL File " + cbcl.getAbsolutePath() + " does not match expected pattern."); + } + Integer surface = Integer.valueOf(matcher.group(3)); + Integer cycle = Integer.valueOf(matcher.group(1)); + if (sortedMap.containsKey(surface)) { + sortedMap.get(surface).put(cycle, cbcl); + } else { + Map cycleMap = new HashMap<>(); + cycleMap.put(cycle, cbcl); + sortedMap.put(surface, cycleMap); + } + } + + return sortedMap; + } + @Override public boolean hasNext() { - if (queue.isEmpty()) { + if (queue == null) { advance(); } - return !queue.isEmpty(); + return queue != null; } - public BclData next() { - if (queue.isEmpty()) { + public CbclData next() { + if (queue == null) { advance(); } - - final BclData data = queue.get(0); - queue.remove(0); + CbclData data = queue; + queue = null; return data; } @@ -180,126 +263,147 @@ public void close() { private void advance() { int totalCycleCount = 0; - BclData data = new BclData(outputLengths); + CbclData data = new CbclData(outputLengths, cycleData[totalCycleCount].tileInfo.tileNum); for (int read = 0; read < outputLengths.length; read++) { for (int cycle = 0; cycle < outputLengths[read]; cycle++) { - try { - CycleData currentCycleData = cycleData[totalCycleCount]; - TileData currentTileData = currentCycleData.tileInfo[currentTile[totalCycleCount]]; - try { - if (cachedTile[totalCycleCount] == null) { - if (!cachedFilter.containsKey(currentTileData.tileNum)) { - cacheFilter(currentTileData); - } - cacheTile(totalCycleCount, currentTileData, currentCycleData); - } - } catch (IOException e) { - // when logging the error, increment cycle by 1, since totalCycleCount is zero-indexed but Illumina directories are 1-indexed. - throw new IOException(String.format("Error while reading from BCL file for cycle %d. Offending file on disk is %s", - (totalCycleCount + 1), this.streamFiles[totalCycleCount].getAbsolutePath()), e); - } - - if (!cachedTile[totalCycleCount].hasRemaining()) { - //on to the next tile - currentTile[totalCycleCount]++; - //if past the last tile then return - if (currentTile[totalCycleCount] > currentCycleData.tileInfo.length - 1) { - return; - } - currentTileData = currentCycleData.tileInfo[currentTile[totalCycleCount]]; - if (!cachedFilter.containsKey(currentTileData.tileNum)) { - cacheFilter(currentTileData); - } - cacheTile(totalCycleCount, currentTileData, currentCycleData); - } + CycleData currentCycleData = cycleData[totalCycleCount]; - int singleByte = cachedTile[totalCycleCount].get(); + if (cachedTilePosition[totalCycleCount] >= cachedTile[totalCycleCount].length) { + // end of tile + return; + } - decodeQualityBinnedBasecall(data, read, cycle, singleByte, currentCycleData); + int singleByte = cachedTile[totalCycleCount][cachedTilePosition[totalCycleCount]++]; - totalCycleCount++; - } catch (final IOException ioe) { - throw new RuntimeIOException(ioe); - } + decodeQualityBinnedBasecall(data, read, cycle, singleByte, currentCycleData); + totalCycleCount++; } } - this.queue.add(data); + data.setPositionInfo(positionInfoIterator.next()); + this.queue = data; } - private void cacheFilter(TileData currentTileData) { + private void cacheFilterAndLocs(TileData currentTileData, List locs) { boolean[] filterValues = new boolean[currentTileData.numClustersInTile]; - FilterFileReader reader = new FilterFileReader(filters.get(currentTileData.tileNum)); + FilterFileReader reader = new FilterFileReader(filterFileMap.get(currentTileData.tileNum)); + Iterator positionInfoIterator = locs.iterator(); int count = 0; while (reader.hasNext()) { filterValues[count] = reader.next(); count++; } + + List positions = new ArrayList<>(); + for (boolean filterValue : filterValues) { + AbstractIlluminaPositionFileReader.PositionInfo info = positionInfoIterator.next(); + if (filterValue) { + positions.add(info); + } + } + this.positionInfoIterator = positions.iterator(); cachedFilter.put(currentTileData.tileNum, filterValues); } private void cacheTile(int totalCycleCount, TileData tileData, CycleData currentCycleData) throws IOException { - ByteBuffer tileByteBuffer = ByteBuffer.allocate(tileData.compressedBlockSize); + byte[] tileByteArray = new byte[tileData.compressedBlockSize]; //we are going to explode the nibbles in to bytes to make PF filtering easier - ByteBuffer tempUncompressedByteBuffer = ByteBuffer.allocate(tileData.uncompressedBlockSize); - ByteBuffer uncompressedByteBuffer = ByteBuffer.allocate(tileData.uncompressedBlockSize); - ByteBuffer unNibbledByteBuffer = ByteBuffer.allocate(tileData.uncompressedBlockSize * 2); - - tileByteBuffer.order(ByteOrder.LITTLE_ENDIAN); - uncompressedByteBuffer.order(ByteOrder.LITTLE_ENDIAN); + byte[] uncompressedByteArray = new byte[tileData.uncompressedBlockSize]; + // ByteBuffer uncompressedByteArray = ByteBuffer.allocate(tileData.uncompressedBlockSize); + byte[] unNibbledByteArray = new byte[tileData.uncompressedBlockSize * 2]; // Read the whole compressed block into a buffer, then sanity check the length - int readBytes = this.streams[totalCycleCount].read(tileByteBuffer.array()); + InputStream stream = this.streams[totalCycleCount]; + long dataLeft = tileData.filePosition - stream.skip(tileData.filePosition); + while (dataLeft > 0) { + dataLeft -= stream.skip(dataLeft); + } + + int readBytes = stream.read(tileByteArray); if (readBytes != tileData.compressedBlockSize) { - throw new IOException(String.format("Error while reading from BCL file for cycle %d. Offending file on disk is %s", + throw new PicardException(String.format("Error while reading from BCL file for cycle %d. Offending file on disk is %s", (totalCycleCount + 1), this.streamFiles[totalCycleCount].getAbsolutePath())); } // Uncompress the data from the buffer we just wrote - use gzip input stream to write to uncompressed buffer - ByteArrayInputStream byteInputStream = new ByteArrayInputStream(tileByteBuffer.array()); - if (cachedTile[totalCycleCount] != null) { - //clear the old cache - cachedTile[totalCycleCount] = null; - } - GZIPInputStream gzipInputStream = new GZIPInputStream(byteInputStream, uncompressedByteBuffer.capacity()); - int read = 0; + ByteArrayInputStream byteInputStream = new ByteArrayInputStream(Arrays.copyOfRange(tileByteArray, 0, readBytes)); + + GZIPInputStream gzipInputStream = new GZIPInputStream(byteInputStream, uncompressedByteArray.length); + int read; int totalRead = 0; - while ((read = gzipInputStream.read(tempUncompressedByteBuffer.array(), 0, tempUncompressedByteBuffer.capacity())) != -1) { - uncompressedByteBuffer.put(tempUncompressedByteBuffer.array(), 0, read); - totalRead += read; + try { + while ((read = gzipInputStream.read(uncompressedByteArray, totalRead, uncompressedByteArray.length - totalRead)) != -1) { + if (read == 0) break; + totalRead += read; + } + } catch (EOFException eofException) { + throw new PicardException("Unexpected end of file " + this.streamFiles[totalCycleCount].getAbsolutePath() + + " this file is likely corrupt or truncated. We have read " + + totalRead + " and were expecting to read " + + uncompressedByteArray.length); } if (totalRead != tileData.uncompressedBlockSize) { - throw new IOException(String.format("Error while decompressing from BCL file for cycle %d. Offending file on disk is %s", + throw new PicardException(String.format("Error while decompressing from BCL file for cycle %d. Offending file on disk is %s", (totalCycleCount + 1), this.streamFiles[totalCycleCount].getAbsolutePath())); } // Read uncompressed data from the buffer and expand each nibble into a full byte for ease of use - uncompressedByteBuffer.flip(); - while (uncompressedByteBuffer.hasRemaining()) { - byte singleByte = uncompressedByteBuffer.get(); - unNibbledByteBuffer.put((byte) (singleByte & 0x0f)); - unNibbledByteBuffer.put((byte) ((singleByte >> 4) & 0x0f)); + int index = 0; + for (byte singleByte : uncompressedByteArray) { + unNibbledByteArray[index] = (byte) (singleByte & 0x0f); + index++; + unNibbledByteArray[index] = (byte) ((singleByte >> 4) & 0x0f); + index++; } gzipInputStream.close(); // Write buffer contents to cached tile array - unNibbledByteBuffer.flip(); - //if nonPF reads are included we need to strip them out + // if nonPF reads are included we need to strip them out if (!currentCycleData.pfExcluded) { - ByteBuffer uncompressedFilteredByteBuffer = ByteBuffer.allocate(tileData.uncompressedBlockSize * 2); - FilterFileReader reader = new FilterFileReader(filters.get(tileData.tileNum)); - while (reader.hasNext()) { - byte readByte = unNibbledByteBuffer.get(); - if (reader.next()) { - uncompressedFilteredByteBuffer.put(readByte); + boolean[] filterDatas = cachedFilter.get(tileData.tileNum); + int sum = 0; + for (boolean b : filterDatas) { + sum += b ? 1 : 0; + } + byte[] filteredByteArray = new byte[sum]; + int filterIndex = 0; + int basecallIndex = 0; + for (boolean filterData : filterDatas) { + byte readByte = unNibbledByteArray[filterIndex]; + if (filterData) { + filteredByteArray[basecallIndex] = readByte; + basecallIndex++; } + filterIndex++; } - uncompressedFilteredByteBuffer.flip(); - cachedTile[totalCycleCount] = uncompressedFilteredByteBuffer.slice(); + cachedTile[totalCycleCount] = filteredByteArray; } else { - cachedTile[totalCycleCount] = unNibbledByteBuffer; + cachedTile[totalCycleCount] = unNibbledByteArray; } + cachedTilePosition[totalCycleCount] = 0; + } + + public CycleData[] getCycleData() { + return cycleData; + } + + public int getHeaderSize() { + return headerSize; + } + + public List getFilesForCycle(int i) { + List cbclFiles = new ArrayList<>(); + surfaceToTileToCbclMap.values().forEach(map -> { + if (map.containsKey(i)) { + cbclFiles.add(map.get(i)); + } + }); + return cbclFiles; + } + + public Map> getAllTiles() { + return allTiles; } } diff --git a/src/main/java/picard/illumina/parser/readers/EmpiricalPhasingMetricsOutReader.java b/src/main/java/picard/illumina/parser/readers/EmpiricalPhasingMetricsOutReader.java new file mode 100644 index 000000000..d9d94be74 --- /dev/null +++ b/src/main/java/picard/illumina/parser/readers/EmpiricalPhasingMetricsOutReader.java @@ -0,0 +1,47 @@ +package picard.illumina.parser.readers; + +import picard.util.UnsignedTypeUtil; + +import java.io.File; +import java.nio.ByteBuffer; +import java.util.Iterator; +import java.util.NoSuchElementException; + +public class EmpiricalPhasingMetricsOutReader implements Iterator { + private static final int HEADER_SIZE = 2; + private static final int RECORD_SIZE = 16; + + private final BinaryFileIterator bbIterator; + + public EmpiricalPhasingMetricsOutReader(File phasingMetricsOutFile) { + bbIterator = MMapBackedIteratorFactory.getByteBufferIterator(HEADER_SIZE, RECORD_SIZE, phasingMetricsOutFile); + bbIterator.getHeaderBytes(); + } + + @Override + public boolean hasNext() { + return bbIterator.hasNext(); + } + + @Override + public IlluminaPhasingMetrics next() { + if (!hasNext()) { + throw new NoSuchElementException(); + } + return new IlluminaPhasingMetrics(bbIterator.next()); + } + + public static class IlluminaPhasingMetrics { + public final TileMetricsOutReader.IlluminaLaneTileCode laneTileCode; + public final int cycle; + public final float phasingWeight; + public final float prephasingWeight; + + IlluminaPhasingMetrics(final ByteBuffer bb) { + this.laneTileCode = new TileMetricsOutReader.IlluminaLaneTileCode(UnsignedTypeUtil.uShortToInt(bb.getShort()), bb.getInt(), 0); + this.cycle = UnsignedTypeUtil.uShortToInt(bb.getShort()); + this.phasingWeight = bb.getFloat(); + this.prephasingWeight = bb.getFloat(); + } + } +} diff --git a/src/main/java/picard/illumina/parser/readers/TileMetricsOutReader.java b/src/main/java/picard/illumina/parser/readers/TileMetricsOutReader.java index 215e067c2..9b3d8657e 100644 --- a/src/main/java/picard/illumina/parser/readers/TileMetricsOutReader.java +++ b/src/main/java/picard/illumina/parser/readers/TileMetricsOutReader.java @@ -27,30 +27,33 @@ * byte 6-9 (float) = metrics value, see Theory of RTA document by Illumina for definition */ public class TileMetricsOutReader implements Iterator { - private static final int HEADER_SIZE = 2; - private static final int EXPECTED_RECORD_SIZE = 10; - private static final int EXPECTED_VERSION = 2; - private final BinaryFileIterator bbIterator; + private float density; + private TileMetricsVersion version; /** * Return a TileMetricsOutReader for the specified file * @param tileMetricsOutFile The file to read + * @param version The version of the tile metrics file being parsed. */ - public TileMetricsOutReader(final File tileMetricsOutFile) { - bbIterator = MMapBackedIteratorFactory.getByteBufferIterator(HEADER_SIZE, EXPECTED_RECORD_SIZE, tileMetricsOutFile); + public TileMetricsOutReader(final File tileMetricsOutFile, TileMetricsOutReader.TileMetricsVersion version) { + + bbIterator = MMapBackedIteratorFactory.getByteBufferIterator(version.headerSize, version.recordSize, tileMetricsOutFile); + this.version = version; final ByteBuffer header = bbIterator.getHeaderBytes(); - //Get the version, should be EXPECTED_VERSION, which is 2 final int actualVersion = UnsignedTypeUtil.uByteToInt(header.get()); - if(actualVersion != EXPECTED_VERSION) { - throw new PicardException("TileMetricsOutReader expects the version number to be " + EXPECTED_VERSION + ". Actual Version in Header( " + actualVersion + ")" ); + if (actualVersion != version.version) { + throw new PicardException("TileMetricsOutReader expects the version number to be " + version.version + ". Actual Version in Header( " + actualVersion + ")"); } final int actualRecordSize = UnsignedTypeUtil.uByteToInt(header.get()); - if(EXPECTED_RECORD_SIZE != actualRecordSize) { - throw new PicardException("TileMetricsOutReader expects the record size to be " + EXPECTED_RECORD_SIZE + ". Actual Record Size in Header( " + actualRecordSize + ")" ); + if (version.recordSize != actualRecordSize) { + throw new PicardException("TileMetricsOutReader expects the record size to be " + version.recordSize + ". Actual Record Size in Header( " + actualRecordSize + ")"); + } + if (version == TileMetricsVersion.THREE) { + this.density = UnsignedTypeUtil.uIntToFloat(header.getInt()); } } @@ -62,23 +65,38 @@ public IlluminaTileMetrics next() { if(!hasNext()) { throw new NoSuchElementException(); } - return new IlluminaTileMetrics(bbIterator.next()); + return new IlluminaTileMetrics(bbIterator.next(), version); } public void remove() { throw new UnsupportedOperationException(); } + public float getDensity() { + return density; + } + /** * IlluminaPhasingMetrics corresponds to a single record in a TileMetricsOut file */ public static class IlluminaTileMetrics { private final IlluminaLaneTileCode laneTileCode; private final float metricValue; - - public IlluminaTileMetrics(final ByteBuffer bb) { - this(UnsignedTypeUtil.uShortToInt(bb.getShort()), UnsignedTypeUtil.uShortToInt(bb.getShort()), - UnsignedTypeUtil.uShortToInt(bb.getShort()), bb.getFloat()); + private float metricValue2; + private byte type; + + public IlluminaTileMetrics(final ByteBuffer bb, TileMetricsVersion version) { + if (version == TileMetricsVersion.THREE) { + this.laneTileCode = new IlluminaLaneTileCode(UnsignedTypeUtil.uShortToInt(bb.getShort()), bb.getInt(), 0); + //need to dump 9 bytes + this.type = bb.get(); + this.metricValue = bb.getFloat(); + this.metricValue2 = bb.getFloat(); + } else { + this.laneTileCode = new IlluminaLaneTileCode(UnsignedTypeUtil.uShortToInt(bb.getShort()), UnsignedTypeUtil.uShortToInt(bb.getShort()), + UnsignedTypeUtil.uShortToInt(bb.getShort())); + this.metricValue = bb.getFloat(); + } } public IlluminaTileMetrics(final int laneNumber, final int tileNumber, final int metricCode, final float metricValue) { @@ -120,6 +138,10 @@ public boolean equals(final Object o) { public int hashCode() { return String.format("%s:%s:%s:%s", laneTileCode.getLaneNumber(), laneTileCode.getTileNumber(), laneTileCode.getMetricCode(), metricValue).hashCode(); // Slow but adequate. } + + public boolean isClusterRecord() { + return type == 't'; + } } /** Helper class which captures the combination of a lane, tile & metric code */ @@ -164,4 +186,19 @@ public int hashCode() { return result; } } + + public enum TileMetricsVersion { + TWO(2, 2, 10), + THREE(3, 6, 15); + + private final int version; + private final int headerSize; + private final int recordSize; + + TileMetricsVersion(int version, int headerSize, int recordSize) { + this.version = version; + this.headerSize = headerSize; + this.recordSize = recordSize; + } + } } diff --git a/src/main/java/picard/illumina/quality/CollectHiSeqXPfFailMetrics.java b/src/main/java/picard/illumina/quality/CollectHiSeqXPfFailMetrics.java index 77eb60c59..17dd6fe5c 100644 --- a/src/main/java/picard/illumina/quality/CollectHiSeqXPfFailMetrics.java +++ b/src/main/java/picard/illumina/quality/CollectHiSeqXPfFailMetrics.java @@ -32,8 +32,8 @@ import picard.cmdline.Option; import picard.cmdline.StandardOptionDefinitions; import picard.cmdline.programgroups.Metrics; +import picard.illumina.parser.BaseIlluminaDataProvider; import picard.illumina.parser.ClusterData; -import picard.illumina.parser.IlluminaDataProvider; import picard.illumina.parser.IlluminaDataProviderFactory; import picard.illumina.parser.IlluminaDataType; import picard.illumina.parser.ReadData; @@ -294,7 +294,7 @@ protected int doWork() { private final PFFailSummaryMetric summaryMetric; final Collection detailedMetrics; private Exception exception = null; - private final IlluminaDataProvider provider; + private final BaseIlluminaDataProvider provider; final private double pWriteDetailed; final private Random random = new Random(); diff --git a/src/main/java/picard/util/UnsignedTypeUtil.java b/src/main/java/picard/util/UnsignedTypeUtil.java index be382ad67..536cba6a7 100644 --- a/src/main/java/picard/util/UnsignedTypeUtil.java +++ b/src/main/java/picard/util/UnsignedTypeUtil.java @@ -25,4 +25,8 @@ public static int uShortToInt(final short unsignedShort) { public static long uIntToLong(final int unsignedInt) { return unsignedInt & 0xFFFFFFFFL; } + + public static float uIntToFloat(final int unsignedInt) { + return Float.intBitsToFloat(unsignedInt); + } } diff --git a/src/test/java/picard/illumina/ExtractIlluminaBarcodesTest.java b/src/test/java/picard/illumina/ExtractIlluminaBarcodesTest.java index 748043e68..1d92498f5 100644 --- a/src/test/java/picard/illumina/ExtractIlluminaBarcodesTest.java +++ b/src/test/java/picard/illumina/ExtractIlluminaBarcodesTest.java @@ -31,8 +31,8 @@ import org.testng.annotations.DataProvider; import org.testng.annotations.Test; import picard.cmdline.CommandLineProgramTest; +import picard.illumina.parser.BaseIlluminaDataProvider; import picard.illumina.parser.ClusterData; -import picard.illumina.parser.IlluminaDataProvider; import picard.illumina.parser.IlluminaDataProviderFactory; import picard.illumina.parser.IlluminaDataType; import picard.illumina.parser.ReadStructure; @@ -117,7 +117,7 @@ public void testSingleEndWithBarcodeAtEnd() throws Exception { } @Test - public void testSingleEndWithBarcodeAtEndAndMolecularIndicies() throws Exception { + public void testSingleEndWithBarcodeAtEndAndMolecularIndicies() throws Exception { final MetricsFile metricsFile = runIt(1, "4M21T8B"); Assert.assertEquals(metricsFile.getMetrics().get(0).PERFECT_MATCHES, 5); } @@ -161,8 +161,7 @@ public void testNonWritableOutputFile() throws Exception { args.add("BARCODE=" + barcode); } Assert.assertEquals(runPicardCommandLine(args), 4); - } - finally { + } finally { existingFile.setWritable(true); } @@ -241,7 +240,7 @@ public void testDualBarcodes() throws Exception { final File metricsFile = File.createTempFile("dual.", ".metrics"); metricsFile.deleteOnExit(); - final String[] args = new String[] { + final String[] args = new String[]{ "BASECALLS_DIR=" + dual.getAbsolutePath(), "LANE=" + 1, "METRICS_FILE=" + metricsFile.getPath(), @@ -250,7 +249,7 @@ public void testDualBarcodes() throws Exception { }; Assert.assertEquals(runPicardCommandLine(args), 0); - final MetricsFile result = new MetricsFile(); + final MetricsFile result = new MetricsFile(); result.read(new FileReader(metricsFile)); Assert.assertEquals(result.getMetrics().get(0).PERFECT_MATCHES, 1, "Got wrong number of perfect matches"); Assert.assertEquals(result.getMetrics().get(0).ONE_MISMATCH_MATCHES, 0, "Got wrong number of one-mismatch matches"); @@ -266,7 +265,7 @@ public void testQualityBarcodes(final int quality, final File metricsFile = File.createTempFile("qual.", ".metrics"); metricsFile.deleteOnExit(); - final String[] args = new String[] { + final String[] args = new String[]{ "BASECALLS_DIR=" + qual.getPath(), "LANE=" + 1, "READ_STRUCTURE=25T8B25T", @@ -277,7 +276,7 @@ public void testQualityBarcodes(final int quality, }; Assert.assertEquals(runPicardCommandLine(args), 0); - final MetricsFile result = new MetricsFile(); + final MetricsFile result = new MetricsFile(); result.read(new FileReader(metricsFile)); Assert.assertEquals(result.getMetrics().get(0).PERFECT_MATCHES, perfectMatches, "Got wrong number of perfect matches for test: '" + testName + "'"); Assert.assertEquals(result.getMetrics().get(0).ONE_MISMATCH_MATCHES, oneMismatch, "Got wrong number of one-mismatch matches for test: '" + testName + "'"); @@ -285,7 +284,7 @@ public void testQualityBarcodes(final int quality, @DataProvider(name = "qualityBarcodeData") public Object[][] getQualityTestData() { - return new Object[][] { + return new Object[][]{ {16, 0, 1, 0, "Barcode has good quality, 1 match"}, {25, 0, 0, 0, "Barcode has quality failures, no matches"} }; @@ -295,11 +294,11 @@ private void testParsing(final IlluminaDataProviderFactory factory, final ReadSt int numReads = 0; - final IlluminaDataProvider dataProvider = factory.makeDataProvider(); + final BaseIlluminaDataProvider dataProvider = factory.makeDataProvider(); while (dataProvider.hasNext()) { final ClusterData cluster = dataProvider.next(); - if(metricACAGTG.BARCODE.equals(cluster.getMatchedBarcode())) { + if (metricACAGTG.BARCODE.equals(cluster.getMatchedBarcode())) { ++numReads; } @@ -331,7 +330,7 @@ private void testParsing(final IlluminaDataProviderFactory factory, final ReadSt // Generate _barcode.txt files and metrics file. Assert.assertEquals(runPicardCommandLine(args), 0); - final MetricsFile retval = new MetricsFile(); + final MetricsFile retval = new MetricsFile(); retval.read(new FileReader(metricsFile)); return retval; } diff --git a/src/test/java/picard/illumina/IlluminaBasecallsToFastqTest.java b/src/test/java/picard/illumina/IlluminaBasecallsToFastqTest.java index b2e431b35..16184f5c8 100644 --- a/src/test/java/picard/illumina/IlluminaBasecallsToFastqTest.java +++ b/src/test/java/picard/illumina/IlluminaBasecallsToFastqTest.java @@ -23,17 +23,21 @@ */ package picard.illumina; +import htsjdk.samtools.fastq.FastqReader; +import htsjdk.samtools.fastq.FastqRecord; import htsjdk.samtools.util.BufferedLineReader; import htsjdk.samtools.util.IOUtil; import htsjdk.samtools.util.LineReader; import htsjdk.samtools.util.StringUtil; import htsjdk.samtools.util.TestUtil; +import org.testng.Assert; import org.testng.annotations.Test; import picard.cmdline.CommandLineProgramTest; import picard.illumina.parser.ReadStructure; import java.io.File; import java.io.FileInputStream; +import java.io.FileNotFoundException; import java.io.PrintWriter; import java.util.ArrayList; import java.util.Arrays; @@ -46,8 +50,10 @@ private static final File TEST_DATA_DIR = new File("testdata/picard/illumina/25T8B25T/fastq"); private static final File TEST_DATA_DIR_WITH_4M = new File("testdata/picard/illumina/25T8B25T/fastq_with_4M"); private static final File TEST_DATA_DIR_WITH_4M4M = new File("testdata/picard/illumina/25T8B25T/fastq_with_4M4M"); + private static final File TEST_DATA_DIR_WITH_CBCLS = new File("testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls"); private static final File DUAL_TEST_DATA_DIR = new File("testdata/picard/illumina/25T8B8B25T/fastq"); + private static final File DUAL_CBCL_TEST_DATA_DIR = new File("testdata/picard/illumina/125T8B8B125T_cbcl/fastq"); public String getCommandLineProgramName() { return IlluminaBasecallsToFastq.class.getSimpleName(); @@ -100,8 +106,8 @@ public void testMultiplexWithIlluminaReadNameHeaders() throws Exception { }); final String[] filenames = new String[]{ - filePrefix + ".1.fastq", - filePrefix + ".barcode_1.fastq" + filePrefix + ".1.fastq", + filePrefix + ".barcode_1.fastq" }; for (final String filename : filenames) { IOUtil.assertFilesEqual(new File(outputDir, filename), new File(TEST_DATA_DIR, filename)); @@ -132,18 +138,86 @@ public void testDualBarcodes() throws Exception { runStandardTest(1, "dualBarcode.", "barcode_double.params", 2, "25T8B8B25T", DUAL_BASECALLS_DIR, DUAL_TEST_DATA_DIR); } + @Test + public void testCbclConvert() throws Exception { + runNewConverterTest(1, "dualBarcode.", "barcode_double.params", 2, "151T8B8B151T", TEST_DATA_DIR_WITH_CBCLS, DUAL_CBCL_TEST_DATA_DIR); + } + + private void runNewConverterTest(final int lane, final String jobName, final String libraryParamsFile, + final int concatNColumnFields, final String readStructureString, final File baseCallsDir, + final File testDataDir) throws Exception { + final File outputDir = File.createTempFile(jobName, ".dir"); + try { + outputDir.delete(); + outputDir.mkdir(); + + outputDir.deleteOnExit(); + // Create barcode.params with output files in the temp directory + final File libraryParams = new File(outputDir, libraryParamsFile); + libraryParams.deleteOnExit(); + final List outputPrefixes = new ArrayList(); + convertParamsFile(libraryParamsFile, concatNColumnFields, testDataDir, outputDir, libraryParams, outputPrefixes); + + runPicardCommandLine(new String[]{ + "BASECALLS_DIR=" + baseCallsDir, + "LANE=" + lane, + "RUN_BARCODE=HiMom", + "READ_STRUCTURE=" + readStructureString, + "MULTIPLEX_PARAMS=" + libraryParams, + "MACHINE_NAME=machine1", + "FLOWCELL_BARCODE=abcdeACXX", + "USE_NEW_CONVERTER=true", + "NUM_PROCESSORS=2", + "METRICS_FILE=" + new File(outputDir, "test.metrics") + }); + + final ReadStructure readStructure = new ReadStructure(readStructureString); + for (final File outputSam : outputPrefixes) { + for (int i = 1; i <= readStructure.templates.length(); ++i) { + final String filename = outputSam.getName() + "." + i + ".fastq"; + compareFastqs(testDataDir, outputSam, filename); + } + for (int i = 1; i <= readStructure.sampleBarcodes.length(); ++i) { + final String filename = outputSam.getName() + ".barcode_" + i + ".fastq"; + compareFastqs(testDataDir, outputSam, filename); + } + for (int i = 1; i <= readStructure.molecularBarcode.length(); ++i) { + final String filename = outputSam.getName() + ".index_" + i + ".fastq"; + compareFastqs(testDataDir, outputSam, filename); + } + } + + } finally { + TestUtil.recursiveDelete(outputDir); + } + } + + private void compareFastqs(File testDataDir, File outputSam, String filename) { + File f1 = new File(outputSam.getParentFile(), filename); + File f2 = new File(testDataDir, filename); + FastqReader reader1 = new FastqReader(f1); + List reads = new ArrayList<>(); + FastqReader reader2 = new FastqReader(f2); + for (FastqRecord record : reader1) { + reads.add(record); + } + + for (FastqRecord record : reader2) { + Assert.assertTrue(reads.contains(record)); + } + } + /** * This test utility takes a libraryParamsFile and generates output sam files through IlluminaBasecallsToFastq to compare against * preloaded test data * - * @param lane lane number to use - * @param jobName name of job for the temp file - * @param libraryParamsFile the params file to use for the de-multiplexing + * @param lane lane number to use + * @param jobName name of job for the temp file + * @param libraryParamsFile the params file to use for the de-multiplexing * @param concatNColumnFields how many columns to concatenate to get the barcode * @param readStructureString what read-structure string to use - * @param baseCallsDir what directory can I find the BCLs in - * @param testDataDir what directory can I find the expected resulting files - * + * @param baseCallsDir what directory can I find the BCLs in + * @param testDataDir what directory can I find the expected resulting files * @throws Exception */ @@ -160,22 +234,8 @@ private void runStandardTest(final int lane, final String jobName, final String final File libraryParams = new File(outputDir, libraryParamsFile); libraryParams.deleteOnExit(); final List outputPrefixes = new ArrayList(); - final LineReader reader = new BufferedLineReader(new FileInputStream(new File(testDataDir, libraryParamsFile))); - final PrintWriter writer = new PrintWriter(libraryParams); - final String header = reader.readLine(); - writer.println(header + "\tOUTPUT_PREFIX"); - while (true) { - final String line = reader.readLine(); - if (line == null) { - break; - } - final String[] fields = line.split("\t"); - final File outputPrefix = new File(outputDir, StringUtil.join("", Arrays.copyOfRange(fields, 0, concatNColumnFields))); - outputPrefixes.add(outputPrefix); - writer.println(line + "\t" + outputPrefix); - } - writer.close(); - reader.close(); + convertParamsFile(libraryParamsFile, concatNColumnFields, testDataDir, outputDir, libraryParams, outputPrefixes); + runPicardCommandLine(new String[]{ "BASECALLS_DIR=" + baseCallsDir, @@ -207,4 +267,23 @@ private void runStandardTest(final int lane, final String jobName, final String TestUtil.recursiveDelete(outputDir); } } + + private void convertParamsFile(String libraryParamsFile, int concatNColumnFields, File testDataDir, File outputDir, File libraryParams, List outputPrefixes) throws FileNotFoundException { + try (LineReader reader = new BufferedLineReader(new FileInputStream(new File(testDataDir, libraryParamsFile)))) { + final PrintWriter writer = new PrintWriter(libraryParams); + final String header = reader.readLine(); + writer.println(header + "\tOUTPUT_PREFIX"); + while (true) { + final String line = reader.readLine(); + if (line == null) { + break; + } + final String[] fields = line.split("\t"); + final File outputPrefix = new File(outputDir, StringUtil.join("", Arrays.copyOfRange(fields, 0, concatNColumnFields))); + outputPrefixes.add(outputPrefix); + writer.println(line + "\t" + outputPrefix); + } + writer.close(); + } + } } diff --git a/src/test/java/picard/illumina/IlluminaBasecallsToSamTest.java b/src/test/java/picard/illumina/IlluminaBasecallsToSamTest.java index 63d4e799c..f7a0d6a2f 100644 --- a/src/test/java/picard/illumina/IlluminaBasecallsToSamTest.java +++ b/src/test/java/picard/illumina/IlluminaBasecallsToSamTest.java @@ -52,6 +52,8 @@ private static final File DUAL_TEST_DATA_DIR = new File("testdata/picard/illumina/25T8B8B25T/sams"); private static final File TEST_DATA_DIR_WITH_4M_INDEX = new File("testdata/picard/illumina/25T8B25T/sams_with_4M"); private static final File TEST_DATA_DIR_WITH_4M4M_INDEX = new File("testdata/picard/illumina/25T8B25T/sams_with_4M4M"); + private static final File TEST_DATA_DIR_WITH_CBCLS = new File("testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls"); + private static final File DUAL_CBCL_TEST_DATA_DIR = new File("testdata/picard/illumina/125T8B8B125T_cbcl/sams"); public String getCommandLineProgramName() { return IlluminaBasecallsToSam.class.getSimpleName(); @@ -252,6 +254,54 @@ public void testDualBarcodes() throws Exception { runStandardTest(1, "dualBarcode.", "barcode_double.params", 1, "25T8B8B25T", DUAL_BASECALLS_DIR, DUAL_TEST_DATA_DIR); } + @Test + public void testCbclConvert() throws Exception { + runNewConverterTest(1, "dualBarcode.", "barcode_double.params", 2, "151T8B8B151T", TEST_DATA_DIR_WITH_CBCLS, DUAL_CBCL_TEST_DATA_DIR); + } + + private void runNewConverterTest(final int lane, final String jobName, final String libraryParamsFile, + final int concatNColumnFields, final String readStructure, final File baseCallsDir, + final File testDataDir) throws Exception { + final File outputDir = File.createTempFile(jobName, ".dir"); + outputDir.delete(); + outputDir.mkdir(); + outputDir.deleteOnExit(); + // Create barcode.params with output files in the temp directory + final File libraryParams = new File(outputDir, libraryParamsFile); + libraryParams.deleteOnExit(); + final List samFiles = new ArrayList(); + final LineReader reader = new BufferedLineReader(new FileInputStream(new File(testDataDir, libraryParamsFile))); + final PrintWriter writer = new PrintWriter(libraryParams); + final String header = reader.readLine(); + writer.println(header + "\tOUTPUT"); + while (true) { + final String line = reader.readLine(); + if (line == null) { + break; + } + final String[] fields = line.split("\t"); + final File outputSam = new File(outputDir, StringUtil.join("", Arrays.copyOfRange(fields, 0, concatNColumnFields)) + ".sam"); + outputSam.deleteOnExit(); + samFiles.add(outputSam); + writer.println(line + "\t" + outputSam); + } + writer.close(); + reader.close(); + + Assert.assertEquals(runPicardCommandLine(new String[]{ + "BASECALLS_DIR=" + baseCallsDir, + "LANE=" + lane, + "RUN_BARCODE=HiMom", + "READ_STRUCTURE=" + readStructure, + "LIBRARY_PARAMS=" + libraryParams, + "USE_NEW_CONVERTER=true" + }), 0); + + for (final File outputSam : samFiles) { + IOUtil.assertFilesEqual(outputSam, new File(testDataDir, outputSam.getName())); + } + TestUtil.recursiveDelete(outputDir); + } /** * Ensures that a run missing a barcode from the parameters file throws an error. * diff --git a/src/test/java/picard/illumina/IlluminaLaneMetricsCollectorTest.java b/src/test/java/picard/illumina/IlluminaLaneMetricsCollectorTest.java index bf6b86d0d..030865c01 100644 --- a/src/test/java/picard/illumina/IlluminaLaneMetricsCollectorTest.java +++ b/src/test/java/picard/illumina/IlluminaLaneMetricsCollectorTest.java @@ -2,15 +2,13 @@ import htsjdk.samtools.ValidationStringency; import htsjdk.samtools.util.IOUtil; -import picard.PicardException; -import picard.illumina.parser.ReadStructure; import org.testng.annotations.DataProvider; import org.testng.annotations.Test; +import picard.PicardException; +import picard.illumina.parser.ReadStructure; import java.io.File; import java.io.IOException; -import java.lang.Exception;import java.lang.Object;import java.lang.String; -import java.nio.file.Files; import java.util.Arrays; /** @author mccowan */ @@ -52,13 +50,14 @@ public void testWriteLaneMetrics(final String testRun) throws Exception { } @Test(dataProvider = "testCollectIlluminaLaneMetrics") - public void testCollectIlluminaLaneMetrics(final String testRun, final ReadStructure readStructure) throws Exception { + public void testCollectIlluminaLaneMetrics(final String testRun, final ReadStructure readStructure, final boolean isNovaSeq) throws Exception { for (final boolean useReadStructure : Arrays.asList(true, false)) { final File runDirectory = new File(TILE_RUN_DIRECTORY, testRun); final CollectIlluminaLaneMetrics clp = new CollectIlluminaLaneMetrics(); clp.OUTPUT_DIRECTORY = IOUtil.createTempDir("illuminaLaneMetricsCollectorTest", null); clp.RUN_DIRECTORY = runDirectory; clp.OUTPUT_PREFIX = "test"; + clp.IS_NOVASEQ = isNovaSeq; if (useReadStructure) clp.READ_STRUCTURE = readStructure; clp.doWork(); @@ -76,11 +75,12 @@ public void testCollectIlluminaLaneMetrics(final String testRun, final ReadStruc @DataProvider(name = "testCollectIlluminaLaneMetrics") public Object[][] testCollectIlluminaLaneMetricsDataProvider() { return new Object[][] { - {"A7LE0", new ReadStructure("25T8B8B25T")}, - {"C2MFAACXX", new ReadStructure("95T101T")}, - {"H7BATADXX", new ReadStructure("76T8B76T")}, - {"H7H7RADXX", new ReadStructure("101T8B8B101T")}, - {"A67HY", new ReadStructure("8B8B")} + {"A7LE0", new ReadStructure("25T8B8B25T"), false}, + {"C2MFAACXX", new ReadStructure("95T101T"), false}, + {"H7BATADXX", new ReadStructure("76T8B76T"), false}, + {"H7H7RADXX", new ReadStructure("101T8B8B101T"), false}, + {"A67HY", new ReadStructure("8B8B"), false}, + {"NovaSeq", new ReadStructure("151T8B8B151T"), true} }; } diff --git a/src/test/java/picard/illumina/parser/IlluminaDataProviderTest.java b/src/test/java/picard/illumina/parser/IlluminaDataProviderTest.java index de4cf0a88..33b36dd3d 100644 --- a/src/test/java/picard/illumina/parser/IlluminaDataProviderTest.java +++ b/src/test/java/picard/illumina/parser/IlluminaDataProviderTest.java @@ -53,7 +53,7 @@ private void runTest( final String testName, final int size, final Map readNoToClusterData, final int seekAfterFirstRead, final int seekTestDataReadOffset, - final IlluminaDataProvider dataProvider) + final BaseIlluminaDataProvider dataProvider) throws Exception { int count = 0; @@ -116,7 +116,7 @@ private void compareReadData(final ClusterData cd1, final ClusterData cd2, final public void runBarcodeParsingTest(final IlluminaDataProviderFactory factory) { int total = 0; - final IlluminaDataProvider dataProvider = factory.makeDataProvider(); + final BaseIlluminaDataProvider dataProvider = factory.makeDataProvider(); while (dataProvider.hasNext()) { final ClusterData cluster = dataProvider.next(); final String matchedBarcode = cluster.getMatchedBarcode(); @@ -197,7 +197,7 @@ public void testIlluminaDataProviderBclMethod( final Map readNoToClusterData = BinTdUtil.clusterData(lane, tiles, illuminaConfigStr, dts); final IlluminaDataProviderFactory factory = new IlluminaDataProviderFactory(basecallsDirectory, lane, new ReadStructure(illuminaConfigStr), bclQualityEvaluationStrategy, dts); - final IlluminaDataProvider dataProvider = factory.makeDataProvider(); + final BaseIlluminaDataProvider dataProvider = factory.makeDataProvider(); runTest(testName, size, readNoToClusterData, seekAfterFirstRead, seekTestDataReadOffset, dataProvider); } diff --git a/src/test/java/picard/illumina/parser/readers/CbclReaderTest.java b/src/test/java/picard/illumina/parser/readers/CbclReaderTest.java index 80f9956f8..15529ea41 100644 --- a/src/test/java/picard/illumina/parser/readers/CbclReaderTest.java +++ b/src/test/java/picard/illumina/parser/readers/CbclReaderTest.java @@ -7,31 +7,33 @@ import java.io.File; import java.util.Arrays; import java.util.HashMap; +import java.util.List; import java.util.Map; public class CbclReaderTest { - public static final File TestDataDir = new File("testdata/picard/illumina/readerTests"); - public static final File PASSING_CBCL_C99_1 = new File(TestDataDir, "C99.1.cbcl"); - public static final File PASSING_CBCL_C100_1 = new File(TestDataDir, "C100.1.cbcl"); + public static final File TestDataDir = new File("testdata/picard/illumina/readerTests/cbcls"); + public static final File PASSING_CBCL_C99_1 = new File(TestDataDir + "/C1.1", "L001_1.cbcl"); + public static final File PASSING_CBCL_C100_1 = new File(TestDataDir + "/C2.1", "L001_1.cbcl"); public static final File TILE_1101_FILTER = new File(TestDataDir, "tile_1101.filter"); - public static final File TILE_1102_FILTER = new File(TestDataDir, "tile_1102.filter"); public static final char[] expectedBases = new char[]{ - 'G','G','C','C','G','A','A','G','T','A','C','C','C','T','G','A' + 'G', 'G', 'C', 'C', 'G', 'A', 'A', 'G' }; public static final int[] expectedQuals = new int[]{ - 37,37,37,37,37,37,37,12,37,37,37,37,37,37,12,37 + 37, 37, 37, 37, 37, 37, 37, 12 }; @Test public void testReadValidFile() { - final CbclReader reader = new CbclReader(Arrays.asList(PASSING_CBCL_C99_1, PASSING_CBCL_C100_1), new int[] {2}); Map filters = new HashMap<>(); filters.put(1101, TILE_1101_FILTER); - filters.put(1102, TILE_1102_FILTER); - reader.addFilters(filters); + LocsFileReader locsFileReader = new LocsFileReader(new File("testdata/picard/illumina/readerTests/s_1_6.locs")); + List locs = locsFileReader.toList(); + + final CbclReader reader = new CbclReader(Arrays.asList(PASSING_CBCL_C99_1, PASSING_CBCL_C100_1), + filters, new int[]{2}, 1101, locs, false); int i = 0; while (reader.hasNext()) { @@ -39,7 +41,7 @@ public void testReadValidFile() { for (int cluster = 0; cluster < bv.bases.length; cluster++) { for (int cycle = 0; cycle < bv.bases[cluster].length; cycle++) { String actual = new String(new byte[]{bv.bases[cluster][cycle]}); - String expected = new String(new char[]{expectedBases[i]}); + String expected = new String(new char[]{expectedBases[i]}); Assert.assertEquals(actual, expected, "For cluster " + cluster + " cycle " + cycle + ","); Assert.assertEquals(bv.qualities[cluster][cycle], expectedQuals[i], "For cluster " + cluster + " cycle " + cycle + ","); i++; diff --git a/src/test/java/picard/util/FifoBufferTest.java b/src/test/java/picard/util/FifoBufferTest.java index 41b2cc5e6..75fb180a2 100644 --- a/src/test/java/picard/util/FifoBufferTest.java +++ b/src/test/java/picard/util/FifoBufferTest.java @@ -58,8 +58,8 @@ public void test(final double megabytes) throws IOException { } // Run the input file through the FifoBuffer and back into another file - final Md5CalculatingInputStream in = new Md5CalculatingInputStream(new FileInputStream(inputFile), (File)null); - final Md5CalculatingOutputStream out = new Md5CalculatingOutputStream(new FileOutputStream("/dev/null"), (File)null); + final Md5CalculatingInputStream in = new Md5CalculatingInputStream(new FileInputStream(inputFile), (File) null); + final Md5CalculatingOutputStream out = new Md5CalculatingOutputStream(new FileOutputStream("/dev/null"), (File) null); final PrintStream outStream = new PrintStream(out); final FifoBuffer buffer = new FifoBuffer(in, outStream); buffer.BUFFER_SIZE = 128 * 1024 * 1024; diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C1.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C1.1/L001_1.cbcl new file mode 100644 index 000000000..53fbfb60a Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C1.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C1.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C1.1/L001_2.cbcl new file mode 100644 index 000000000..cf5d24ca5 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C1.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C10.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C10.1/L001_1.cbcl new file mode 100644 index 000000000..435b3ce1b Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C10.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C10.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C10.1/L001_2.cbcl new file mode 100644 index 000000000..882c50746 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C10.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C100.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C100.1/L001_1.cbcl new file mode 100644 index 000000000..863053c22 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C100.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C100.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C100.1/L001_2.cbcl new file mode 100644 index 000000000..75115d382 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C100.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C101.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C101.1/L001_1.cbcl new file mode 100644 index 000000000..1fb90b274 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C101.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C101.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C101.1/L001_2.cbcl new file mode 100644 index 000000000..6b15f65c8 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C101.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C102.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C102.1/L001_1.cbcl new file mode 100644 index 000000000..3ade00255 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C102.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C102.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C102.1/L001_2.cbcl new file mode 100644 index 000000000..8c794920f Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C102.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C103.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C103.1/L001_1.cbcl new file mode 100644 index 000000000..d7bf3dd85 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C103.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C103.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C103.1/L001_2.cbcl new file mode 100644 index 000000000..21248d063 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C103.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C104.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C104.1/L001_1.cbcl new file mode 100644 index 000000000..844a41255 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C104.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C104.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C104.1/L001_2.cbcl new file mode 100644 index 000000000..c7d7ccf22 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C104.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C105.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C105.1/L001_1.cbcl new file mode 100644 index 000000000..8bc2487b3 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C105.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C105.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C105.1/L001_2.cbcl new file mode 100644 index 000000000..04f3b4e12 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C105.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C106.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C106.1/L001_1.cbcl new file mode 100644 index 000000000..eba1abcdc Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C106.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C106.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C106.1/L001_2.cbcl new file mode 100644 index 000000000..7ebb8ce6b Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C106.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C107.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C107.1/L001_1.cbcl new file mode 100644 index 000000000..ae9250890 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C107.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C107.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C107.1/L001_2.cbcl new file mode 100644 index 000000000..f6e5bac4a Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C107.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C108.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C108.1/L001_1.cbcl new file mode 100644 index 000000000..fec33d6e2 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C108.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C108.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C108.1/L001_2.cbcl new file mode 100644 index 000000000..501e961c6 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C108.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C109.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C109.1/L001_1.cbcl new file mode 100644 index 000000000..45d71b570 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C109.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C109.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C109.1/L001_2.cbcl new file mode 100644 index 000000000..4d6ba44a1 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C109.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C11.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C11.1/L001_1.cbcl new file mode 100644 index 000000000..32dfb6aa0 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C11.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C11.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C11.1/L001_2.cbcl new file mode 100644 index 000000000..cc2bded3c Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C11.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C110.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C110.1/L001_1.cbcl new file mode 100644 index 000000000..e686bc31e Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C110.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C110.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C110.1/L001_2.cbcl new file mode 100644 index 000000000..f47901bc8 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C110.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C111.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C111.1/L001_1.cbcl new file mode 100644 index 000000000..a04548ca6 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C111.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C111.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C111.1/L001_2.cbcl new file mode 100644 index 000000000..6a6be0a46 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C111.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C112.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C112.1/L001_1.cbcl new file mode 100644 index 000000000..64b5f1a3b Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C112.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C112.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C112.1/L001_2.cbcl new file mode 100644 index 000000000..e327c16f7 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C112.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C113.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C113.1/L001_1.cbcl new file mode 100644 index 000000000..387b5788a Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C113.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C113.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C113.1/L001_2.cbcl new file mode 100644 index 000000000..cd87629b3 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C113.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C114.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C114.1/L001_1.cbcl new file mode 100644 index 000000000..e6166d106 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C114.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C114.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C114.1/L001_2.cbcl new file mode 100644 index 000000000..5f1ef0ccb Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C114.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C115.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C115.1/L001_1.cbcl new file mode 100644 index 000000000..4d189d05f Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C115.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C115.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C115.1/L001_2.cbcl new file mode 100644 index 000000000..caab400a0 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C115.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C116.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C116.1/L001_1.cbcl new file mode 100644 index 000000000..c211db61f Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C116.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C116.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C116.1/L001_2.cbcl new file mode 100644 index 000000000..04fd8a843 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C116.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C117.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C117.1/L001_1.cbcl new file mode 100644 index 000000000..63a6bcb1d Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C117.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C117.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C117.1/L001_2.cbcl new file mode 100644 index 000000000..ab8718bc0 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C117.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C118.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C118.1/L001_1.cbcl new file mode 100644 index 000000000..1468f609d Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C118.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C118.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C118.1/L001_2.cbcl new file mode 100644 index 000000000..b8fc94eed Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C118.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C119.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C119.1/L001_1.cbcl new file mode 100644 index 000000000..d06fdf428 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C119.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C119.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C119.1/L001_2.cbcl new file mode 100644 index 000000000..091e816f5 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C119.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C12.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C12.1/L001_1.cbcl new file mode 100644 index 000000000..78a7cee5a Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C12.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C12.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C12.1/L001_2.cbcl new file mode 100644 index 000000000..79ee6bd98 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C12.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C120.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C120.1/L001_1.cbcl new file mode 100644 index 000000000..b35c0a6b5 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C120.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C120.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C120.1/L001_2.cbcl new file mode 100644 index 000000000..5cf1652b3 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C120.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C121.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C121.1/L001_1.cbcl new file mode 100644 index 000000000..1430ce78c Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C121.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C121.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C121.1/L001_2.cbcl new file mode 100644 index 000000000..791d0c138 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C121.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C122.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C122.1/L001_1.cbcl new file mode 100644 index 000000000..007be3761 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C122.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C122.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C122.1/L001_2.cbcl new file mode 100644 index 000000000..42b9df489 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C122.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C123.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C123.1/L001_1.cbcl new file mode 100644 index 000000000..a4c0de6fc Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C123.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C123.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C123.1/L001_2.cbcl new file mode 100644 index 000000000..cd9821d84 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C123.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C124.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C124.1/L001_1.cbcl new file mode 100644 index 000000000..a3a021c2a Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C124.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C124.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C124.1/L001_2.cbcl new file mode 100644 index 000000000..cc6e6aa69 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C124.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C125.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C125.1/L001_1.cbcl new file mode 100644 index 000000000..9cdcb039b Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C125.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C125.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C125.1/L001_2.cbcl new file mode 100644 index 000000000..f52e41bf6 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C125.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C126.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C126.1/L001_1.cbcl new file mode 100644 index 000000000..050315ee3 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C126.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C126.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C126.1/L001_2.cbcl new file mode 100644 index 000000000..c18daab37 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C126.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C127.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C127.1/L001_1.cbcl new file mode 100644 index 000000000..7f26824c8 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C127.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C127.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C127.1/L001_2.cbcl new file mode 100644 index 000000000..9857dbd95 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C127.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C128.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C128.1/L001_1.cbcl new file mode 100644 index 000000000..fbc6d47eb Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C128.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C128.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C128.1/L001_2.cbcl new file mode 100644 index 000000000..0ae6edf14 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C128.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C129.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C129.1/L001_1.cbcl new file mode 100644 index 000000000..f7e40424c Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C129.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C129.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C129.1/L001_2.cbcl new file mode 100644 index 000000000..436baa729 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C129.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C13.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C13.1/L001_1.cbcl new file mode 100644 index 000000000..4918787bc Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C13.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C13.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C13.1/L001_2.cbcl new file mode 100644 index 000000000..796490923 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C13.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C130.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C130.1/L001_1.cbcl new file mode 100644 index 000000000..9836e21f0 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C130.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C130.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C130.1/L001_2.cbcl new file mode 100644 index 000000000..f1a4b4d87 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C130.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C131.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C131.1/L001_1.cbcl new file mode 100644 index 000000000..4e7423fc1 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C131.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C131.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C131.1/L001_2.cbcl new file mode 100644 index 000000000..a8bcf14ed Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C131.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C132.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C132.1/L001_1.cbcl new file mode 100644 index 000000000..f0d13ab8b Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C132.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C132.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C132.1/L001_2.cbcl new file mode 100644 index 000000000..976c85364 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C132.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C133.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C133.1/L001_1.cbcl new file mode 100644 index 000000000..9e7c43579 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C133.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C133.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C133.1/L001_2.cbcl new file mode 100644 index 000000000..41653cd04 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C133.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C134.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C134.1/L001_1.cbcl new file mode 100644 index 000000000..3a801a28a Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C134.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C134.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C134.1/L001_2.cbcl new file mode 100644 index 000000000..d255e4ce8 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C134.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C135.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C135.1/L001_1.cbcl new file mode 100644 index 000000000..0d61359f0 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C135.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C135.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C135.1/L001_2.cbcl new file mode 100644 index 000000000..033a5fedd Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C135.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C136.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C136.1/L001_1.cbcl new file mode 100644 index 000000000..17e608fbb Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C136.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C136.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C136.1/L001_2.cbcl new file mode 100644 index 000000000..d205e4d23 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C136.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C137.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C137.1/L001_1.cbcl new file mode 100644 index 000000000..8e3844b00 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C137.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C137.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C137.1/L001_2.cbcl new file mode 100644 index 000000000..e4b447eee Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C137.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C138.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C138.1/L001_1.cbcl new file mode 100644 index 000000000..6ec67eea5 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C138.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C138.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C138.1/L001_2.cbcl new file mode 100644 index 000000000..19d517f04 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C138.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C139.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C139.1/L001_1.cbcl new file mode 100644 index 000000000..2e25a59dc Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C139.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C139.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C139.1/L001_2.cbcl new file mode 100644 index 000000000..62cd39608 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C139.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C14.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C14.1/L001_1.cbcl new file mode 100644 index 000000000..d95fe05ee Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C14.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C14.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C14.1/L001_2.cbcl new file mode 100644 index 000000000..c34628b7d Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C14.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C140.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C140.1/L001_1.cbcl new file mode 100644 index 000000000..96293dddc Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C140.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C140.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C140.1/L001_2.cbcl new file mode 100644 index 000000000..aa37bbc1c Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C140.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C141.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C141.1/L001_1.cbcl new file mode 100644 index 000000000..446a33823 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C141.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C141.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C141.1/L001_2.cbcl new file mode 100644 index 000000000..661d22c65 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C141.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C142.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C142.1/L001_1.cbcl new file mode 100644 index 000000000..b04f90260 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C142.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C142.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C142.1/L001_2.cbcl new file mode 100644 index 000000000..ce1fb206b Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C142.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C143.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C143.1/L001_1.cbcl new file mode 100644 index 000000000..92edae08f Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C143.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C143.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C143.1/L001_2.cbcl new file mode 100644 index 000000000..72b6b487a Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C143.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C144.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C144.1/L001_1.cbcl new file mode 100644 index 000000000..4bf289496 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C144.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C144.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C144.1/L001_2.cbcl new file mode 100644 index 000000000..1dde4b040 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C144.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C145.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C145.1/L001_1.cbcl new file mode 100644 index 000000000..6391b9582 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C145.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C145.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C145.1/L001_2.cbcl new file mode 100644 index 000000000..955d10e3d Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C145.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C146.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C146.1/L001_1.cbcl new file mode 100644 index 000000000..0575ad426 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C146.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C146.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C146.1/L001_2.cbcl new file mode 100644 index 000000000..afa9e4dfd Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C146.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C147.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C147.1/L001_1.cbcl new file mode 100644 index 000000000..01dd42993 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C147.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C147.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C147.1/L001_2.cbcl new file mode 100644 index 000000000..463d66a55 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C147.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C148.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C148.1/L001_1.cbcl new file mode 100644 index 000000000..858cf4273 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C148.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C148.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C148.1/L001_2.cbcl new file mode 100644 index 000000000..5c8364f45 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C148.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C149.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C149.1/L001_1.cbcl new file mode 100644 index 000000000..143a4df50 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C149.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C149.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C149.1/L001_2.cbcl new file mode 100644 index 000000000..f4d3cbb1d Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C149.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C15.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C15.1/L001_1.cbcl new file mode 100644 index 000000000..52f6c109c Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C15.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C15.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C15.1/L001_2.cbcl new file mode 100644 index 000000000..998b6aab2 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C15.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C150.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C150.1/L001_1.cbcl new file mode 100644 index 000000000..2c70ad716 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C150.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C150.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C150.1/L001_2.cbcl new file mode 100644 index 000000000..f09548c34 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C150.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C151.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C151.1/L001_1.cbcl new file mode 100644 index 000000000..5ca44af78 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C151.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C151.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C151.1/L001_2.cbcl new file mode 100644 index 000000000..be27141ba Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C151.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C152.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C152.1/L001_1.cbcl new file mode 100644 index 000000000..d42d17054 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C152.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C152.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C152.1/L001_2.cbcl new file mode 100644 index 000000000..87c302b52 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C152.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C153.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C153.1/L001_1.cbcl new file mode 100644 index 000000000..5b8080ec8 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C153.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C153.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C153.1/L001_2.cbcl new file mode 100644 index 000000000..3b6688a32 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C153.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C154.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C154.1/L001_1.cbcl new file mode 100644 index 000000000..f4902eb60 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C154.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C154.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C154.1/L001_2.cbcl new file mode 100644 index 000000000..e0c6809df Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C154.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C155.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C155.1/L001_1.cbcl new file mode 100644 index 000000000..a6ed04a30 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C155.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C155.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C155.1/L001_2.cbcl new file mode 100644 index 000000000..0a7b1d197 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C155.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C156.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C156.1/L001_1.cbcl new file mode 100644 index 000000000..c77580434 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C156.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C156.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C156.1/L001_2.cbcl new file mode 100644 index 000000000..07bab1e93 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C156.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C157.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C157.1/L001_1.cbcl new file mode 100644 index 000000000..93d2d8cf1 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C157.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C157.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C157.1/L001_2.cbcl new file mode 100644 index 000000000..a9b4dd69f Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C157.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C158.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C158.1/L001_1.cbcl new file mode 100644 index 000000000..ffd6eadb7 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C158.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C158.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C158.1/L001_2.cbcl new file mode 100644 index 000000000..649332a81 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C158.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C159.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C159.1/L001_1.cbcl new file mode 100644 index 000000000..a45424ef1 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C159.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C159.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C159.1/L001_2.cbcl new file mode 100644 index 000000000..4975626a5 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C159.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C16.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C16.1/L001_1.cbcl new file mode 100644 index 000000000..016ce792d Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C16.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C16.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C16.1/L001_2.cbcl new file mode 100644 index 000000000..ba7be588a Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C16.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C160.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C160.1/L001_1.cbcl new file mode 100644 index 000000000..71f0fc3a5 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C160.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C160.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C160.1/L001_2.cbcl new file mode 100644 index 000000000..98375dbeb Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C160.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C161.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C161.1/L001_1.cbcl new file mode 100644 index 000000000..18f196797 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C161.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C161.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C161.1/L001_2.cbcl new file mode 100644 index 000000000..944ffd90f Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C161.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C162.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C162.1/L001_1.cbcl new file mode 100644 index 000000000..75c6888e2 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C162.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C162.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C162.1/L001_2.cbcl new file mode 100644 index 000000000..a4b98d8f4 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C162.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C163.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C163.1/L001_1.cbcl new file mode 100644 index 000000000..c0beb304a Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C163.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C163.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C163.1/L001_2.cbcl new file mode 100644 index 000000000..78f3fd3ba Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C163.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C164.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C164.1/L001_1.cbcl new file mode 100644 index 000000000..121fc6c59 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C164.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C164.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C164.1/L001_2.cbcl new file mode 100644 index 000000000..8231bf23c Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C164.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C165.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C165.1/L001_1.cbcl new file mode 100644 index 000000000..00675d5b4 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C165.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C165.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C165.1/L001_2.cbcl new file mode 100644 index 000000000..f7cae454c Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C165.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C166.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C166.1/L001_1.cbcl new file mode 100644 index 000000000..c16fc6c73 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C166.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C166.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C166.1/L001_2.cbcl new file mode 100644 index 000000000..a78044e34 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C166.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C167.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C167.1/L001_1.cbcl new file mode 100644 index 000000000..500c43aef Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C167.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C167.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C167.1/L001_2.cbcl new file mode 100644 index 000000000..7831bc3b4 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C167.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C168.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C168.1/L001_1.cbcl new file mode 100644 index 000000000..4692d4cae Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C168.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C168.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C168.1/L001_2.cbcl new file mode 100644 index 000000000..aae9fc561 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C168.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C169.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C169.1/L001_1.cbcl new file mode 100644 index 000000000..e2e5265bd Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C169.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C169.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C169.1/L001_2.cbcl new file mode 100644 index 000000000..b401074e6 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C169.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C17.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C17.1/L001_1.cbcl new file mode 100644 index 000000000..9048c7e65 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C17.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C17.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C17.1/L001_2.cbcl new file mode 100644 index 000000000..020254bf7 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C17.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C170.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C170.1/L001_1.cbcl new file mode 100644 index 000000000..48ece5fb2 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C170.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C170.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C170.1/L001_2.cbcl new file mode 100644 index 000000000..3a96880bf Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C170.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C171.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C171.1/L001_1.cbcl new file mode 100644 index 000000000..8a4cebdce Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C171.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C171.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C171.1/L001_2.cbcl new file mode 100644 index 000000000..f7209a34a Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C171.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C172.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C172.1/L001_1.cbcl new file mode 100644 index 000000000..46bfe56d7 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C172.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C172.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C172.1/L001_2.cbcl new file mode 100644 index 000000000..c55efd4b7 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C172.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C173.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C173.1/L001_1.cbcl new file mode 100644 index 000000000..216cbceb4 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C173.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C173.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C173.1/L001_2.cbcl new file mode 100644 index 000000000..14b6838f8 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C173.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C174.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C174.1/L001_1.cbcl new file mode 100644 index 000000000..7dc426a8b Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C174.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C174.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C174.1/L001_2.cbcl new file mode 100644 index 000000000..325e9b239 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C174.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C175.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C175.1/L001_1.cbcl new file mode 100644 index 000000000..75b9b2852 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C175.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C175.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C175.1/L001_2.cbcl new file mode 100644 index 000000000..39b1e9a3f Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C175.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C176.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C176.1/L001_1.cbcl new file mode 100644 index 000000000..c68819775 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C176.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C176.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C176.1/L001_2.cbcl new file mode 100644 index 000000000..def3a1646 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C176.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C177.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C177.1/L001_1.cbcl new file mode 100644 index 000000000..52cb54608 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C177.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C177.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C177.1/L001_2.cbcl new file mode 100644 index 000000000..6c760ffa4 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C177.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C178.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C178.1/L001_1.cbcl new file mode 100644 index 000000000..15328d13e Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C178.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C178.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C178.1/L001_2.cbcl new file mode 100644 index 000000000..832e7c6a7 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C178.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C179.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C179.1/L001_1.cbcl new file mode 100644 index 000000000..6bdc51c2f Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C179.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C179.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C179.1/L001_2.cbcl new file mode 100644 index 000000000..10fa0c8bb Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C179.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C18.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C18.1/L001_1.cbcl new file mode 100644 index 000000000..8b1361e54 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C18.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C18.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C18.1/L001_2.cbcl new file mode 100644 index 000000000..023849094 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C18.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C180.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C180.1/L001_1.cbcl new file mode 100644 index 000000000..04c6a0446 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C180.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C180.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C180.1/L001_2.cbcl new file mode 100644 index 000000000..5824c85df Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C180.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C181.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C181.1/L001_1.cbcl new file mode 100644 index 000000000..79ed8894d Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C181.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C181.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C181.1/L001_2.cbcl new file mode 100644 index 000000000..b13b9db1a Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C181.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C182.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C182.1/L001_1.cbcl new file mode 100644 index 000000000..e69bc2369 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C182.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C182.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C182.1/L001_2.cbcl new file mode 100644 index 000000000..40e43cfae Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C182.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C183.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C183.1/L001_1.cbcl new file mode 100644 index 000000000..a7cb26350 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C183.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C183.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C183.1/L001_2.cbcl new file mode 100644 index 000000000..1cc901b7f Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C183.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C184.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C184.1/L001_1.cbcl new file mode 100644 index 000000000..fbc8ecb0f Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C184.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C184.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C184.1/L001_2.cbcl new file mode 100644 index 000000000..70e12b201 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C184.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C185.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C185.1/L001_1.cbcl new file mode 100644 index 000000000..363b00a78 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C185.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C185.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C185.1/L001_2.cbcl new file mode 100644 index 000000000..7d2cd3387 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C185.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C186.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C186.1/L001_1.cbcl new file mode 100644 index 000000000..551ae3f6e Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C186.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C186.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C186.1/L001_2.cbcl new file mode 100644 index 000000000..7324dd618 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C186.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C187.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C187.1/L001_1.cbcl new file mode 100644 index 000000000..3b59d4bee Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C187.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C187.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C187.1/L001_2.cbcl new file mode 100644 index 000000000..1beb7ae1f Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C187.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C188.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C188.1/L001_1.cbcl new file mode 100644 index 000000000..41151b99c Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C188.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C188.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C188.1/L001_2.cbcl new file mode 100644 index 000000000..9daac1dbd Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C188.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C189.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C189.1/L001_1.cbcl new file mode 100644 index 000000000..fb85dd2ef Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C189.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C189.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C189.1/L001_2.cbcl new file mode 100644 index 000000000..bcb96504a Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C189.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C19.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C19.1/L001_1.cbcl new file mode 100644 index 000000000..c710a271b Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C19.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C19.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C19.1/L001_2.cbcl new file mode 100644 index 000000000..6a170e7b6 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C19.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C190.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C190.1/L001_1.cbcl new file mode 100644 index 000000000..1234e1ccc Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C190.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C190.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C190.1/L001_2.cbcl new file mode 100644 index 000000000..13d551145 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C190.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C191.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C191.1/L001_1.cbcl new file mode 100644 index 000000000..5ce8483b6 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C191.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C191.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C191.1/L001_2.cbcl new file mode 100644 index 000000000..42b2df13b Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C191.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C192.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C192.1/L001_1.cbcl new file mode 100644 index 000000000..1f067e539 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C192.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C192.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C192.1/L001_2.cbcl new file mode 100644 index 000000000..9474e2529 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C192.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C193.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C193.1/L001_1.cbcl new file mode 100644 index 000000000..0ff07132a Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C193.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C193.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C193.1/L001_2.cbcl new file mode 100644 index 000000000..396747562 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C193.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C194.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C194.1/L001_1.cbcl new file mode 100644 index 000000000..5bc449ebe Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C194.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C194.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C194.1/L001_2.cbcl new file mode 100644 index 000000000..bf32f6589 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C194.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C195.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C195.1/L001_1.cbcl new file mode 100644 index 000000000..3cd9a0f3c Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C195.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C195.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C195.1/L001_2.cbcl new file mode 100644 index 000000000..a8a5e3954 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C195.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C196.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C196.1/L001_1.cbcl new file mode 100644 index 000000000..64bec5550 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C196.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C196.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C196.1/L001_2.cbcl new file mode 100644 index 000000000..0fc459511 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C196.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C197.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C197.1/L001_1.cbcl new file mode 100644 index 000000000..2ff678c3a Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C197.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C197.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C197.1/L001_2.cbcl new file mode 100644 index 000000000..9ac533bfd Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C197.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C198.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C198.1/L001_1.cbcl new file mode 100644 index 000000000..8d7e46aa1 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C198.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C198.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C198.1/L001_2.cbcl new file mode 100644 index 000000000..7b7bcd2f8 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C198.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C199.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C199.1/L001_1.cbcl new file mode 100644 index 000000000..070a36e55 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C199.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C199.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C199.1/L001_2.cbcl new file mode 100644 index 000000000..02a945015 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C199.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C2.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C2.1/L001_1.cbcl new file mode 100644 index 000000000..6316b2108 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C2.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C2.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C2.1/L001_2.cbcl new file mode 100644 index 000000000..1c3cefd1a Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C2.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C20.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C20.1/L001_1.cbcl new file mode 100644 index 000000000..26938e3ed Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C20.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C20.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C20.1/L001_2.cbcl new file mode 100644 index 000000000..c231d784a Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C20.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C200.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C200.1/L001_1.cbcl new file mode 100644 index 000000000..5380b7ed4 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C200.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C200.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C200.1/L001_2.cbcl new file mode 100644 index 000000000..2af47b82d Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C200.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C201.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C201.1/L001_1.cbcl new file mode 100644 index 000000000..b091bfc7f Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C201.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C201.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C201.1/L001_2.cbcl new file mode 100644 index 000000000..1666eaff2 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C201.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C202.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C202.1/L001_1.cbcl new file mode 100644 index 000000000..4f9bd3a35 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C202.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C202.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C202.1/L001_2.cbcl new file mode 100644 index 000000000..8d7cfa4dd Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C202.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C203.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C203.1/L001_1.cbcl new file mode 100644 index 000000000..4e71cf2cd Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C203.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C203.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C203.1/L001_2.cbcl new file mode 100644 index 000000000..cb071f23e Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C203.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C204.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C204.1/L001_1.cbcl new file mode 100644 index 000000000..e444059cc Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C204.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C204.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C204.1/L001_2.cbcl new file mode 100644 index 000000000..c4b3babf0 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C204.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C205.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C205.1/L001_1.cbcl new file mode 100644 index 000000000..a9a4f16a9 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C205.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C205.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C205.1/L001_2.cbcl new file mode 100644 index 000000000..0a0b9810c Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C205.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C206.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C206.1/L001_1.cbcl new file mode 100644 index 000000000..5d008a66b Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C206.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C206.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C206.1/L001_2.cbcl new file mode 100644 index 000000000..d9bfe9357 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C206.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C207.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C207.1/L001_1.cbcl new file mode 100644 index 000000000..178b63262 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C207.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C207.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C207.1/L001_2.cbcl new file mode 100644 index 000000000..9fc8e7f1c Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C207.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C208.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C208.1/L001_1.cbcl new file mode 100644 index 000000000..e04a8e5d8 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C208.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C208.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C208.1/L001_2.cbcl new file mode 100644 index 000000000..fe276f1db Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C208.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C209.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C209.1/L001_1.cbcl new file mode 100644 index 000000000..0fa983b41 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C209.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C209.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C209.1/L001_2.cbcl new file mode 100644 index 000000000..3878c7f30 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C209.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C21.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C21.1/L001_1.cbcl new file mode 100644 index 000000000..3595472d3 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C21.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C21.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C21.1/L001_2.cbcl new file mode 100644 index 000000000..f681c46ed Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C21.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C210.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C210.1/L001_1.cbcl new file mode 100644 index 000000000..a6f8b07cb Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C210.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C210.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C210.1/L001_2.cbcl new file mode 100644 index 000000000..da6013622 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C210.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C211.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C211.1/L001_1.cbcl new file mode 100644 index 000000000..7348b83c5 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C211.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C211.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C211.1/L001_2.cbcl new file mode 100644 index 000000000..5ebee3344 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C211.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C212.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C212.1/L001_1.cbcl new file mode 100644 index 000000000..a355ee341 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C212.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C212.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C212.1/L001_2.cbcl new file mode 100644 index 000000000..a81703654 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C212.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C213.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C213.1/L001_1.cbcl new file mode 100644 index 000000000..eb8140d5d Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C213.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C213.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C213.1/L001_2.cbcl new file mode 100644 index 000000000..c4419e120 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C213.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C214.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C214.1/L001_1.cbcl new file mode 100644 index 000000000..e98288fb5 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C214.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C214.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C214.1/L001_2.cbcl new file mode 100644 index 000000000..c3975dc34 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C214.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C215.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C215.1/L001_1.cbcl new file mode 100644 index 000000000..18afd5311 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C215.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C215.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C215.1/L001_2.cbcl new file mode 100644 index 000000000..44560ceee Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C215.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C216.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C216.1/L001_1.cbcl new file mode 100644 index 000000000..990f79a12 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C216.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C216.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C216.1/L001_2.cbcl new file mode 100644 index 000000000..9df221e4a Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C216.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C217.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C217.1/L001_1.cbcl new file mode 100644 index 000000000..dc0813c9e Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C217.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C217.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C217.1/L001_2.cbcl new file mode 100644 index 000000000..183ce7d0e Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C217.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C218.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C218.1/L001_1.cbcl new file mode 100644 index 000000000..e9e38ba9d Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C218.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C218.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C218.1/L001_2.cbcl new file mode 100644 index 000000000..5fdbcbd01 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C218.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C219.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C219.1/L001_1.cbcl new file mode 100644 index 000000000..d5fbd95ca Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C219.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C219.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C219.1/L001_2.cbcl new file mode 100644 index 000000000..65c38ab30 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C219.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C22.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C22.1/L001_1.cbcl new file mode 100644 index 000000000..f61cb0d59 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C22.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C22.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C22.1/L001_2.cbcl new file mode 100644 index 000000000..85e700e6f Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C22.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C220.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C220.1/L001_1.cbcl new file mode 100644 index 000000000..0e18e9d81 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C220.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C220.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C220.1/L001_2.cbcl new file mode 100644 index 000000000..e428f6ecb Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C220.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C221.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C221.1/L001_1.cbcl new file mode 100644 index 000000000..33dd640c3 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C221.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C221.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C221.1/L001_2.cbcl new file mode 100644 index 000000000..66442c337 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C221.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C222.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C222.1/L001_1.cbcl new file mode 100644 index 000000000..e22e76b04 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C222.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C222.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C222.1/L001_2.cbcl new file mode 100644 index 000000000..368870828 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C222.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C223.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C223.1/L001_1.cbcl new file mode 100644 index 000000000..4d4421b74 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C223.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C223.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C223.1/L001_2.cbcl new file mode 100644 index 000000000..066763391 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C223.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C224.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C224.1/L001_1.cbcl new file mode 100644 index 000000000..a70ea251f Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C224.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C224.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C224.1/L001_2.cbcl new file mode 100644 index 000000000..26dd2e61b Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C224.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C225.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C225.1/L001_1.cbcl new file mode 100644 index 000000000..87f2be313 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C225.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C225.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C225.1/L001_2.cbcl new file mode 100644 index 000000000..e32b421e9 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C225.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C226.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C226.1/L001_1.cbcl new file mode 100644 index 000000000..e66b64619 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C226.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C226.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C226.1/L001_2.cbcl new file mode 100644 index 000000000..2ab39cc24 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C226.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C227.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C227.1/L001_1.cbcl new file mode 100644 index 000000000..239cba347 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C227.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C227.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C227.1/L001_2.cbcl new file mode 100644 index 000000000..3fff34d48 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C227.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C228.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C228.1/L001_1.cbcl new file mode 100644 index 000000000..c65525762 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C228.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C228.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C228.1/L001_2.cbcl new file mode 100644 index 000000000..d5353d6d7 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C228.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C229.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C229.1/L001_1.cbcl new file mode 100644 index 000000000..65bb9409a Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C229.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C229.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C229.1/L001_2.cbcl new file mode 100644 index 000000000..aa29e5893 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C229.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C23.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C23.1/L001_1.cbcl new file mode 100644 index 000000000..8edcbce98 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C23.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C23.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C23.1/L001_2.cbcl new file mode 100644 index 000000000..848014b90 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C23.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C230.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C230.1/L001_1.cbcl new file mode 100644 index 000000000..0705228cf Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C230.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C230.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C230.1/L001_2.cbcl new file mode 100644 index 000000000..ee496d434 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C230.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C231.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C231.1/L001_1.cbcl new file mode 100644 index 000000000..b73672fef Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C231.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C231.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C231.1/L001_2.cbcl new file mode 100644 index 000000000..1791856a3 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C231.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C232.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C232.1/L001_1.cbcl new file mode 100644 index 000000000..e49dfa77f Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C232.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C232.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C232.1/L001_2.cbcl new file mode 100644 index 000000000..da14ef9f2 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C232.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C233.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C233.1/L001_1.cbcl new file mode 100644 index 000000000..4e6bd205e Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C233.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C233.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C233.1/L001_2.cbcl new file mode 100644 index 000000000..e6ef46a7a Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C233.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C234.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C234.1/L001_1.cbcl new file mode 100644 index 000000000..a09ae6e7f Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C234.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C234.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C234.1/L001_2.cbcl new file mode 100644 index 000000000..a39c687b6 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C234.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C235.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C235.1/L001_1.cbcl new file mode 100644 index 000000000..4d9b8d5b8 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C235.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C235.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C235.1/L001_2.cbcl new file mode 100644 index 000000000..f9b733250 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C235.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C236.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C236.1/L001_1.cbcl new file mode 100644 index 000000000..b535e98f6 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C236.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C236.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C236.1/L001_2.cbcl new file mode 100644 index 000000000..1075d3cad Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C236.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C237.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C237.1/L001_1.cbcl new file mode 100644 index 000000000..76f304436 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C237.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C237.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C237.1/L001_2.cbcl new file mode 100644 index 000000000..b5d411121 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C237.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C238.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C238.1/L001_1.cbcl new file mode 100644 index 000000000..f02020972 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C238.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C238.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C238.1/L001_2.cbcl new file mode 100644 index 000000000..0c95c2b47 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C238.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C239.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C239.1/L001_1.cbcl new file mode 100644 index 000000000..6fefe05cb Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C239.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C239.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C239.1/L001_2.cbcl new file mode 100644 index 000000000..54ce823d2 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C239.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C24.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C24.1/L001_1.cbcl new file mode 100644 index 000000000..3aa23a6e5 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C24.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C24.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C24.1/L001_2.cbcl new file mode 100644 index 000000000..784e08303 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C24.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C240.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C240.1/L001_1.cbcl new file mode 100644 index 000000000..63153fedc Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C240.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C240.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C240.1/L001_2.cbcl new file mode 100644 index 000000000..2cedc3e53 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C240.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C241.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C241.1/L001_1.cbcl new file mode 100644 index 000000000..d0ec8c9bd Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C241.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C241.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C241.1/L001_2.cbcl new file mode 100644 index 000000000..715b55b03 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C241.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C242.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C242.1/L001_1.cbcl new file mode 100644 index 000000000..6ba8a8c47 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C242.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C242.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C242.1/L001_2.cbcl new file mode 100644 index 000000000..4abaff11a Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C242.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C243.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C243.1/L001_1.cbcl new file mode 100644 index 000000000..e376137a3 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C243.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C243.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C243.1/L001_2.cbcl new file mode 100644 index 000000000..06074475a Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C243.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C244.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C244.1/L001_1.cbcl new file mode 100644 index 000000000..265dd8728 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C244.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C244.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C244.1/L001_2.cbcl new file mode 100644 index 000000000..2cce413f3 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C244.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C245.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C245.1/L001_1.cbcl new file mode 100644 index 000000000..9046c37e7 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C245.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C245.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C245.1/L001_2.cbcl new file mode 100644 index 000000000..1d5a0decd Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C245.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C246.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C246.1/L001_1.cbcl new file mode 100644 index 000000000..4d620da4b Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C246.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C246.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C246.1/L001_2.cbcl new file mode 100644 index 000000000..6ecc779ad Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C246.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C247.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C247.1/L001_1.cbcl new file mode 100644 index 000000000..c67f56d1d Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C247.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C247.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C247.1/L001_2.cbcl new file mode 100644 index 000000000..7feca17be Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C247.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C248.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C248.1/L001_1.cbcl new file mode 100644 index 000000000..5e410a4c4 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C248.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C248.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C248.1/L001_2.cbcl new file mode 100644 index 000000000..665e9f50f Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C248.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C249.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C249.1/L001_1.cbcl new file mode 100644 index 000000000..0ae2c567f Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C249.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C249.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C249.1/L001_2.cbcl new file mode 100644 index 000000000..9c134c0f7 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C249.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C25.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C25.1/L001_1.cbcl new file mode 100644 index 000000000..4d5d727a1 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C25.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C25.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C25.1/L001_2.cbcl new file mode 100644 index 000000000..8ae73949e Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C25.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C250.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C250.1/L001_1.cbcl new file mode 100644 index 000000000..75163d282 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C250.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C250.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C250.1/L001_2.cbcl new file mode 100644 index 000000000..d923bec4d Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C250.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C251.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C251.1/L001_1.cbcl new file mode 100644 index 000000000..e8707adb3 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C251.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C251.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C251.1/L001_2.cbcl new file mode 100644 index 000000000..eae92bc49 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C251.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C252.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C252.1/L001_1.cbcl new file mode 100644 index 000000000..954142591 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C252.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C252.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C252.1/L001_2.cbcl new file mode 100644 index 000000000..b833a549e Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C252.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C253.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C253.1/L001_1.cbcl new file mode 100644 index 000000000..460e192c9 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C253.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C253.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C253.1/L001_2.cbcl new file mode 100644 index 000000000..d29d57bb6 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C253.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C254.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C254.1/L001_1.cbcl new file mode 100644 index 000000000..6945a4318 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C254.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C254.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C254.1/L001_2.cbcl new file mode 100644 index 000000000..455750b63 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C254.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C255.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C255.1/L001_1.cbcl new file mode 100644 index 000000000..07676fa24 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C255.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C255.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C255.1/L001_2.cbcl new file mode 100644 index 000000000..ab2bff96e Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C255.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C256.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C256.1/L001_1.cbcl new file mode 100644 index 000000000..afefeb989 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C256.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C256.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C256.1/L001_2.cbcl new file mode 100644 index 000000000..032903123 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C256.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C257.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C257.1/L001_1.cbcl new file mode 100644 index 000000000..56e1ba291 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C257.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C257.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C257.1/L001_2.cbcl new file mode 100644 index 000000000..0664fcfbb Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C257.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C258.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C258.1/L001_1.cbcl new file mode 100644 index 000000000..3016bf5d2 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C258.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C258.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C258.1/L001_2.cbcl new file mode 100644 index 000000000..89dff56da Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C258.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C259.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C259.1/L001_1.cbcl new file mode 100644 index 000000000..4d85fbb5d Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C259.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C259.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C259.1/L001_2.cbcl new file mode 100644 index 000000000..96c339293 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C259.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C26.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C26.1/L001_1.cbcl new file mode 100644 index 000000000..9e6553bc1 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C26.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C26.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C26.1/L001_2.cbcl new file mode 100644 index 000000000..1e2c4de86 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C26.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C260.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C260.1/L001_1.cbcl new file mode 100644 index 000000000..15d2fa54d Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C260.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C260.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C260.1/L001_2.cbcl new file mode 100644 index 000000000..cda46931e Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C260.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C261.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C261.1/L001_1.cbcl new file mode 100644 index 000000000..50e9cf720 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C261.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C261.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C261.1/L001_2.cbcl new file mode 100644 index 000000000..63fd88d34 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C261.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C262.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C262.1/L001_1.cbcl new file mode 100644 index 000000000..67a239869 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C262.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C262.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C262.1/L001_2.cbcl new file mode 100644 index 000000000..62cf39fc0 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C262.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C263.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C263.1/L001_1.cbcl new file mode 100644 index 000000000..0142890b7 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C263.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C263.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C263.1/L001_2.cbcl new file mode 100644 index 000000000..3f9d7014b Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C263.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C264.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C264.1/L001_1.cbcl new file mode 100644 index 000000000..75c10867a Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C264.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C264.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C264.1/L001_2.cbcl new file mode 100644 index 000000000..c1ea01235 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C264.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C265.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C265.1/L001_1.cbcl new file mode 100644 index 000000000..48533e1f0 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C265.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C265.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C265.1/L001_2.cbcl new file mode 100644 index 000000000..41c035acd Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C265.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C266.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C266.1/L001_1.cbcl new file mode 100644 index 000000000..b1fca4e11 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C266.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C266.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C266.1/L001_2.cbcl new file mode 100644 index 000000000..882707307 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C266.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C267.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C267.1/L001_1.cbcl new file mode 100644 index 000000000..923f966f5 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C267.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C267.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C267.1/L001_2.cbcl new file mode 100644 index 000000000..23066edcf Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C267.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C268.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C268.1/L001_1.cbcl new file mode 100644 index 000000000..1b6643e15 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C268.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C268.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C268.1/L001_2.cbcl new file mode 100644 index 000000000..c722ae1b8 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C268.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C269.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C269.1/L001_1.cbcl new file mode 100644 index 000000000..6e67e9331 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C269.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C269.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C269.1/L001_2.cbcl new file mode 100644 index 000000000..926ea5288 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C269.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C27.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C27.1/L001_1.cbcl new file mode 100644 index 000000000..486487487 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C27.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C27.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C27.1/L001_2.cbcl new file mode 100644 index 000000000..1a8bce99d Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C27.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C270.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C270.1/L001_1.cbcl new file mode 100644 index 000000000..ff68c3730 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C270.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C270.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C270.1/L001_2.cbcl new file mode 100644 index 000000000..9c1933873 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C270.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C271.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C271.1/L001_1.cbcl new file mode 100644 index 000000000..4f8bc89d0 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C271.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C271.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C271.1/L001_2.cbcl new file mode 100644 index 000000000..420d20a2f Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C271.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C272.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C272.1/L001_1.cbcl new file mode 100644 index 000000000..2bcdeaafb Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C272.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C272.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C272.1/L001_2.cbcl new file mode 100644 index 000000000..c32e7cf1a Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C272.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C273.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C273.1/L001_1.cbcl new file mode 100644 index 000000000..97c2457be Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C273.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C273.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C273.1/L001_2.cbcl new file mode 100644 index 000000000..3ec9ca426 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C273.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C274.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C274.1/L001_1.cbcl new file mode 100644 index 000000000..c001cf5e7 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C274.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C274.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C274.1/L001_2.cbcl new file mode 100644 index 000000000..957b21dae Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C274.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C275.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C275.1/L001_1.cbcl new file mode 100644 index 000000000..722920531 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C275.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C275.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C275.1/L001_2.cbcl new file mode 100644 index 000000000..3f8b79f5a Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C275.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C276.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C276.1/L001_1.cbcl new file mode 100644 index 000000000..a49b558b6 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C276.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C276.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C276.1/L001_2.cbcl new file mode 100644 index 000000000..f1611c65d Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C276.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C277.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C277.1/L001_1.cbcl new file mode 100644 index 000000000..20c4f278f Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C277.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C277.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C277.1/L001_2.cbcl new file mode 100644 index 000000000..b419fb8e4 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C277.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C278.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C278.1/L001_1.cbcl new file mode 100644 index 000000000..ca02e94af Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C278.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C278.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C278.1/L001_2.cbcl new file mode 100644 index 000000000..e59c6d7d6 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C278.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C279.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C279.1/L001_1.cbcl new file mode 100644 index 000000000..3231891e9 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C279.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C279.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C279.1/L001_2.cbcl new file mode 100644 index 000000000..c9ee6e397 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C279.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C28.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C28.1/L001_1.cbcl new file mode 100644 index 000000000..bf4ea3688 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C28.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C28.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C28.1/L001_2.cbcl new file mode 100644 index 000000000..3869322a4 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C28.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C280.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C280.1/L001_1.cbcl new file mode 100644 index 000000000..81f588bd1 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C280.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C280.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C280.1/L001_2.cbcl new file mode 100644 index 000000000..2b396f89c Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C280.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C281.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C281.1/L001_1.cbcl new file mode 100644 index 000000000..318985e0b Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C281.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C281.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C281.1/L001_2.cbcl new file mode 100644 index 000000000..6d9e25133 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C281.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C282.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C282.1/L001_1.cbcl new file mode 100644 index 000000000..679f9ca01 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C282.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C282.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C282.1/L001_2.cbcl new file mode 100644 index 000000000..15e826f61 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C282.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C283.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C283.1/L001_1.cbcl new file mode 100644 index 000000000..4b0ab41c3 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C283.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C283.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C283.1/L001_2.cbcl new file mode 100644 index 000000000..b6a51217a Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C283.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C284.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C284.1/L001_1.cbcl new file mode 100644 index 000000000..4c1b6b443 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C284.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C284.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C284.1/L001_2.cbcl new file mode 100644 index 000000000..685c288cc Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C284.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C285.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C285.1/L001_1.cbcl new file mode 100644 index 000000000..6c9cc98ec Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C285.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C285.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C285.1/L001_2.cbcl new file mode 100644 index 000000000..e62d277c3 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C285.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C286.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C286.1/L001_1.cbcl new file mode 100644 index 000000000..990f3b80b Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C286.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C286.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C286.1/L001_2.cbcl new file mode 100644 index 000000000..c4af32015 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C286.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C287.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C287.1/L001_1.cbcl new file mode 100644 index 000000000..537ebec15 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C287.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C287.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C287.1/L001_2.cbcl new file mode 100644 index 000000000..e683f66f8 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C287.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C288.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C288.1/L001_1.cbcl new file mode 100644 index 000000000..cfc9b146a Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C288.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C288.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C288.1/L001_2.cbcl new file mode 100644 index 000000000..7b47e3766 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C288.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C289.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C289.1/L001_1.cbcl new file mode 100644 index 000000000..df2afd69b Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C289.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C289.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C289.1/L001_2.cbcl new file mode 100644 index 000000000..a5e363feb Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C289.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C29.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C29.1/L001_1.cbcl new file mode 100644 index 000000000..75afb7375 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C29.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C29.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C29.1/L001_2.cbcl new file mode 100644 index 000000000..1e4f53dc6 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C29.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C290.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C290.1/L001_1.cbcl new file mode 100644 index 000000000..2cde3b1ba Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C290.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C290.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C290.1/L001_2.cbcl new file mode 100644 index 000000000..23b350a5a Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C290.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C291.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C291.1/L001_1.cbcl new file mode 100644 index 000000000..b8820887f Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C291.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C291.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C291.1/L001_2.cbcl new file mode 100644 index 000000000..719d09242 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C291.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C292.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C292.1/L001_1.cbcl new file mode 100644 index 000000000..87413a92d Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C292.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C292.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C292.1/L001_2.cbcl new file mode 100644 index 000000000..0e2b4c09e Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C292.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C293.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C293.1/L001_1.cbcl new file mode 100644 index 000000000..ee450d318 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C293.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C293.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C293.1/L001_2.cbcl new file mode 100644 index 000000000..784ef3fdd Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C293.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C294.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C294.1/L001_1.cbcl new file mode 100644 index 000000000..99ea88bed Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C294.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C294.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C294.1/L001_2.cbcl new file mode 100644 index 000000000..4007149bc Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C294.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C295.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C295.1/L001_1.cbcl new file mode 100644 index 000000000..2fce591cc Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C295.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C295.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C295.1/L001_2.cbcl new file mode 100644 index 000000000..c3742d0ec Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C295.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C296.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C296.1/L001_1.cbcl new file mode 100644 index 000000000..88b8c5799 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C296.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C296.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C296.1/L001_2.cbcl new file mode 100644 index 000000000..aaa4ebb49 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C296.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C297.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C297.1/L001_1.cbcl new file mode 100644 index 000000000..58cb9adc8 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C297.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C297.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C297.1/L001_2.cbcl new file mode 100644 index 000000000..943838af2 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C297.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C298.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C298.1/L001_1.cbcl new file mode 100644 index 000000000..5e2baa88d Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C298.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C298.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C298.1/L001_2.cbcl new file mode 100644 index 000000000..5899b76ac Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C298.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C299.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C299.1/L001_1.cbcl new file mode 100644 index 000000000..06050e4b3 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C299.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C299.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C299.1/L001_2.cbcl new file mode 100644 index 000000000..fc18f9953 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C299.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C3.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C3.1/L001_1.cbcl new file mode 100644 index 000000000..12729060c Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C3.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C3.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C3.1/L001_2.cbcl new file mode 100644 index 000000000..ea1527440 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C3.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C30.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C30.1/L001_1.cbcl new file mode 100644 index 000000000..873093fd9 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C30.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C30.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C30.1/L001_2.cbcl new file mode 100644 index 000000000..9d5b14a2d Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C30.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C300.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C300.1/L001_1.cbcl new file mode 100644 index 000000000..8e4e77c0d Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C300.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C300.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C300.1/L001_2.cbcl new file mode 100644 index 000000000..a3d530649 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C300.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C301.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C301.1/L001_1.cbcl new file mode 100644 index 000000000..d8a0d8f91 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C301.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C301.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C301.1/L001_2.cbcl new file mode 100644 index 000000000..25be5da5d Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C301.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C302.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C302.1/L001_1.cbcl new file mode 100644 index 000000000..9d945b76e Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C302.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C302.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C302.1/L001_2.cbcl new file mode 100644 index 000000000..74ae48faf Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C302.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C303.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C303.1/L001_1.cbcl new file mode 100644 index 000000000..f0d011122 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C303.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C303.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C303.1/L001_2.cbcl new file mode 100644 index 000000000..75168a3ec Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C303.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C304.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C304.1/L001_1.cbcl new file mode 100644 index 000000000..f71fc2203 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C304.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C304.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C304.1/L001_2.cbcl new file mode 100644 index 000000000..feb54ab01 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C304.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C305.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C305.1/L001_1.cbcl new file mode 100644 index 000000000..d7b2d205b Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C305.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C305.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C305.1/L001_2.cbcl new file mode 100644 index 000000000..23f618dc9 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C305.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C306.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C306.1/L001_1.cbcl new file mode 100644 index 000000000..a5d01fab5 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C306.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C306.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C306.1/L001_2.cbcl new file mode 100644 index 000000000..9b12f14bb Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C306.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C307.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C307.1/L001_1.cbcl new file mode 100644 index 000000000..236139113 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C307.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C307.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C307.1/L001_2.cbcl new file mode 100644 index 000000000..894e8a4df Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C307.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C308.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C308.1/L001_1.cbcl new file mode 100644 index 000000000..2d0f79446 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C308.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C308.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C308.1/L001_2.cbcl new file mode 100644 index 000000000..feb164e3f Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C308.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C309.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C309.1/L001_1.cbcl new file mode 100644 index 000000000..ca10cd280 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C309.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C309.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C309.1/L001_2.cbcl new file mode 100644 index 000000000..e13dfb43f Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C309.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C31.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C31.1/L001_1.cbcl new file mode 100644 index 000000000..43a753824 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C31.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C31.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C31.1/L001_2.cbcl new file mode 100644 index 000000000..1d1bdc606 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C31.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C310.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C310.1/L001_1.cbcl new file mode 100644 index 000000000..07046e549 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C310.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C310.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C310.1/L001_2.cbcl new file mode 100644 index 000000000..064b9fe16 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C310.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C311.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C311.1/L001_1.cbcl new file mode 100644 index 000000000..f5d2da21c Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C311.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C311.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C311.1/L001_2.cbcl new file mode 100644 index 000000000..a34de08e6 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C311.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C312.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C312.1/L001_1.cbcl new file mode 100644 index 000000000..bf4544477 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C312.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C312.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C312.1/L001_2.cbcl new file mode 100644 index 000000000..2b0637651 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C312.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C313.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C313.1/L001_1.cbcl new file mode 100644 index 000000000..bbe66304b Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C313.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C313.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C313.1/L001_2.cbcl new file mode 100644 index 000000000..77b143806 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C313.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C314.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C314.1/L001_1.cbcl new file mode 100644 index 000000000..2d0738e11 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C314.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C314.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C314.1/L001_2.cbcl new file mode 100644 index 000000000..b09b90cc0 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C314.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C315.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C315.1/L001_1.cbcl new file mode 100644 index 000000000..8a453b493 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C315.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C315.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C315.1/L001_2.cbcl new file mode 100644 index 000000000..17b9ec91d Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C315.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C316.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C316.1/L001_1.cbcl new file mode 100644 index 000000000..5ddbff4cc Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C316.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C316.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C316.1/L001_2.cbcl new file mode 100644 index 000000000..3f1ec4f1a Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C316.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C317.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C317.1/L001_1.cbcl new file mode 100644 index 000000000..a91b58c96 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C317.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C317.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C317.1/L001_2.cbcl new file mode 100644 index 000000000..20b7b2ec9 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C317.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C318.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C318.1/L001_1.cbcl new file mode 100644 index 000000000..24c61b46a Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C318.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C318.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C318.1/L001_2.cbcl new file mode 100644 index 000000000..c76ba4826 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C318.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C32.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C32.1/L001_1.cbcl new file mode 100644 index 000000000..eeffe718a Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C32.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C32.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C32.1/L001_2.cbcl new file mode 100644 index 000000000..4a38e00f4 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C32.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C33.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C33.1/L001_1.cbcl new file mode 100644 index 000000000..a65c8e278 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C33.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C33.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C33.1/L001_2.cbcl new file mode 100644 index 000000000..6ec72fc76 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C33.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C34.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C34.1/L001_1.cbcl new file mode 100644 index 000000000..9ad787739 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C34.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C34.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C34.1/L001_2.cbcl new file mode 100644 index 000000000..3c2f2dec7 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C34.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C35.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C35.1/L001_1.cbcl new file mode 100644 index 000000000..ff6bdb49b Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C35.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C35.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C35.1/L001_2.cbcl new file mode 100644 index 000000000..031a5eec8 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C35.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C36.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C36.1/L001_1.cbcl new file mode 100644 index 000000000..19bdb8312 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C36.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C36.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C36.1/L001_2.cbcl new file mode 100644 index 000000000..698579eca Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C36.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C37.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C37.1/L001_1.cbcl new file mode 100644 index 000000000..1c193de13 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C37.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C37.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C37.1/L001_2.cbcl new file mode 100644 index 000000000..29f3ede7e Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C37.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C38.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C38.1/L001_1.cbcl new file mode 100644 index 000000000..a9928f986 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C38.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C38.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C38.1/L001_2.cbcl new file mode 100644 index 000000000..9525b50c0 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C38.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C39.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C39.1/L001_1.cbcl new file mode 100644 index 000000000..6b0667e83 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C39.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C39.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C39.1/L001_2.cbcl new file mode 100644 index 000000000..a9ebe106c Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C39.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C4.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C4.1/L001_1.cbcl new file mode 100644 index 000000000..afa64d110 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C4.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C4.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C4.1/L001_2.cbcl new file mode 100644 index 000000000..31a3b1af2 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C4.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C40.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C40.1/L001_1.cbcl new file mode 100644 index 000000000..c75ed2f11 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C40.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C40.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C40.1/L001_2.cbcl new file mode 100644 index 000000000..938e9b2ea Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C40.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C41.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C41.1/L001_1.cbcl new file mode 100644 index 000000000..0eca80d70 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C41.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C41.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C41.1/L001_2.cbcl new file mode 100644 index 000000000..3e93d64b9 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C41.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C42.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C42.1/L001_1.cbcl new file mode 100644 index 000000000..d3989d58e Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C42.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C42.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C42.1/L001_2.cbcl new file mode 100644 index 000000000..bba3dd3a0 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C42.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C43.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C43.1/L001_1.cbcl new file mode 100644 index 000000000..69cfbd940 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C43.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C43.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C43.1/L001_2.cbcl new file mode 100644 index 000000000..affa0f503 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C43.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C44.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C44.1/L001_1.cbcl new file mode 100644 index 000000000..4f62e07e5 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C44.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C44.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C44.1/L001_2.cbcl new file mode 100644 index 000000000..86d918a96 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C44.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C45.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C45.1/L001_1.cbcl new file mode 100644 index 000000000..f1dc74cf4 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C45.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C45.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C45.1/L001_2.cbcl new file mode 100644 index 000000000..7bc134a69 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C45.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C46.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C46.1/L001_1.cbcl new file mode 100644 index 000000000..45f38cdaa Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C46.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C46.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C46.1/L001_2.cbcl new file mode 100644 index 000000000..d2a679d28 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C46.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C47.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C47.1/L001_1.cbcl new file mode 100644 index 000000000..c0384e96b Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C47.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C47.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C47.1/L001_2.cbcl new file mode 100644 index 000000000..df14d39c8 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C47.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C48.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C48.1/L001_1.cbcl new file mode 100644 index 000000000..c6d95354d Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C48.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C48.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C48.1/L001_2.cbcl new file mode 100644 index 000000000..f38ff2b78 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C48.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C49.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C49.1/L001_1.cbcl new file mode 100644 index 000000000..04702d649 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C49.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C49.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C49.1/L001_2.cbcl new file mode 100644 index 000000000..becb44f38 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C49.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C5.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C5.1/L001_1.cbcl new file mode 100644 index 000000000..e1d126e57 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C5.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C5.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C5.1/L001_2.cbcl new file mode 100644 index 000000000..8a2d4b2d3 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C5.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C50.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C50.1/L001_1.cbcl new file mode 100644 index 000000000..0105e0ff9 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C50.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C50.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C50.1/L001_2.cbcl new file mode 100644 index 000000000..271e9c99e Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C50.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C51.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C51.1/L001_1.cbcl new file mode 100644 index 000000000..c2c28be2d Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C51.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C51.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C51.1/L001_2.cbcl new file mode 100644 index 000000000..f1c23c1b5 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C51.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C52.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C52.1/L001_1.cbcl new file mode 100644 index 000000000..366acdeef Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C52.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C52.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C52.1/L001_2.cbcl new file mode 100644 index 000000000..a119dbe5d Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C52.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C53.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C53.1/L001_1.cbcl new file mode 100644 index 000000000..6588ccd94 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C53.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C53.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C53.1/L001_2.cbcl new file mode 100644 index 000000000..f590e958b Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C53.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C54.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C54.1/L001_1.cbcl new file mode 100644 index 000000000..584823da5 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C54.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C54.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C54.1/L001_2.cbcl new file mode 100644 index 000000000..0f9a7ad13 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C54.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C55.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C55.1/L001_1.cbcl new file mode 100644 index 000000000..029e3b04f Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C55.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C55.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C55.1/L001_2.cbcl new file mode 100644 index 000000000..42f3aadd4 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C55.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C56.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C56.1/L001_1.cbcl new file mode 100644 index 000000000..5ce6c3361 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C56.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C56.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C56.1/L001_2.cbcl new file mode 100644 index 000000000..23e566cb5 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C56.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C57.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C57.1/L001_1.cbcl new file mode 100644 index 000000000..e5c66f83b Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C57.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C57.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C57.1/L001_2.cbcl new file mode 100644 index 000000000..ddc372156 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C57.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C58.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C58.1/L001_1.cbcl new file mode 100644 index 000000000..1ac6e4cf6 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C58.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C58.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C58.1/L001_2.cbcl new file mode 100644 index 000000000..374d44358 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C58.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C59.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C59.1/L001_1.cbcl new file mode 100644 index 000000000..fe64b4ee9 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C59.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C59.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C59.1/L001_2.cbcl new file mode 100644 index 000000000..0f01cf3ed Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C59.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C6.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C6.1/L001_1.cbcl new file mode 100644 index 000000000..c3d916498 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C6.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C6.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C6.1/L001_2.cbcl new file mode 100644 index 000000000..16377105b Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C6.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C60.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C60.1/L001_1.cbcl new file mode 100644 index 000000000..577ee9410 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C60.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C60.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C60.1/L001_2.cbcl new file mode 100644 index 000000000..f43b0fe33 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C60.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C61.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C61.1/L001_1.cbcl new file mode 100644 index 000000000..a8c9ecbec Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C61.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C61.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C61.1/L001_2.cbcl new file mode 100644 index 000000000..61a6eb90b Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C61.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C62.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C62.1/L001_1.cbcl new file mode 100644 index 000000000..d440d1056 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C62.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C62.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C62.1/L001_2.cbcl new file mode 100644 index 000000000..e0f19865e Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C62.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C63.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C63.1/L001_1.cbcl new file mode 100644 index 000000000..6957a9df5 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C63.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C63.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C63.1/L001_2.cbcl new file mode 100644 index 000000000..25f74a71c Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C63.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C64.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C64.1/L001_1.cbcl new file mode 100644 index 000000000..0af81bc64 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C64.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C64.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C64.1/L001_2.cbcl new file mode 100644 index 000000000..454ae62e6 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C64.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C65.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C65.1/L001_1.cbcl new file mode 100644 index 000000000..66bfa843c Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C65.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C65.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C65.1/L001_2.cbcl new file mode 100644 index 000000000..bb438333e Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C65.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C66.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C66.1/L001_1.cbcl new file mode 100644 index 000000000..916276135 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C66.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C66.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C66.1/L001_2.cbcl new file mode 100644 index 000000000..973abb670 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C66.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C67.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C67.1/L001_1.cbcl new file mode 100644 index 000000000..d3ed89b51 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C67.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C67.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C67.1/L001_2.cbcl new file mode 100644 index 000000000..a5a5ade79 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C67.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C68.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C68.1/L001_1.cbcl new file mode 100644 index 000000000..de1e195d8 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C68.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C68.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C68.1/L001_2.cbcl new file mode 100644 index 000000000..c7ff2fd45 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C68.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C69.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C69.1/L001_1.cbcl new file mode 100644 index 000000000..bf689b7fd Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C69.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C69.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C69.1/L001_2.cbcl new file mode 100644 index 000000000..e6f826b77 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C69.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C7.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C7.1/L001_1.cbcl new file mode 100644 index 000000000..09da2b699 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C7.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C7.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C7.1/L001_2.cbcl new file mode 100644 index 000000000..15579d60c Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C7.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C70.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C70.1/L001_1.cbcl new file mode 100644 index 000000000..b88c9786d Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C70.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C70.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C70.1/L001_2.cbcl new file mode 100644 index 000000000..97a333533 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C70.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C71.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C71.1/L001_1.cbcl new file mode 100644 index 000000000..0f465988c Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C71.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C71.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C71.1/L001_2.cbcl new file mode 100644 index 000000000..6e0f3344b Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C71.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C72.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C72.1/L001_1.cbcl new file mode 100644 index 000000000..08d326bce Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C72.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C72.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C72.1/L001_2.cbcl new file mode 100644 index 000000000..f0e30df89 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C72.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C73.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C73.1/L001_1.cbcl new file mode 100644 index 000000000..38adc9d40 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C73.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C73.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C73.1/L001_2.cbcl new file mode 100644 index 000000000..63452da43 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C73.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C74.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C74.1/L001_1.cbcl new file mode 100644 index 000000000..50f165990 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C74.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C74.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C74.1/L001_2.cbcl new file mode 100644 index 000000000..25082977e Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C74.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C75.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C75.1/L001_1.cbcl new file mode 100644 index 000000000..f677b9bea Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C75.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C75.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C75.1/L001_2.cbcl new file mode 100644 index 000000000..b66ac8f62 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C75.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C76.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C76.1/L001_1.cbcl new file mode 100644 index 000000000..a46d6d344 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C76.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C76.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C76.1/L001_2.cbcl new file mode 100644 index 000000000..c6e56273e Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C76.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C77.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C77.1/L001_1.cbcl new file mode 100644 index 000000000..9963a9789 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C77.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C77.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C77.1/L001_2.cbcl new file mode 100644 index 000000000..99a82b41a Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C77.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C78.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C78.1/L001_1.cbcl new file mode 100644 index 000000000..dc88db42e Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C78.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C78.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C78.1/L001_2.cbcl new file mode 100644 index 000000000..6dee0a5e4 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C78.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C79.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C79.1/L001_1.cbcl new file mode 100644 index 000000000..d91ea947f Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C79.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C79.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C79.1/L001_2.cbcl new file mode 100644 index 000000000..f243388bf Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C79.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C8.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C8.1/L001_1.cbcl new file mode 100644 index 000000000..255965702 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C8.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C8.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C8.1/L001_2.cbcl new file mode 100644 index 000000000..da001c375 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C8.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C80.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C80.1/L001_1.cbcl new file mode 100644 index 000000000..1139f875d Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C80.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C80.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C80.1/L001_2.cbcl new file mode 100644 index 000000000..1b3cc62c8 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C80.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C81.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C81.1/L001_1.cbcl new file mode 100644 index 000000000..9c463825b Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C81.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C81.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C81.1/L001_2.cbcl new file mode 100644 index 000000000..c58d043d0 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C81.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C82.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C82.1/L001_1.cbcl new file mode 100644 index 000000000..5aafdec3b Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C82.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C82.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C82.1/L001_2.cbcl new file mode 100644 index 000000000..9794e8a6a Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C82.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C83.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C83.1/L001_1.cbcl new file mode 100644 index 000000000..54341a52d Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C83.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C83.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C83.1/L001_2.cbcl new file mode 100644 index 000000000..e2e15a0ed Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C83.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C84.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C84.1/L001_1.cbcl new file mode 100644 index 000000000..e45454a71 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C84.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C84.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C84.1/L001_2.cbcl new file mode 100644 index 000000000..f1128f9e8 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C84.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C85.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C85.1/L001_1.cbcl new file mode 100644 index 000000000..b9d9da272 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C85.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C85.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C85.1/L001_2.cbcl new file mode 100644 index 000000000..1d5a040dc Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C85.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C86.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C86.1/L001_1.cbcl new file mode 100644 index 000000000..4f40b4878 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C86.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C86.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C86.1/L001_2.cbcl new file mode 100644 index 000000000..f1622646c Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C86.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C87.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C87.1/L001_1.cbcl new file mode 100644 index 000000000..eecb980b1 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C87.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C87.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C87.1/L001_2.cbcl new file mode 100644 index 000000000..4e0bf9599 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C87.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C88.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C88.1/L001_1.cbcl new file mode 100644 index 000000000..304dae4b6 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C88.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C88.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C88.1/L001_2.cbcl new file mode 100644 index 000000000..8e76bd58b Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C88.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C89.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C89.1/L001_1.cbcl new file mode 100644 index 000000000..a47e2380d Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C89.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C89.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C89.1/L001_2.cbcl new file mode 100644 index 000000000..9cc2f5237 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C89.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C9.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C9.1/L001_1.cbcl new file mode 100644 index 000000000..805dd82f1 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C9.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C9.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C9.1/L001_2.cbcl new file mode 100644 index 000000000..1cdabe7ab Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C9.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C90.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C90.1/L001_1.cbcl new file mode 100644 index 000000000..18ce9e628 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C90.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C90.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C90.1/L001_2.cbcl new file mode 100644 index 000000000..29edb7122 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C90.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C91.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C91.1/L001_1.cbcl new file mode 100644 index 000000000..a8dc59a1c Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C91.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C91.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C91.1/L001_2.cbcl new file mode 100644 index 000000000..439f1257b Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C91.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C92.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C92.1/L001_1.cbcl new file mode 100644 index 000000000..25d0f1248 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C92.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C92.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C92.1/L001_2.cbcl new file mode 100644 index 000000000..8b22c82b6 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C92.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C93.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C93.1/L001_1.cbcl new file mode 100644 index 000000000..7e3121ac0 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C93.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C93.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C93.1/L001_2.cbcl new file mode 100644 index 000000000..f4d9fd4c7 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C93.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C94.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C94.1/L001_1.cbcl new file mode 100644 index 000000000..32d0eca72 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C94.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C94.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C94.1/L001_2.cbcl new file mode 100644 index 000000000..b26c15217 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C94.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C95.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C95.1/L001_1.cbcl new file mode 100644 index 000000000..7e9a1abe8 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C95.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C95.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C95.1/L001_2.cbcl new file mode 100644 index 000000000..013190c3b Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C95.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C96.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C96.1/L001_1.cbcl new file mode 100644 index 000000000..2c680e8b0 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C96.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C96.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C96.1/L001_2.cbcl new file mode 100644 index 000000000..b1ba38af8 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C96.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C97.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C97.1/L001_1.cbcl new file mode 100644 index 000000000..1fe8cc80f Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C97.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C97.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C97.1/L001_2.cbcl new file mode 100644 index 000000000..29251d486 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C97.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C98.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C98.1/L001_1.cbcl new file mode 100644 index 000000000..4a80addad Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C98.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C98.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C98.1/L001_2.cbcl new file mode 100644 index 000000000..a60b28127 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C98.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C99.1/L001_1.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C99.1/L001_1.cbcl new file mode 100644 index 000000000..e147815f9 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C99.1/L001_1.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C99.1/L001_2.cbcl b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C99.1/L001_2.cbcl new file mode 100644 index 000000000..c8d866fff Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/C99.1/L001_2.cbcl differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/s_1_1101.filter b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/s_1_1101.filter new file mode 100755 index 000000000..76adc5004 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/s_1_1101.filter differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/s_1_1102.filter b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/s_1_1102.filter new file mode 100755 index 000000000..76adc5004 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/BaseCalls/L001/s_1_1102.filter differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/s.locs b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/s.locs new file mode 100755 index 000000000..2db736ff7 Binary files /dev/null and b/testdata/picard/illumina/125T8B8B125T_cbcl/Data/Intensities/s.locs differ diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/fastq/CACCTAGTACTCGAGT.1.fastq b/testdata/picard/illumina/125T8B8B125T_cbcl/fastq/CACCTAGTACTCGAGT.1.fastq new file mode 100644 index 000000000..d501ec2b8 --- /dev/null +++ b/testdata/picard/illumina/125T8B8B125T_cbcl/fastq/CACCTAGTACTCGAGT.1.fastq @@ -0,0 +1,4 @@ +@machine1:HiMom:abcdeACXX:1:1101:1271:1000 1:N:0:CACCTAGTACTCGAGT +GANGTCTCGTTTATCGGGGCATTTTCTTGACTGCGTTAGCATGGTTCTCGTGCACGTATTCGTTGTCTGCTCTCTACTGCTCTTCTATGGTACAACTTCTTCATGTACNAGTATCCCTTGANGGNGCCCCACTCCAACGNCTTGTAAAGAT ++ +!8#!--!F!88!8---F!F--!88F-!FFFFF88F-8888FF!F8888--F-F--FFF88!8!!8F!8!--F!-!FF-!8F---!88--8!F-8-8F8F-!F8F!88!#FF-F-FF-!F!F#!8#--!-8-8F8!-8-!#!--!!-88FFF diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/fastq/CACCTAGTACTCGAGT.2.fastq b/testdata/picard/illumina/125T8B8B125T_cbcl/fastq/CACCTAGTACTCGAGT.2.fastq new file mode 100644 index 000000000..8577e7db1 --- /dev/null +++ b/testdata/picard/illumina/125T8B8B125T_cbcl/fastq/CACCTAGTACTCGAGT.2.fastq @@ -0,0 +1,4 @@ +@machine1:HiMom:abcdeACXX:1:1101:1271:1000 2:N:0:CACCTAGTACTCGAGT +TGATGGTANCTANTCNNTCCCCGCTATGCCGACTGCATATAGTGTGCGCACAAGCACAGGTTTGGTNNCTATTTGTNNTATCCGTCCCCTCTATCNTTGGNGNTGTAATGTGCGGCCTGCTCTCTATAGCGTAGCCTAGTNGGTCTGCGTT ++ +FF88--!8#F!-#!F##F-888!!-F8F8!FF--8!F!8-8!F888!88F!F8-8F!8F!F8F-!F##8!F8FFF-##8F--F88888F!8!888#88!F#F#8FF--8--F-FFFF--F-F-F8F8F8--!8!!F88F8#88FFF-8!8- diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/fastq/CACCTAGTACTCGAGT.barcode_1.fastq b/testdata/picard/illumina/125T8B8B125T_cbcl/fastq/CACCTAGTACTCGAGT.barcode_1.fastq new file mode 100644 index 000000000..3cd7d7a91 --- /dev/null +++ b/testdata/picard/illumina/125T8B8B125T_cbcl/fastq/CACCTAGTACTCGAGT.barcode_1.fastq @@ -0,0 +1,4 @@ +@machine1:HiMom:abcdeACXX:1:1101:1271:1000 :N:0:CACCTAGTACTCGAGT +CACCTAGT ++ +--F!F-F- diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/fastq/CACCTAGTACTCGAGT.barcode_2.fastq b/testdata/picard/illumina/125T8B8B125T_cbcl/fastq/CACCTAGTACTCGAGT.barcode_2.fastq new file mode 100644 index 000000000..decb20468 --- /dev/null +++ b/testdata/picard/illumina/125T8B8B125T_cbcl/fastq/CACCTAGTACTCGAGT.barcode_2.fastq @@ -0,0 +1,4 @@ +@machine1:HiMom:abcdeACXX:1:1101:1271:1000 :N:0:CACCTAGTACTCGAGT +ACTCGAGT ++ +8--F--F- diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/fastq/CCCCGCTTTTGCGTGT.1.fastq b/testdata/picard/illumina/125T8B8B125T_cbcl/fastq/CCCCGCTTTTGCGTGT.1.fastq new file mode 100644 index 000000000..557bdb078 --- /dev/null +++ b/testdata/picard/illumina/125T8B8B125T_cbcl/fastq/CCCCGCTTTTGCGTGT.1.fastq @@ -0,0 +1,4 @@ +@machine1:HiMom:abcdeACXX:1:1102:1325:1000 1:N:0:CCCCGCTTTTGCGTGT +GNTGGCCTGCATGAATTGANCATNAAAGNGGGTCCCGTAGGNANCNTACNGAACATTAGTGCAGTTTNGNCCACNGTGANGCGGNAGGCGGAAGGTNATTNTTAACCTCCCCCTGTNTGTACTGATGATCGGGGGGGCANCCGGATGCGAT ++ +-#-8-!!!88FF-8F!-8F#F-!#F---#8!F--8FFFFF!#8#!#---#--88--F8-8-8F888F#!#FFF8#!88F#FF!!#8F-!F!88!8F#8-!#88F88!!FF!F888!#!F!--888888----F8-888F#F8!--F-!-8! diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/fastq/CCCCGCTTTTGCGTGT.2.fastq b/testdata/picard/illumina/125T8B8B125T_cbcl/fastq/CCCCGCTTTTGCGTGT.2.fastq new file mode 100644 index 000000000..da56cf7e3 --- /dev/null +++ b/testdata/picard/illumina/125T8B8B125T_cbcl/fastq/CCCCGCTTTTGCGTGT.2.fastq @@ -0,0 +1,4 @@ +@machine1:HiMom:abcdeACXX:1:1102:1325:1000 2:N:0:CCCCGCTTTTGCGTGT +ACGCCGTTGTGCGCTATTAACGCCNCTACACAATACCCNTCGTATTCTCCAGGGNACGTTGTGGCNGGGTACCCAGAGGTGGGTATGGTTGTTGGATACAGTGGGGGNCGGCTTCGNTGGTCCCCTTACCGGAGGACCAACGAACCACCCG ++ +88F8FF-F88F8F!8888F88-8F#!!F88-8F!888!#!8--8---FFFFF-F#8-8!-F!---#-!-F8-----8!F!!F-8F!!8!!8-!!!F!-8-FF8!F-8#8-F---F8#!F-8-8----8F888-!!FF!F8-!F88F8FFFF diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/fastq/CCCCGCTTTTGCGTGT.barcode_1.fastq b/testdata/picard/illumina/125T8B8B125T_cbcl/fastq/CCCCGCTTTTGCGTGT.barcode_1.fastq new file mode 100644 index 000000000..f22d51ce0 --- /dev/null +++ b/testdata/picard/illumina/125T8B8B125T_cbcl/fastq/CCCCGCTTTTGCGTGT.barcode_1.fastq @@ -0,0 +1,4 @@ +@machine1:HiMom:abcdeACXX:1:1102:1325:1000 :N:0:CCCCGCTTTTGCGTGT +CCCCGCTT ++ +FF8!FF!! diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/fastq/CCCCGCTTTTGCGTGT.barcode_2.fastq b/testdata/picard/illumina/125T8B8B125T_cbcl/fastq/CCCCGCTTTTGCGTGT.barcode_2.fastq new file mode 100644 index 000000000..54bcd88d8 --- /dev/null +++ b/testdata/picard/illumina/125T8B8B125T_cbcl/fastq/CCCCGCTTTTGCGTGT.barcode_2.fastq @@ -0,0 +1,4 @@ +@machine1:HiMom:abcdeACXX:1:1102:1325:1000 :N:0:CCCCGCTTTTGCGTGT +TTGCGTGT ++ +FFF8!888 diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/fastq/GCTATAGTCCAGCAGC.1.fastq b/testdata/picard/illumina/125T8B8B125T_cbcl/fastq/GCTATAGTCCAGCAGC.1.fastq new file mode 100644 index 000000000..85efcfb0a --- /dev/null +++ b/testdata/picard/illumina/125T8B8B125T_cbcl/fastq/GCTATAGTCCAGCAGC.1.fastq @@ -0,0 +1,4 @@ +@machine1:HiMom:abcdeACXX:1:1101:1380:1000 1:N:0:GCTATAGTCCAGCAGC +GTTGCGCACGCGCGTGGGCNACGNNNCGGTATTCCAACATCCGTGGTGCANGTANAGTAGTATGGTNAAATATCCATCNCAGGCTTCGAATCGGGCTGTGGATGTCCAATNCNTTGTACGGCNACACTCTACCTACTACTACCCAGGCTGG ++ +F-F8-F888F8!F88F-!-#-F8###8!!F888--8-F888!8----8-8#F88#8--8FF88FF8#-8-F-8F8-8!#88F88-F888F-FF8F!!8-8-F---F!FFF#F#F-!-8!F8-#8-888--888!8F-8-88---FF!88FF diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/fastq/GCTATAGTCCAGCAGC.2.fastq b/testdata/picard/illumina/125T8B8B125T_cbcl/fastq/GCTATAGTCCAGCAGC.2.fastq new file mode 100644 index 000000000..1f4c058ed --- /dev/null +++ b/testdata/picard/illumina/125T8B8B125T_cbcl/fastq/GCTATAGTCCAGCAGC.2.fastq @@ -0,0 +1,4 @@ +@machine1:HiMom:abcdeACXX:1:1101:1380:1000 2:N:0:GCTATAGTCCAGCAGC +AATGTGGCCTCTAGNTNGAATTCNGCGGGTGAGGCGTACGTTTCAACGTAGCGAANGTNGGATGTTTGCCCANGACATNTTTCGATTGCNGTNCCTGTNACGATACGTTCCTGTCAGNNTGCGNAGCTGNGCGAATTCACNCTGCTGTCTG ++ +F8-F!F88FF-88-#!#F-F--F#F!--8-8-8!-8----!F!-F-8!FFF8!-8#8F#-F8!F!FF8-F!8#8F--F#FF!8!-!F8!#-F#8!F!!#F!F88-!8!!---8-FF!##-8!!#-F!-F#8888FFFF--#!F88!8!8-! diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/fastq/GCTATAGTCCAGCAGC.barcode_1.fastq b/testdata/picard/illumina/125T8B8B125T_cbcl/fastq/GCTATAGTCCAGCAGC.barcode_1.fastq new file mode 100644 index 000000000..95cddaa53 --- /dev/null +++ b/testdata/picard/illumina/125T8B8B125T_cbcl/fastq/GCTATAGTCCAGCAGC.barcode_1.fastq @@ -0,0 +1,4 @@ +@machine1:HiMom:abcdeACXX:1:1101:1380:1000 :N:0:GCTATAGTCCAGCAGC +GCTATAGT ++ +F8!8!-F8 diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/fastq/GCTATAGTCCAGCAGC.barcode_2.fastq b/testdata/picard/illumina/125T8B8B125T_cbcl/fastq/GCTATAGTCCAGCAGC.barcode_2.fastq new file mode 100644 index 000000000..5e5275ed4 --- /dev/null +++ b/testdata/picard/illumina/125T8B8B125T_cbcl/fastq/GCTATAGTCCAGCAGC.barcode_2.fastq @@ -0,0 +1,4 @@ +@machine1:HiMom:abcdeACXX:1:1101:1380:1000 :N:0:GCTATAGTCCAGCAGC +CCAGCAGC ++ +-8FF!FFF diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/fastq/NN.1.fastq b/testdata/picard/illumina/125T8B8B125T_cbcl/fastq/NN.1.fastq new file mode 100644 index 000000000..2e80ce48d --- /dev/null +++ b/testdata/picard/illumina/125T8B8B125T_cbcl/fastq/NN.1.fastq @@ -0,0 +1,184 @@ +@machine1:HiMom:abcdeACXX:1:1101:1000:1000 1:N:0: +TGATGGTTTCGGGNTTTAGACAGTGTCATGCCTATTCCNTGGTANTCTTTGTTAACCTACGCCTCATGCTCGAATTCGCGNGTNCAGGATAGAACTTAAAGNTCTTTGTCTGAGGCAGAGANCGGAAGNTTTTCAGCTGTGAGGTTCCCTT ++ +888-8F!!88-F8#!!F8FF!F-!--88!!FF8F--F!#-88F8#!!F!F!!8F88F88!!!8FFFF--F8FF88-8F88#!!#F-F88!------FFFFF#!8F!F8F-8---88-88F8#F!-F-8#!-!8--8!------F8---F!- +@machine1:HiMom:abcdeACXX:1:1101:1018:1000 1:N:0: +GGTGGGGCAGCTCNNGTNCTGGGTATGNTTACATGATTCAAGCATACTGCCCCTGATANTANTCGCGGNTTCTGCTANGTATTTCCCGGGAACTTCTTTCACCTATCCGAACAACAGCTTTCCCAGTCAGAGTCAGCGAACATTATAACTC ++ +FFF!-!-!F!!!!##!F#!FF8!FF-!#8!8F-8!----F-!-F8--88-FF!-!8F-#88#-8F!8F#88-8!!FF#!F8!8!!F!F-F-F!8F8FF!8---8-FFF8---8-8--!!-F8-!8888F8F8!F8FFF--!F!-8FFF--F +@machine1:HiMom:abcdeACXX:1:1101:1072:1000 1:N:0: +CCTTGATCNCTCCGCTTGAGTTTNGTTTCAGATGCCTTNAGGAAGCGATATTCCAACTCATGGAGCGTCAGCAGCGATTGTCGTATAGCCGGGCAAATCACTAGGAATGCCNTNTGTGAACAGTGGCATTGTTGTATGGTGTGTCCCCAAG ++ +-F-F88--#F8F888-!8F!F--#-!-F8--8!FF!-8#F8-F8-F88!-F8-8--!FF8FFF-F88!!F8!-!8--8-!!!-F--F!F----FFFF!-8!8-F-F-8F8!#-#--8F--88-!-!!88-!F-!FFFF8F8F8F!-88FF8 +@machine1:HiMom:abcdeACXX:1:1101:1090:1000 1:N:0: +GNATAGGNAANGGAGCNCCTGTAAAGTGCCGGTACATTGAATACCTCTCANATGNCAGAAGTAGACCAGCTTCGNCAGGACAAATTCATCATAGTTTATAGGTAATCCANTTGAGGCNCCTTGGCTTGATATTCTCCCGTCTACCGAGTCT ++ +F#F-F-!#-8#!8---#F8!!F8-F8F-!8-!8-!8!F!F-88F88-F--#FF-#--88-!8F--FFF!8-8!-#FFF8F88F-!!--!!F!8!--88F-F8F8--!--#88!F8-!#F!8!F88F-F-F-FF8FFF8F-!!F8-!-!F-8 +@machine1:HiMom:abcdeACXX:1:1101:1108:1000 1:N:0: +NTCTNANATTAAGTGCGGCAGNTGGGGCCCCCTGGTTTGAGTNAAATTGTGCGTCTATCTTACGCGGANGNAATGNCAGGACCGGGCGNCCTGTAGGGNATCANCCTATCTNCGAGTAAGTGAGGGGANATCGGTTCTCACGAATGCACGT ++ +#FFF#-#F!!8-88-!8F888#F--FF8!FF8!F-!88-88!#888!!8F--F-8!88-F-FF-F!8-#8#88-F#-FFFF8!-8--F#-88--8FFF#F8F-#F-8--8-#!-F-8-8-8-8-8FF-#8!!888-8-88888-!--8F-8 +@machine1:HiMom:abcdeACXX:1:1101:1127:1000 1:N:0: +TTTTCTTTGTTANGCCGTCNATGGGTCCNGGCCCACCGTACANACCCATCAGCGTCTGACGNCCGTACTTCGNTACTTATGGTGACTGTGANTGCCACGACTTGTCATNTACTTGGGGTTGTGANTANTACACCCTATCCGAACTTNAGGT ++ +F8F-8!-!F8-8#!FFFF-#FF--F8!8#8!F-8-!!--8!-#-F-88!8-!FF!FF8F8F#F-FF8!88-8#--8!F-F8--F-!8F888#!!--8!F8888!F!8!#88-F88!!-F!F8!8#88#F-8F!-F!8!8!!8F-F8#88FF +@machine1:HiMom:abcdeACXX:1:1101:1163:1000 1:N:0: +TCCTNCANTCGCACCGGAGAATTCCCACGATTCCCAAGCNAANACGATCTAATCTGAGCTTAGAACGAACAGACTCGGTAGGGGGATATTGTATCGCTGCCGTCGCGTGCTATGCTACGGTCTCNGTTATAATGGCNTTTTGGTCGCTTTA ++ +F8F8#-8#-8F88!F--88F8--!8!F8F8!!F!!FF-8#-F#FF--F!8888-F!--88-888-!F8F!8FF8--8!FF!888!8--F8F-F8F!-!8---88-F8F-!!F888-88F8!F88#F-FF8F-!!8-#!F!-!88-!F!888 +@machine1:HiMom:abcdeACXX:1:1101:1181:1000 1:N:0: +CGCGTGAAACGTCCACAATAGNGACGTCGCGTGATGTTGTTCTANGGCGATACNACGAGGTGATCAGAACNCCTTCAGTTTGTTGGAGTCNCTTCTGGACACCNCACCCGGATGATTAAGAGCTACGCGCTAGCCATATACGANATCCNTC ++ +!8-!88888-!F8!888F!8!#8--F!F!--!-F!-F-!8!F88#!-!----F#---F-8F!8!-8-8--#8-F!F88-!-!F8!!-!!F#8F--F8FF-8!-#-FF-FF8F!FF-!FF8-8---F!F8F888!!--FFF---#888!#!- +@machine1:HiMom:abcdeACXX:1:1101:1199:1000 1:N:0: +NACCCCNGGTGCTCAAAANTTGTAGTCTGGACTGAGNCGCGGAGACNTGGTGGTTGTCCACCGTCGNCTTCCGCTGGCGAATTCTCATATTNTGCNNCAGATACGGGTACCANGNATGTTGGTCAAANCCCTCGTCCCACGCGACNGAGAA ++ +#-F!FF#F!88!8!88-F#-!-F8-!F-8-F88!F8#-!F!F8---#8!--8-!!!!F8-FF8!8-#8F8-F8F-!!-F8F!-F8--!F-F#-!-##FF--!-F8-F!FF!-#-#FF-!888!FF8F#-F8---!8F!88!!8F8#8-88F +@machine1:HiMom:abcdeACXX:1:1101:1217:1000 1:N:0: +CCATCGTCAAGAGGTGCGTGGCACAAATATCGACTGATGTAGCATANGGACGATGTTCANGCGGTGGCTGCAAGAACACCTCCATCTGGGATATTCGTGTCTTTTNACGCGCGAATGGTTTCNCTACTGTCCACGTACACTTGCTTCACCA ++ +!---!!!F-888-!8---!8!88-FF88-F-FF8-8FF8-FFF--8#-!-8!FFFF!8F#F!FF!!F8-F--F!FF-FF!8!8F88!8!8F8F8-F-F-!!8!8-#-F8FFF!88!8-!-88#!FF-F8-!FF!8!8FF-F-8FF8-F-!8 +@machine1:HiMom:abcdeACXX:1:1101:1235:1000 1:N:0: +GGTTTAGGCCACGACNCGTTGCCGNGGGGTCGAGCTTTCTANTCATGGCTTTGTCATGTCGCTGCCATGGACGACAGTCCGGACTCGGGTCCGAGNGCNNGGGCGGTNCTCNGGCATCGAACCAGGTATCTAAGCGTNTCAGGCAATTCAG ++ +F-!-F8-8!F--F88#!F!-F8!!#!-!8!!FF!-FF8F-F#F8---88!!F8!!888-8888FFFFF-FF--FFF-F8--8FF!!8!-8!!---#!!##8-888!!#!-!#F8!F!!FF8--F-8!--F!---F-8#8F-8F-8--F-88 +@machine1:HiMom:abcdeACXX:1:1101:1253:1000 1:N:0: +NGTTGAGNAGTCCCTANTGAGGCATTTCCAATCNTTCGGTGGNCGCTTATCGGGTGGGGATTCGATCGGGAATCGCGCANCNCGTCAGTGTATGATTCNANATCGGTGCGTTCNTAACTTGGNCTATGTCCNCGACANCCTCGGTCTGCTT ++ +#!F-88F#8---F8F-#-F8F!-FF8!8!-88-#-8!F-F--#FF!!8-8F!8F!!F!F8F-88F!--8!8FF!F--!F#!#-F88F!8!F--!8FF8#8#F!-!!FF!-8-!#!-8!-F!!#!!88F8-F#-FFF-#F---!F!!F!!8! +@machine1:HiMom:abcdeACXX:1:1101:1289:1000 1:N:0: +TTCCGAGGCNCCGTACTTTTCTANCNCCCNCTNTGCGTGTTATGCGTAACGTGTCTGTTANTGNCCCGTGAATTAGGAGCGAGCTACTGATGAGGTCGTCCGGGGCGCANTAGACCCCCTTTTCTNCTAACCGNGAATGGTATGCCTGNCN ++ +8!!8-F-F8#!F8!-!F!8F88F#-#!--#-8#!--8-F!-8-8-!!8F!!F8F-!8F88#-!#8!8-888F!-8888!-F--8!8-F8-8F-!-88-8F8-8888---#!FF-!-!8FF-!8-!#FF-8!-F#F-8!8!FF!-F!-F#!# +@machine1:HiMom:abcdeACXX:1:1101:1307:1000 1:N:0: +GTNGTATGTACAGAGACTGTGTCGTTTAGTGGGGTTNGGAGCGGCCGNANTCTTGGCCGCGCNGNCCCTTGTTCTACCGGCAGCGTCAGCTCGTTTATCACCNACNGGAGTCTGCGACTTGTTAGGNCANTACCTATGAGAGCGCNCGCNG ++ +88#-8-8F!8!8F-888F!F-FF-!-F8-!8!8!-8#!-F8!!!8-!#F#-F8!FF!!-F!8#F#!!F8!FF-8--8F!-!FFF888FF!8F!!!-F-!8-F#88#---F!-F-8-FFF!8F-8FF#!-#F---8F!F8--88!!#8-!#! +@machine1:HiMom:abcdeACXX:1:1101:1325:1000 1:N:0: +AACGCCTTTGGATCCCCTCCACGGAGGTTACAGATTAGTAGNCAGGACNCNACNCGAAACGAGTGTTCTGTGAGGGTCATCNTAACGNTNCGNGCAATGGANACAAACAACAGGATTAATCGAGCTAACGNACCTNGATGGTAGCGAGCGG ++ +8--!F-8-!888FF!FF!!!8F-88F!-88---8F!--8--#F----!#!#F-#8--88--88!!!8!F88-F8-F-!F!8#-FF-!#F#-F#---FF!FF#----8-F88F!!8FF-8!---F-FF8F8#F-!F#8F!!8-F-!!8--88 +@machine1:HiMom:abcdeACXX:1:1101:1344:1000 1:N:0: +CACTTCTNGTTCACANGGGTAGCCCNTTGTTTCTTGTTNTTCGCATTGATCTTTTCCGGGTAGCCAATCANCGGTACGGCCCACGGCGTTTCATGTTAGAGTNTGGGGTACAACATCCCTACGCTGTCCACGCTTTGGCACACTNCTATCA ++ +!FF!!-F#!8!-F--#F--88-F!8#-8!-F!!FF!-8#F-F-!F!F8--F-----8-!FFF8!88F-8-#!F8!8!8F!-!8F-8!!!FF--F8FF8!FFF#!888F-888F!F-88FF-F-FF!!F!F!!F!!---F888FF#8-8F!8 +@machine1:HiMom:abcdeACXX:1:1101:1362:1000 1:N:0: +GGGTTAGTCCGCNGNCTGNTNCCTGCGNCACACGACTNATCATCCCCCGNTGTTTGGTTTNTTGTACGNANCATTCNGTCTCAATTCGGATTGGCGTCNTAGNAGAANTAACNNCGNCATCTATNATCTANGCCGTATNTTGGTTCTCCTG ++ +--8-!--FF-!8#!#-FF#F#F!--88#-8-F8F---#888F888-!--#!F-88-8F!!#F8888-!#8#888!F#88!F8FFF-8-88F8!!FF8!#F8-#--FF#8-88##!F#!-8!-F8#8!F8F#!F-88-!#-!--F-8F8F8! +@machine1:HiMom:abcdeACXX:1:1101:1398:1000 1:N:0: +CTCTCTTNTTTCTGCTGAAGACTGCGGTCCTTATGAATTNATTTACCTGTACCCAGTTGTGTTAGGTACATGNTTTGCANGAACAGACATTCGTCGCCCAGCTACCGTCACTCCGANAAGGTTAACCTGAGATCTGNANAGCANGCGNATC ++ +----88-#FF!-8F8--8-!F8!--8F8!F!88F!----#-8!F8FF8FF---88!F8-88-8-F-8888!-#F-F--8#!F---FF8F8FFF-88!8F----8-888-F8888FF#F-8!--8F8!-888F!!-!#F#--F-#8FF#88! +@machine1:HiMom:abcdeACXX:1:1101:1416:1000 1:N:0: +AACTTGGGTGCCCGCNNGCTCTCGAGGCTNGNACGTCATGCTTCGNTACGGTTACGCTNCTGGATCGGCACCTCAGTNTATNAATTGGAGCCCACNGTGNCGGATATGNTGNTGCGGATTNCATNGGTNTGGCGGCAGGGAGCCNCCCATT ++ +F-!F-8!-!F88-8!##!!---F!--!-!#-#F8-8-FF--8F8!#--FFF8-F-8!-#8!88-8F-!F8-F8-F-8#!-8#88-FF-8!FF888#!88#F8!8FFF8#!F#8FFF8FF8#8-8#F-8#--!F8!-FF!88!!-#!--FF! +@machine1:HiMom:abcdeACXX:1:1101:1434:1000 1:N:0: +TACTCNGTGGACTTGTATCCNGGACTTTCTCTCTGNTACTGGGTTNCGCCGAACTCCCCGTTNAGCCATCNCGGTGCTGGACCACANATCGCGTCNGACATGCGCACTAGNCGAACCCTATACTCTANTTCNCCTTCGCTTCGGCAGTTGT ++ +-888!#8FFF-F!-8!F!F-#!8-F888F8-8F!8#!FF!!8-!-#-8F!!8F8-F88!-F!#-!8-88!#-F8F88!F8-!F-F8#F!F!F!--#8-8-!F8!8-F-F-#FF8F-F8!-!88-!8F#!!8#88-8!F!!8F8!-F88!FF +@machine1:HiMom:abcdeACXX:1:1101:1470:1000 1:N:0: +NATCTTTGGGATCATGAATTAAGGATTGTCCATGCGACAAGCNATGTACNACAGCGNACAGAATTGNTACGATGAACGTCGTAGTTGCGTTACCAAGGCACTAGNATTACCCTCTNGGCCTCGATTCGNCCACCCTCTTGGNGGTCCCGAG ++ +#---FF8F888-F8-8F-!8F88F88FFF-FFF-!8F!F-!!#-88F--#F8888-#F8F!FF8--#!-8F88-8FFF!F8-F!F8-FF!88--F-F888-8--#8F88--FF8F#88-8-F!-F8-F#F8-!8F!F--F8#-F8!8-8F8 +@machine1:HiMom:abcdeACXX:1:1101:1488:1000 1:N:0: +GGTCCTGTTTATGCGTTCGCTGANGNTGANATCACTGCCGGATGGCTTNATAGGTTGNGTNATCTTACTGCGGGGCACTCAAGTTCCGCCCAAGCANGATTGGATTAATNCAGAANNATGNCGGTNCCGCGNGCCNTGTTNAATTTCATCT ++ +--!F-!FF-F-8FF!!F!F!--8#8#FFF#F!!8!F88-!F8FF!-!-#-!8!F!--#!-#8-----!F8!!!F88F-F8F-8FF8!F!8---FF-#--F-FFF-8-8F#FF88-##88-#FF8F#F----#-FF#8!--#-F-F8FF88F +@machine1:HiMom:abcdeACXX:1:1102:1000:1000 1:N:0: +CTTTTCGAGCATCGTACCATAGNTGTACGTCGTGTANCCCTAAGTGGCGGACTCCCGCCTTNGGACGGGTGCCCGTTTACCCACTNAACCACACCTGAGTACCCCACGGCGCAGCTCTATTGCTGTCCTCTTCTGCNTGATNTATTTGGNA ++ +--FFFF-FF-8-!!--!88F--#8!88--8---!-F#!8F-F8F!!!8!88--FF--F-F-#8-8-!!88-!8F!8FF-F-F8F!#---8F88!!-8F-F--8F-88!-!8-F!88FF-!88FF-F88!F-F!!F-#-F88#!88-!-!#F +@machine1:HiMom:abcdeACXX:1:1102:1018:1000 1:N:0: +NGGAAANGGATAANCCAGACACCCAANGGATATGTAGCATTGTTATACCGATCCTTGCCGCTTTTTGGTAAGCAGAGGACCATACGGTAGGGNGTGACCATGCTTCAGTCCCGGTTATATGCACTGGGCAGACGGCTGTCNNCTTTCGTCA ++ +#F---F#-!-!--#F88F8FFF!8-8#F-8-F---F8!F-F!!!-8-F-F88FFF888F!!-!8F!!!F-F--F-8F-F!F88F8!F!F8-!#!FF88-8-8-!!F8!-!8!-!!-FF-----F8--!88-8-8F-F!--##F!F-F-!-F +@machine1:HiMom:abcdeACXX:1:1102:1036:1000 1:N:0: +CAGTGTTTGTTCGAATCCGCTCCCTTCTGCTGACGTGGGTNNNNGGNAACCGAAACGCTTTTCTCCCACNCCGGNGTCGTTCAACTCTANATGGGACAGCGCATGGTTCGTCTANGCNTGACTCGTGGCANACGTCCTACGACCGCTAAAT ++ +F-!8--!F-F-8!F8F888!!!F8!F-8F!!F-F-F!-!F####!!#-FF8!F-F!8FF--8F-8FF-!#!--F#FF-!8FFF---F!-#8-F!!8!--F!FF8-88FF8--88#F-#!!-FF!F---!F#8F--88!F-!--!8!8F8-8 +@machine1:HiMom:abcdeACXX:1:1102:1072:1000 1:N:0: +GCGCTTGTTCCGATTTGTNTGGCGCTGCGGCAGCCTGATCGGNGCGCCTTGGTNGAGAGGCGCACTTGCACTANCGNCGGGCTACCGCCANACGTTTTCTCTGCCGGNAGCCGTATCCGGTTGGATNTTCCGNCCATCCACGAACTTCATC ++ +F---F!!-!8!F8F8--F#8F-8888!!--F8!-88-F88FF#!88F-F-FF-#FF-F-FF!-F-!FF!8--F#-!#F8FF-F8!FFF!-#F!F8F8!8FFF8!-88#--8!FF8F-8!F8-!8-F#8-!--#FF8!!--!!FF8FFF8!- +@machine1:HiMom:abcdeACXX:1:1102:1090:1000 1:N:0: +GCCTACGCATCCGCCCNCACTGNATGGGTGAGCCNGNACTAAGCTGTAGTGCCTGATCCCTCCAGGAGCCCTTTANTGAATCGGAACGCTATGCGACTTGTGATAACGAAAATTTCAGAAGTTNATCGCCAGTGTGGTTCTTCCNAACATG ++ +!-F-88F88!!8!--8#---8!#F8F8-!F--8!#8#8-8F-8-!-F888FF8!8F88!-F-F8!8F---!F8!-#8F-F8!F--8F!!!8-F8F8FFF!!!---8!-8FF8F!-8-!FF!F-#-FFF88-8!!8!!8-8!F-!#FF!8!- +@machine1:HiMom:abcdeACXX:1:1102:1108:1000 1:N:0: +TTANGGGGAGTGCNAAGGNCTTANAGTTCACCGAGCCCATAGCCTCNTGTTGTTGCGNGGGGGGTTCCTGTGCTGCCNTTGCGCAGAGCCNGTTTATGCTGAGGTNGCGGAAGACCAGTCAGTNATTGATGGGGGTGGGAGAGGGAANTAG ++ +8!F#8-8!--FF-#8-!!#8F--#-F!F8-!!!8F!FF-88!-!8F#8-F-8!888F#FF!88!8-8!-!!FF!F8F#!-8-!!-F8-F-#!!!F-F8FF-FFF-#-!F--FF8-!-F!--F-#-FF!F!-F-8F8---888--8F-#8-8 +@machine1:HiMom:abcdeACXX:1:1102:1127:1000 1:N:0: +GCCNAACGATCTTNTTTGCTCNNCGTGNTGCTTGGTCTTCTTGTCTCTAACTANCGTGTAGTGAGAGTNTCTCTCTCGAGCGTNTCTGGATTGCNCGACGGACGAGGAATTAGTGCTCAGTGTATCGGACCNTTTTCTGGCCGCATGCAGC ++ +8!-#8-8!-F!-8#!8-!88-##8-FF#FFFFFF!!F-F-F-FF!F--8-8-8#!!!!!88-!F-F-!#8---88!FF8-FF-#-!8-!88-8!#!8--F-FF8FF88F!F8F8!!8!-F!88-!!-F8!F#!8---!-!F!--8--!F!8 +@machine1:HiMom:abcdeACXX:1:1102:1163:1000 1:N:0: +GATACGGTGTTATTCTTCTTGATTTGACTACGNGTCCGACAACNTATTCGTGGAAACACGGCCCAATAGCGCTNGCCCNACAGCTTTATAGTGTCANCAGTGATTACGTCGNTGTCAGGGTTTACAATGNAGNGCAAGCGTTTGGCGGCGA ++ +!-!888F-8!!8!8--88!888---!8FF88F#--!F8-!-F8#F88F!88!!F-8F8-8!--!-F!FF!8-F#F!!8#-!F88F-!-FF!8FFFF#F-88F8F!8!!8FF#!8-!F888F8F--FF8-#88#-!--F88F!-F-!--!F- +@machine1:HiMom:abcdeACXX:1:1102:1181:1000 1:N:0: +TAGCATCGTAAACGGGACTTCGCTAGTCCAGTCTCTTACTAGTCCGGNTNTGGACTANNGTTNTGTANACCCGACTCGGANTNCATTAGTCACNCAGACTNCTGTNGNCATCAANGACCCNACNCCTCCTTCCCAGATAACCGTTNGTTTC ++ +-F!!8F!F!F--!F-F--F!-!---8F!!F-FF-!F8F8F--F--8-#-#-8!F!!F##-88#-8F8#-!-8F--!-!!8#8#8-!F88-8--#-F--!-#!---#-#F-8FFF#8888F#8!#F-888!!!-FF-F!FFF!!!F#8!F88 +@machine1:HiMom:abcdeACXX:1:1102:1199:1000 1:N:0: +CTAGCTGTTGCGGCGTTCACGGTGTCGTGGNCTTGGACCACGCCATCCCTCNAGNNCCTATAGTGANCTCAAATGGTGGTCAATAACTCAGGTTGCTGCGCTCCNTCNTGCAATCCCTGNAAACCACCGNTGGGCCCGGCAGTAGAGCTNN ++ +8F8!F-8F-8!!!8-!-8-!!!!F-!!8!-#8!!!-FFF888!--!-8F!8#F-##!!8F8-8!--#8!!-F-!88!!F!!8FF---!F88-!8--!!!-8F!8#88#!-F-8-F8F!!#--F8F8!8-#-8!F!!-F88F-8F-F!-F## +@machine1:HiMom:abcdeACXX:1:1102:1217:1000 1:N:0: +GGANTCCCCGTTNCAGTTCCTCTNCGCCAACGACTATCAACAGCGCGTACATTGGGCTGTGCCCTTCAGTGGGTTANGGCTTCGTNCGAAGTTCGGTTATGTCGTTTGNCCTNCCCATGNACTAATTCTATCTCCCATGNTATTGCTCCCG ++ +8F-#F--8!!!F#!88FF-8F8F#-FF8F8-!-!-F!-F-8-FF8F-8F!--8---F-8!!FF!F!F8-F-F-!!8#-FF!F8F!#8!---!-F-8-!F!F-F!!!!!#F8!#8!-F!8#8F!-F-8--F!-8!!-F-!#F8F--F8!FF! +@machine1:HiMom:abcdeACXX:1:1102:1235:1000 1:N:0: +TCTCNCTATCGTTNAANTATCACCTAGTTGGTNGNGGTGAAGTTGGATCTTTCTCTTATACACGGCAGACGTGCCGCTGAGGANTTCGCCNAGTAAGCGATCTTGGTTGCTCCAGAGTTGCGTGANTCGCTTAAAANGCGCGGCTGTCACA ++ +F!-!#!FF-F8!8#88#!FFF8-F-F!FF-!F#!#!F!-F--8!8!-!FFF-8-FF!--8F-!--FF-F8F8-!-F-F8-F!8#!F!888#8!!-888!-!-!FF!-8!!!8F88-!!--F-!!F#!F!88-88-8#FFF--!F8-F-8-F +@machine1:HiMom:abcdeACXX:1:1102:1253:1000 1:N:0: +CCTTCACACGTGACNTNTATCATTCTGTTCTTGTATTTGGATTGCCCTCANCNATATNGGCATCCTAAGCCCGGTNTGGTANTATGCCTCTCCTCGATCCCGACANGGTAACGTCCAAGGGANGGTCAGCTNACGAGATGGAGTTCAGGTC ++ +F8!F!-F88F8-8!#-#F8F!-F!!8!F!!-!F!-8--8FF-!8F-F!-8#!#--FF#8FFF-F--F8!-FFF-8#!8-FF#FF!F-8--!888!----!F8F88#F!8F8-!!!-8-F-!-#F-----!8#--8-!FF88FF-8F--!F! +@machine1:HiMom:abcdeACXX:1:1102:1271:1000 1:N:0: +GCCAATTCCCAAAGTGTCGCTCCTTTGCGCTTANTATGCGGTCCTCTACGTTACTNGGGCCATGGNGGGAACATNTTCNCAGTCTACATTGNNGGGNGTGCGGCTTTNCTNNCCTGTTCTNNGTCTCTANTGGTNGNCTCCATCCCGGCAC ++ +!F-F8FF!-!8-88-!--F-8F-F8F8!FF!!-#FF!F88F8-8--FF8--!8FF#!!8FFFFFF#8F8-88F8#!8!#--F8!!F!-F-8##!8-#8-8F-8!!-!#F8##-F-!!-8F##--F-!-F#!FF8#-#8!F--888-8F-FF +@machine1:HiMom:abcdeACXX:1:1102:1289:1000 1:N:0: +GCGTCTCAACATATNATTTATTCATATATGANTTAACNCAATCAGGAAACACCGGGACTTATCCGTNGGGTGCTNNTGTCCTCGTCTTGGTGCGCTCATNCTCTTTCCAGGTTTTAACGAGCGGACTCGATCCACTCTACATGGTACTTTT ++ +!-!8!!8FF----8#F-F8FFF8FFFF888-#!8F8-#!88!FF-888---8!8----888-!F8-#!-F!!8F##F8!-8!8F8F8-8-8F-8F!-8F#F8-!!----!-8FF!8FF!-FFF88-!-F-F-!8!-F8F!8F!-!-88!FF +@machine1:HiMom:abcdeACXX:1:1102:1307:1000 1:N:0: +ATCCGCATTTAGATCACTTTTCCNTCCCCATGCGATCATTGATGCCTCNGAAGTTACTGCCAAGTACCGCGNNCTCTGTCTTCCTTGGGGTTATTGGATGGGCTCCCCTGAAGGACATTTAAACACAGGATGAGCGATCCCTTCTNGTCAG ++ +-!!!88-8-!888F8F!!!8!-F#------8!!-F8---!8-----!!#8-FFFF8-!8-88F!8-8-!-F##F!-F8!8!FF-88!888FF-F8-FF8F!8F-FF-!8FF-8-8-F-88--F88--F----8FF8F8!8F8-!8#-88F8 +@machine1:HiMom:abcdeACXX:1:1102:1344:1000 1:N:0: +CTAGTGCAGGNNTGCAATCGTTGTGTCANGTGTTCTCGGAGAGAGATTCCGGNTCTTAGTTTTATNGGGTTGGTCTACNGCGNGTTNTCGTTTTTTAAGATTAGGCNCCGAATGCNCGAAGNAAAATGATGTCTGGCATTGTCTTCTNCGN ++ +!--!F8!88-##F---F-F!!!!88!-F#!!FFF--F-!FFFF--F-F!!!-#8!F-F-!!8!F!#!8F8!8-8F-F-#--F#8-8#!!-!-!FF-8---8-F8--#8!88--!F#!-F8F#F88FFFFFF!-!8!F-!F!8-!-!!#-F# +@machine1:HiMom:abcdeACXX:1:1102:1362:1000 1:N:0: +AGGGNCACTTTCGATTGATGNAATTCCATCCTATATCGATATTATTGTGTCCGCCTCAACTGNTGTCGCAGAATGCGCAATGACNCCACCNATGCAAGCTAGACGCGTGCGTCTTCGTGAGGTNAACTTACGATCGCTGGCCATATTGAAA ++ +8--F#8F88-FFF-8!!8FF#-FF-!-88FF-8FFFF!-FF--8F!F!--!F8-8FF-F-8!#8!8F!88FFFF!F-F-F8!F!#-8-8-#--8!-F88F-FF88F!FF!8!-!!!8F8F8-F#8F-F8F--FF!888-88!-!F-F8-F8 +@machine1:HiMom:abcdeACXX:1:1102:1380:1000 1:N:0: +ACTGAGTGGTATCGGACACCGANGCGTTAGNGGGTACGGCNGTGTTTNTGACCAAAGTTTCATCTCATCAGACATCCGTTTGGGCTGCNGCTTTGGCGCCATNGCATAGTGTCGGATCGACGTGTCACCCCCAATGCCTTGGTATTCGNTG ++ +8F8!F8!8!F-8F8--!-8!-8#8!-88--#F-8-8!-!8#8-F!F!#888!8F8FFF8F!8-F!8F8!F--FFF88!!FF88-F8!8#F!F8!8-!F8-8F#!-888F-F88-F8!FFF-F-!88-F-F8-F8-!88FF8-F-!F88#!- +@machine1:HiMom:abcdeACXX:1:1102:1398:1000 1:N:0: +NTCANAGGGCTTCGGCGAGCCNGTGNNCCATTTTCTGGGTAATCTCGATAGCGACCCGTNCGAGANATTTTATGATTGCGTTCGAAACTTAGTTATGGTGCANAGGCTNAATGGGTCCTGACTGAGTTTAAANGCGTTCACNCCCTTAGTC ++ +#-F8#F-!!-!-!F-!!88!-#-8F##F8-F8-F-888F-8-!-!!88F---8-F!F!!#F-8F-#---8-F8!8--8!FF!8!FFFFFFFF-!F-88!F-F#FFF88#8-8F--!-!F!-8FF8---8---#!F8FF!8F#F--88F!!8 +@machine1:HiMom:abcdeACXX:1:1102:1416:1000 1:N:0: +TGACTACTTAGTAACGGNGNCCGTGGCCGCTACTGCGCCGAGGTTTTTATGTTTGNCAACTGGAAGGAGGCAATAAACTAAGANCGATTGGCCCGNTAGGCNNCGCGTCGGAACAGTTTCTCGCAATCAACNCGTCGGCCNATTCAAGCTC ++ +!--88--FF-!!F-F-!#!#-88F-!-8F--8!-!8F!----FFF8!8F8FF!!-#FFF!-!88F-!FFFF8F!F-88!F8!-#-F8!8!8-F8-#!F!8F##!8-F!-FF-FFF!F-FF-F8!-F8FF8F#-8-F8--F#8F8!FF8!F- +@machine1:HiMom:abcdeACXX:1:1102:1434:1000 1:N:0: +CGGGGACAGTGTCATTATCGCCNCCGNGCAGGNTTAAGNCNTNCCGGNGGGGGCAGTGCTATTCCGATGTCCCCGNAATAGTCNTGGGTCAGTACCCATGCCCCTTATANAGCNATATNGTAGNCAGCGGCTTGCGGCTCAGCCCATTTTA ++ +-8-8---F!8!-8-!!FF8!!-#8!-#8F-F8#F--8F#-#8#FF8F#-8FFF8-!8-!-8FF!-!-88F88!-!#8F8F-FF#!!-F888-F-!-888!FF!8FF8F-#88!#888!#8FF8#!888!-88!!8--8!!-8-FF-88!8F +@machine1:HiMom:abcdeACXX:1:1102:1470:1000 1:N:0: +CAGACCGCGGCTCTGGATCACCTCCGACGGGTAGTGACANCTACCTNAATCCGTCCAAGCAATGTGCAGTTCTTAATGACTTGGCTCGAGTAGTCCTGACCAANGAACGGACGTTCTTCGANGATAGGTGGGAGNTGGCTTCACGCTTTAC ++ +8FF8-FFF!F-8--F-888-!!-!-8--8FFFF!!F8FF#!!F!!8#F8!8F8-8-8-F!--8-F!8----!F----8-8-F!!-F!F-!F-!!F-F!FFFFF#F--F----!!F-!!F--#88!F!F!8-F--#-F8-F-!-!!-!!!-F +@machine1:HiMom:abcdeACXX:1:1102:1488:1000 1:N:0: +CGCTGTGCGTAACTTCCATGAATATCGAGGTGGATCTCNGTAGTGTTTGNACNATAGGTACAAACGTCCAACATGTCACGTCGAGAACGCCCCGATGTGCGCGAGAAGTNATGAGCGTATGCAGGGCGTCAATTGCCCTTGAGAAGGTGGG ++ +FF--8F88!!-8-F8!-FF!88F-!F8F!F!!F--F88#!88-F-F--F#8-#8-8-8-8!F-88!8!!FF88!FF!-8FFF--8-8F8-FF8--8FFFFF-FFF8888#F8!F!888-F!--!88-8!---FFF-!!F!FF--8F88-!! diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/fastq/NN.2.fastq b/testdata/picard/illumina/125T8B8B125T_cbcl/fastq/NN.2.fastq new file mode 100644 index 000000000..e559f468e --- /dev/null +++ b/testdata/picard/illumina/125T8B8B125T_cbcl/fastq/NN.2.fastq @@ -0,0 +1,184 @@ +@machine1:HiMom:abcdeACXX:1:1101:1000:1000 2:N:0: +CCTGAAGAGNCNCANCNCCANNGGATGANAGTGACCACGGGATGCNAGTGCCCACGATGCGTAGGACGGGGAGCCATGATCGTCCGGGTTTGGCGTNCTATCGTGATAGGAGACGGTGCCCAGTGATGCCNCCGCGCACTGNTAACCCAGT ++ +F-!F8--8F#F#88#-#-FF##F-8!-8#88-F-F-F8F-F-F8F#-8!--8F8-!F!8F!--8-8!FFFFF8F!FFF-F-8-FFFF!8--88!8-#88F!88-F-F-F-FFF8--8--!!-FFF-F!!!#FF8-FFF!--#FF-F!-F-! +@machine1:HiMom:abcdeACXX:1:1101:1018:1000 2:N:0: +CCTCGNTAGGATCATCCTCGCGTGCCATCGCNGATACTNGCTTTATAACTTTTTAATACCACCACTTAAAGCNTTAGNTNTGCACAAGGTCGTACTAAAGGACCCGCTAGCGCGTGATCTGTGGTCCCACAGAGTACNCCGACTACTNTTA ++ +FF!8F#F88F-!F88--FF----8-F88FF8#!88-!F#-FF-8FF--88!F!FF8FF!8-F--8-!88888#!-8!#F#88F888-!--F--888F-8F-FF8F8---88!F!-FF!-!--FF--F88!-!-!FF!#!88F-88F-#88F +@machine1:HiMom:abcdeACXX:1:1101:1072:1000 2:N:0: +NCGGNCTGGTACCTATCGCGACGTCCACATTGTTGTATTCNGTTNCACAACCGTCTAGCCTTCTNTACTACCGCTAAGCTTAAANCCAACTGGACAGTGGGACACGGCTNCTCNGTCACAAACACCNACACAGCCTGTGCNNCACCTCAAG ++ +#FF!#F-8--8!-8FF-!-F--8!FF88-!-8-!-8-!!8#F8!#F--8-!8!--F88-F!F!!#88!8-F!----8888!-8-#88F-FFFF8!FF!!8F-8F8FF--#-F!#!!-8-88888--#FF8-FF---!!8-##-88!-F8-- +@machine1:HiMom:abcdeACXX:1:1101:1090:1000 2:N:0: +AGAGTGGGGAGAAGCGGTGGTGTGTTTAGATGTCGAANCATCGCCAGGTATTCGCGTGGTTTGTGGGCGCNCACNCTCATGAGTCACAAACTNCTTACATATCTTCGGGTTTCCAGTGGNTTCGGNCGCATCGTCCCCNNGGCATTGTAGC ++ +F!8!8!-!888888-8--FFF!-F!88FF8F-!F-88#!8-8F-F888FF8!88!--88FF!-8!-F!8-#-F!#!F-F!8F--FFF8-F8!#-!!F--F-!8!!-!-8F-8--8!-!!#FF!--#8!888F-!F8!-##F-!--!-888F +@machine1:HiMom:abcdeACXX:1:1101:1108:1000 2:N:0: +TGTGTGNACTATCAATCGACCAGTACTTAGTTCAGCACCGCCCTACTCGGCACTGCTAGCGGGTCGACCTGGATAGCCGTAGCGCGACNAGCGATTGTCTTGAGTGCTCGCCAGATCCTTCTGTCCTGTATTCATACANAGTGGGAAAGGG ++ +88!F8F#--!-8!FF8F!FF--FF-!!!--!F8F-!-!8F--!88FF!F-F---88-88-!-!!FF8!!-FF8!----!FF--888F!#F!88-8!-FF!F88FF8--8!-!8---!-888-F!8-8-F8-!88-FFF#-8-!!--F-88- +@machine1:HiMom:abcdeACXX:1:1101:1127:1000 2:N:0: +GCTTGCCATTTNCCGGACTCTATCCGTGCTCGTAGCACACNTATCGGCACGCCTTCNATACACTCTGACGACNGGCCCCTATGGAATGANTNGTCATCTACACCCTACTCATGAGATTTTAACGGGACAGTAGGCTACATCGGGTCAAACG ++ +F!888-FF!!!#--!F-F!F!88-F8!!!!-!---!8!F8#-8F!F-!FF!F-8-8#88F8-FFFFF-!--!#8F!F!-8F!F-F88F8#8#F88888--8-88!!F-8FF8-F!F!FFF-F-F888--8FFFFF--88-8-8--!FFF-- +@machine1:HiMom:abcdeACXX:1:1101:1163:1000 2:N:0: +GGNGCGCNCTCCGCACGCCANTAGCANCTTGNGTAGGCCCTTNTTTCCAGTTTCTGGTAGGTCTCGAGGCGTATCGTTTNCGGCGTCTTTCCACTGAAAGGGGGTCTTAGGATGGTATCTGGTNGCGNACGTGAGTGTATCGCACGTACCC ++ +F8#!8-!#8!8-8!88-!!-#8-!8F#8!!!#F!F--!!---#-!---8-!-FF!8!!F!8-8!!!F!--F!888!F--#F8F8-F8!F!-!8F8!-F--8!F!F8FFF!F-!!FF-FF88F8#---#8--FF-!!F!-F8!F888-FF!! +@machine1:HiMom:abcdeACXX:1:1101:1181:1000 2:N:0: +CCAGNNATTNGTACATACATTCACTCANGATCCGNCGATACGGTACCNTGTCTATTGANNAGTCACCGTCGGTCGACACCGTAGACCTGGTACGTNACTCTGTATNNCATAGTTTAGTNAGGCGTTGNCGGANGGATTGGCTNGCNATTCA ++ +!FF!##F--#!-F8--F!-!---!F-F#--8-F8#F-8!-8!8!F8F#!-F--8-F--##FFF-8F!!!FF!-8-FF-8!F8-!-88-8FF8--F#8-!8--!-F##FF!-888F--8#F8F-!!!-#F!-F#---!!FF-F#!8#88!-8 +@machine1:HiMom:abcdeACXX:1:1101:1199:1000 2:N:0: +TTTGAAATAATTGGGGCNGAAAAGCTTGCAATGTGAACTAGGTATGCATGNCANACGNGCCGTGCANNTNNTTTCCGAGATTGATGCACTGCGAATTAATGACTAGGGACTGACNNCGCCCCGCGTCCGGTCCTGTTTGGGAGGTAATTTA ++ +!F-FF---8-!F88F8F#--F8-F-8F-88-8!-F-88F-!FF8!F-8!8#!-#F!F#8--F----##-##!-!8-8--8-F-F-!!F8!8-F-F8F--8F-F8-F---F!8FF##88-F---!-8!!-!888-!!F8!8F-8!--8!!F8 +@machine1:HiMom:abcdeACXX:1:1101:1217:1000 2:N:0: +CCCTCCTCTCAATTATTGCTCTCATTCTCCNATTCGANNTTACGTTCTAGACGGTCTGNCAACCCGATTNCGTAANAATTGCGGGATCTTCTAATCATTAGTCCNGAGNGGCGTTCCGNTGCTCCGCANACAGTCGGATCCNNNAGTTGCC ++ +8!F---!8-8F8FF-!-FF!-FF8!!!!!F#-FF8F-##-!8!88!F!88F-!!8!!!#F8--FF!FF-#-88--#--F!F--FF8-!!F8!8F-!--FFF8FF#-8-#!-!F8F!-8#!--F8!FF8#8!8F-!8FF8--###F-!F--- +@machine1:HiMom:abcdeACXX:1:1101:1235:1000 2:N:0: +GGTACGATTACCANCCNTAGTTTGTTCCGAGNCNACCCGAGNCTCCGCGNACCGGGCTAGGTTATTTGCTTACTATTATAGGACTGGGGCGTTGGGGAGTTNCCAANCTAAAANTGTGCNCAGTGCNTATCTACTCACTAAGTTGCTCCGT ++ +-!!8!--8--F!-#!8#-888-!F!8-F!8-#!#F---88!#!8-!F88#F-FF-!F!-8!!8FF!!8-!-----8FFFF88F8F!!F!-8F!-!!---F8#8--8#FF---8#!8888#8F!-!F#8--!8-8-8-FF-88-8-F--F8F +@machine1:HiMom:abcdeACXX:1:1101:1253:1000 2:N:0: +TTCGATGNGTAACGTGCTAGCTAACAGNCTCANGGTCCCCGCCTTTCCCTTTAGNCGTCNTTCTCCCCCGTCCTAAATTGCGCTTGGATNGCGGGTTNGGTNTCACGGCTACTCATTCTACAATGACTNGNTATGGGGCATTCCATAAGGN ++ +F-8!--!#!8F8!F!!F!FFF-8-88!#!-!F#-F!8!88!-88--8!-8!-8!#F-F!#!!!F!F8!88F8-F8F8F8-F---88!F-#!FF8-!F#F8-#--8!F!--8-F8-!-8--8--F8F8!#!#!8!!8!88F-F8!F88-F!# +@machine1:HiMom:abcdeACXX:1:1101:1289:1000 2:N:0: +CATTTTCGTNNTNACAANGCTCTAGTNGGGCANCAGGCGGGGGGACTAACTTAGGAACCCGNNGAATTCAGGACTATCTGCGTACGNACAGNGGTTGCAGTGACGGGAGAAGNCGCNATCGCTNTGTTAGTGTTCCTGCNTACAGGGCACG ++ +--8!!!!-8##8#8!F8#!-F!!F-F#-F!-F#--FF!888-8!--!--88-FF!-8!!8F##--F!--FF-F8-F8!!8!8!--F#F---#-!-F--FF88F88F!8!88-#!8!#8F8!8-#!8--8-!-!-!-!8!#--!--!-FFF- +@machine1:HiMom:abcdeACXX:1:1101:1307:1000 2:N:0: +AATTGNCTTTGAGATAGAGGGCCCCTACGGTTGTCTANTACTCTGTGCCAGAAGCCCAGTCGGNCGGGCAACTTTCCGGCTCCGGCTTTTGNNCGCGATGCANATTTNGTTTGAGGCGCTGGTTCCCTCACTTCAGATTGCCNATTCATNC ++ +8F!-F#F-!88F8-F8!8F!!!-!!8-F--F8-888F#8-8-!8F-!!-88-8!FF8FF8!88#8-88!-F!F88F-F--8--F88!8FF!##--8F--F!F#8!!8#--!-8FF88!-!-!-F!F!F!--!-!---FF8-8#8-F88F#! +@machine1:HiMom:abcdeACXX:1:1101:1325:1000 2:N:0: +CCAGAACATCCCCTGGAGCCTGGTCTACTNGGGGACAGGGTGTGCGTNGCACNGGGNCGGTTCGATGGGGGAGNGGCGGGACTCCTTCGCAGCAAAAGAACCNTAATTTTTACCTTCCTTTTGTGAAGTGCTAGCTANGTTCGGGNTNTCG ++ +8---F-F-F-!8!!-!-8-F888!F8-!F#F-!-8!8-!-F8---F!#-F8F#FF8#88!-!!FF8F8-!F8!#8F-F8-88F!--F8!F--8F--F-F--!#F-F!!FF-FF8!8!!--F-!-!8F8F!!F-!-!8#FF8!8--#F#!!F +@machine1:HiMom:abcdeACXX:1:1101:1344:1000 2:N:0: +NCGAGAACGCCTTCGGTCGATCTACTCCNGATGCTTTAGGAATGCCATTNCGNTGCCTTNGCTATTACGTGCCGGCGGCCGTTTTCCAAGTGCTATTANCCTTAGCGGTCCCGTCTCATGTCACGGAGAAGAGCTGTTACTATGACGGTGG ++ +#FF-8F--8!8--F-FF8!8!-!88F!8#!8F-8!---F-F8-!!FF--#!F#8-!!!-#-FFF8-FFF8-8!-88!!8!F8-FF!88F!8!8---8F#-!FF88F-FF8!-F--8-FF!888!!!-8-F!FF!!88-8-F8F8-8FF!8- +@machine1:HiMom:abcdeACXX:1:1101:1362:1000 2:N:0: +CGCTATTGTAACGATCGTATTTTACTTNNTCTNTCGCACAGGGTATAGNCCGGGAGGAGGNTACGGCCTCNAGCCGTGCGCGCAGGNNGGGCGTAATCCTTATGTCAAAATTGCTNCACTACNACGTCTAGCAAGCATCAGGAGGAANAGT ++ +F!-F8F!F!8FF-FF8888!!-8-8F!##!-!#-!8F-88!-!!--8!#F--!F-FFF--#!8--!---8#8FF----8-F-F-!-##!F8F!88-F-8-8-!F-8F8F-F!!8-#!FF8F8#88F-F8F8!--F!F88F8FFF-8-#--! +@machine1:HiMom:abcdeACXX:1:1101:1398:1000 2:N:0: +CGTCCTGTACGTGTCGTTAAACTGTCNCNGCNTTGCGTANGGTGCCGTGCACGGTATAGCACGTTGGCATGGGCGAGCACTCACAACACACTGCNGGGNGGGATTGGCTGAAANGGAGCGTCGTTAAGGGCGCTAATGACCATGTCNCAAA ++ +8F8---!-F!F8F-F88-F--F!8!!#!#88#!!F--88#-F8F8---888-!88FF-!F-8-F--!!-!FF8F888--88!--8F88F-8F!8#-8F#!FF8-!F--!88--#!88F--F!888F88!8F8!FF-!8F8-8!F8!#F8FF +@machine1:HiMom:abcdeACXX:1:1101:1416:1000 2:N:0: +TGGTCCTCTGGTCAGCAGTTCTAAGTGCCGTCTATGGNTGGGTNCACCANCGCTANGTNATAGGTCCCTAGGTCGGGCGTGCGACTCACCGCCGGAAGGGGTGGCCGGGNTATTTCTTCCAGGCAAGCCANCTAATGGTAAATCTGTCGCA ++ +-8F8F-!-!--F!F8-F-!F888FF-F--F8!--888#888!!#-F-!-#F-8!F#!!#----!8-!!88F8!!F8-888!FF8!!88!8FF8!---F!F88!8-8F88#-F----F--8F-!FFF!F8-#-!-F!F88--8--!-8-F8- +@machine1:HiMom:abcdeACXX:1:1101:1434:1000 2:N:0: +TTTGTTTCAGGGCCTTTGCCGTNCGCANTATTGTGTCTCTTCCCAGCAGCTGTCCTTAATGATNTAGCAGATCGCCTGTGCATTANCGCACCTCNTCGTANAGGGGTGTTCCAACGCATACANCTGCNTGGNCGTNNCAATGAATCAGATT ++ +--!!F!8!FF-!-!88!88!-!#8-FF#F888F!!F!8--8F-!FF8-!F-8FF!FF8F8!88#8--!888!-F!FF8F8F-F-F#!F!88F-F#8!!F8#-!8!---88!--88F-F-88F#8888#-F!#FF!##!F8-!-8F8F-8F- +@machine1:HiMom:abcdeACXX:1:1101:1470:1000 2:N:0: +GGGAATTCCGGTTTTTGGCGAAGTCTCGATAACTTCCGCGCGGCACCTAACTTGCCAGCTGTGGTTCGCGTCGTGANTTAATGTTGGGNTCTCGCNCGACATAAAANTGTAAAGGGAGGCCTTGGAGGCCCNGGTGTATGCTNCCAGCTGG ++ +--!-8F-88F-F---!8!F--8FF!8F--!---!-888--8F-F--!8FF!8-FF!8-!8-!----8-!8-88FFF#8!-8!-!-F!8#-8-!!-#8F888F8FF8#--!888!8F8!F888!!-F8-!-!#F-888F!8!-#F!F8F8!F +@machine1:HiMom:abcdeACXX:1:1101:1488:1000 2:N:0: +GGGGGTTAACCTCGTGTNCGTANGACATATTACACGCTAGGACCGCAGGTGTGGAGCGNTNTCTNCGCCGAAGGCTTTAGGTGNCNAATCTAAATCTGTTGCTGATCTTANGCGCATNGTATNCCGTGTATCTGGAGTAACNCATAGGTCT ++ +-8--8F!F8-F-F!F-8#F--F#!8F--FFFF!-!!F!F-8F!8!FFF!8--8!F-!F#8#-!8#!8F-FF8----F-8--!F#!#888-8-8FF!8!88---888!-F8#!FF!-!#F!-8#-!F!8F88---!8!8-8F#-8FF-FF!8 +@machine1:HiMom:abcdeACXX:1:1102:1000:1000 2:N:0: +GGNGTTCTGTGNCTCTTGAGCAGTGCAGCCCGCGATGCGCCGCGCATTCATTCCATATCGGTTTNGNATANCGTTACGCCTGCGTCCGCGGCNCCTGATGTCCTCGGNAGATTACGTGGTAGCAACATCATNTGCATTTGTCGCGGATTTT ++ +--#!!F----8#88FFF-F--8!---FFF-!888--!8!F-FF8F8FF888!-F-F-FF!!FFF#8#8--#-F-FF8F-F!F!-8F-F-!-8#-8F88-8-F8!F-F#FFF!-FF--!8-F!F-8-F8FF-#!F!FF-FF88FF-F-!F88 +@machine1:HiMom:abcdeACXX:1:1102:1018:1000 2:N:0: +TTTCACCAGGCCTCCTCGTAAGTAGATCTTATTTGGATCCAGGTAGCATCGGGGGAGCCGACATTNGTCCNGTCTCAGCGTCGTCCACCTACTCTGACGNGTACCAGAGTGCTCCCGGTACCTCAGTGCCAAGTCGGATTAGCTTGCCAGT ++ +88!!8-8F-F-F-8-!!-!F88F-F-8!FF-8F!8!F!8FF-FF88-F8!F!!8-F!F8FF8FFF#!8!F#8888!-8-!!F-F!F-F8!-!88!--F-#!F88!F!-!F!8-8F!!-!F!--F--F8-!8888F!!8F88!!----!888 +@machine1:HiMom:abcdeACXX:1:1102:1036:1000 2:N:0: +TTCCTCGNACGTCTTTGNAGANTTTCGCCCAAGGCTTGTCCNTGCAAGACGTCCTGTCGTATAAACNGCCACGGGCGGCTAGGACTTGGANACGGACCTNATAGTTCCTGTGCCACTTNTCGNGTTTTCGTCTTGTTGNTGCGANAGGGGN ++ +F-!--F-#-8-F!-F--#-!-#88888F-FFF-F!8F!--!#-!-88-F!!F8!88-8-!8--F88#-F--F8FF!-F!!8F8FF8FF-F#--F-F8-F#F-F!F!!FF8!!F!88!F#!-!#-!--F8--!-8!8-8#F88-F#-8-F-# +@machine1:HiMom:abcdeACXX:1:1102:1072:1000 2:N:0: +ANGAGGCNCCGCCCCNNTTNCTCGTNGCCCTCCCAACCGTGCGACTGGNNGCGCTGGACATCGTCGCAACTTACGGCGTGTGCCCTGAAGGTGACTACACCGNTGAAAGGNCGCCTCGCCGTCCATGCCACAAGGTGGACGNTCATCGNCT ++ +8#--8F-#F8!F!F8##88#-!F-8#F!-F---FF-F8-!8-8-8F8!##--F-F-8FF-FFFF--8--!8--F--!FF!!-!888FFFF!!!-!--F-8!-#--8FF!-#FF-!8F!-F-!-!8-888FFFF-8!--8!!#-F-8F!#!8 +@machine1:HiMom:abcdeACXX:1:1102:1090:1000 2:N:0: +TGAGNAGNCGTTTTTTGNCCGCTACCTTGNGGTGTGCGTGCCTAGGCACTNAATCTCCCGCTGTTGTAGGTCTATGTATTCNNCGTGATGCCGCNGCTGATGCTGTNTTCTGCGTCGCNNGCCTGCNCCGTTGCATATCGTGGCGGTAACA ++ +!FFF#F!#-F8F-8-!8#8F!8F--!-!8#!!--8F-F!F!-F8!--F8!#F-!8!F-8!FF-!F-8--!8!!FF!!F!-8##!---8!8!--F#!!F--FF--8-#F!F--FF!F8-##-8F---#-88!--F-FF8!FF88-!!F8-!F +@machine1:HiMom:abcdeACXX:1:1102:1108:1000 2:N:0: +TTTTCCAGTCNTTCTTGCAGGCCGGTGCATCGGCTTNACGCAATGNCCCCTCNACGTTGTGAGTGTCCCGATCAATTTGNGCNNAAGTACCAAAGGTGCCTGTCTGTAGTTGAACATTACGTGGCGTATGGNGTAAGTTTCTATGCACGCG ++ +8FF-8F8-88#F8--8F!F--8888F-8F!!--!8-#8-8-8--8#8-8F!F#8!F-F-8!--!8-!!8!88!-F!!8-#--##F--8-!-8-F!FFFF88!8-8FFF-!F8FF8FF-F!--F88-!-!!8#-F88!F8F!8-F-8-F--- +@machine1:HiMom:abcdeACXX:1:1102:1127:1000 2:N:0: +CGCCGCTATTCCGGACANATNGTGTGACGCTTTCCGTCTCCCGTCGTCTCGATTTGGCGCCNATCNTCCGTCAGCCTAGAGNANTAACGAANCTGGATGCTGCNCATTGGANATGACTACCTGCTACTTGGNACGATTCTGCACGTCGTCT ++ +!88F8FFF!8888!-8-#F8#-8!!F-!FFF!888--8FF-F-F--8-!FF8-F888-F!8#F--#!88!!-F-FF!F-8-#-#!--FFF-#8-8-8-!-!-!#88F!!8F#F!8FFF8-F---FF!-888#F8FF8------88--8F!- +@machine1:HiMom:abcdeACXX:1:1102:1163:1000 2:N:0: +CCTGCTCCTCGGCCGACCTGNCCCTAATGCAGTTGCTCCGGANCTGCCAACGAAAACCTTACTCNTCTANCTCGTANACTACGGCACTGAAGCANTCNGCCCNTTTGTTCNCGTCTAACCACTCTTTCTTCGCGCGATNTAAGGCCTNCTC ++ +F!-!-F88FF-!F-88F!-!#-8!8-F!88--8F!!FF--8F#-FF88FF---F8F8!88F8!-#F!!8#88!-FF#-!FF8!F-F!88F----#!-#-!F-#8!--!!8#88FFF88F8-8!!-!F888!!FF!8F8#8-F!!!-8#F!- +@machine1:HiMom:abcdeACXX:1:1102:1181:1000 2:N:0: +GACTNAGCGATAACGTGGTTCTACGGCNCNGTATCNCTTACGTGGGNTTCTCAGNCGTGCGAGCCCGTGGCCCTGTGCCTCTNTCCNTCGCTGTTGGGTCCCTCACTATGGTTCGCGTTCTGCAGAGTGTGNGAGTTAACTCNCNGACGTG ++ +!8-8#-!!!F!888!!8F!!F!F!-FF#F#--FF!#!-888-8!8F#-FF!---#---F8-8!-88FFF8-F-8!F!!88!!#FF!#8!!-8FFF-F--F!!8--8FF!!---F888!-!F!8-F8!88!8#F-F8-8-F--#!#8888!F +@machine1:HiMom:abcdeACXX:1:1102:1199:1000 2:N:0: +TGTGATCTCACAGTNTCGATTANTTCGGTGGCTNATAGATATCGCGTGGNGTCCGGGTCGCCGCATCGGNCTTCAGCNAAGTTNGTCGTTTTNGCGAATAGCAACGCGGTGGGAANAACGTTGNGNGATGGTTGGCGGTNTTTTAGTGCTT ++ +!8----8F-8F---#--8F-8-#8!8-!8!F-F#8-F!F!FF--F-F88#!FFF-8F!-8F--!-88!!#88-!888#---!8#!!!!8F!8#F-!-FF-!-F---F8!-!-8F-#F8-F-!F#!#8F-8-8F-F!--!#FF88F8-F!FF +@machine1:HiMom:abcdeACXX:1:1102:1217:1000 2:N:0: +ATGCGTTTNGTGCATANAGGGGTCCAGTCTTCACTTGTTGACNANGCGAACCACANNTCGCCGTTTGGCANCGTCAGGTCTTGGGAGTTCGGTCGCGTCATGTTGCGNGTGACCAGGCCCCTCGACTGCCTACTTCGCTTATCGGGCGGTN ++ +FF888F88#---F-!8#F88!8!FF8F8F!8F8!FFF!!-FF#8#--!FF8--!8##!8F8!!F!-FF-8#F-8--8!8!8F8-F8FF-8!88!8-F!88-FF8FF8#8F!F-F8!---8!F-!8!!F8888F!FF8F8--FF!--F-!8# +@machine1:HiMom:abcdeACXX:1:1102:1235:1000 2:N:0: +TCATAATGGGACTNACGGGCTAAGTTCNGCGGCGTNACGGNCTAAATGGGGCACNCCCCGTCTACTCTTGCTCATATGCTTTAAANGGGGCGATTTCNGCTTGCGGGATGCGGACGTCCCATGTTTTCANGGGCCGCCCTAGTCCTNNGGT ++ +!-F-8F-F!!8F8#-8-F!!!-8--!-#FFF--88#8!!F#-8-FF-8!-!8F8#88F8!8-F----8F-FF!F8-!8-8F8-F-#!8-88-F!F8!#88!!8F8---!!8-FF-!888-F-F-8-8-F#8!!-!F!!8-8F8-8!##-8- +@machine1:HiMom:abcdeACXX:1:1102:1253:1000 2:N:0: +GGCGCCCTNCTGTCATCCGTATGTGNTCGCTTGATTTANCCGCCNATATGGTGGCTCATCTCGCTCGGGGACCATGCCTATTAAGNGGGNAGTCTGTGGTTNAGTGCTCTTGANCGATTCGCCTTCCCNNAAAAGGTCTGACGTGCCGCGA ++ +-!F--!FF#F-!!FF--8FF8F--F#F-FF!8F88FFF#-FF8-#-F88---!8F8-8-8F-!-FF8!-F88!FF8-!F-8F88!#--F#--!-888F-FF#-!8!88-!!88#8FF8-8!8F!!8!-##8FF8F!!-F!F!-8FF-!8!8 +@machine1:HiMom:abcdeACXX:1:1102:1271:1000 2:N:0: +GNGCCGTCTTTAATGTCNTNGNACCTTATAATTCCGGNGCACGGATAGNGCGACTGCCCGCCGCGNCTTTCCGAGCTTTTNTAGTCGGTGTCTGTACATCNGCCCGGCATCTTGCTTCCGACATCGTCNGGGGGCNAGTATTGCAGACATA ++ +8#!!8!8F-!!88-8-F#F#F#FF8!-F8FFF-FF8!#-FF!--8F-!#F8!88F8!-FFFF88F#F!FF--F-F-FF-F#!8-8!F8!8--8FFFF-F-#F!8FF!88!!-8!-8!!F88F8!F-8!#!8!F88#--F8FF!8FF-F88F +@machine1:HiMom:abcdeACXX:1:1102:1289:1000 2:N:0: +TTAGCAGCACANCACGGCTTGTTGCGACTGGTCGTCTNACCGTTCTAGTANGANGCCGGTGTCTAGGCCCCAANGTGTCGCAACGGACCCCGGTCCCGCGNCCNCACCGANCATGNTACTCGNATCTNGATAAGGTCCAAATTGCTTCTNG ++ +!88!--8--!F#-8!-!----8F-F8F8!8!!8FF-8#88!-88-8F!!F#F-#8!FF88!F-!-!88!!8--#!8-F8F!-FF-F-8FF-!-F8FF88!#--#!-8!-F#--8!#F8FF88#-8!F#F-!-8F!88F88F!--!8FF!#! +@machine1:HiMom:abcdeACXX:1:1102:1307:1000 2:N:0: +CGAGGATAGTANATCTTTTCANGNTGCCTGGCAGTATCAGTCAAACTTGAACGGGTACGGGGAGAGGCTGTCCTGGGTGNAAGACCATTCTCCACNGCGAATGACTAGAGTTGCCCATGATGGANTATGNTNNGACGAANGTGCGTGCATN ++ +!-F-F8!8!--#--88F---F#!#F!FFF8!FF88-8F-F!----FFF!F8-FF--F-F-F!F!F8FF-F!F-F!!FFF#---88F8!-!F-!88#F-FF--8F-F-8F8FFF-FF8!8----8#!F88#!##!8FFF-#!!88!8F!F-# +@machine1:HiMom:abcdeACXX:1:1102:1344:1000 2:N:0: +CCCGTGCTNNTCTTACGNGTACGTNCNNTATAGTCACGNAGNGAGTAAACNCAAGTNCCGGCCGCCTCCAATATTCCTTTGATTTATCNAGGGNGACNGCATCNGTCAATGTCANCAACATANATCCTGTTAAGTNGGCTAGNGCACTCAA ++ +!8!-8!F-##8!8!FF8#!-FF!F#-##-8-F!F8--!#8!#!FFF8--8#-F8-!#-F!-F!F88!F!F-FF-88-F--88FF-8F-#--!F#!--#8-8F8#88F8FF!-F8#!-8F88-#8!F8F!88F88-#F!8!-!#F8-!88F8 +@machine1:HiMom:abcdeACXX:1:1102:1362:1000 2:N:0: +GACGTGCTGCTGCGTCCGTAGGNGCNCCTATACACAGGANCTGTGGGATGGTTCAAAACTGTCACNNCGNGGATCTCGGGCNGTGCCTCGGAGTCAGCCTCTTTNGATGGTGAGAGAGGTCTGGTANACGAGGTTTCTAATGTTGGTCATT ++ +-F-F8F-8-8--F!8!-8!F!8#8F#8---F-8FF8F8F#F8-8F!F-!--!8F8FF8F--FF-F##F8#FF88!FF!!--#FF88!!!F--8---!8888-!F#!-!F--!F8-F-F-!-!8--8#F--FF!F-F-!8-F8-F-!F--F! +@machine1:HiMom:abcdeACXX:1:1102:1380:1000 2:N:0: +TGAGGCCGGAGCCGCGCCTTNCATGGNCCGGTGATTATGAATGCCGCTGTTCCTTNTGNGTAACGGTGTGTAATTGACGCGCACACCCTGAGCNGGTATNGGCNATCNGGANACTCCAAGTAGACGCCGTTCCTCNGATCTANACGNGTAT ++ +F-F-88!-FF-!F!88-!!8#!88-F#!F--!F-!-FF8F8FF8!--8F-FFF!!#8!#8--F!FFFF!!!F888-8F-88F888F-!!--8-#-!F88#FFF#F!8#!-8#---!!8FF-F8FF-8-F!8----#F--F88#F!F#!88! +@machine1:HiMom:abcdeACXX:1:1102:1398:1000 2:N:0: +GCTCGCTTANCTAGAACTCCTTCCACAGTCCCCCCCGTGCCTCCACGCGNCCAAGCNTCCGGGGCGTTACATGCGCTCGCCNAGGNCTATATGCTCTCCCCGNCTTNTCTAAAGTAGTTTTCCGGGTCGAGTATTAATAAGAAGGTAAGTN ++ +!F-F-88!-#8F88F-!-F!FF--F-FF!8F-FF8!FFF!-!8-8!F!!#!--F8!#F-8-88!!F!--F8F-F-F8F88!#-8-#FF--F-!!-F-F!F-F#!8-#F8F8F8F!FF!-F--8F!!FF!-8!8-FFF!F-F8--8!-8--# +@machine1:HiMom:abcdeACXX:1:1102:1416:1000 2:N:0: +TCGGCACGACTACTAGTAGCACNCCGCCTGGGTCACNTAGCCTCAGTTGGCTCAAATTTGGCTGGAATGACTAATCATATTTTGTCCATACAATCGATCTTTGGGCCTCCCNCCCCATNANCCGCGGGGTACCTTGTGCCTCTCACTTGCC ++ +-8!FF8!!8F8F8F-!!F8-8F#FF88!8-!!!FF-#-F8FF8F-FF-F-8-!8FF88!8-88-88F!-F!F888888-!!F8F!!FFFFF---!FF!-!F88--8---!F#-!8FF!#F#!-8!--!FF-!!F88!8FF--!88F88F!! +@machine1:HiMom:abcdeACXX:1:1102:1434:1000 2:N:0: +CCCTATTGCACTTAGNGCGTGGAATCGCGGGATTNCGGCCCCCGNCAGTCGGCTATGATTCGANTCCATGCGTGCGTGTGTGCGTATCCCCACGTATAAGAGCGCGGACACTCCANCTGGGAACCAATCNCANTGACNTAGCCGACAATAT ++ +-8F-F8!F-F8-888#F8FF!!F8F!-8!8!8F-#8F!--8F!F#-8!F!8!-F8-!8F-FF-#-8--8!!88-----F-8--!!888!-F8!-88-----!8!88!8-8-!!-F#!--8!8-!!8--F#!-#F!--#F-F!-!-!F-F88 +@machine1:HiMom:abcdeACXX:1:1102:1470:1000 2:N:0: +AAGCAANGANGACACCGGTGTCAGTGTTTTGGNATCGCAGCTTTNGACCTGCTTCCTNAACTTNTCTGTTTCCGAAGTCACTTATTNTAAACGAGCTCTGGACTAGGCTCTGTACTCCCAATCTCGTNNTCTCGGGTCAANGAGCCTGGCC ++ +F8-888#!8#-8--F--!F--888!8F8!-F8#-F!!!--!F8-#--8--F-!8FFF#--F!-#!F-!!!F-8-FF8--F!-88!8#88-F-F-8F--!8!F!-8-F--!88FF!-8!--8-!88F!##-!8-!!FF8-F#8FF-!!!--- +@machine1:HiMom:abcdeACXX:1:1102:1488:1000 2:N:0: +TCCTGACGGATACTTGCATAGGACNCACTAGGTNTTGTCTATCTTTCAACGACAGGGANANTGTAAGGTGTTGAGTGTTCTCATGGCGTTATGGGCTCTTTCNCNATTGTAGAGNCGGTGCGCNAGGCTGATTGACCCCGCATTGGGAATC ++ +!-8F--!FF8888!F--8-88-88#888-8!-F#F!-8-F888!!F-F-F!F!F-8-F#F#!F-8--FF--!--FF-!F!!88F!8!8-8-!-!-!F8F888#F#F!!!---F8#-F-F-FFF#8--FF-88--F--888FFFF88-8F!F diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/fastq/NN.barcode_1.fastq b/testdata/picard/illumina/125T8B8B125T_cbcl/fastq/NN.barcode_1.fastq new file mode 100644 index 000000000..7ea2456b1 --- /dev/null +++ b/testdata/picard/illumina/125T8B8B125T_cbcl/fastq/NN.barcode_1.fastq @@ -0,0 +1,184 @@ +@machine1:HiMom:abcdeACXX:1:1101:1000:1000 :N:0: +GCCNAGTA ++ +FF!#F-!F +@machine1:HiMom:abcdeACXX:1:1101:1018:1000 :N:0: +CTTCGTGT ++ +FF-!F888 +@machine1:HiMom:abcdeACXX:1:1101:1072:1000 :N:0: +CTTCCTTG ++ +88!-8-!! +@machine1:HiMom:abcdeACXX:1:1101:1090:1000 :N:0: +TCTCACTC ++ +F!-F8F!- +@machine1:HiMom:abcdeACXX:1:1101:1108:1000 :N:0: +AGCCCCCT ++ +8F8---8! +@machine1:HiMom:abcdeACXX:1:1101:1127:1000 :N:0: +CACTTTTC ++ +FF88F!8F +@machine1:HiMom:abcdeACXX:1:1101:1163:1000 :N:0: +TGTCTATT ++ +F!F!F8F- +@machine1:HiMom:abcdeACXX:1:1101:1181:1000 :N:0: +TGTGTCAG ++ +-F8!!8F8 +@machine1:HiMom:abcdeACXX:1:1101:1199:1000 :N:0: +ATGTCNTT ++ +FF8FF#-8 +@machine1:HiMom:abcdeACXX:1:1101:1217:1000 :N:0: +GCGAGGCT ++ +F!F8-FF8 +@machine1:HiMom:abcdeACXX:1:1101:1235:1000 :N:0: +CCATCTGT ++ +8!8---F8 +@machine1:HiMom:abcdeACXX:1:1101:1253:1000 :N:0: +ATTGGTGA ++ +-F!-8-8- +@machine1:HiMom:abcdeACXX:1:1101:1289:1000 :N:0: +CCTGTCCG ++ +8FF88-8- +@machine1:HiMom:abcdeACXX:1:1101:1307:1000 :N:0: +TTTATTGC ++ +!!!8F!FF +@machine1:HiMom:abcdeACXX:1:1101:1325:1000 :N:0: +TGTCCTAG ++ +F-F-!8FF +@machine1:HiMom:abcdeACXX:1:1101:1344:1000 :N:0: +TTATCTGA ++ +-F8!FFF8 +@machine1:HiMom:abcdeACXX:1:1101:1362:1000 :N:0: +NAGGTNTG ++ +#-8!F#!- +@machine1:HiMom:abcdeACXX:1:1101:1398:1000 :N:0: +NCATNCTC ++ +#FFF#--8 +@machine1:HiMom:abcdeACXX:1:1101:1416:1000 :N:0: +TAGCGTTN ++ +-F88--8# +@machine1:HiMom:abcdeACXX:1:1101:1434:1000 :N:0: +AATTTGCG ++ +-F--8!!! +@machine1:HiMom:abcdeACXX:1:1101:1470:1000 :N:0: +GANCGAAC ++ +FF#--F88 +@machine1:HiMom:abcdeACXX:1:1101:1488:1000 :N:0: +CGTCNTGT ++ +FF8-#-!! +@machine1:HiMom:abcdeACXX:1:1102:1000:1000 :N:0: +AAAGCGAG ++ +F8-F--F! +@machine1:HiMom:abcdeACXX:1:1102:1018:1000 :N:0: +TCGTNTTG ++ +--F8#-8- +@machine1:HiMom:abcdeACXX:1:1102:1036:1000 :N:0: +NCATATCT ++ +#!FF-!!- +@machine1:HiMom:abcdeACXX:1:1102:1072:1000 :N:0: +CCCATGCC ++ +!!88-FFF +@machine1:HiMom:abcdeACXX:1:1102:1090:1000 :N:0: +TTGCCTTT ++ +!888!8F! +@machine1:HiMom:abcdeACXX:1:1102:1108:1000 :N:0: +CCCGNGCT ++ +!!F!#888 +@machine1:HiMom:abcdeACXX:1:1102:1127:1000 :N:0: +GTGGCAGA ++ +8F8-FF88 +@machine1:HiMom:abcdeACXX:1:1102:1163:1000 :N:0: +CCGCGCNC ++ +--8!--#8 +@machine1:HiMom:abcdeACXX:1:1102:1181:1000 :N:0: +CGCGTAGT ++ +-88F!88- +@machine1:HiMom:abcdeACXX:1:1102:1199:1000 :N:0: +TAACGGGT ++ +-8FF-!-8 +@machine1:HiMom:abcdeACXX:1:1102:1217:1000 :N:0: +CTATCTGN ++ +8-F!!FF# +@machine1:HiMom:abcdeACXX:1:1102:1235:1000 :N:0: +CCGGTGCN ++ +!888!!F# +@machine1:HiMom:abcdeACXX:1:1102:1253:1000 :N:0: +GANGCTGA ++ +-F#8!-!F +@machine1:HiMom:abcdeACXX:1:1102:1271:1000 :N:0: +CCCAAGAA ++ +F!88-88F +@machine1:HiMom:abcdeACXX:1:1102:1289:1000 :N:0: +CGCTGCAC ++ +8F-!-8F- +@machine1:HiMom:abcdeACXX:1:1102:1307:1000 :N:0: +TCGGTCTT ++ +-8-8!8F! +@machine1:HiMom:abcdeACXX:1:1102:1344:1000 :N:0: +CCAGTCAC ++ +!F--!!88 +@machine1:HiMom:abcdeACXX:1:1102:1362:1000 :N:0: +CAACCTAT ++ +8-8-!8F- +@machine1:HiMom:abcdeACXX:1:1102:1380:1000 :N:0: +GNGGTGTG ++ +F#888!-F +@machine1:HiMom:abcdeACXX:1:1102:1398:1000 :N:0: +GGTGTTGT ++ +-8!-8F!F +@machine1:HiMom:abcdeACXX:1:1102:1416:1000 :N:0: +TTAGCGTG ++ +!8F8F8FF +@machine1:HiMom:abcdeACXX:1:1102:1434:1000 :N:0: +TNNGAGAA ++ +F##-F!88 +@machine1:HiMom:abcdeACXX:1:1102:1470:1000 :N:0: +GGGCAAAT ++ +!FF-888F +@machine1:HiMom:abcdeACXX:1:1102:1488:1000 :N:0: +CTCATACG ++ +8F!-!-!8 diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/fastq/NN.barcode_2.fastq b/testdata/picard/illumina/125T8B8B125T_cbcl/fastq/NN.barcode_2.fastq new file mode 100644 index 000000000..3e69958f8 --- /dev/null +++ b/testdata/picard/illumina/125T8B8B125T_cbcl/fastq/NN.barcode_2.fastq @@ -0,0 +1,184 @@ +@machine1:HiMom:abcdeACXX:1:1101:1000:1000 :N:0: +CCTGGTAC ++ +88!!F-88 +@machine1:HiMom:abcdeACXX:1:1101:1018:1000 :N:0: +TATGCANC ++ +F8-F!-#- +@machine1:HiMom:abcdeACXX:1:1101:1072:1000 :N:0: +GTGTCTCG ++ +8-F-8-!F +@machine1:HiMom:abcdeACXX:1:1101:1090:1000 :N:0: +AAGAGCAA ++ +8F-FF88- +@machine1:HiMom:abcdeACXX:1:1101:1108:1000 :N:0: +CGTNATTA ++ +F8F#-!-- +@machine1:HiMom:abcdeACXX:1:1101:1127:1000 :N:0: +GTTGTAGG ++ +-!!F-88! +@machine1:HiMom:abcdeACXX:1:1101:1163:1000 :N:0: +CTGCGTAC ++ +88F!8--! +@machine1:HiMom:abcdeACXX:1:1101:1181:1000 :N:0: +CTAGTCTC ++ +8-8-!8!F +@machine1:HiMom:abcdeACXX:1:1101:1199:1000 :N:0: +TACTTNCC ++ +8F--8#F- +@machine1:HiMom:abcdeACXX:1:1101:1217:1000 :N:0: +CCNGCGAG ++ +88#FF88! +@machine1:HiMom:abcdeACXX:1:1101:1235:1000 :N:0: +CCTTCTGT ++ +8!F!-8-8 +@machine1:HiMom:abcdeACXX:1:1101:1253:1000 :N:0: +GGCNATGC ++ +F-!#8!FF +@machine1:HiMom:abcdeACXX:1:1101:1289:1000 :N:0: +GTAANTAT ++ +8-FF#88- +@machine1:HiMom:abcdeACXX:1:1101:1307:1000 :N:0: +GCGGCNCA ++ +!--!8#8- +@machine1:HiMom:abcdeACXX:1:1101:1325:1000 :N:0: +CCGCCGGG ++ +8F!88F!8 +@machine1:HiMom:abcdeACXX:1:1101:1344:1000 :N:0: +CCCNNTCA ++ +8-8##88F +@machine1:HiMom:abcdeACXX:1:1101:1362:1000 :N:0: +CNCCNAAG ++ +F#F-#F-- +@machine1:HiMom:abcdeACXX:1:1101:1398:1000 :N:0: +GGGATCAT ++ +F8-8F8F- +@machine1:HiMom:abcdeACXX:1:1101:1416:1000 :N:0: +ANCGGGCT ++ +8#F-!-FF +@machine1:HiMom:abcdeACXX:1:1101:1434:1000 :N:0: +AGCAGNGT ++ +8!!88#!- +@machine1:HiMom:abcdeACXX:1:1101:1470:1000 :N:0: +AGNTGGCN ++ +FF#-F!!# +@machine1:HiMom:abcdeACXX:1:1101:1488:1000 :N:0: +CTTCCTCA ++ +8-F8!--8 +@machine1:HiMom:abcdeACXX:1:1102:1000:1000 :N:0: +GCCACATA ++ +FF-FFF!F +@machine1:HiMom:abcdeACXX:1:1102:1018:1000 :N:0: +CGTGGATT ++ +-!-8-F8- +@machine1:HiMom:abcdeACXX:1:1102:1036:1000 :N:0: +ANAGGCCG ++ +8#88!!F! +@machine1:HiMom:abcdeACXX:1:1102:1072:1000 :N:0: +GATGTTTA ++ +8FF---F- +@machine1:HiMom:abcdeACXX:1:1102:1090:1000 :N:0: +TTTCGGTA ++ +!88-8F!F +@machine1:HiMom:abcdeACXX:1:1102:1108:1000 :N:0: +CATCCNTG ++ +!-F--#!F +@machine1:HiMom:abcdeACXX:1:1102:1127:1000 :N:0: +GAAACGAA ++ +F-8-8-FF +@machine1:HiMom:abcdeACXX:1:1102:1163:1000 :N:0: +NGGGATAT ++ +#!F!F88! +@machine1:HiMom:abcdeACXX:1:1102:1181:1000 :N:0: +ATTCCGAC ++ +F-8!-!8- +@machine1:HiMom:abcdeACXX:1:1102:1199:1000 :N:0: +GTGCACCG ++ +!--!FF-F +@machine1:HiMom:abcdeACXX:1:1102:1217:1000 :N:0: +TTTGAGTA ++ +8--F888F +@machine1:HiMom:abcdeACXX:1:1102:1235:1000 :N:0: +AAGTTACG ++ +FFF8!-!F +@machine1:HiMom:abcdeACXX:1:1102:1253:1000 :N:0: +CCCGGCAT ++ +!F-!-!88 +@machine1:HiMom:abcdeACXX:1:1102:1271:1000 :N:0: +AATCTGTG ++ +FF8!-!8- +@machine1:HiMom:abcdeACXX:1:1102:1289:1000 :N:0: +CCGTNCAA ++ +-F!F#88- +@machine1:HiMom:abcdeACXX:1:1102:1307:1000 :N:0: +CCGACTGG ++ +F!88-!8- +@machine1:HiMom:abcdeACXX:1:1102:1344:1000 :N:0: +GGACCAGT ++ +88FF-8F- +@machine1:HiMom:abcdeACXX:1:1102:1362:1000 :N:0: +ACGCTGNT ++ +--F--F#8 +@machine1:HiMom:abcdeACXX:1:1102:1380:1000 :N:0: +GCCGCGGT ++ +--!F8!-8 +@machine1:HiMom:abcdeACXX:1:1102:1398:1000 :N:0: +CGATCAGC ++ +-!FFF8!- +@machine1:HiMom:abcdeACXX:1:1102:1416:1000 :N:0: +GTGCCAAG ++ +F-F-88F! +@machine1:HiMom:abcdeACXX:1:1102:1434:1000 :N:0: +TTACGCGC ++ +!!FF!8!8 +@machine1:HiMom:abcdeACXX:1:1102:1470:1000 :N:0: +CTGGTNNN ++ +!--F-### +@machine1:HiMom:abcdeACXX:1:1102:1488:1000 :N:0: +CTGNTCCC ++ +88!#8F!F diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/fastq/TTGCGGCCGGTTTAAC.1.fastq b/testdata/picard/illumina/125T8B8B125T_cbcl/fastq/TTGCGGCCGGTTTAAC.1.fastq new file mode 100644 index 000000000..0339f7254 --- /dev/null +++ b/testdata/picard/illumina/125T8B8B125T_cbcl/fastq/TTGCGGCCGGTTTAAC.1.fastq @@ -0,0 +1,4 @@ +@machine1:HiMom:abcdeACXX:1:1101:1036:1000 1:N:0:TTGCGGCCGGTTTAAC +GTTAGGAGAGACACCCNGAAGACTNCNCACACCCTATNTAATCGGGTGCATGTCGATNAANNCTCGCCTCTGGGGNTGGTACCTATNCTTAGTTCTTGCTCCNTANACGGCGCGATTGGNCNTNCGTTAGAGACCCTGNCCTACGGGGCTC ++ +!F!--!F8-FF8-8F!#F8F8-F8#-#8-8FF!!FF!#-F--F8!!!F!F--8-FF!#8F##-FF!F88-8-8-8#FFF8-8!8-F#--F8-F--!!!-8F!#!F#F--!FFF8F-F!-#8#8#!F8!-!-FF8FF!8#!FF8--8F8-!8 diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/fastq/TTGCGGCCGGTTTAAC.2.fastq b/testdata/picard/illumina/125T8B8B125T_cbcl/fastq/TTGCGGCCGGTTTAAC.2.fastq new file mode 100644 index 000000000..0c4bdfac9 --- /dev/null +++ b/testdata/picard/illumina/125T8B8B125T_cbcl/fastq/TTGCGGCCGGTTTAAC.2.fastq @@ -0,0 +1,4 @@ +@machine1:HiMom:abcdeACXX:1:1101:1036:1000 2:N:0:TTGCGGCCGGTTTAAC +CTCCGACCTGNATGGATATCGTTAGCGGGTCCTGGTGAGGGCNCTCTANCGTACNGCGGAGAGCGCCCTGGACAACCCATACATCCACAGCACGAGGCTTTATGTNCTGTNTCCCGGCTCTGCCATTTTTCCANGANGTCTTGGCCCGTCC ++ +F8!8!FF8!-#8F!FF-FF88-!8!F8----88FFF-8F-F8#-!!8-#-!F8F#-8!88!F-F-F!-F8!FF8F8--FF8F--!!F!F-!8-F-F8-!F8-8!-#FF-8#!888!-88!-F!F8F-!FF!8F#F8#F--8!-F--F!8!- diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/fastq/TTGCGGCCGGTTTAAC.barcode_1.fastq b/testdata/picard/illumina/125T8B8B125T_cbcl/fastq/TTGCGGCCGGTTTAAC.barcode_1.fastq new file mode 100644 index 000000000..30f6236dc --- /dev/null +++ b/testdata/picard/illumina/125T8B8B125T_cbcl/fastq/TTGCGGCCGGTTTAAC.barcode_1.fastq @@ -0,0 +1,4 @@ +@machine1:HiMom:abcdeACXX:1:1101:1036:1000 :N:0:TTGCGGCCGGTTTAAC +TTGCGGCC ++ +8F!!8--8 diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/fastq/TTGCGGCCGGTTTAAC.barcode_2.fastq b/testdata/picard/illumina/125T8B8B125T_cbcl/fastq/TTGCGGCCGGTTTAAC.barcode_2.fastq new file mode 100644 index 000000000..4877e83be --- /dev/null +++ b/testdata/picard/illumina/125T8B8B125T_cbcl/fastq/TTGCGGCCGGTTTAAC.barcode_2.fastq @@ -0,0 +1,4 @@ +@machine1:HiMom:abcdeACXX:1:1101:1036:1000 :N:0:TTGCGGCCGGTTTAAC +GGTTTAAC ++ +8-F!!-8- diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/fastq/barcode_double.params b/testdata/picard/illumina/125T8B8B125T_cbcl/fastq/barcode_double.params new file mode 100644 index 000000000..a66be292b --- /dev/null +++ b/testdata/picard/illumina/125T8B8B125T_cbcl/fastq/barcode_double.params @@ -0,0 +1,6 @@ +BARCODE_1 BARCODE_2 SAMPLE_ALIAS LIBRARY_NAME +CCCCGCTT TTGCGTGT SA_CCCCGCTTTTGCGTGT LN_CCCCGCTTTTGCGTGT +TTGCGGCC GGTTTAAC SA_TTGCGGCCGGTTTAAC LN_TTGCGGCCGGTTTAAC +CACCTAGT ACTCGAGT SA_CACCTAGTACTCGAGT LN_CACCTAGTACTCGAGT +GCTATAGT CCAGCAGC SA_GCTATAGTCCAGCAGC LN_GCTATAGTCCAGCAGC +N N SA_N LN_N diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/sams/CACCTAGTACTCGAGT.sam b/testdata/picard/illumina/125T8B8B125T_cbcl/sams/CACCTAGTACTCGAGT.sam new file mode 100644 index 000000000..9d76981ee --- /dev/null +++ b/testdata/picard/illumina/125T8B8B125T_cbcl/sams/CACCTAGTACTCGAGT.sam @@ -0,0 +1,4 @@ +@HD VN:1.5 SO:queryname +@RG ID:HiMom.1 SM:SA_CACCTAGTACTCGAGT LB:LN_CACCTAGTACTCGAGT PL:illumina PU:HiMom.1.CACCTAGT-ACTCGAGT CN:BI +HiMom:1:1101:1271:1000 77 * 0 0 * * 0 0 GA.GTCTCGTTTATCGGGGCATTTTCTTGACTGCGTTAGCATGGTTCTCGTGCACGTATTCGTTGTCTGCTCTCTACTGCTCTTCTATGGTACAACTTCTTCATGTAC.AGTATCCCTTGA.GG.GCCCCACTCCAACG.CTTGTAAAGAT !8#!--!F!88!8---F!F--!88F-!FFFFF88F-8888FF!F8888--F-F--FFF88!8!!8F!8!--F!-!FF-!8F---!88--8!F-8-8F8F-!F8F!88!#FF-F-FF-!F!F#!8#--!-8-8F8!-8-!#!--!!-88FFF RG:Z:HiMom.1 +HiMom:1:1101:1271:1000 141 * 0 0 * * 0 0 TGATGGTA.CTA.TC..TCCCCGCTATGCCGACTGCATATAGTGTGCGCACAAGCACAGGTTTGGT..CTATTTGT..TATCCGTCCCCTCTATC.TTGG.G.TGTAATGTGCGGCCTGCTCTCTATAGCGTAGCCTAGT.GGTCTGCGTT FF88--!8#F!-#!F##F-888!!-F8F8!FF--8!F!8-8!F888!88F!F8-8F!8F!F8F-!F##8!F8FFF-##8F--F88888F!8!888#88!F#F#8FF--8--F-FFFF--F-F-F8F8F8--!8!!F88F8#88FFF-8!8- RG:Z:HiMom.1 diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/sams/CCCCGCTTTTGCGTGT.sam b/testdata/picard/illumina/125T8B8B125T_cbcl/sams/CCCCGCTTTTGCGTGT.sam new file mode 100644 index 000000000..88dca3541 --- /dev/null +++ b/testdata/picard/illumina/125T8B8B125T_cbcl/sams/CCCCGCTTTTGCGTGT.sam @@ -0,0 +1,4 @@ +@HD VN:1.5 SO:queryname +@RG ID:HiMom.1 SM:SA_CCCCGCTTTTGCGTGT LB:LN_CCCCGCTTTTGCGTGT PL:illumina PU:HiMom.1.CCCCGCTT-TTGCGTGT CN:BI +HiMom:1:1102:1325:1000 77 * 0 0 * * 0 0 G.TGGCCTGCATGAATTGA.CAT.AAAG.GGGTCCCGTAGG.A.C.TAC.GAACATTAGTGCAGTTT.G.CCAC.GTGA.GCGG.AGGCGGAAGGT.ATT.TTAACCTCCCCCTGT.TGTACTGATGATCGGGGGGGCA.CCGGATGCGAT -#-8-!!!88FF-8F!-8F#F-!#F---#8!F--8FFFFF!#8#!#---#--88--F8-8-8F888F#!#FFF8#!88F#FF!!#8F-!F!88!8F#8-!#88F88!!FF!F888!#!F!--888888----F8-888F#F8!--F-!-8! RG:Z:HiMom.1 +HiMom:1:1102:1325:1000 141 * 0 0 * * 0 0 ACGCCGTTGTGCGCTATTAACGCC.CTACACAATACCC.TCGTATTCTCCAGGG.ACGTTGTGGC.GGGTACCCAGAGGTGGGTATGGTTGTTGGATACAGTGGGGG.CGGCTTCG.TGGTCCCCTTACCGGAGGACCAACGAACCACCCG 88F8FF-F88F8F!8888F88-8F#!!F88-8F!888!#!8--8---FFFFF-F#8-8!-F!---#-!-F8-----8!F!!F-8F!!8!!8-!!!F!-8-FF8!F-8#8-F---F8#!F-8-8----8F888-!!FF!F8-!F88F8FFFF RG:Z:HiMom.1 diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/sams/GCTATAGTCCAGCAGC.sam b/testdata/picard/illumina/125T8B8B125T_cbcl/sams/GCTATAGTCCAGCAGC.sam new file mode 100644 index 000000000..aadbb45c1 --- /dev/null +++ b/testdata/picard/illumina/125T8B8B125T_cbcl/sams/GCTATAGTCCAGCAGC.sam @@ -0,0 +1,4 @@ +@HD VN:1.5 SO:queryname +@RG ID:HiMom.1 SM:SA_GCTATAGTCCAGCAGC LB:LN_GCTATAGTCCAGCAGC PL:illumina PU:HiMom.1.GCTATAGT-CCAGCAGC CN:BI +HiMom:1:1101:1380:1000 77 * 0 0 * * 0 0 GTTGCGCACGCGCGTGGGC.ACG...CGGTATTCCAACATCCGTGGTGCA.GTA.AGTAGTATGGT.AAATATCCATC.CAGGCTTCGAATCGGGCTGTGGATGTCCAAT.C.TTGTACGGC.ACACTCTACCTACTACTACCCAGGCTGG F-F8-F888F8!F88F-!-#-F8###8!!F888--8-F888!8----8-8#F88#8--8FF88FF8#-8-F-8F8-8!#88F88-F888F-FF8F!!8-8-F---F!FFF#F#F-!-8!F8-#8-888--888!8F-8-88---FF!88FF RG:Z:HiMom.1 +HiMom:1:1101:1380:1000 141 * 0 0 * * 0 0 AATGTGGCCTCTAG.T.GAATTC.GCGGGTGAGGCGTACGTTTCAACGTAGCGAA.GT.GGATGTTTGCCCA.GACAT.TTTCGATTGC.GT.CCTGT.ACGATACGTTCCTGTCAG..TGCG.AGCTG.GCGAATTCAC.CTGCTGTCTG F8-F!F88FF-88-#!#F-F--F#F!--8-8-8!-8----!F!-F-8!FFF8!-8#8F#-F8!F!FF8-F!8#8F--F#FF!8!-!F8!#-F#8!F!!#F!F88-!8!!---8-FF!##-8!!#-F!-F#8888FFFF--#!F88!8!8-! RG:Z:HiMom.1 diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/sams/NN.sam b/testdata/picard/illumina/125T8B8B125T_cbcl/sams/NN.sam new file mode 100644 index 000000000..a87a0a9a1 --- /dev/null +++ b/testdata/picard/illumina/125T8B8B125T_cbcl/sams/NN.sam @@ -0,0 +1,94 @@ +@HD VN:1.5 SO:queryname +@RG ID:HiMom.1 SM:SA_N LB:LN_N PL:illumina PU:HiMom.1.N-N CN:BI +HiMom:1:1101:1000:1000 77 * 0 0 * * 0 0 TGATGGTTTCGGG.TTTAGACAGTGTCATGCCTATTCC.TGGTA.TCTTTGTTAACCTACGCCTCATGCTCGAATTCGCG.GT.CAGGATAGAACTTAAAG.TCTTTGTCTGAGGCAGAGA.CGGAAG.TTTTCAGCTGTGAGGTTCCCTT 888-8F!!88-F8#!!F8FF!F-!--88!!FF8F--F!#-88F8#!!F!F!!8F88F88!!!8FFFF--F8FF88-8F88#!!#F-F88!------FFFFF#!8F!F8F-8---88-88F8#F!-F-8#!-!8--8!------F8---F!- BC:Z:GCCNAGTA-CCTGGTAC RG:Z:HiMom.1 +HiMom:1:1101:1000:1000 141 * 0 0 * * 0 0 CCTGAAGAG.C.CA.C.CCA..GGATGA.AGTGACCACGGGATGC.AGTGCCCACGATGCGTAGGACGGGGAGCCATGATCGTCCGGGTTTGGCGT.CTATCGTGATAGGAGACGGTGCCCAGTGATGCC.CCGCGCACTG.TAACCCAGT F-!F8--8F#F#88#-#-FF##F-8!-8#88-F-F-F8F-F-F8F#-8!--8F8-!F!8F!--8-8!FFFFF8F!FFF-F-8-FFFF!8--88!8-#88F!88-F-F-F-FFF8--8--!!-FFF-F!!!#FF8-FFF!--#FF-F!-F-! BC:Z:GCCNAGTA-CCTGGTAC RG:Z:HiMom.1 +HiMom:1:1101:1018:1000 77 * 0 0 * * 0 0 GGTGGGGCAGCTC..GT.CTGGGTATG.TTACATGATTCAAGCATACTGCCCCTGATA.TA.TCGCGG.TTCTGCTA.GTATTTCCCGGGAACTTCTTTCACCTATCCGAACAACAGCTTTCCCAGTCAGAGTCAGCGAACATTATAACTC FFF!-!-!F!!!!##!F#!FF8!FF-!#8!8F-8!----F-!-F8--88-FF!-!8F-#88#-8F!8F#88-8!!FF#!F8!8!!F!F-F-F!8F8FF!8---8-FFF8---8-8--!!-F8-!8888F8F8!F8FFF--!F!-8FFF--F BC:Z:CTTCGTGT-TATGCANC RG:Z:HiMom.1 +HiMom:1:1101:1018:1000 141 * 0 0 * * 0 0 CCTCG.TAGGATCATCCTCGCGTGCCATCGC.GATACT.GCTTTATAACTTTTTAATACCACCACTTAAAGC.TTAG.T.TGCACAAGGTCGTACTAAAGGACCCGCTAGCGCGTGATCTGTGGTCCCACAGAGTAC.CCGACTACT.TTA FF!8F#F88F-!F88--FF----8-F88FF8#!88-!F#-FF-8FF--88!F!FF8FF!8-F--8-!88888#!-8!#F#88F888-!--F--888F-8F-FF8F8---88!F!-FF!-!--FF--F88!-!-!FF!#!88F-88F-#88F BC:Z:CTTCGTGT-TATGCANC RG:Z:HiMom.1 +HiMom:1:1101:1072:1000 77 * 0 0 * * 0 0 CCTTGATC.CTCCGCTTGAGTTT.GTTTCAGATGCCTT.AGGAAGCGATATTCCAACTCATGGAGCGTCAGCAGCGATTGTCGTATAGCCGGGCAAATCACTAGGAATGCC.T.TGTGAACAGTGGCATTGTTGTATGGTGTGTCCCCAAG -F-F88--#F8F888-!8F!F--#-!-F8--8!FF!-8#F8-F8-F88!-F8-8--!FF8FFF-F88!!F8!-!8--8-!!!-F--F!F----FFFF!-8!8-F-F-8F8!#-#--8F--88-!-!!88-!F-!FFFF8F8F8F!-88FF8 BC:Z:CTTCCTTG-GTGTCTCG RG:Z:HiMom.1 +HiMom:1:1101:1072:1000 141 * 0 0 * * 0 0 .CGG.CTGGTACCTATCGCGACGTCCACATTGTTGTATTC.GTT.CACAACCGTCTAGCCTTCT.TACTACCGCTAAGCTTAAA.CCAACTGGACAGTGGGACACGGCT.CTC.GTCACAAACACC.ACACAGCCTGTGC..CACCTCAAG #FF!#F-8--8!-8FF-!-F--8!FF88-!-8-!-8-!!8#F8!#F--8-!8!--F88-F!F!!#88!8-F!----8888!-8-#88F-FFFF8!FF!!8F-8F8FF--#-F!#!!-8-88888--#FF8-FF---!!8-##-88!-F8-- BC:Z:CTTCCTTG-GTGTCTCG RG:Z:HiMom.1 +HiMom:1:1101:1090:1000 77 * 0 0 * * 0 0 G.ATAGG.AA.GGAGC.CCTGTAAAGTGCCGGTACATTGAATACCTCTCA.ATG.CAGAAGTAGACCAGCTTCG.CAGGACAAATTCATCATAGTTTATAGGTAATCCA.TTGAGGC.CCTTGGCTTGATATTCTCCCGTCTACCGAGTCT F#F-F-!#-8#!8---#F8!!F8-F8F-!8-!8-!8!F!F-88F88-F--#FF-#--88-!8F--FFF!8-8!-#FFF8F88F-!!--!!F!8!--88F-F8F8--!--#88!F8-!#F!8!F88F-F-F-FF8FFF8F-!!F8-!-!F-8 BC:Z:TCTCACTC-AAGAGCAA RG:Z:HiMom.1 +HiMom:1:1101:1090:1000 141 * 0 0 * * 0 0 AGAGTGGGGAGAAGCGGTGGTGTGTTTAGATGTCGAA.CATCGCCAGGTATTCGCGTGGTTTGTGGGCGC.CAC.CTCATGAGTCACAAACT.CTTACATATCTTCGGGTTTCCAGTGG.TTCGG.CGCATCGTCCCC..GGCATTGTAGC F!8!8!-!888888-8--FFF!-F!88FF8F-!F-88#!8-8F-F888FF8!88!--88FF!-8!-F!8-#-F!#!F-F!8F--FFF8-F8!#-!!F--F-!8!!-!-8F-8--8!-!!#FF!--#8!888F-!F8!-##F-!--!-888F BC:Z:TCTCACTC-AAGAGCAA RG:Z:HiMom.1 +HiMom:1:1101:1108:1000 77 * 0 0 * * 0 0 .TCT.A.ATTAAGTGCGGCAG.TGGGGCCCCCTGGTTTGAGT.AAATTGTGCGTCTATCTTACGCGGA.G.AATG.CAGGACCGGGCG.CCTGTAGGG.ATCA.CCTATCT.CGAGTAAGTGAGGGGA.ATCGGTTCTCACGAATGCACGT #FFF#-#F!!8-88-!8F888#F--FF8!FF8!F-!88-88!#888!!8F--F-8!88-F-FF-F!8-#8#88-F#-FFFF8!-8--F#-88--8FFF#F8F-#F-8--8-#!-F-8-8-8-8-8FF-#8!!888-8-88888-!--8F-8 BC:Z:AGCCCCCT-CGTNATTA RG:Z:HiMom.1 +HiMom:1:1101:1108:1000 141 * 0 0 * * 0 0 TGTGTG.ACTATCAATCGACCAGTACTTAGTTCAGCACCGCCCTACTCGGCACTGCTAGCGGGTCGACCTGGATAGCCGTAGCGCGAC.AGCGATTGTCTTGAGTGCTCGCCAGATCCTTCTGTCCTGTATTCATACA.AGTGGGAAAGGG 88!F8F#--!-8!FF8F!FF--FF-!!!--!F8F-!-!8F--!88FF!F-F---88-88-!-!!FF8!!-FF8!----!FF--888F!#F!88-8!-FF!F88FF8--8!-!8---!-888-F!8-8-F8-!88-FFF#-8-!!--F-88- BC:Z:AGCCCCCT-CGTNATTA RG:Z:HiMom.1 +HiMom:1:1101:1127:1000 77 * 0 0 * * 0 0 TTTTCTTTGTTA.GCCGTC.ATGGGTCC.GGCCCACCGTACA.ACCCATCAGCGTCTGACG.CCGTACTTCG.TACTTATGGTGACTGTGA.TGCCACGACTTGTCAT.TACTTGGGGTTGTGA.TA.TACACCCTATCCGAACTT.AGGT F8F-8!-!F8-8#!FFFF-#FF--F8!8#8!F-8-!!--8!-#-F-88!8-!FF!FF8F8F#F-FF8!88-8#--8!F-F8--F-!8F888#!!--8!F8888!F!8!#88-F88!!-F!F8!8#88#F-8F!-F!8!8!!8F-F8#88FF BC:Z:CACTTTTC-GTTGTAGG RG:Z:HiMom.1 +HiMom:1:1101:1127:1000 141 * 0 0 * * 0 0 GCTTGCCATTT.CCGGACTCTATCCGTGCTCGTAGCACAC.TATCGGCACGCCTTC.ATACACTCTGACGAC.GGCCCCTATGGAATGA.T.GTCATCTACACCCTACTCATGAGATTTTAACGGGACAGTAGGCTACATCGGGTCAAACG F!888-FF!!!#--!F-F!F!88-F8!!!!-!---!8!F8#-8F!F-!FF!F-8-8#88F8-FFFFF-!--!#8F!F!-8F!F-F88F8#8#F88888--8-88!!F-8FF8-F!F!FFF-F-F888--8FFFFF--88-8-8--!FFF-- BC:Z:CACTTTTC-GTTGTAGG RG:Z:HiMom.1 +HiMom:1:1101:1163:1000 77 * 0 0 * * 0 0 TCCT.CA.TCGCACCGGAGAATTCCCACGATTCCCAAGC.AA.ACGATCTAATCTGAGCTTAGAACGAACAGACTCGGTAGGGGGATATTGTATCGCTGCCGTCGCGTGCTATGCTACGGTCTC.GTTATAATGGC.TTTTGGTCGCTTTA F8F8#-8#-8F88!F--88F8--!8!F8F8!!F!!FF-8#-F#FF--F!8888-F!--88-888-!F8F!8FF8--8!FF!888!8--F8F-F8F!-!8---88-F8F-!!F888-88F8!F88#F-FF8F-!!8-#!F!-!88-!F!888 BC:Z:TGTCTATT-CTGCGTAC RG:Z:HiMom.1 +HiMom:1:1101:1163:1000 141 * 0 0 * * 0 0 GG.GCGC.CTCCGCACGCCA.TAGCA.CTTG.GTAGGCCCTT.TTTCCAGTTTCTGGTAGGTCTCGAGGCGTATCGTTT.CGGCGTCTTTCCACTGAAAGGGGGTCTTAGGATGGTATCTGGT.GCG.ACGTGAGTGTATCGCACGTACCC F8#!8-!#8!8-8!88-!!-#8-!8F#8!!!#F!F--!!---#-!---8-!-FF!8!!F!8-8!!!F!--F!888!F--#F8F8-F8!F!-!8F8!-F--8!F!F8FFF!F-!!FF-FF88F8#---#8--FF-!!F!-F8!F888-FF!! BC:Z:TGTCTATT-CTGCGTAC RG:Z:HiMom.1 +HiMom:1:1101:1181:1000 77 * 0 0 * * 0 0 CGCGTGAAACGTCCACAATAG.GACGTCGCGTGATGTTGTTCTA.GGCGATAC.ACGAGGTGATCAGAAC.CCTTCAGTTTGTTGGAGTC.CTTCTGGACACC.CACCCGGATGATTAAGAGCTACGCGCTAGCCATATACGA.ATCC.TC !8-!88888-!F8!888F!8!#8--F!F!--!-F!-F-!8!F88#!-!----F#---F-8F!8!-8-8--#8-F!F88-!-!F8!!-!!F#8F--F8FF-8!-#-FF-FF8F!FF-!FF8-8---F!F8F888!!--FFF---#888!#!- BC:Z:TGTGTCAG-CTAGTCTC RG:Z:HiMom.1 +HiMom:1:1101:1181:1000 141 * 0 0 * * 0 0 CCAG..ATT.GTACATACATTCACTCA.GATCCG.CGATACGGTACC.TGTCTATTGA..AGTCACCGTCGGTCGACACCGTAGACCTGGTACGT.ACTCTGTAT..CATAGTTTAGT.AGGCGTTG.CGGA.GGATTGGCT.GC.ATTCA !FF!##F--#!-F8--F!-!---!F-F#--8-F8#F-8!-8!8!F8F#!-F--8-F--##FFF-8F!!!FF!-8-FF-8!F8-!-88-8FF8--F#8-!8--!-F##FF!-888F--8#F8F-!!!-#F!-F#---!!FF-F#!8#88!-8 BC:Z:TGTGTCAG-CTAGTCTC RG:Z:HiMom.1 +HiMom:1:1101:1199:1000 77 * 0 0 * * 0 0 .ACCCC.GGTGCTCAAAA.TTGTAGTCTGGACTGAG.CGCGGAGAC.TGGTGGTTGTCCACCGTCG.CTTCCGCTGGCGAATTCTCATATT.TGC..CAGATACGGGTACCA.G.ATGTTGGTCAAA.CCCTCGTCCCACGCGAC.GAGAA #-F!FF#F!88!8!88-F#-!-F8-!F-8-F88!F8#-!F!F8---#8!--8-!!!!F8-FF8!8-#8F8-F8F-!!-F8F!-F8--!F-F#-!-##FF--!-F8-F!FF!-#-#FF-!888!FF8F#-F8---!8F!88!!8F8#8-88F BC:Z:ATGTCNTT-TACTTNCC RG:Z:HiMom.1 +HiMom:1:1101:1199:1000 141 * 0 0 * * 0 0 TTTGAAATAATTGGGGC.GAAAAGCTTGCAATGTGAACTAGGTATGCATG.CA.ACG.GCCGTGCA..T..TTTCCGAGATTGATGCACTGCGAATTAATGACTAGGGACTGAC..CGCCCCGCGTCCGGTCCTGTTTGGGAGGTAATTTA !F-FF---8-!F88F8F#--F8-F-8F-88-8!-F-88F-!FF8!F-8!8#!-#F!F#8--F----##-##!-!8-8--8-F-F-!!F8!8-F-F8F--8F-F8-F---F!8FF##88-F---!-8!!-!888-!!F8!8F-8!--8!!F8 BC:Z:ATGTCNTT-TACTTNCC RG:Z:HiMom.1 +HiMom:1:1101:1217:1000 77 * 0 0 * * 0 0 CCATCGTCAAGAGGTGCGTGGCACAAATATCGACTGATGTAGCATA.GGACGATGTTCA.GCGGTGGCTGCAAGAACACCTCCATCTGGGATATTCGTGTCTTTT.ACGCGCGAATGGTTTC.CTACTGTCCACGTACACTTGCTTCACCA !---!!!F-888-!8---!8!88-FF88-F-FF8-8FF8-FFF--8#-!-8!FFFF!8F#F!FF!!F8-F--F!FF-FF!8!8F88!8!8F8F8-F-F-!!8!8-#-F8FFF!88!8-!-88#!FF-F8-!FF!8!8FF-F-8FF8-F-!8 BC:Z:GCGAGGCT-CCNGCGAG RG:Z:HiMom.1 +HiMom:1:1101:1217:1000 141 * 0 0 * * 0 0 CCCTCCTCTCAATTATTGCTCTCATTCTCC.ATTCGA..TTACGTTCTAGACGGTCTG.CAACCCGATT.CGTAA.AATTGCGGGATCTTCTAATCATTAGTCC.GAG.GGCGTTCCG.TGCTCCGCA.ACAGTCGGATCC...AGTTGCC 8!F---!8-8F8FF-!-FF!-FF8!!!!!F#-FF8F-##-!8!88!F!88F-!!8!!!#F8--FF!FF-#-88--#--F!F--FF8-!!F8!8F-!--FFF8FF#-8-#!-!F8F!-8#!--F8!FF8#8!8F-!8FF8--###F-!F--- BC:Z:GCGAGGCT-CCNGCGAG RG:Z:HiMom.1 +HiMom:1:1101:1235:1000 77 * 0 0 * * 0 0 GGTTTAGGCCACGAC.CGTTGCCG.GGGGTCGAGCTTTCTA.TCATGGCTTTGTCATGTCGCTGCCATGGACGACAGTCCGGACTCGGGTCCGAG.GC..GGGCGGT.CTC.GGCATCGAACCAGGTATCTAAGCGT.TCAGGCAATTCAG F-!-F8-8!F--F88#!F!-F8!!#!-!8!!FF!-FF8F-F#F8---88!!F8!!888-8888FFFFF-FF--FFF-F8--8FF!!8!-8!!---#!!##8-888!!#!-!#F8!F!!FF8--F-8!--F!---F-8#8F-8F-8--F-88 BC:Z:CCATCTGT-CCTTCTGT RG:Z:HiMom.1 +HiMom:1:1101:1235:1000 141 * 0 0 * * 0 0 GGTACGATTACCA.CC.TAGTTTGTTCCGAG.C.ACCCGAG.CTCCGCG.ACCGGGCTAGGTTATTTGCTTACTATTATAGGACTGGGGCGTTGGGGAGTT.CCAA.CTAAAA.TGTGC.CAGTGC.TATCTACTCACTAAGTTGCTCCGT -!!8!--8--F!-#!8#-888-!F!8-F!8-#!#F---88!#!8-!F88#F-FF-!F!-8!!8FF!!8-!-----8FFFF88F8F!!F!-8F!-!!---F8#8--8#FF---8#!8888#8F!-!F#8--!8-8-8-FF-88-8-F--F8F BC:Z:CCATCTGT-CCTTCTGT RG:Z:HiMom.1 +HiMom:1:1101:1253:1000 77 * 0 0 * * 0 0 .GTTGAG.AGTCCCTA.TGAGGCATTTCCAATC.TTCGGTGG.CGCTTATCGGGTGGGGATTCGATCGGGAATCGCGCA.C.CGTCAGTGTATGATTC.A.ATCGGTGCGTTC.TAACTTGG.CTATGTCC.CGACA.CCTCGGTCTGCTT #!F-88F#8---F8F-#-F8F!-FF8!8!-88-#-8!F-F--#FF!!8-8F!8F!!F!F8F-88F!--8!8FF!F--!F#!#-F88F!8!F--!8FF8#8#F!-!!FF!-8-!#!-8!-F!!#!!88F8-F#-FFF-#F---!F!!F!!8! BC:Z:ATTGGTGA-GGCNATGC RG:Z:HiMom.1 +HiMom:1:1101:1253:1000 141 * 0 0 * * 0 0 TTCGATG.GTAACGTGCTAGCTAACAG.CTCA.GGTCCCCGCCTTTCCCTTTAG.CGTC.TTCTCCCCCGTCCTAAATTGCGCTTGGAT.GCGGGTT.GGT.TCACGGCTACTCATTCTACAATGACT.G.TATGGGGCATTCCATAAGG. F-8!--!#!8F8!F!!F!FFF-8-88!#!-!F#-F!8!88!-88--8!-8!-8!#F-F!#!!!F!F8!88F8-F8F8F8-F---88!F-#!FF8-!F#F8-#--8!F!--8-F8-!-8--8--F8F8!#!#!8!!8!88F-F8!F88-F!# BC:Z:ATTGGTGA-GGCNATGC RG:Z:HiMom.1 +HiMom:1:1101:1289:1000 77 * 0 0 * * 0 0 TTCCGAGGC.CCGTACTTTTCTA.C.CCC.CT.TGCGTGTTATGCGTAACGTGTCTGTTA.TG.CCCGTGAATTAGGAGCGAGCTACTGATGAGGTCGTCCGGGGCGCA.TAGACCCCCTTTTCT.CTAACCG.GAATGGTATGCCTG.C. 8!!8-F-F8#!F8!-!F!8F88F#-#!--#-8#!--8-F!-8-8-!!8F!!F8F-!8F88#-!#8!8-888F!-8888!-F--8!8-F8-8F-!-88-8F8-8888---#!FF-!-!8FF-!8-!#FF-8!-F#F-8!8!FF!-F!-F#!# BC:Z:CCTGTCCG-GTAANTAT RG:Z:HiMom.1 +HiMom:1:1101:1289:1000 141 * 0 0 * * 0 0 CATTTTCGT..T.ACAA.GCTCTAGT.GGGCA.CAGGCGGGGGGACTAACTTAGGAACCCG..GAATTCAGGACTATCTGCGTACG.ACAG.GGTTGCAGTGACGGGAGAAG.CGC.ATCGCT.TGTTAGTGTTCCTGC.TACAGGGCACG --8!!!!-8##8#8!F8#!-F!!F-F#-F!-F#--FF!888-8!--!--88-FF!-8!!8F##--F!--FF-F8-F8!!8!8!--F#F---#-!-F--FF88F88F!8!88-#!8!#8F8!8-#!8--8-!-!-!-!8!#--!--!-FFF- BC:Z:CCTGTCCG-GTAANTAT RG:Z:HiMom.1 +HiMom:1:1101:1307:1000 77 * 0 0 * * 0 0 GT.GTATGTACAGAGACTGTGTCGTTTAGTGGGGTT.GGAGCGGCCG.A.TCTTGGCCGCGC.G.CCCTTGTTCTACCGGCAGCGTCAGCTCGTTTATCACC.AC.GGAGTCTGCGACTTGTTAGG.CA.TACCTATGAGAGCGC.CGC.G 88#-8-8F!8!8F-888F!F-FF-!-F8-!8!8!-8#!-F8!!!8-!#F#-F8!FF!!-F!8#F#!!F8!FF-8--8F!-!FFF888FF!8F!!!-F-!8-F#88#---F!-F-8-FFF!8F-8FF#!-#F---8F!F8--88!!#8-!#! BC:Z:TTTATTGC-GCGGCNCA RG:Z:HiMom.1 +HiMom:1:1101:1307:1000 141 * 0 0 * * 0 0 AATTG.CTTTGAGATAGAGGGCCCCTACGGTTGTCTA.TACTCTGTGCCAGAAGCCCAGTCGG.CGGGCAACTTTCCGGCTCCGGCTTTTG..CGCGATGCA.ATTT.GTTTGAGGCGCTGGTTCCCTCACTTCAGATTGCC.ATTCAT.C 8F!-F#F-!88F8-F8!8F!!!-!!8-F--F8-888F#8-8-!8F-!!-88-8!FF8FF8!88#8-88!-F!F88F-F--8--F88!8FF!##--8F--F!F#8!!8#--!-8FF88!-!-!-F!F!F!--!-!---FF8-8#8-F88F#! BC:Z:TTTATTGC-GCGGCNCA RG:Z:HiMom.1 +HiMom:1:1101:1325:1000 77 * 0 0 * * 0 0 AACGCCTTTGGATCCCCTCCACGGAGGTTACAGATTAGTAG.CAGGAC.C.AC.CGAAACGAGTGTTCTGTGAGGGTCATC.TAACG.T.CG.GCAATGGA.ACAAACAACAGGATTAATCGAGCTAACG.ACCT.GATGGTAGCGAGCGG 8--!F-8-!888FF!FF!!!8F-88F!-88---8F!--8--#F----!#!#F-#8--88--88!!!8!F88-F8-F-!F!8#-FF-!#F#-F#---FF!FF#----8-F88F!!8FF-8!---F-FF8F8#F-!F#8F!!8-F-!!8--88 BC:Z:TGTCCTAG-CCGCCGGG RG:Z:HiMom.1 +HiMom:1:1101:1325:1000 141 * 0 0 * * 0 0 CCAGAACATCCCCTGGAGCCTGGTCTACT.GGGGACAGGGTGTGCGT.GCAC.GGG.CGGTTCGATGGGGGAG.GGCGGGACTCCTTCGCAGCAAAAGAACC.TAATTTTTACCTTCCTTTTGTGAAGTGCTAGCTA.GTTCGGG.T.TCG 8---F-F-F-!8!!-!-8-F888!F8-!F#F-!-8!8-!-F8---F!#-F8F#FF8#88!-!!FF8F8-!F8!#8F-F8-88F!--F8!F--8F--F-F--!#F-F!!FF-FF8!8!!--F-!-!8F8F!!F-!-!8#FF8!8--#F#!!F BC:Z:TGTCCTAG-CCGCCGGG RG:Z:HiMom.1 +HiMom:1:1101:1344:1000 77 * 0 0 * * 0 0 CACTTCT.GTTCACA.GGGTAGCCC.TTGTTTCTTGTT.TTCGCATTGATCTTTTCCGGGTAGCCAATCA.CGGTACGGCCCACGGCGTTTCATGTTAGAGT.TGGGGTACAACATCCCTACGCTGTCCACGCTTTGGCACACT.CTATCA !FF!!-F#!8!-F--#F--88-F!8#-8!-F!!FF!-8#F-F-!F!F8--F-----8-!FFF8!88F-8-#!F8!8!8F!-!8F-8!!!FF--F8FF8!FFF#!888F-888F!F-88FF-F-FF!!F!F!!F!!---F888FF#8-8F!8 BC:Z:TTATCTGA-CCCNNTCA RG:Z:HiMom.1 +HiMom:1:1101:1344:1000 141 * 0 0 * * 0 0 .CGAGAACGCCTTCGGTCGATCTACTCC.GATGCTTTAGGAATGCCATT.CG.TGCCTT.GCTATTACGTGCCGGCGGCCGTTTTCCAAGTGCTATTA.CCTTAGCGGTCCCGTCTCATGTCACGGAGAAGAGCTGTTACTATGACGGTGG #FF-8F--8!8--F-FF8!8!-!88F!8#!8F-8!---F-F8-!!FF--#!F#8-!!!-#-FFF8-FFF8-8!-88!!8!F8-FF!88F!8!8---8F#-!FF88F-FF8!-F--8-FF!888!!!-8-F!FF!!88-8-F8F8-8FF!8- BC:Z:TTATCTGA-CCCNNTCA RG:Z:HiMom.1 +HiMom:1:1101:1362:1000 77 * 0 0 * * 0 0 GGGTTAGTCCGC.G.CTG.T.CCTGCG.CACACGACT.ATCATCCCCCG.TGTTTGGTTT.TTGTACG.A.CATTC.GTCTCAATTCGGATTGGCGTC.TAG.AGAA.TAAC..CG.CATCTAT.ATCTA.GCCGTAT.TTGGTTCTCCTG --8-!--FF-!8#!#-FF#F#F!--88#-8-F8F---#888F888-!--#!F-88-8F!!#F8888-!#8#888!F#88!F8FFF-8-88F8!!FF8!#F8-#--FF#8-88##!F#!-8!-F8#8!F8F#!F-88-!#-!--F-8F8F8! BC:Z:NAGGTNTG-CNCCNAAG RG:Z:HiMom.1 +HiMom:1:1101:1362:1000 141 * 0 0 * * 0 0 CGCTATTGTAACGATCGTATTTTACTT..TCT.TCGCACAGGGTATAG.CCGGGAGGAGG.TACGGCCTC.AGCCGTGCGCGCAGG..GGGCGTAATCCTTATGTCAAAATTGCT.CACTAC.ACGTCTAGCAAGCATCAGGAGGAA.AGT F!-F8F!F!8FF-FF8888!!-8-8F!##!-!#-!8F-88!-!!--8!#F--!F-FFF--#!8--!---8#8FF----8-F-F-!-##!F8F!88-F-8-8-!F-8F8F-F!!8-#!FF8F8#88F-F8F8!--F!F88F8FFF-8-#--! BC:Z:NAGGTNTG-CNCCNAAG RG:Z:HiMom.1 +HiMom:1:1101:1398:1000 77 * 0 0 * * 0 0 CTCTCTT.TTTCTGCTGAAGACTGCGGTCCTTATGAATT.ATTTACCTGTACCCAGTTGTGTTAGGTACATG.TTTGCA.GAACAGACATTCGTCGCCCAGCTACCGTCACTCCGA.AAGGTTAACCTGAGATCTG.A.AGCA.GCG.ATC ----88-#FF!-8F8--8-!F8!--8F8!F!88F!----#-8!F8FF8FF---88!F8-88-8-F-8888!-#F-F--8#!F---FF8F8FFF-88!8F----8-888-F8888FF#F-8!--8F8!-888F!!-!#F#--F-#8FF#88! BC:Z:NCATNCTC-GGGATCAT RG:Z:HiMom.1 +HiMom:1:1101:1398:1000 141 * 0 0 * * 0 0 CGTCCTGTACGTGTCGTTAAACTGTC.C.GC.TTGCGTA.GGTGCCGTGCACGGTATAGCACGTTGGCATGGGCGAGCACTCACAACACACTGC.GGG.GGGATTGGCTGAAA.GGAGCGTCGTTAAGGGCGCTAATGACCATGTC.CAAA 8F8---!-F!F8F-F88-F--F!8!!#!#88#!!F--88#-F8F8---888-!88FF-!F-8-F--!!-!FF8F888--88!--8F88F-8F!8#-8F#!FF8-!F--!88--#!88F--F!888F88!8F8!FF-!8F8-8!F8!#F8FF BC:Z:NCATNCTC-GGGATCAT RG:Z:HiMom.1 +HiMom:1:1101:1416:1000 77 * 0 0 * * 0 0 AACTTGGGTGCCCGC..GCTCTCGAGGCT.G.ACGTCATGCTTCG.TACGGTTACGCT.CTGGATCGGCACCTCAGT.TAT.AATTGGAGCCCAC.GTG.CGGATATG.TG.TGCGGATT.CAT.GGT.TGGCGGCAGGGAGCC.CCCATT F-!F-8!-!F88-8!##!!---F!--!-!#-#F8-8-FF--8F8!#--FFF8-F-8!-#8!88-8F-!F8-F8-F-8#!-8#88-FF-8!FF888#!88#F8!8FFF8#!F#8FFF8FF8#8-8#F-8#--!F8!-FF!88!!-#!--FF! BC:Z:TAGCGTTN-ANCGGGCT RG:Z:HiMom.1 +HiMom:1:1101:1416:1000 141 * 0 0 * * 0 0 TGGTCCTCTGGTCAGCAGTTCTAAGTGCCGTCTATGG.TGGGT.CACCA.CGCTA.GT.ATAGGTCCCTAGGTCGGGCGTGCGACTCACCGCCGGAAGGGGTGGCCGGG.TATTTCTTCCAGGCAAGCCA.CTAATGGTAAATCTGTCGCA -8F8F-!-!--F!F8-F-!F888FF-F--F8!--888#888!!#-F-!-#F-8!F#!!#----!8-!!88F8!!F8-888!FF8!!88!8FF8!---F!F88!8-8F88#-F----F--8F-!FFF!F8-#-!-F!F88--8--!-8-F8- BC:Z:TAGCGTTN-ANCGGGCT RG:Z:HiMom.1 +HiMom:1:1101:1434:1000 77 * 0 0 * * 0 0 TACTC.GTGGACTTGTATCC.GGACTTTCTCTCTG.TACTGGGTT.CGCCGAACTCCCCGTT.AGCCATC.CGGTGCTGGACCACA.ATCGCGTC.GACATGCGCACTAG.CGAACCCTATACTCTA.TTC.CCTTCGCTTCGGCAGTTGT -888!#8FFF-F!-8!F!F-#!8-F888F8-8F!8#!FF!!8-!-#-8F!!8F8-F88!-F!#-!8-88!#-F8F88!F8-!F-F8#F!F!F!--#8-8-!F8!8-F-F-#FF8F-F8!-!88-!8F#!!8#88-8!F!!8F8!-F88!FF BC:Z:AATTTGCG-AGCAGNGT RG:Z:HiMom.1 +HiMom:1:1101:1434:1000 141 * 0 0 * * 0 0 TTTGTTTCAGGGCCTTTGCCGT.CGCA.TATTGTGTCTCTTCCCAGCAGCTGTCCTTAATGAT.TAGCAGATCGCCTGTGCATTA.CGCACCTC.TCGTA.AGGGGTGTTCCAACGCATACA.CTGC.TGG.CGT..CAATGAATCAGATT --!!F!8!FF-!-!88!88!-!#8-FF#F888F!!F!8--8F-!FF8-!F-8FF!FF8F8!88#8--!888!-F!FF8F8F-F-F#!F!88F-F#8!!F8#-!8!---88!--88F-F-88F#8888#-F!#FF!##!F8-!-8F8F-8F- BC:Z:AATTTGCG-AGCAGNGT RG:Z:HiMom.1 +HiMom:1:1101:1470:1000 77 * 0 0 * * 0 0 .ATCTTTGGGATCATGAATTAAGGATTGTCCATGCGACAAGC.ATGTAC.ACAGCG.ACAGAATTG.TACGATGAACGTCGTAGTTGCGTTACCAAGGCACTAG.ATTACCCTCT.GGCCTCGATTCG.CCACCCTCTTGG.GGTCCCGAG #---FF8F888-F8-8F-!8F88F88FFF-FFF-!8F!F-!!#-88F--#F8888-#F8F!FF8--#!-8F88-8FFF!F8-F!F8-FF!88--F-F888-8--#8F88--FF8F#88-8-F!-F8-F#F8-!8F!F--F8#-F8!8-8F8 BC:Z:GANCGAAC-AGNTGGCN RG:Z:HiMom.1 +HiMom:1:1101:1470:1000 141 * 0 0 * * 0 0 GGGAATTCCGGTTTTTGGCGAAGTCTCGATAACTTCCGCGCGGCACCTAACTTGCCAGCTGTGGTTCGCGTCGTGA.TTAATGTTGGG.TCTCGC.CGACATAAAA.TGTAAAGGGAGGCCTTGGAGGCCC.GGTGTATGCT.CCAGCTGG --!-8F-88F-F---!8!F--8FF!8F--!---!-888--8F-F--!8FF!8-FF!8-!8-!----8-!8-88FFF#8!-8!-!-F!8#-8-!!-#8F888F8FF8#--!888!8F8!F888!!-F8-!-!#F-888F!8!-#F!F8F8!F BC:Z:GANCGAAC-AGNTGGCN RG:Z:HiMom.1 +HiMom:1:1101:1488:1000 77 * 0 0 * * 0 0 GGTCCTGTTTATGCGTTCGCTGA.G.TGA.ATCACTGCCGGATGGCTT.ATAGGTTG.GT.ATCTTACTGCGGGGCACTCAAGTTCCGCCCAAGCA.GATTGGATTAAT.CAGAA..ATG.CGGT.CCGCG.GCC.TGTT.AATTTCATCT --!F-!FF-F-8FF!!F!F!--8#8#FFF#F!!8!F88-!F8FF!-!-#-!8!F!--#!-#8-----!F8!!!F88F-F8F-8FF8!F!8---FF-#--F-FFF-8-8F#FF88-##88-#FF8F#F----#-FF#8!--#-F-F8FF88F BC:Z:CGTCNTGT-CTTCCTCA RG:Z:HiMom.1 +HiMom:1:1101:1488:1000 141 * 0 0 * * 0 0 GGGGGTTAACCTCGTGT.CGTA.GACATATTACACGCTAGGACCGCAGGTGTGGAGCG.T.TCT.CGCCGAAGGCTTTAGGTG.C.AATCTAAATCTGTTGCTGATCTTA.GCGCAT.GTAT.CCGTGTATCTGGAGTAAC.CATAGGTCT -8--8F!F8-F-F!F-8#F--F#!8F--FFFF!-!!F!F-8F!8!FFF!8--8!F-!F#8#-!8#!8F-FF8----F-8--!F#!#888-8-8FF!8!88---888!-F8#!FF!-!#F!-8#-!F!8F88---!8!8-8F#-8FF-FF!8 BC:Z:CGTCNTGT-CTTCCTCA RG:Z:HiMom.1 +HiMom:1:1102:1000:1000 77 * 0 0 * * 0 0 CTTTTCGAGCATCGTACCATAG.TGTACGTCGTGTA.CCCTAAGTGGCGGACTCCCGCCTT.GGACGGGTGCCCGTTTACCCACT.AACCACACCTGAGTACCCCACGGCGCAGCTCTATTGCTGTCCTCTTCTGC.TGAT.TATTTGG.A --FFFF-FF-8-!!--!88F--#8!88--8---!-F#!8F-F8F!!!8!88--FF--F-F-#8-8-!!88-!8F!8FF-F-F8F!#---8F88!!-8F-F--8F-88!-!8-F!88FF-!88FF-F88!F-F!!F-#-F88#!88-!-!#F BC:Z:AAAGCGAG-GCCACATA RG:Z:HiMom.1 +HiMom:1:1102:1000:1000 141 * 0 0 * * 0 0 GG.GTTCTGTG.CTCTTGAGCAGTGCAGCCCGCGATGCGCCGCGCATTCATTCCATATCGGTTT.G.ATA.CGTTACGCCTGCGTCCGCGGC.CCTGATGTCCTCGG.AGATTACGTGGTAGCAACATCAT.TGCATTTGTCGCGGATTTT --#!!F----8#88FFF-F--8!---FFF-!888--!8!F-FF8F8FF888!-F-F-FF!!FFF#8#8--#-F-FF8F-F!F!-8F-F-!-8#-8F88-8-F8!F-F#FFF!-FF--!8-F!F-8-F8FF-#!F!FF-FF88FF-F-!F88 BC:Z:AAAGCGAG-GCCACATA RG:Z:HiMom.1 +HiMom:1:1102:1018:1000 77 * 0 0 * * 0 0 .GGAAA.GGATAA.CCAGACACCCAA.GGATATGTAGCATTGTTATACCGATCCTTGCCGCTTTTTGGTAAGCAGAGGACCATACGGTAGGG.GTGACCATGCTTCAGTCCCGGTTATATGCACTGGGCAGACGGCTGTC..CTTTCGTCA #F---F#-!-!--#F88F8FFF!8-8#F-8-F---F8!F-F!!!-8-F-F88FFF888F!!-!8F!!!F-F--F-8F-F!F88F8!F!F8-!#!FF88-8-8-!!F8!-!8!-!!-FF-----F8--!88-8-8F-F!--##F!F-F-!-F BC:Z:TCGTNTTG-CGTGGATT RG:Z:HiMom.1 +HiMom:1:1102:1018:1000 141 * 0 0 * * 0 0 TTTCACCAGGCCTCCTCGTAAGTAGATCTTATTTGGATCCAGGTAGCATCGGGGGAGCCGACATT.GTCC.GTCTCAGCGTCGTCCACCTACTCTGACG.GTACCAGAGTGCTCCCGGTACCTCAGTGCCAAGTCGGATTAGCTTGCCAGT 88!!8-8F-F-F-8-!!-!F88F-F-8!FF-8F!8!F!8FF-FF88-F8!F!!8-F!F8FF8FFF#!8!F#8888!-8-!!F-F!F-F8!-!88!--F-#!F88!F!-!F!8-8F!!-!F!--F--F8-!8888F!!8F88!!----!888 BC:Z:TCGTNTTG-CGTGGATT RG:Z:HiMom.1 +HiMom:1:1102:1036:1000 77 * 0 0 * * 0 0 CAGTGTTTGTTCGAATCCGCTCCCTTCTGCTGACGTGGGT....GG.AACCGAAACGCTTTTCTCCCAC.CCGG.GTCGTTCAACTCTA.ATGGGACAGCGCATGGTTCGTCTA.GC.TGACTCGTGGCA.ACGTCCTACGACCGCTAAAT F-!8--!F-F-8!F8F888!!!F8!F-8F!!F-F-F!-!F####!!#-FF8!F-F!8FF--8F-8FF-!#!--F#FF-!8FFF---F!-#8-F!!8!--F!FF8-88FF8--88#F-#!!-FF!F---!F#8F--88!F-!--!8!8F8-8 BC:Z:NCATATCT-ANAGGCCG RG:Z:HiMom.1 +HiMom:1:1102:1036:1000 141 * 0 0 * * 0 0 TTCCTCG.ACGTCTTTG.AGA.TTTCGCCCAAGGCTTGTCC.TGCAAGACGTCCTGTCGTATAAAC.GCCACGGGCGGCTAGGACTTGGA.ACGGACCT.ATAGTTCCTGTGCCACTT.TCG.GTTTTCGTCTTGTTG.TGCGA.AGGGG. F-!--F-#-8-F!-F--#-!-#88888F-FFF-F!8F!--!#-!-88-F!!F8!88-8-!8--F88#-F--F8FF!-F!!8F8FF8FF-F#--F-F8-F#F-F!F!!FF8!!F!88!F#!-!#-!--F8--!-8!8-8#F88-F#-8-F-# BC:Z:NCATATCT-ANAGGCCG RG:Z:HiMom.1 +HiMom:1:1102:1072:1000 77 * 0 0 * * 0 0 GCGCTTGTTCCGATTTGT.TGGCGCTGCGGCAGCCTGATCGG.GCGCCTTGGT.GAGAGGCGCACTTGCACTA.CG.CGGGCTACCGCCA.ACGTTTTCTCTGCCGG.AGCCGTATCCGGTTGGAT.TTCCG.CCATCCACGAACTTCATC F---F!!-!8!F8F8--F#8F-8888!!--F8!-88-F88FF#!88F-F-FF-#FF-F-FF!-F-!FF!8--F#-!#F8FF-F8!FFF!-#F!F8F8!8FFF8!-88#--8!FF8F-8!F8-!8-F#8-!--#FF8!!--!!FF8FFF8!- BC:Z:CCCATGCC-GATGTTTA RG:Z:HiMom.1 +HiMom:1:1102:1072:1000 141 * 0 0 * * 0 0 A.GAGGC.CCGCCCC..TT.CTCGT.GCCCTCCCAACCGTGCGACTGG..GCGCTGGACATCGTCGCAACTTACGGCGTGTGCCCTGAAGGTGACTACACCG.TGAAAGG.CGCCTCGCCGTCCATGCCACAAGGTGGACG.TCATCG.CT 8#--8F-#F8!F!F8##88#-!F-8#F!-F---FF-F8-!8-8-8F8!##--F-F-8FF-FFFF--8--!8--F--!FF!!-!888FFFF!!!-!--F-8!-#--8FF!-#FF-!8F!-F-!-!8-888FFFF-8!--8!!#-F-8F!#!8 BC:Z:CCCATGCC-GATGTTTA RG:Z:HiMom.1 +HiMom:1:1102:1090:1000 77 * 0 0 * * 0 0 GCCTACGCATCCGCCC.CACTG.ATGGGTGAGCC.G.ACTAAGCTGTAGTGCCTGATCCCTCCAGGAGCCCTTTA.TGAATCGGAACGCTATGCGACTTGTGATAACGAAAATTTCAGAAGTT.ATCGCCAGTGTGGTTCTTCC.AACATG !-F-88F88!!8!--8#---8!#F8F8-!F--8!#8#8-8F-8-!-F888FF8!8F88!-F-F8!8F---!F8!-#8F-F8!F--8F!!!8-F8F8FFF!!!---8!-8FF8F!-8-!FF!F-#-FFF88-8!!8!!8-8!F-!#FF!8!- BC:Z:TTGCCTTT-TTTCGGTA RG:Z:HiMom.1 +HiMom:1:1102:1090:1000 141 * 0 0 * * 0 0 TGAG.AG.CGTTTTTTG.CCGCTACCTTG.GGTGTGCGTGCCTAGGCACT.AATCTCCCGCTGTTGTAGGTCTATGTATTC..CGTGATGCCGC.GCTGATGCTGT.TTCTGCGTCGC..GCCTGC.CCGTTGCATATCGTGGCGGTAACA !FFF#F!#-F8F-8-!8#8F!8F--!-!8#!!--8F-F!F!-F8!--F8!#F-!8!F-8!FF-!F-8--!8!!FF!!F!-8##!---8!8!--F#!!F--FF--8-#F!F--FF!F8-##-8F---#-88!--F-FF8!FF88-!!F8-!F BC:Z:TTGCCTTT-TTTCGGTA RG:Z:HiMom.1 +HiMom:1:1102:1108:1000 77 * 0 0 * * 0 0 TTA.GGGGAGTGC.AAGG.CTTA.AGTTCACCGAGCCCATAGCCTC.TGTTGTTGCG.GGGGGGTTCCTGTGCTGCC.TTGCGCAGAGCC.GTTTATGCTGAGGT.GCGGAAGACCAGTCAGT.ATTGATGGGGGTGGGAGAGGGAA.TAG 8!F#8-8!--FF-#8-!!#8F--#-F!F8-!!!8F!FF-88!-!8F#8-F-8!888F#FF!88!8-8!-!!FF!F8F#!-8-!!-F8-F-#!!!F-F8FF-FFF-#-!F--FF8-!-F!--F-#-FF!F!-F-8F8---888--8F-#8-8 BC:Z:CCCGNGCT-CATCCNTG RG:Z:HiMom.1 +HiMom:1:1102:1108:1000 141 * 0 0 * * 0 0 TTTTCCAGTC.TTCTTGCAGGCCGGTGCATCGGCTT.ACGCAATG.CCCCTC.ACGTTGTGAGTGTCCCGATCAATTTG.GC..AAGTACCAAAGGTGCCTGTCTGTAGTTGAACATTACGTGGCGTATGG.GTAAGTTTCTATGCACGCG 8FF-8F8-88#F8--8F!F--8888F-8F!!--!8-#8-8-8--8#8-8F!F#8!F-F-8!--!8-!!8!88!-F!!8-#--##F--8-!-8-F!FFFF88!8-8FFF-!F8FF8FF-F!--F88-!-!!8#-F88!F8F!8-F-8-F--- BC:Z:CCCGNGCT-CATCCNTG RG:Z:HiMom.1 +HiMom:1:1102:1127:1000 77 * 0 0 * * 0 0 GCC.AACGATCTT.TTTGCTC..CGTG.TGCTTGGTCTTCTTGTCTCTAACTA.CGTGTAGTGAGAGT.TCTCTCTCGAGCGT.TCTGGATTGC.CGACGGACGAGGAATTAGTGCTCAGTGTATCGGACC.TTTTCTGGCCGCATGCAGC 8!-#8-8!-F!-8#!8-!88-##8-FF#FFFFFF!!F-F-F-FF!F--8-8-8#!!!!!88-!F-F-!#8---88!FF8-FF-#-!8-!88-8!#!8--F-FF8FF88F!F8F8!!8!-F!88-!!-F8!F#!8---!-!F!--8--!F!8 BC:Z:GTGGCAGA-GAAACGAA RG:Z:HiMom.1 +HiMom:1:1102:1127:1000 141 * 0 0 * * 0 0 CGCCGCTATTCCGGACA.AT.GTGTGACGCTTTCCGTCTCCCGTCGTCTCGATTTGGCGCC.ATC.TCCGTCAGCCTAGAG.A.TAACGAA.CTGGATGCTGC.CATTGGA.ATGACTACCTGCTACTTGG.ACGATTCTGCACGTCGTCT !88F8FFF!8888!-8-#F8#-8!!F-!FFF!888--8FF-F-F--8-!FF8-F888-F!8#F--#!88!!-F-FF!F-8-#-#!--FFF-#8-8-8-!-!-!#88F!!8F#F!8FFF8-F---FF!-888#F8FF8------88--8F!- BC:Z:GTGGCAGA-GAAACGAA RG:Z:HiMom.1 +HiMom:1:1102:1163:1000 77 * 0 0 * * 0 0 GATACGGTGTTATTCTTCTTGATTTGACTACG.GTCCGACAAC.TATTCGTGGAAACACGGCCCAATAGCGCT.GCCC.ACAGCTTTATAGTGTCA.CAGTGATTACGTCG.TGTCAGGGTTTACAATG.AG.GCAAGCGTTTGGCGGCGA !-!888F-8!!8!8--88!888---!8FF88F#--!F8-!-F8#F88F!88!!F-8F8-8!--!-F!FF!8-F#F!!8#-!F88F-!-FF!8FFFF#F-88F8F!8!!8FF#!8-!F888F8F--FF8-#88#-!--F88F!-F-!--!F- BC:Z:CCGCGCNC-NGGGATAT RG:Z:HiMom.1 +HiMom:1:1102:1163:1000 141 * 0 0 * * 0 0 CCTGCTCCTCGGCCGACCTG.CCCTAATGCAGTTGCTCCGGA.CTGCCAACGAAAACCTTACTC.TCTA.CTCGTA.ACTACGGCACTGAAGCA.TC.GCCC.TTTGTTC.CGTCTAACCACTCTTTCTTCGCGCGAT.TAAGGCCT.CTC F!-!-F88FF-!F-88F!-!#-8!8-F!88--8F!!FF--8F#-FF88FF---F8F8!88F8!-#F!!8#88!-FF#-!FF8!F-F!88F----#!-#-!F-#8!--!!8#88FFF88F8-8!!-!F888!!FF!8F8#8-F!!!-8#F!- BC:Z:CCGCGCNC-NGGGATAT RG:Z:HiMom.1 +HiMom:1:1102:1181:1000 77 * 0 0 * * 0 0 TAGCATCGTAAACGGGACTTCGCTAGTCCAGTCTCTTACTAGTCCGG.T.TGGACTA..GTT.TGTA.ACCCGACTCGGA.T.CATTAGTCAC.CAGACT.CTGT.G.CATCAA.GACCC.AC.CCTCCTTCCCAGATAACCGTT.GTTTC -F!!8F!F!F--!F-F--F!-!---8F!!F-FF-!F8F8F--F--8-#-#-8!F!!F##-88#-8F8#-!-8F--!-!!8#8#8-!F88-8--#-F--!-#!---#-#F-8FFF#8888F#8!#F-888!!!-FF-F!FFF!!!F#8!F88 BC:Z:CGCGTAGT-ATTCCGAC RG:Z:HiMom.1 +HiMom:1:1102:1181:1000 141 * 0 0 * * 0 0 GACT.AGCGATAACGTGGTTCTACGGC.C.GTATC.CTTACGTGGG.TTCTCAG.CGTGCGAGCCCGTGGCCCTGTGCCTCT.TCC.TCGCTGTTGGGTCCCTCACTATGGTTCGCGTTCTGCAGAGTGTG.GAGTTAACTC.C.GACGTG !8-8#-!!!F!888!!8F!!F!F!-FF#F#--FF!#!-888-8!8F#-FF!---#---F8-8!-88FFF8-F-8!F!!88!!#FF!#8!!-8FFF-F--F!!8--8FF!!---F888!-!F!8-F8!88!8#F-F8-8-F--#!#8888!F BC:Z:CGCGTAGT-ATTCCGAC RG:Z:HiMom.1 +HiMom:1:1102:1199:1000 77 * 0 0 * * 0 0 CTAGCTGTTGCGGCGTTCACGGTGTCGTGG.CTTGGACCACGCCATCCCTC.AG..CCTATAGTGA.CTCAAATGGTGGTCAATAACTCAGGTTGCTGCGCTCC.TC.TGCAATCCCTG.AAACCACCG.TGGGCCCGGCAGTAGAGCT.. 8F8!F-8F-8!!!8-!-8-!!!!F-!!8!-#8!!!-FFF888!--!-8F!8#F-##!!8F8-8!--#8!!-F-!88!!F!!8FF---!F88-!8--!!!-8F!8#88#!-F-8-F8F!!#--F8F8!8-#-8!F!!-F88F-8F-F!-F## BC:Z:TAACGGGT-GTGCACCG RG:Z:HiMom.1 +HiMom:1:1102:1199:1000 141 * 0 0 * * 0 0 TGTGATCTCACAGT.TCGATTA.TTCGGTGGCT.ATAGATATCGCGTGG.GTCCGGGTCGCCGCATCGG.CTTCAGC.AAGTT.GTCGTTTT.GCGAATAGCAACGCGGTGGGAA.AACGTTG.G.GATGGTTGGCGGT.TTTTAGTGCTT !8----8F-8F---#--8F-8-#8!8-!8!F-F#8-F!F!FF--F-F88#!FFF-8F!-8F--!-88!!#88-!888#---!8#!!!!8F!8#F-!-FF-!-F---F8!-!-8F-#F8-F-!F#!#8F-8-8F-F!--!#FF88F8-F!FF BC:Z:TAACGGGT-GTGCACCG RG:Z:HiMom.1 +HiMom:1:1102:1217:1000 77 * 0 0 * * 0 0 GGA.TCCCCGTT.CAGTTCCTCT.CGCCAACGACTATCAACAGCGCGTACATTGGGCTGTGCCCTTCAGTGGGTTA.GGCTTCGT.CGAAGTTCGGTTATGTCGTTTG.CCT.CCCATG.ACTAATTCTATCTCCCATG.TATTGCTCCCG 8F-#F--8!!!F#!88FF-8F8F#-FF8F8-!-!-F!-F-8-FF8F-8F!--8---F-8!!FF!F!F8-F-F-!!8#-FF!F8F!#8!---!-F-8-!F!F-F!!!!!#F8!#8!-F!8#8F!-F-8--F!-8!!-F-!#F8F--F8!FF! BC:Z:CTATCTGN-TTTGAGTA RG:Z:HiMom.1 +HiMom:1:1102:1217:1000 141 * 0 0 * * 0 0 ATGCGTTT.GTGCATA.AGGGGTCCAGTCTTCACTTGTTGAC.A.GCGAACCACA..TCGCCGTTTGGCA.CGTCAGGTCTTGGGAGTTCGGTCGCGTCATGTTGCG.GTGACCAGGCCCCTCGACTGCCTACTTCGCTTATCGGGCGGT. FF888F88#---F-!8#F88!8!FF8F8F!8F8!FFF!!-FF#8#--!FF8--!8##!8F8!!F!-FF-8#F-8--8!8!8F8-F8FF-8!88!8-F!88-FF8FF8#8F!F-F8!---8!F-!8!!F8888F!FF8F8--FF!--F-!8# BC:Z:CTATCTGN-TTTGAGTA RG:Z:HiMom.1 +HiMom:1:1102:1235:1000 77 * 0 0 * * 0 0 TCTC.CTATCGTT.AA.TATCACCTAGTTGGT.G.GGTGAAGTTGGATCTTTCTCTTATACACGGCAGACGTGCCGCTGAGGA.TTCGCC.AGTAAGCGATCTTGGTTGCTCCAGAGTTGCGTGA.TCGCTTAAAA.GCGCGGCTGTCACA F!-!#!FF-F8!8#88#!FFF8-F-F!FF-!F#!#!F!-F--8!8!-!FFF-8-FF!--8F-!--FF-F8F8-!-F-F8-F!8#!F!888#8!!-888!-!-!FF!-8!!!8F88-!!--F-!!F#!F!88-88-8#FFF--!F8-F-8-F BC:Z:CCGGTGCN-AAGTTACG RG:Z:HiMom.1 +HiMom:1:1102:1235:1000 141 * 0 0 * * 0 0 TCATAATGGGACT.ACGGGCTAAGTTC.GCGGCGT.ACGG.CTAAATGGGGCAC.CCCCGTCTACTCTTGCTCATATGCTTTAAA.GGGGCGATTTC.GCTTGCGGGATGCGGACGTCCCATGTTTTCA.GGGCCGCCCTAGTCCT..GGT !-F-8F-F!!8F8#-8-F!!!-8--!-#FFF--88#8!!F#-8-FF-8!-!8F8#88F8!8-F----8F-FF!F8-!8-8F8-F-#!8-88-F!F8!#88!!8F8---!!8-FF-!888-F-F-8-8-F#8!!-!F!!8-8F8-8!##-8- BC:Z:CCGGTGCN-AAGTTACG RG:Z:HiMom.1 +HiMom:1:1102:1253:1000 77 * 0 0 * * 0 0 CCTTCACACGTGAC.T.TATCATTCTGTTCTTGTATTTGGATTGCCCTCA.C.ATAT.GGCATCCTAAGCCCGGT.TGGTA.TATGCCTCTCCTCGATCCCGACA.GGTAACGTCCAAGGGA.GGTCAGCT.ACGAGATGGAGTTCAGGTC F8!F!-F88F8-8!#-#F8F!-F!!8!F!!-!F!-8--8FF-!8F-F!-8#!#--FF#8FFF-F--F8!-FFF-8#!8-FF#FF!F-8--!888!----!F8F88#F!8F8-!!!-8-F-!-#F-----!8#--8-!FF88FF-8F--!F! BC:Z:GANGCTGA-CCCGGCAT RG:Z:HiMom.1 +HiMom:1:1102:1253:1000 141 * 0 0 * * 0 0 GGCGCCCT.CTGTCATCCGTATGTG.TCGCTTGATTTA.CCGCC.ATATGGTGGCTCATCTCGCTCGGGGACCATGCCTATTAAG.GGG.AGTCTGTGGTT.AGTGCTCTTGA.CGATTCGCCTTCCC..AAAAGGTCTGACGTGCCGCGA -!F--!FF#F-!!FF--8FF8F--F#F-FF!8F88FFF#-FF8-#-F88---!8F8-8-8F-!-FF8!-F88!FF8-!F-8F88!#--F#--!-888F-FF#-!8!88-!!88#8FF8-8!8F!!8!-##8FF8F!!-F!F!-8FF-!8!8 BC:Z:GANGCTGA-CCCGGCAT RG:Z:HiMom.1 +HiMom:1:1102:1271:1000 77 * 0 0 * * 0 0 GCCAATTCCCAAAGTGTCGCTCCTTTGCGCTTA.TATGCGGTCCTCTACGTTACT.GGGCCATGG.GGGAACAT.TTC.CAGTCTACATTG..GGG.GTGCGGCTTT.CT..CCTGTTCT..GTCTCTA.TGGT.G.CTCCATCCCGGCAC !F-F8FF!-!8-88-!--F-8F-F8F8!FF!!-#FF!F88F8-8--FF8--!8FF#!!8FFFFFF#8F8-88F8#!8!#--F8!!F!-F-8##!8-#8-8F-8!!-!#F8##-F-!!-8F##--F-!-F#!FF8#-#8!F--888-8F-FF BC:Z:CCCAAGAA-AATCTGTG RG:Z:HiMom.1 +HiMom:1:1102:1271:1000 141 * 0 0 * * 0 0 G.GCCGTCTTTAATGTC.T.G.ACCTTATAATTCCGG.GCACGGATAG.GCGACTGCCCGCCGCG.CTTTCCGAGCTTTT.TAGTCGGTGTCTGTACATC.GCCCGGCATCTTGCTTCCGACATCGTC.GGGGGC.AGTATTGCAGACATA 8#!!8!8F-!!88-8-F#F#F#FF8!-F8FFF-FF8!#-FF!--8F-!#F8!88F8!-FFFF88F#F!FF--F-F-FF-F#!8-8!F8!8--8FFFF-F-#F!8FF!88!!-8!-8!!F88F8!F-8!#!8!F88#--F8FF!8FF-F88F BC:Z:CCCAAGAA-AATCTGTG RG:Z:HiMom.1 +HiMom:1:1102:1289:1000 77 * 0 0 * * 0 0 GCGTCTCAACATAT.ATTTATTCATATATGA.TTAAC.CAATCAGGAAACACCGGGACTTATCCGT.GGGTGCT..TGTCCTCGTCTTGGTGCGCTCAT.CTCTTTCCAGGTTTTAACGAGCGGACTCGATCCACTCTACATGGTACTTTT !-!8!!8FF----8#F-F8FFF8FFFF888-#!8F8-#!88!FF-888---8!8----888-!F8-#!-F!!8F##F8!-8!8F8F8-8-8F-8F!-8F#F8-!!----!-8FF!8FF!-FFF88-!-F-F-!8!-F8F!8F!-!-88!FF BC:Z:CGCTGCAC-CCGTNCAA RG:Z:HiMom.1 +HiMom:1:1102:1289:1000 141 * 0 0 * * 0 0 TTAGCAGCACA.CACGGCTTGTTGCGACTGGTCGTCT.ACCGTTCTAGTA.GA.GCCGGTGTCTAGGCCCCAA.GTGTCGCAACGGACCCCGGTCCCGCG.CC.CACCGA.CATG.TACTCG.ATCT.GATAAGGTCCAAATTGCTTCT.G !88!--8--!F#-8!-!----8F-F8F8!8!!8FF-8#88!-88-8F!!F#F-#8!FF88!F-!-!88!!8--#!8-F8F!-FF-F-8FF-!-F8FF88!#--#!-8!-F#--8!#F8FF88#-8!F#F-!-8F!88F88F!--!8FF!#! BC:Z:CGCTGCAC-CCGTNCAA RG:Z:HiMom.1 +HiMom:1:1102:1307:1000 77 * 0 0 * * 0 0 ATCCGCATTTAGATCACTTTTCC.TCCCCATGCGATCATTGATGCCTC.GAAGTTACTGCCAAGTACCGCG..CTCTGTCTTCCTTGGGGTTATTGGATGGGCTCCCCTGAAGGACATTTAAACACAGGATGAGCGATCCCTTCT.GTCAG -!!!88-8-!888F8F!!!8!-F#------8!!-F8---!8-----!!#8-FFFF8-!8-88F!8-8-!-F##F!-F8!8!FF-88!888FF-F8-FF8F!8F-FF-!8FF-8-8-F-88--F88--F----8FF8F8!8F8-!8#-88F8 BC:Z:TCGGTCTT-CCGACTGG RG:Z:HiMom.1 +HiMom:1:1102:1307:1000 141 * 0 0 * * 0 0 CGAGGATAGTA.ATCTTTTCA.G.TGCCTGGCAGTATCAGTCAAACTTGAACGGGTACGGGGAGAGGCTGTCCTGGGTG.AAGACCATTCTCCAC.GCGAATGACTAGAGTTGCCCATGATGGA.TATG.T..GACGAA.GTGCGTGCAT. !-F-F8!8!--#--88F---F#!#F!FFF8!FF88-8F-F!----FFF!F8-FF--F-F-F!F!F8FF-F!F-F!!FFF#---88F8!-!F-!88#F-FF--8F-F-8F8FFF-FF8!8----8#!F88#!##!8FFF-#!!88!8F!F-# BC:Z:TCGGTCTT-CCGACTGG RG:Z:HiMom.1 +HiMom:1:1102:1344:1000 77 * 0 0 * * 0 0 CTAGTGCAGG..TGCAATCGTTGTGTCA.GTGTTCTCGGAGAGAGATTCCGG.TCTTAGTTTTAT.GGGTTGGTCTAC.GCG.GTT.TCGTTTTTTAAGATTAGGC.CCGAATGC.CGAAG.AAAATGATGTCTGGCATTGTCTTCT.CG. !--!F8!88-##F---F-F!!!!88!-F#!!FFF--F-!FFFF--F-F!!!-#8!F-F-!!8!F!#!8F8!8-8F-F-#--F#8-8#!!-!-!FF-8---8-F8--#8!88--!F#!-F8F#F88FFFFFF!-!8!F-!F!8-!-!!#-F# BC:Z:CCAGTCAC-GGACCAGT RG:Z:HiMom.1 +HiMom:1:1102:1344:1000 141 * 0 0 * * 0 0 CCCGTGCT..TCTTACG.GTACGT.C..TATAGTCACG.AG.GAGTAAAC.CAAGT.CCGGCCGCCTCCAATATTCCTTTGATTTATC.AGGG.GAC.GCATC.GTCAATGTCA.CAACATA.ATCCTGTTAAGT.GGCTAG.GCACTCAA !8!-8!F-##8!8!FF8#!-FF!F#-##-8-F!F8--!#8!#!FFF8--8#-F8-!#-F!-F!F88!F!F-FF-88-F--88FF-8F-#--!F#!--#8-8F8#88F8FF!-F8#!-8F88-#8!F8F!88F88-#F!8!-!#F8-!88F8 BC:Z:CCAGTCAC-GGACCAGT RG:Z:HiMom.1 +HiMom:1:1102:1362:1000 77 * 0 0 * * 0 0 AGGG.CACTTTCGATTGATG.AATTCCATCCTATATCGATATTATTGTGTCCGCCTCAACTG.TGTCGCAGAATGCGCAATGAC.CCACC.ATGCAAGCTAGACGCGTGCGTCTTCGTGAGGT.AACTTACGATCGCTGGCCATATTGAAA 8--F#8F88-FFF-8!!8FF#-FF-!-88FF-8FFFF!-FF--8F!F!--!F8-8FF-F-8!#8!8F!88FFFF!F-F-F8!F!#-8-8-#--8!-F88F-FF88F!FF!8!-!!!8F8F8-F#8F-F8F--FF!888-88!-!F-F8-F8 BC:Z:CAACCTAT-ACGCTGNT RG:Z:HiMom.1 +HiMom:1:1102:1362:1000 141 * 0 0 * * 0 0 GACGTGCTGCTGCGTCCGTAGG.GC.CCTATACACAGGA.CTGTGGGATGGTTCAAAACTGTCAC..CG.GGATCTCGGGC.GTGCCTCGGAGTCAGCCTCTTT.GATGGTGAGAGAGGTCTGGTA.ACGAGGTTTCTAATGTTGGTCATT -F-F8F-8-8--F!8!-8!F!8#8F#8---F-8FF8F8F#F8-8F!F-!--!8F8FF8F--FF-F##F8#FF88!FF!!--#FF88!!!F--8---!8888-!F#!-!F--!F8-F-F-!-!8--8#F--FF!F-F-!8-F8-F-!F--F! BC:Z:CAACCTAT-ACGCTGNT RG:Z:HiMom.1 +HiMom:1:1102:1380:1000 77 * 0 0 * * 0 0 ACTGAGTGGTATCGGACACCGA.GCGTTAG.GGGTACGGC.GTGTTT.TGACCAAAGTTTCATCTCATCAGACATCCGTTTGGGCTGC.GCTTTGGCGCCAT.GCATAGTGTCGGATCGACGTGTCACCCCCAATGCCTTGGTATTCG.TG 8F8!F8!8!F-8F8--!-8!-8#8!-88--#F-8-8!-!8#8-F!F!#888!8F8FFF8F!8-F!8F8!F--FFF88!!FF88-F8!8#F!F8!8-!F8-8F#!-888F-F88-F8!FFF-F-!88-F-F8-F8-!88FF8-F-!F88#!- BC:Z:GNGGTGTG-GCCGCGGT RG:Z:HiMom.1 +HiMom:1:1102:1380:1000 141 * 0 0 * * 0 0 TGAGGCCGGAGCCGCGCCTT.CATGG.CCGGTGATTATGAATGCCGCTGTTCCTT.TG.GTAACGGTGTGTAATTGACGCGCACACCCTGAGC.GGTAT.GGC.ATC.GGA.ACTCCAAGTAGACGCCGTTCCTC.GATCTA.ACG.GTAT F-F-88!-FF-!F!88-!!8#!88-F#!F--!F-!-FF8F8FF8!--8F-FFF!!#8!#8--F!FFFF!!!F888-8F-88F888F-!!--8-#-!F88#FFF#F!8#!-8#---!!8FF-F8FF-8-F!8----#F--F88#F!F#!88! BC:Z:GNGGTGTG-GCCGCGGT RG:Z:HiMom.1 +HiMom:1:1102:1398:1000 77 * 0 0 * * 0 0 .TCA.AGGGCTTCGGCGAGCC.GTG..CCATTTTCTGGGTAATCTCGATAGCGACCCGT.CGAGA.ATTTTATGATTGCGTTCGAAACTTAGTTATGGTGCA.AGGCT.AATGGGTCCTGACTGAGTTTAAA.GCGTTCAC.CCCTTAGTC #-F8#F-!!-!-!F-!!88!-#-8F##F8-F8-F-888F-8-!-!!88F---8-F!F!!#F-8F-#---8-F8!8--8!FF!8!FFFFFFFF-!F-88!F-F#FFF88#8-8F--!-!F!-8FF8---8---#!F8FF!8F#F--88F!!8 BC:Z:GGTGTTGT-CGATCAGC RG:Z:HiMom.1 +HiMom:1:1102:1398:1000 141 * 0 0 * * 0 0 GCTCGCTTA.CTAGAACTCCTTCCACAGTCCCCCCCGTGCCTCCACGCG.CCAAGC.TCCGGGGCGTTACATGCGCTCGCC.AGG.CTATATGCTCTCCCCG.CTT.TCTAAAGTAGTTTTCCGGGTCGAGTATTAATAAGAAGGTAAGT. !F-F-88!-#8F88F-!-F!FF--F-FF!8F-FF8!FFF!-!8-8!F!!#!--F8!#F-8-88!!F!--F8F-F-F8F88!#-8-#FF--F-!!-F-F!F-F#!8-#F8F8F8F!FF!-F--8F!!FF!-8!8-FFF!F-F8--8!-8--# BC:Z:GGTGTTGT-CGATCAGC RG:Z:HiMom.1 +HiMom:1:1102:1416:1000 77 * 0 0 * * 0 0 TGACTACTTAGTAACGG.G.CCGTGGCCGCTACTGCGCCGAGGTTTTTATGTTTG.CAACTGGAAGGAGGCAATAAACTAAGA.CGATTGGCCCG.TAGGC..CGCGTCGGAACAGTTTCTCGCAATCAAC.CGTCGGCC.ATTCAAGCTC !--88--FF-!!F-F-!#!#-88F-!-8F--8!-!8F!----FFF8!8F8FF!!-#FFF!-!88F-!FFFF8F!F-88!F8!-#-F8!8!8-F8-#!F!8F##!8-F!-FF-FFF!F-FF-F8!-F8FF8F#-8-F8--F#8F8!FF8!F- BC:Z:TTAGCGTG-GTGCCAAG RG:Z:HiMom.1 +HiMom:1:1102:1416:1000 141 * 0 0 * * 0 0 TCGGCACGACTACTAGTAGCAC.CCGCCTGGGTCAC.TAGCCTCAGTTGGCTCAAATTTGGCTGGAATGACTAATCATATTTTGTCCATACAATCGATCTTTGGGCCTCCC.CCCCAT.A.CCGCGGGGTACCTTGTGCCTCTCACTTGCC -8!FF8!!8F8F8F-!!F8-8F#FF88!8-!!!FF-#-F8FF8F-FF-F-8-!8FF88!8-88-88F!-F!F888888-!!F8F!!FFFFF---!FF!-!F88--8---!F#-!8FF!#F#!-8!--!FF-!!F88!8FF--!88F88F!! BC:Z:TTAGCGTG-GTGCCAAG RG:Z:HiMom.1 +HiMom:1:1102:1434:1000 77 * 0 0 * * 0 0 CGGGGACAGTGTCATTATCGCC.CCG.GCAGG.TTAAG.C.T.CCGG.GGGGGCAGTGCTATTCCGATGTCCCCG.AATAGTC.TGGGTCAGTACCCATGCCCCTTATA.AGC.ATAT.GTAG.CAGCGGCTTGCGGCTCAGCCCATTTTA -8-8---F!8!-8-!!FF8!!-#8!-#8F-F8#F--8F#-#8#FF8F#-8FFF8-!8-!-8FF!-!-88F88!-!#8F8F-FF#!!-F888-F-!-888!FF!8FF8F-#88!#888!#8FF8#!888!-88!!8--8!!-8-FF-88!8F BC:Z:TNNGAGAA-TTACGCGC RG:Z:HiMom.1 +HiMom:1:1102:1434:1000 141 * 0 0 * * 0 0 CCCTATTGCACTTAG.GCGTGGAATCGCGGGATT.CGGCCCCCG.CAGTCGGCTATGATTCGA.TCCATGCGTGCGTGTGTGCGTATCCCCACGTATAAGAGCGCGGACACTCCA.CTGGGAACCAATC.CA.TGAC.TAGCCGACAATAT -8F-F8!F-F8-888#F8FF!!F8F!-8!8!8F-#8F!--8F!F#-8!F!8!-F8-!8F-FF-#-8--8!!88-----F-8--!!888!-F8!-88-----!8!88!8-8-!!-F#!--8!8-!!8--F#!-#F!--#F-F!-!-!F-F88 BC:Z:TNNGAGAA-TTACGCGC RG:Z:HiMom.1 +HiMom:1:1102:1470:1000 77 * 0 0 * * 0 0 CAGACCGCGGCTCTGGATCACCTCCGACGGGTAGTGACA.CTACCT.AATCCGTCCAAGCAATGTGCAGTTCTTAATGACTTGGCTCGAGTAGTCCTGACCAA.GAACGGACGTTCTTCGA.GATAGGTGGGAG.TGGCTTCACGCTTTAC 8FF8-FFF!F-8--F-888-!!-!-8--8FFFF!!F8FF#!!F!!8#F8!8F8-8-8-F!--8-F!8----!F----8-8-F!!-F!F-!F-!!F-F!FFFFF#F--F----!!F-!!F--#88!F!F!8-F--#-F8-F-!-!!-!!!-F BC:Z:GGGCAAAT-CTGGTNNN RG:Z:HiMom.1 +HiMom:1:1102:1470:1000 141 * 0 0 * * 0 0 AAGCAA.GA.GACACCGGTGTCAGTGTTTTGG.ATCGCAGCTTT.GACCTGCTTCCT.AACTT.TCTGTTTCCGAAGTCACTTATT.TAAACGAGCTCTGGACTAGGCTCTGTACTCCCAATCTCGT..TCTCGGGTCAA.GAGCCTGGCC F8-888#!8#-8--F--!F--888!8F8!-F8#-F!!!--!F8-#--8--F-!8FFF#--F!-#!F-!!!F-8-FF8--F!-88!8#88-F-F-8F--!8!F!-8-F--!88FF!-8!--8-!88F!##-!8-!!FF8-F#8FF-!!!--- BC:Z:GGGCAAAT-CTGGTNNN RG:Z:HiMom.1 +HiMom:1:1102:1488:1000 77 * 0 0 * * 0 0 CGCTGTGCGTAACTTCCATGAATATCGAGGTGGATCTC.GTAGTGTTTG.AC.ATAGGTACAAACGTCCAACATGTCACGTCGAGAACGCCCCGATGTGCGCGAGAAGT.ATGAGCGTATGCAGGGCGTCAATTGCCCTTGAGAAGGTGGG FF--8F88!!-8-F8!-FF!88F-!F8F!F!!F--F88#!88-F-F--F#8-#8-8-8-8!F-88!8!!FF88!FF!-8FFF--8-8F8-FF8--8FFFFF-FFF8888#F8!F!888-F!--!88-8!---FFF-!!F!FF--8F88-!! BC:Z:CTCATACG-CTGNTCCC RG:Z:HiMom.1 +HiMom:1:1102:1488:1000 141 * 0 0 * * 0 0 TCCTGACGGATACTTGCATAGGAC.CACTAGGT.TTGTCTATCTTTCAACGACAGGGA.A.TGTAAGGTGTTGAGTGTTCTCATGGCGTTATGGGCTCTTTC.C.ATTGTAGAG.CGGTGCGC.AGGCTGATTGACCCCGCATTGGGAATC !-8F--!FF8888!F--8-88-88#888-8!-F#F!-8-F888!!F-F-F!F!F-8-F#F#!F-8--FF--!--FF-!F!!88F!8!8-8-!-!-!F8F888#F#F!!!---F8#-F-F-FFF#8--FF-88--F--888FFFF88-8F!F BC:Z:CTCATACG-CTGNTCCC RG:Z:HiMom.1 diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/sams/TTGCGGCCGGTTTAAC.sam b/testdata/picard/illumina/125T8B8B125T_cbcl/sams/TTGCGGCCGGTTTAAC.sam new file mode 100644 index 000000000..1a0cc579f --- /dev/null +++ b/testdata/picard/illumina/125T8B8B125T_cbcl/sams/TTGCGGCCGGTTTAAC.sam @@ -0,0 +1,4 @@ +@HD VN:1.5 SO:queryname +@RG ID:HiMom.1 SM:SA_TTGCGGCCGGTTTAAC LB:LN_TTGCGGCCGGTTTAAC PL:illumina PU:HiMom.1.TTGCGGCC-GGTTTAAC CN:BI +HiMom:1:1101:1036:1000 77 * 0 0 * * 0 0 GTTAGGAGAGACACCC.GAAGACT.C.CACACCCTAT.TAATCGGGTGCATGTCGAT.AA..CTCGCCTCTGGGG.TGGTACCTAT.CTTAGTTCTTGCTCC.TA.ACGGCGCGATTGG.C.T.CGTTAGAGACCCTG.CCTACGGGGCTC !F!--!F8-FF8-8F!#F8F8-F8#-#8-8FF!!FF!#-F--F8!!!F!F--8-FF!#8F##-FF!F88-8-8-8#FFF8-8!8-F#--F8-F--!!!-8F!#!F#F--!FFF8F-F!-#8#8#!F8!-!-FF8FF!8#!FF8--8F8-!8 RG:Z:HiMom.1 +HiMom:1:1101:1036:1000 141 * 0 0 * * 0 0 CTCCGACCTG.ATGGATATCGTTAGCGGGTCCTGGTGAGGGC.CTCTA.CGTAC.GCGGAGAGCGCCCTGGACAACCCATACATCCACAGCACGAGGCTTTATGT.CTGT.TCCCGGCTCTGCCATTTTTCCA.GA.GTCTTGGCCCGTCC F8!8!FF8!-#8F!FF-FF88-!8!F8----88FFF-8F-F8#-!!8-#-!F8F#-8!88!F-F-F!-F8!FF8F8--FF8F--!!F!F-!8-F-F8-!F8-8!-#FF-8#!888!-88!-F!F8F-!FF!8F#F8#F--8!-F--F!8!- RG:Z:HiMom.1 diff --git a/testdata/picard/illumina/125T8B8B125T_cbcl/sams/barcode_double.params b/testdata/picard/illumina/125T8B8B125T_cbcl/sams/barcode_double.params new file mode 100644 index 000000000..a66be292b --- /dev/null +++ b/testdata/picard/illumina/125T8B8B125T_cbcl/sams/barcode_double.params @@ -0,0 +1,6 @@ +BARCODE_1 BARCODE_2 SAMPLE_ALIAS LIBRARY_NAME +CCCCGCTT TTGCGTGT SA_CCCCGCTTTTGCGTGT LN_CCCCGCTTTTGCGTGT +TTGCGGCC GGTTTAAC SA_TTGCGGCCGGTTTAAC LN_TTGCGGCCGGTTTAAC +CACCTAGT ACTCGAGT SA_CACCTAGTACTCGAGT LN_CACCTAGTACTCGAGT +GCTATAGT CCAGCAGC SA_GCTATAGTCCAGCAGC LN_GCTATAGTCCAGCAGC +N N SA_N LN_N diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C1.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C1.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..b052b4806 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C1.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C10.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C10.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..33913487d Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C10.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C100.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C100.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..a4a23af87 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C100.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C101.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C101.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..769c16211 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C101.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C102.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C102.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..f709439be Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C102.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C103.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C103.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..447720bc0 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C103.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C104.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C104.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..5605ad19f Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C104.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C105.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C105.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..53c132367 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C105.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C106.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C106.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..d512898ce Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C106.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C107.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C107.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..90b6d0502 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C107.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C108.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C108.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..87c4c5a9a Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C108.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C109.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C109.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..35bd840b0 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C109.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C11.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C11.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..7b78fe086 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C11.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C110.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C110.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..6532f599a Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C110.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C111.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C111.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..bf65b6719 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C111.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C112.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C112.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..6ceb313bd Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C112.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C113.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C113.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..6b4ca84b7 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C113.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C114.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C114.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..d1543bb5d Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C114.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C115.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C115.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..e734da922 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C115.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C116.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C116.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..59bdea43b Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C116.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C117.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C117.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..ee7a44447 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C117.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C118.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C118.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..169149966 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C118.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C119.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C119.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..8953aa0d2 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C119.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C12.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C12.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..77ce3b6a9 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C12.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C120.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C120.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..cef7efc2d Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C120.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C121.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C121.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..7a0178280 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C121.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C122.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C122.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..61faf32f3 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C122.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C123.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C123.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..fc4b2ea74 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C123.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C124.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C124.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..03a005ba5 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C124.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C125.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C125.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..eb068f613 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C125.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C126.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C126.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..06c4e29c9 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C126.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C127.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C127.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..26e880276 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C127.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C128.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C128.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..e89107e27 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C128.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C129.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C129.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..65a8f731d Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C129.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C13.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C13.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..efc31b672 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C13.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C130.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C130.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..ae12aa1ca Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C130.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C131.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C131.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..7017cb1a0 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C131.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C132.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C132.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..13933ac79 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C132.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C133.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C133.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..f1d636030 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C133.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C134.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C134.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..430bb70c6 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C134.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C135.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C135.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..4b9e7e28c Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C135.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C136.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C136.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..8490c329f Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C136.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C137.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C137.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..7757dc29e Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C137.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C138.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C138.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..2ee9d757b Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C138.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C139.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C139.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..a58193ae9 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C139.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C14.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C14.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..96e6186fd Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C14.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C140.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C140.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..bd04718db Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C140.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C141.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C141.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..183650739 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C141.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C142.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C142.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..996c8f4c7 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C142.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C143.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C143.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..08e2812aa Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C143.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C144.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C144.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..e6a90edba Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C144.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C145.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C145.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..a91e638b6 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C145.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C146.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C146.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..3ca55f2fd Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C146.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C147.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C147.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..358532e7f Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C147.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C148.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C148.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..1ce356527 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C148.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C149.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C149.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..410320327 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C149.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C15.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C15.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..949ea2a2c Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C15.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C150.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C150.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..07dabc93b Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C150.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C151.1/FWHMGridMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C151.1/FWHMGridMetricsOut.bin new file mode 100755 index 000000000..9960df720 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C151.1/FWHMGridMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C152.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C152.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..f51a03f38 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C152.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C152.1/FWHMGridMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C152.1/FWHMGridMetricsOut.bin new file mode 100755 index 000000000..ce316287d Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C152.1/FWHMGridMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C153.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C153.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..22cd5234b Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C153.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C154.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C154.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..efec4a89b Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C154.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C155.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C155.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..55be51205 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C155.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C156.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C156.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..1c35031b0 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C156.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C157.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C157.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..3c9fb24b2 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C157.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C158.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C158.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..6217fa3b2 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C158.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C159.1/FWHMGridMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C159.1/FWHMGridMetricsOut.bin new file mode 100755 index 000000000..77ca81811 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C159.1/FWHMGridMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C16.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C16.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..8f5127273 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C16.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C160.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C160.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..ee9910264 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C160.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C160.1/FWHMGridMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C160.1/FWHMGridMetricsOut.bin new file mode 100755 index 000000000..84ee025d1 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C160.1/FWHMGridMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C161.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C161.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..2b0e92080 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C161.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C162.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C162.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..675c4ac24 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C162.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C163.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C163.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..379561a18 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C163.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C164.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C164.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..9192ac7e1 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C164.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C165.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C165.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..0ded783f9 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C165.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C166.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C166.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..ebbe42f05 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C166.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C167.1/FWHMGridMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C167.1/FWHMGridMetricsOut.bin new file mode 100755 index 000000000..48a289b51 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C167.1/FWHMGridMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C168.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C168.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..ad4672dbe Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C168.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C168.1/FWHMGridMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C168.1/FWHMGridMetricsOut.bin new file mode 100755 index 000000000..5078ca0b5 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C168.1/FWHMGridMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C169.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C169.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..42becb7c8 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C169.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C17.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C17.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..ac6dd1f57 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C17.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C170.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C170.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..26c1c610b Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C170.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C171.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C171.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..7c32dc162 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C171.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C172.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C172.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..10313953b Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C172.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C173.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C173.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..7a78393e7 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C173.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C174.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C174.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..48e4cd87d Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C174.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C175.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C175.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..f57ad5c93 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C175.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C176.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C176.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..40abfa219 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C176.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C177.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C177.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..c5f3635b3 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C177.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C178.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C178.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..6a3fc1e2f Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C178.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C179.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C179.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..755d04903 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C179.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C18.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C18.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..397725764 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C18.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C180.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C180.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..e406ece5a Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C180.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C181.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C181.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..700d32fd7 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C181.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C182.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C182.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..3381ca2cf Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C182.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C183.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C183.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..bb0cc3f75 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C183.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C184.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C184.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..51cc6246e Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C184.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C185.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C185.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..ff9129171 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C185.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C186.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C186.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..8b91d1dcd Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C186.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C187.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C187.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..277b4845c Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C187.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C188.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C188.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..b9e9cebd1 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C188.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C189.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C189.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..6d613ecc9 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C189.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C19.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C19.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..264df273b Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C19.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C190.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C190.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..9ee624862 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C190.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C191.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C191.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..882444fb1 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C191.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C192.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C192.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..68f3a1671 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C192.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C192.1/TileMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C192.1/TileMetricsOut.bin new file mode 100755 index 000000000..7d2464633 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C192.1/TileMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C193.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C193.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..e2c630bd1 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C193.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C194.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C194.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..17cfa05fb Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C194.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C195.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C195.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..1bba2ec27 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C195.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C196.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C196.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..e5cddb39a Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C196.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C197.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C197.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..f58a2a191 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C197.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C198.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C198.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..cc0f4ae87 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C198.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C199.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C199.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..fd66ebb48 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C199.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C2.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C2.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..05175b80a Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C2.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C20.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C20.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..28ef879b6 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C20.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C200.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C200.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..44f94d8a5 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C200.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C201.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C201.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..5375cec22 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C201.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C202.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C202.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..9831904e9 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C202.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C203.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C203.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..978977292 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C203.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C204.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C204.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..69310ddcc Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C204.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C205.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C205.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..3fecc435d Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C205.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C206.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C206.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..7c55f66de Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C206.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C207.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C207.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..3f6628424 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C207.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C208.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C208.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..105d19e8f Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C208.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C209.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C209.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..02037fd0c Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C209.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C21.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C21.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..953acb7d6 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C21.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C210.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C210.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..b1f68b207 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C210.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C211.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C211.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..72ea7b141 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C211.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C212.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C212.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..f8418af48 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C212.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C213.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C213.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..c6654e91e Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C213.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C214.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C214.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..21c4fcb07 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C214.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C215.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C215.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..7c9d786a2 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C215.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C216.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C216.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..d339b268d Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C216.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C217.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C217.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..68174a0c6 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C217.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C218.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C218.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..81e504e47 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C218.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C219.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C219.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..07b76f37a Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C219.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C22.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C22.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..cf1917fe3 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C22.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C220.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C220.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..43e8c0de8 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C220.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C221.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C221.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..e14648136 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C221.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C222.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C222.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..db28f1e69 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C222.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C223.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C223.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..46b6ad0c5 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C223.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C224.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C224.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..5fcc449c1 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C224.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C225.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C225.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..a2e8ea7b0 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C225.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C226.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C226.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..fb009317b Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C226.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C227.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C227.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..16c31310e Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C227.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C228.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C228.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..7184195fa Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C228.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C229.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C229.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..117b41fc3 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C229.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C23.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C23.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..544683d65 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C23.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C230.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C230.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..323f64b18 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C230.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C231.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C231.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..725d54f22 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C231.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C232.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C232.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..2a04b71c6 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C232.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C233.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C233.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..54be51f05 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C233.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C234.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C234.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..2fd57ac8d Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C234.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C235.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C235.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..f3ba79487 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C235.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C236.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C236.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..d482e2adf Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C236.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C237.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C237.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..51d33b936 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C237.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C238.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C238.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..02f9d5898 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C238.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C239.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C239.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..ad6d5f376 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C239.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C24.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C24.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..6b8df6899 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C24.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C240.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C240.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..debd8d2c8 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C240.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C241.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C241.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..14bfdfaa6 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C241.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C242.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C242.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..efaa216b9 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C242.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C243.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C243.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..be33ba31d Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C243.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C244.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C244.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..dcb5c29d0 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C244.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C245.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C245.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..4ea966d59 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C245.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C246.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C246.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..f60818796 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C246.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C247.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C247.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..88b1a7059 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C247.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C248.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C248.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..9a914a5ec Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C248.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C249.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C249.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..bd52215f3 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C249.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C25.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C25.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..cd6e2e854 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C25.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C25.1/PFGridMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C25.1/PFGridMetricsOut.bin new file mode 100755 index 000000000..1d45bd661 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C25.1/PFGridMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C25.1/TileMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C25.1/TileMetricsOut.bin new file mode 100755 index 000000000..f30afbc21 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C25.1/TileMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C250.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C250.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..506faf9bb Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C250.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C251.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C251.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..8bf83512d Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C251.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C252.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C252.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..575e6a73d Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C252.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C253.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C253.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..2a11606ed Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C253.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C254.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C254.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..57d9f7e67 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C254.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C255.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C255.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..bb0bfc5a0 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C255.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C256.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C256.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..6bd960b4c Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C256.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C257.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C257.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..5f9079ba6 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C257.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C258.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C258.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..1f18c8cfc Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C258.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C259.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C259.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..611fc8385 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C259.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C26.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C26.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..54578ded7 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C26.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C260.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C260.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..5941715d6 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C260.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C261.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C261.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..360dbfe51 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C261.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C262.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C262.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..4f8903acc Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C262.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C263.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C263.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..3d55db50b Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C263.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C264.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C264.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..1d8114bd4 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C264.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C265.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C265.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..13f6b4f77 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C265.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C266.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C266.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..371914560 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C266.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C267.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C267.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..8a30add5b Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C267.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C268.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C268.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..dae6ec642 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C268.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C269.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C269.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..774018d0c Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C269.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C27.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C27.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..1c3327b14 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C27.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C270.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C270.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..7606adcf5 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C270.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C271.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C271.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..d5d55871a Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C271.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C272.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C272.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..997b83f1e Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C272.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C273.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C273.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..b6c83fea3 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C273.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C274.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C274.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..edfa17ea0 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C274.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C275.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C275.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..a90ab396b Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C275.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C276.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C276.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..e807490d2 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C276.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C277.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C277.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..b03881443 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C277.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C278.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C278.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..f59804b1f Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C278.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C279.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C279.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..932bd2e70 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C279.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C28.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C28.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..98d5cf06f Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C28.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C280.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C280.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..3062c407b Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C280.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C281.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C281.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..a8c492efc Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C281.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C282.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C282.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..d58f34e0c Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C282.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C283.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C283.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..0b78a0f26 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C283.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C284.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C284.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..e6f6a3e2b Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C284.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C285.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C285.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..347aaeb0d Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C285.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C286.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C286.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..4253124db Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C286.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C287.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C287.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..1bfe9e0a5 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C287.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C288.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C288.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..47c2a45b2 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C288.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C289.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C289.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..8b0a72680 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C289.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C29.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C29.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..88bc3a9df Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C29.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C290.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C290.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..304414c54 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C290.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C291.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C291.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..8e6df2f86 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C291.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C292.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C292.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..50547057b Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C292.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C293.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C293.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..860a37cd5 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C293.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C294.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C294.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..af84cb5ca Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C294.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C295.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C295.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..5be2325c2 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C295.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C296.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C296.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..a6c0c54de Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C296.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C297.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C297.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..d62e84c0f Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C297.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C298.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C298.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..a1722bd28 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C298.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C299.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C299.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..4622e6b88 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C299.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C3.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C3.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..c0843215f Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C3.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C30.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C30.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..9dc9dc586 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C30.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C300.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C300.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..bfd7eb913 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C300.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C301.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C301.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..59c177b37 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C301.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C302.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C302.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..34f97774e Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C302.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C303.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C303.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..1a697a317 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C303.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C304.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C304.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..125ea7120 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C304.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C305.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C305.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..d5539b69d Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C305.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C306.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C306.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..470946c5b Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C306.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C307.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C307.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..82a41ec42 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C307.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C308.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C308.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..274e82cfd Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C308.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C309.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C309.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..8ce38bdf9 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C309.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C31.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C31.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..7b1685aab Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C31.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C310.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C310.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..8869f9433 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C310.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C311.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C311.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..de2509cb6 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C311.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C312.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C312.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..e422de40a Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C312.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C313.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C313.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..5177597e1 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C313.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C314.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C314.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..5fddab0ec Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C314.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C315.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C315.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..8ec443a36 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C315.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C316.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C316.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..5f76de592 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C316.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C317.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C317.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..e5d432528 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C317.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C318.1/FWHMGridMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C318.1/FWHMGridMetricsOut.bin new file mode 100755 index 000000000..e8ea33e36 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C318.1/FWHMGridMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C32.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C32.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..872053dc3 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C32.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C33.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C33.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..b39f060f3 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C33.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C34.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C34.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..4b8b906cf Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C34.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C35.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C35.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..69879804f Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C35.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C36.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C36.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..898c41780 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C36.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C37.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C37.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..67115da5e Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C37.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C38.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C38.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..b77b5a414 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C38.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C39.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C39.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..94518e081 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C39.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C4.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C4.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..8dc69de4e Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C4.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C40.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C40.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..f4044c4a7 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C40.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C41.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C41.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..b0231aed5 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C41.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C42.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C42.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..4d3f2989c Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C42.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C43.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C43.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..a625aca5f Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C43.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C44.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C44.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..8ecc29ca7 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C44.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C45.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C45.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..4ffc80ab0 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C45.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C46.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C46.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..719f1a1e7 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C46.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C47.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C47.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..4a00c9828 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C47.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C48.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C48.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..ac49695c1 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C48.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C49.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C49.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..8ebb3e64f Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C49.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C5.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C5.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..0c51a20c6 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C5.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C50.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C50.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..1fc69a94b Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C50.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C51.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C51.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..ba1ef334e Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C51.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C52.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C52.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..52c1d4b69 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C52.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C53.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C53.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..77ededbac Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C53.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C54.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C54.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..0165e7c84 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C54.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C55.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C55.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..084c2d478 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C55.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C56.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C56.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..8f5a40fab Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C56.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C57.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C57.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..d8608b3ea Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C57.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C58.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C58.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..6a0053196 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C58.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C59.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C59.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..1511b9c0a Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C59.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C6.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C6.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..c09c13c6d Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C6.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C60.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C60.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..aca21a531 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C60.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C61.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C61.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..d9f11749f Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C61.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C62.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C62.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..11b9e0e5d Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C62.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C63.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C63.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..ebe46dbbf Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C63.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C64.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C64.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..c1f37f252 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C64.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C65.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C65.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..ac77145d3 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C65.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C66.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C66.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..8fd9e51bd Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C66.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C67.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C67.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..9aea28057 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C67.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C68.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C68.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..784e02b63 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C68.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C69.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C69.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..129961b63 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C69.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C7.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C7.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..bb0d8eacf Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C7.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C70.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C70.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..23da0a0ce Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C70.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C71.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C71.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..62bbae5d2 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C71.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C72.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C72.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..aa7e88e50 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C72.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C73.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C73.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..bf2acd679 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C73.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C74.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C74.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..026108dc9 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C74.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C75.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C75.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..d7a6faeff Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C75.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C76.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C76.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..a28154040 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C76.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C77.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C77.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..4ad7280ce Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C77.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C78.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C78.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..d26a8d7aa Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C78.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C79.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C79.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..3a6f03016 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C79.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C8.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C8.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..3d0ff3a0a Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C8.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C80.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C80.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..4dce03f04 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C80.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C81.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C81.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..4e6bf420c Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C81.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C82.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C82.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..70d3b591a Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C82.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C83.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C83.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..17a96f6ad Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C83.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C84.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C84.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..b8d4c51ac Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C84.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C85.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C85.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..ee0fc22ac Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C85.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C86.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C86.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..aed23278d Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C86.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C87.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C87.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..775ea0698 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C87.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C88.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C88.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..286c26f89 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C88.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C89.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C89.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..a9b96f123 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C89.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C9.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C9.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..6731848d7 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C9.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C90.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C90.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..3d8253b68 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C90.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C91.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C91.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..fe1657166 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C91.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C92.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C92.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..1a0898cab Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C92.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C93.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C93.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..8c751c219 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C93.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C94.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C94.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..3385901a2 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C94.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C95.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C95.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..b4a84dee6 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C95.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C96.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C96.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..09bccbc2d Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C96.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C97.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C97.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..baa21e519 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C97.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C98.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C98.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..a77672b2a Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C98.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C99.1/EmpiricalPhasingMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C99.1/EmpiricalPhasingMetricsOut.bin new file mode 100755 index 000000000..f7d37c401 Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/C99.1/EmpiricalPhasingMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/IndexMetricsOut.bin b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/IndexMetricsOut.bin new file mode 100755 index 000000000..9cbc6bfbd Binary files /dev/null and b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/InterOp/IndexMetricsOut.bin differ diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/NovaSeq.illumina_lane_metrics b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/NovaSeq.illumina_lane_metrics new file mode 100644 index 000000000..b1f641e49 --- /dev/null +++ b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/NovaSeq.illumina_lane_metrics @@ -0,0 +1,7 @@ + +## METRICS CLASS picard.illumina.IlluminaLaneMetrics +CLUSTER_DENSITY LANE +1.38181 1 +1.38181 2 + + diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/NovaSeq.illumina_phasing_metrics b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/NovaSeq.illumina_phasing_metrics new file mode 100644 index 000000000..094a6682e --- /dev/null +++ b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/NovaSeq.illumina_phasing_metrics @@ -0,0 +1,9 @@ + +## METRICS CLASS picard.illumina.IlluminaPhasingMetrics +LANE TYPE_NAME PHASING_APPLIED PREPHASING_APPLIED +1 FIRST 0.120793 0.077079 +1 SECOND 0.152156 0.084203 +2 FIRST 0.11915 0.075621 +2 SECOND 0.154134 0.085365 + + diff --git a/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/RunInfo.xml b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/RunInfo.xml new file mode 100755 index 000000000..7f6274421 --- /dev/null +++ b/testdata/picard/illumina/IlluminaLaneMetricsCollectorTest/tileRuns/NovaSeq/RunInfo.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/testdata/picard/illumina/readerTests/C99.1.cbcl b/testdata/picard/illumina/readerTests/cbcls/C1.1/L001_1.cbcl similarity index 100% rename from testdata/picard/illumina/readerTests/C99.1.cbcl rename to testdata/picard/illumina/readerTests/cbcls/C1.1/L001_1.cbcl diff --git a/testdata/picard/illumina/readerTests/C100.1.cbcl b/testdata/picard/illumina/readerTests/cbcls/C2.1/L001_1.cbcl similarity index 100% rename from testdata/picard/illumina/readerTests/C100.1.cbcl rename to testdata/picard/illumina/readerTests/cbcls/C2.1/L001_1.cbcl diff --git a/testdata/picard/illumina/readerTests/cbcls/tile_1101.filter b/testdata/picard/illumina/readerTests/cbcls/tile_1101.filter new file mode 100644 index 000000000..445bc582e Binary files /dev/null and b/testdata/picard/illumina/readerTests/cbcls/tile_1101.filter differ